source: trunk/target/linux/lantiq/patches-3.0/180-falcon-linux3.0.patch @ 28308

Last change on this file since 28308 was 28308, checked in by blogic, 5 years ago

[lantiq]

  • rebase 3.0 patches
  • fold some fixes into existing patches
File size: 4.3 KB
  • arch/mips/lantiq/irq.c

    a b  
    5252#define ltq_eiu_w32(x, y)       ltq_w32((x), ltq_eiu_membase + (y)) 
    5353#define ltq_eiu_r32(x)          ltq_r32(ltq_eiu_membase + (x)) 
    5454 
     55#ifdef CONFIG_SOC_XWAY 
    5556static unsigned short ltq_eiu_irq[MAX_EIU] = { 
    5657        LTQ_EIU_IR0, 
    5758        LTQ_EIU_IR1, 
    static unsigned short ltq_eiu_irq[MAX_EI 
    6061        LTQ_EIU_IR4, 
    6162        LTQ_EIU_IR5, 
    6263}; 
     64#endif 
    6365 
    6466static struct resource ltq_icu_resource = { 
    6567        .name   = "icu", 
    static struct resource ltq_icu_resource 
    6870        .flags  = IORESOURCE_MEM, 
    6971}; 
    7072 
     73#ifdef CONFIG_SOC_XWAY 
    7174static struct resource ltq_eiu_resource = { 
    7275        .name   = "eiu", 
    7376        .start  = LTQ_EIU_BASE_ADDR, 
    7477        .end    = LTQ_EIU_BASE_ADDR + LTQ_ICU_SIZE - 1, 
    7578        .flags  = IORESOURCE_MEM, 
    7679}; 
     80#endif 
    7781 
    7882static void __iomem *ltq_icu_membase; 
     83#ifdef CONFIG_SOC_XWAY 
    7984static void __iomem *ltq_eiu_membase; 
     85#endif 
    8086 
    8187void ltq_disable_irq(struct irq_data *d) 
    8288{ 
    void ltq_enable_irq(struct irq_data *d) 
    122128        ltq_icu_w32(ltq_icu_r32(ier) | (1 << irq_nr), ier); 
    123129} 
    124130 
     131#ifdef CONFIG_SOC_XWAY 
    125132static unsigned int ltq_startup_eiu_irq(struct irq_data *d) 
    126133{ 
    127134        int i; 
    static void ltq_shutdown_eiu_irq(struct 
    161168                } 
    162169        } 
    163170} 
     171#endif 
    164172 
    165173static struct irq_chip ltq_irq_type = { 
    166174        "icu", 
    static struct irq_chip ltq_irq_type = { 
    172180        .irq_mask_ack = ltq_mask_and_ack_irq, 
    173181}; 
    174182 
     183#ifdef CONFIG_SOC_XWAY 
    175184static struct irq_chip ltq_eiu_type = { 
    176185        "eiu", 
    177186        .irq_startup = ltq_startup_eiu_irq, 
    static struct irq_chip ltq_eiu_type = { 
    183192        .irq_mask = ltq_disable_irq, 
    184193        .irq_mask_ack = ltq_mask_and_ack_irq, 
    185194}; 
     195#endif 
    186196 
    187197static void ltq_hw_irqdispatch(int module) 
    188198{ 
    static void ltq_hw_irqdispatch(int modul 
    198208        irq = __fls(irq); 
    199209        do_IRQ((int)irq + INT_NUM_IM0_IRL0 + (INT_NUM_IM_OFFSET * module)); 
    200210 
     211#ifdef CONFIG_SOC_XWAY 
    201212        /* if this is a EBU irq, we need to ack it or get a deadlock */ 
    202213        if ((irq == LTQ_ICU_EBU_IRQ) && (module == 0)) 
    203214                ltq_ebu_w32(ltq_ebu_r32(LTQ_EBU_PCC_ISTAT) | 0x10, 
    204215                        LTQ_EBU_PCC_ISTAT); 
     216#endif 
    205217} 
    206218 
    207219#define DEFINE_HWx_IRQDISPATCH(x)                                       \ 
    void __init arch_init_irq(void) 
    264276        if (!ltq_icu_membase) 
    265277                panic("Failed to remap icu memory\n"); 
    266278 
     279#ifdef CONFIG_SOC_XWAY 
    267280        if (insert_resource(&iomem_resource, &ltq_eiu_resource) < 0) 
    268281                panic("Failed to insert eiu memory\n"); 
    269282 
    void __init arch_init_irq(void) 
    275288                                resource_size(&ltq_eiu_resource)); 
    276289        if (!ltq_eiu_membase) 
    277290                panic("Failed to remap eiu memory\n"); 
     291#endif 
    278292 
    279293        /* make sure all irqs are turned off by default */ 
    280294        for (i = 0; i < 5; i++) 
    void __init arch_init_irq(void) 
    300314 
    301315        for (i = INT_NUM_IRQ0; 
    302316                i <= (INT_NUM_IRQ0 + (5 * INT_NUM_IM_OFFSET)); i++) 
     317#ifdef CONFIG_SOC_XWAY 
    303318                if ((i == LTQ_EIU_IR0) || (i == LTQ_EIU_IR1) || 
    304319                        (i == LTQ_EIU_IR2)) 
    305320                        irq_set_chip_and_handler(i, &ltq_eiu_type, 
    void __init arch_init_irq(void) 
    310325                        irq_set_chip_and_handler(i, &ltq_eiu_type, 
    311326                                handle_level_irq); 
    312327                else 
     328#endif 
    313329                        irq_set_chip_and_handler(i, &ltq_irq_type, 
    314330                                handle_level_irq); 
    315331 
  • arch/mips/lantiq/clk.c

    a b static struct clk cpu_clk_generic[] = { 
    4646        }, 
    4747}; 
    4848 
     49#ifdef CONFIG_SOC_XWAY 
    4950static struct resource ltq_cgu_resource = { 
    5051        .name   = "cgu", 
    5152        .start  = LTQ_CGU_BASE_ADDR, 
    static struct resource ltq_cgu_resource 
    5556 
    5657/* remapped clock register range */ 
    5758void __iomem *ltq_cgu_membase; 
     59#endif 
    5860 
    5961void clk_init(void) 
    6062{ 
    void __init plat_time_init(void) 
    131133{ 
    132134        struct clk *clk; 
    133135 
     136#ifdef CONFIG_SOC_XWAY 
    134137        if (insert_resource(&iomem_resource, &ltq_cgu_resource) < 0) 
    135138                panic("Failed to insert cgu memory\n"); 
    136139 
    void __init plat_time_init(void) 
    144147                pr_err("Failed to remap cgu memory\n"); 
    145148                unreachable(); 
    146149        } 
     150#endif 
    147151        clk = clk_get(0, "cpu"); 
    148152        mips_hpt_frequency = clk_get_rate(clk) / ltq_get_counter_resolution(); 
    149153        write_c0_compare(read_c0_count()); 
  • arch/mips/lantiq/early_printk.c

    a b  
    1313#include <lantiq_soc.h> 
    1414 
    1515/* no ioremap possible at this early stage, lets use KSEG1 instead  */ 
     16#ifdef CONFIG_SOC_FALCON 
     17#define LTQ_ASC_BASE    KSEG1ADDR(LTQ_ASC0_BASE_ADDR) 
     18#else 
    1619#define LTQ_ASC_BASE    KSEG1ADDR(LTQ_ASC1_BASE_ADDR) 
     20#endif 
    1721#define ASC_BUF         1024 
    1822#define LTQ_ASC_FSTAT   ((u32 *)(LTQ_ASC_BASE + 0x0048)) 
    1923#define LTQ_ASC_TBUF    ((u32 *)(LTQ_ASC_BASE + 0x0020)) 
Note: See TracBrowser for help on using the repository browser.