Updating SPEAr Support
Subsystems (14)
PATCH v2 54/69 SPEAr : Updating pad multiplexing support
In reply to Viresh KUMARFrom: Vipin Kumar <[email protected]>
This patch makes the following changes
-> Addition of SPEAr1310 pad multiplexing devices.
-> A few bugfixes eg. clcd1 and clcd2 removed and clcd/clcd_hires added -> Support for modifying multiple regiters in different address ranges
--- arch/arm/mach-spear13xx/include/mach/generic.h | 50 +++- arch/arm/mach-spear13xx/include/mach/spear.h | 3 - arch/arm/mach-spear13xx/spear1300.c | 11 +- arch/arm/mach-spear13xx/spear1300_evb.c | 5 +- arch/arm/mach-spear13xx/spear1310.c | 346 +++++++++++++++++++++++- arch/arm/mach-spear13xx/spear1310_evb.c | 17 +- arch/arm/mach-spear13xx/spear13xx.c | 169 +++++++----- arch/arm/mach-spear3xx/include/mach/generic.h | 12 +- arch/arm/mach-spear3xx/include/mach/spear300.h | 1 - arch/arm/mach-spear3xx/spear300.c | 67 ++--- arch/arm/mach-spear3xx/spear310.c | 20 +- arch/arm/mach-spear3xx/spear320.c | 61 ++--- arch/arm/mach-spear3xx/spear3xx.c | 60 ++-- arch/arm/plat-spear/include/plat/padmux.h | 10 +- arch/arm/plat-spear/padmux.c | 36 ++- 15 files changed, 626 insertions(+), 242 deletions(-)
arch/arm/mach-spear13xx/include/mach/generic.h +40 -10
@@ -24,10 +24,21 @@/* * Function enable (Pad multiplexing register) offsets */ -#define PAD_MUX_CONFIG_REG_0 0x0 -#define PAD_MUX_CONFIG_REG_1 0x4 -#define PAD_MUX_CONFIG_REG_2 0x8 -#define PAD_MUX_CONFIG_REG_3 0xC +/* Pad multiplexing base */ +#define SPEAR13XX_FUNC_ENB_BASE UL(0xE0700650) +#define SPEAR13XX_PCM_CFG_BASE UL(0xE0700100) + +#define PAD_MUX_CONFIG_REG_0 UL(0xE0700650) +#define PAD_MUX_CONFIG_REG_1 UL(0xE0700654) +#define PAD_MUX_CONFIG_REG_2 UL(0xE0700658) +#define PAD_MUX_CONFIG_REG_3 UL(0xE070065C) + +#if defined(CONFIG_MACH_SPEAR1310 ) +#define SPEAR1310_FUNC_CNTL_0 UL(0x6C800000) + +#define PMX_SMII_MASK (1 << 24)/* Func cntl reg0 */ +#define PMX_EGPIO7_MASK (1 << 2)/* Pcm cfg reg */ +#endif /* pad mux declarations */ #define PMX_I2S1_MASK (1 << 3)
@@ -111,9 +122,8 @@#define PMX_KBD_ROWCOL68_MASK (1 << 4)/* Offset 4 */ #define PMX_KBD_COL0_MASK (1 << 21)/* Offset 4 */ #define PMX_KBD_COL1_MASK (1 << 19)/* Offset 4 */ -#define PMX_KEYBOARD_MASK (PMX_KBD_ROW0_MASK | PMX_KBD_ROW1_MASK | \ - PMX_KBD_ROWCOL25_MASK | PMX_KBD_ROWCOL68_MASK | \ - PMX_KBD_COL0_MASK | PMX_KBD_COL1_MASK) +#define PMX_KEYBOARD_6X6_MASK (PMX_KBD_ROW0_MASK | PMX_KBD_ROW1_MASK | \ + PMX_KBD_ROWCOL25_MASK | PMX_KBD_COL0_MASK | PMX_KBD_COL1_MASK)#define PMX_UART0_MASK (1 << 1)#define PMX_I2C_MASK (1 << 2)
@@ -164,16 +174,18 @@/* pad mux devices */ extern struct pmx_dev pmx_i2c;extern struct pmx_dev pmx_ssp; +extern struct pmx_dev pmx_i2s1;extern struct pmx_dev pmx_i2s2; -extern struct pmx_dev pmx_clcd1; -extern struct pmx_dev pmx_clcd2; +extern struct pmx_dev pmx_clcd; +extern struct pmx_dev pmx_clcd_hires;extern struct pmx_dev pmx_egpio_grp;extern struct pmx_dev pmx_smi_2_chips;extern struct pmx_dev pmx_smi_4_chips;extern struct pmx_dev pmx_gmii;extern struct pmx_dev pmx_nand_8bit;extern struct pmx_dev pmx_nand_16bit; -extern struct pmx_dev pmx_keyboard; +extern struct pmx_dev pmx_keyboard_6x6; +extern struct pmx_dev pmx_keyboard_9x9;extern struct pmx_dev pmx_uart0;extern struct pmx_dev pmx_uart0_modem;extern struct pmx_dev pmx_gpt_0_1;
@@ -182,6 +194,24 @@ extern struct pmx_dev pmx_gpt_1_1;extern struct pmx_dev pmx_gpt_1_2;extern struct pmx_dev pmx_mcif; +#if defined(CONFIG_MACH_SPEAR1310 ) +extern struct pmx_dev pmx_uart1_modem; +extern struct pmx_dev pmx_uart_1; +extern struct pmx_dev pmx_uart_2; +extern struct pmx_dev pmx_uart_3_4_5; +extern struct pmx_dev pmx_rs485_hdlc_1_2; +extern struct pmx_dev pmx_tdm_hdlc_1_2; +extern struct pmx_dev pmx_nand32bit; +extern struct pmx_dev pmx_fsmc16bit_4_chips; +extern struct pmx_dev pmx_fsmc32bit_4_chips; +extern struct pmx_dev pmx_gmii1; +extern struct pmx_dev pmx_rgmii; +extern struct pmx_dev pmx_i2c1; +extern struct pmx_dev pmx_smii_0_1_2; +extern struct pmx_dev pmx_can; +extern struct pmx_dev pmx_uart1_modem; +#endif +/* * Each GPT has 2 timer channels * Following GPT channels will be used as clock source and clockevent
arch/arm/mach-spear13xx/include/mach/spear.h +0 -3
@@ -88,9 +88,6 @@#define SPEAR13XX_MCIF_CF_BASE UL(0xB2800000)#define SPEAR13XX_MCIF_SDHCI_BASE UL(0xB3000000) -/* Pad multiplexing base */ -#define SPEAR13XX_FUNC_ENB_BASE UL(0xE0700650) -/* Debug uart for linux, will be used for debug and uncompress messages */ #define SPEAR_DBG_UART_BASE SPEAR13XX_UART_BASE#define VA_SPEAR_DBG_UART_BASE VA_SPEAR13XX_UART_BASE
arch/arm/mach-spear13xx/spear1300.c +3 -8
@@ -27,12 +27,7 @@ void __init spear1300_init(void)spear13xx_init ();/* pmx initialization */ - pmx_driver.base =ioremap (SPEAR13XX_FUNC_ENB_BASE ,SZ_4K ); -if (pmx_driver.base) { - ret =pmx_register (&pmx_driver); -if (ret) -pr_err ("padmux: registeration failed. err no: %d\n" , - ret); -iounmap (pmx_driver.base); - } + ret =pmx_register (&pmx_driver); +if (ret) +pr_err ("padmux: registeration failed. err no: %d\n" , ret); }
arch/arm/mach-spear13xx/spear1300_evb.c +2 -3
@@ -43,11 +43,10 @@ static struct pmx_dev *pmx_devs[] = { &pmx_i2c, &pmx_i2s1, &pmx_i2s2, - &pmx_clcd1, - &pmx_clcd2, + &pmx_clcd, &pmx_egpio_grp, &pmx_gmii, - &pmx_keyboard, + &pmx_keyboard_6x6, &pmx_mcif, &pmx_nand_8bit, &pmx_smi_4_chips,
arch/arm/mach-spear13xx/spear1310.c +338 -8
356 lines not on this page · raw message
arch/arm/mach-spear13xx/spear1310_evb.c +11 -6
@@ -41,19 +41,24 @@ static struct pmx_dev *pmx_devs[] = {/* spear13xx specific devices */ &pmx_i2c, &pmx_i2s1, - &pmx_i2s2, - &pmx_clcd1, - &pmx_clcd2, &pmx_egpio_grp, &pmx_gmii, - &pmx_keyboard, + &pmx_keyboard_6x6, &pmx_mcif, &pmx_nand_8bit, - &pmx_smi_4_chips, - &pmx_ssp, + &pmx_smi_2_chips, &pmx_uart0,/* spear1310 specific devices */ + &pmx_can, + &pmx_i2c1, + &pmx_smii_0_1_2, + &pmx_fsmc16bit_4_chips, + &pmx_rs485_hdlc_1_2, + &pmx_tdm_hdlc_1_2, + &pmx_uart_1, + &pmx_uart_2, + &pmx_uart_3_4_5, }; static struct amba_device *amba_devs[] __initdata = {
arch/arm/mach-spear13xx/spear13xx.c +100 -69
353 lines not on this page · raw message
arch/arm/mach-spear3xx/include/mach/generic.h +9 -3
@@ -148,7 +148,10 @@ extern struct pmx_dev pmx_telecom_boot_pins;extern struct pmx_dev pmx_telecom_sdhci_4bit;extern struct pmx_dev pmx_telecom_sdhci_8bit;extern struct pmx_dev pmx_gpio1; -#define PAD_MUX_CONFIG_REG 0x00 + +/* pad multiplexing support */ +#define PAD_MUX_CONFIG_REG 0x99000000 +#define MODE_CONFIG_REG 0x99000004/* Add spear300 machine function declarations here */ void __init spear300_init (void );
@@ -180,7 +183,7 @@ extern struct pmx_dev pmx_uart3_4_5;extern struct pmx_dev pmx_fsmc;extern struct pmx_dev pmx_rs485_0_1;extern struct pmx_dev pmx_tdm0; -#define PAD_MUX_CONFIG_REG 0x08 +#define PAD_MUX_CONFIG_REG 0xB4000008/* Add spear310 machine function declarations here */ void __init spear310_init (void );
@@ -230,7 +233,10 @@ extern struct pmx_dev pmx_mii1;extern struct pmx_dev pmx_smii0;extern struct pmx_dev pmx_smii1;extern struct pmx_dev pmx_i2c1; -#define PAD_MUX_CONFIG_REG 0x0C + +/* pad multiplexing support */ +#define PAD_MUX_CONFIG_REG 0xB300000C +#define MODE_CONFIG_REG 0xB3000010/* Add spear320 machine function declarations here */ void __init spear320_init (void );
arch/arm/mach-spear3xx/include/mach/spear300.h +0 -1
@@ -45,7 +45,6 @@#define SPEAR300_NOR_2_BASE UL(0x92000000)#define SPEAR300_NOR_3_BASE UL(0x93000000)#define SPEAR300_FSMC_BASE UL(0x94000000) -#define SPEAR300_SOC_CONFIG_BASE UL(0x99000000)#define SPEAR300_KEYBOARD_BASE UL(0xA0000000)#define SPEAR300_GPIO_BASE UL(0xA9000000)
arch/arm/mach-spear3xx/spear300.c +30 -37
217 lines not on this page · raw message
arch/arm/mach-spear3xx/spear310.c +9 -11
@@ -26,7 +26,7 @@/* Pad multiplexing for emi_cs_0_1_4_5 devices */ static struct pmx_mux_reg pmx_emi_cs_0_1_4_5_mux[] = { { - .offset =PAD_MUX_CONFIG_REG , + .address =PAD_MUX_CONFIG_REG , .mask =PMX_TIMER_3_4_MASK , .value =0 , },
@@ -48,7 +48,7 @@ struct pmx_dev pmx_emi_cs_0_1_4_5 = {/* Pad multiplexing for emi_cs_2_3 devices */ static struct pmx_mux_reg pmx_emi_cs_2_3_mux[] = { { - .offset =PAD_MUX_CONFIG_REG , + .address =PAD_MUX_CONFIG_REG , .mask =PMX_TIMER_1_2_MASK , .value =0 , },
@@ -70,7 +70,7 @@ struct pmx_dev pmx_emi_cs_2_3 = {/* Pad multiplexing for uart1 device */ static struct pmx_mux_reg pmx_uart1_mux[] = { { - .offset =PAD_MUX_CONFIG_REG , + .address =PAD_MUX_CONFIG_REG , .mask =PMX_FIRDA_MASK , .value =0 , },
@@ -92,7 +92,7 @@ struct pmx_dev pmx_uart1 = {/* Pad multiplexing for uart2 device */ static struct pmx_mux_reg pmx_uart2_mux[] = { { - .offset =PAD_MUX_CONFIG_REG , + .address =PAD_MUX_CONFIG_REG , .mask =PMX_TIMER_1_2_MASK , .value =0 , },
@@ -114,7 +114,7 @@ struct pmx_dev pmx_uart2 = {/* Pad multiplexing for uart3_4_5 devices */ static struct pmx_mux_reg pmx_uart3_4_5_mux[] = { { - .offset =PAD_MUX_CONFIG_REG , + .address =PAD_MUX_CONFIG_REG , .mask =PMX_UART0_MODEM_MASK , .value =0 , },
@@ -136,7 +136,7 @@ struct pmx_dev pmx_uart3_4_5 = {/* Pad multiplexing for fsmc device */ static struct pmx_mux_reg pmx_fsmc_mux[] = { { - .offset =PAD_MUX_CONFIG_REG , + .address =PAD_MUX_CONFIG_REG , .mask =PMX_SSP_CS_MASK , .value =0 , },
@@ -158,7 +158,7 @@ struct pmx_dev pmx_fsmc = {/* Pad multiplexing for rs485_0_1 devices */ static struct pmx_mux_reg pmx_rs485_0_1_mux[] = { { - .offset =PAD_MUX_CONFIG_REG , + .address =PAD_MUX_CONFIG_REG , .mask =PMX_MII_MASK , .value =0 , },
@@ -180,7 +180,7 @@ struct pmx_dev pmx_rs485_0_1 = {/* Pad multiplexing for tdm0 device */ static struct pmx_mux_reg pmx_tdm0_mux[] = { { - .offset =PAD_MUX_CONFIG_REG , + .address =PAD_MUX_CONFIG_REG , .mask =PMX_MII_MASK , .value =0 , },
@@ -524,9 +524,7 @@ void __init spear310_init(void) }/* pmx initialization */ - pmx_driver.base = base; ret =pmx_register (&pmx_driver);if (ret) -printk (KERN_ERR "padmux: registeration failed. err no: %d\n" , - ret); +pr_err ("padmux: registeration failed. err no: %d\n" , ret); }
arch/arm/mach-spear3xx/spear320.c +28 -33
235 lines not on this page · raw message
arch/arm/mach-spear3xx/spear3xx.c +30 -30
240 lines not on this page · raw message
arch/arm/plat-spear/include/plat/padmux.h +4 -6
@@ -19,23 +19,23 @@/* * struct pmx_reg: configuration structure for mode reg and mux reg * -* offset: offset of mode reg +* address: physical address of mode reg * mask: mask of mode reg */ struct pmx_reg { -u32 offset; +u32 address;u32 mask; };/* * struct pmx_mux_reg: configuration structure every group of modes of a device * -* offset: multiplexing register offset +* address: physical address of multiplexing register * mask: mask for supported mode * value: value to be written */ struct pmx_mux_reg { -u32 offset; +u32 address;u32 mask;u32 value; };
@@ -87,14 +87,12 @@ struct pmx_dev {* mode: mode to be set * devs: array of pointer to pmx devices * devs_count: ARRAY_SIZE of devs -* base: base address of soc config registers * mode_reg: structure of mode config register */ struct pmx_driver {struct pmx_mode *mode;struct pmx_dev **devs;u8 devs_count; -u32 *base;struct pmx_reg mode_reg; };
arch/arm/plat-spear/padmux.c +22 -14
@@ -19,12 +19,10 @@/* * struct pmx: pmx definition structure * -* base: base address of configuration registers * mode_reg: mode configurations * active_mode: pointer to current active mode */ struct pmx { -u32 base;struct pmx_reg mode_reg;struct pmx_mode *active_mode; };
@@ -40,17 +38,22 @@ static struct pmx *pmx;*/ static int pmx_mode_set (struct pmx_mode *mode) { -u32 val; +u32 val, *address;if (!mode->name)return -EFAULT ; pmx->active_mode = mode; - val =readl (pmx->base + pmx->mode_reg.offset); - val &= ~pmx->mode_reg.mask; - val |= mode->value & pmx->mode_reg.mask; -writel (val, pmx->base + pmx->mode_reg.offset); + address =ioremap (pmx->mode_reg.address,SZ_16 ); +if (address) { + val =readl (address); + val &= ~pmx->mode_reg.mask; + val |= mode->value & pmx->mode_reg.mask; +writel (val, address); + +iounmap (address); + }return 0 ; }
@@ -70,6 +73,7 @@ static int pmx_mode_set(struct pmx_mode *mode)static int pmx_devs_enable (struct pmx_dev **devs,u8 count) {u32 val, i; +u32 *address;if (!count)return -EINVAL ;
@@ -104,10 +108,15 @@ static int pmx_devs_enable(struct pmx_dev **devs, u8 count)struct pmx_mux_reg *mux_reg = &devs[i]->modes[j].mux_regs[k]; - val =readl (pmx->base + mux_reg->offset); - val &= ~mux_reg->mask; - val |= mux_reg->value & mux_reg->mask; -writel (val, pmx->base + mux_reg->offset); + address =ioremap (mux_reg->address,SZ_16 ); +if (address) { + val =readl (address); + val &= ~mux_reg->mask; + val |= mux_reg->value & mux_reg->mask; +writel (val, address); + +iounmap (address); + } } devs[i]->is_active = true;
@@ -134,15 +143,14 @@ int pmx_register(struct pmx_driver *driver)if (pmx)return -EPERM ; -if (!driver->base || !driver->devs) +if (!driver->devs)return -EFAULT ; pmx =kzalloc (sizeof (*pmx),GFP_KERNEL );if (!pmx)return -ENOMEM ; - pmx->base = (u32 )driver->base; - pmx->mode_reg.offset = driver->mode_reg.offset; + pmx->mode_reg.address = driver->mode_reg.address; pmx->mode_reg.mask = driver->mode_reg.mask;/* choose mode to enable */
Signature · 1 line
1.7.2.2
PATCH v2 55/69 ST SPEAr3xx: Passing pmx devices address from machine *.c files
In reply to Viresh KUMARAll spear3xx machines have different pad mux register addresses. In order to have single image for all spear3xx boards, we need to pass this address from machine specific files to fix addresses of pmx devs found in spear3xx.c
--- arch/arm/mach-spear3xx/include/mach/generic.h | 11 +++--- arch/arm/mach-spear3xx/spear300.c | 27 +++----------- arch/arm/mach-spear3xx/spear310.c | 11 ++---- arch/arm/mach-spear3xx/spear320.c | 31 ++-------------- arch/arm/mach-spear3xx/spear3xx.c | 48 +++++++++--------------- 5 files changed, 36 insertions(+), 92 deletions(-)
arch/arm/mach-spear3xx/include/mach/generic.h +6 -5
@@ -50,6 +50,7 @@ void __init spear_setup_timer(void);void __init spear3xx_map_io (void );void __init spear3xx_init_irq (void );void __init spear3xx_init (void ); +void spear3xx_pmx_init_addr (struct pmx_driver *driver,unsigned int addr);/* pad mux declarations */ #define PMX_FIRDA_MASK (1 << 14)
@@ -150,8 +151,8 @@ extern struct pmx_dev pmx_telecom_sdhci_8bit;extern struct pmx_dev pmx_gpio1;/* pad multiplexing support */ -#define PAD_MUX_CONFIG_REG 0x99000000 -#define MODE_CONFIG_REG 0x99000004 +#define SPEAR300_PAD_MUX_CONFIG_REG 0x99000000 +#define SPEAR300_MODE_CONFIG_REG 0x99000004/* Add spear300 machine function declarations here */ void __init spear300_init (void );
@@ -183,7 +184,7 @@ extern struct pmx_dev pmx_uart3_4_5;extern struct pmx_dev pmx_fsmc;extern struct pmx_dev pmx_rs485_0_1;extern struct pmx_dev pmx_tdm0; -#define PAD_MUX_CONFIG_REG 0xB4000008 +#define SPEAR310_PAD_MUX_CONFIG_REG 0xB4000008/* Add spear310 machine function declarations here */ void __init spear310_init (void );
@@ -235,8 +236,8 @@ extern struct pmx_dev pmx_smii1;extern struct pmx_dev pmx_i2c1;/* pad multiplexing support */ -#define PAD_MUX_CONFIG_REG 0xB300000C -#define MODE_CONFIG_REG 0xB3000010 +#define SPEAR320_PAD_MUX_CONFIG_REG 0xB300000C +#define SPEAR320_MODE_CONFIG_REG 0xB3000010/* Add spear320 machine function declarations here */ void __init spear320_init (void );
arch/arm/mach-spear3xx/spear300.c +5 -22
@@ -118,7 +118,6 @@ struct pmx_mode caml_lcd_mode = {/* Pad multiplexing for FSMC 2 NAND devices */ static struct pmx_mux_reg pmx_fsmc_2_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_FIRDA_MASK , .value =0 , },
@@ -142,7 +141,6 @@ struct pmx_dev pmx_fsmc_2_chips = {/* Pad multiplexing for FSMC 4 NAND devices */ static struct pmx_mux_reg pmx_fsmc_4_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_FIRDA_MASK |PMX_UART0_MASK , .value =0 , },
@@ -166,7 +164,6 @@ struct pmx_dev pmx_fsmc_4_chips = {/* Pad multiplexing for Keyboard device */ static struct pmx_mux_reg pmx_kbd_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =0x0 , .value =0 , },
@@ -192,7 +189,6 @@ struct pmx_dev pmx_keyboard = {/* Pad multiplexing for CLCD device */ static struct pmx_mux_reg pmx_clcd_pfmode_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_TIMER_1_2_MASK |PMX_TIMER_3_4_MASK , .value =0 , },
@@ -200,7 +196,6 @@ static struct pmx_mux_reg pmx_clcd_pfmode_mux[] = {static struct pmx_mux_reg pmx_clcd_lcdmode_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_TIMER_3_4_MASK , .value =0 , },
@@ -228,7 +223,6 @@ struct pmx_dev pmx_clcd = {/* Pad multiplexing for Telecom GPIO device */ static struct pmx_mux_reg pmx_gpio_lcdmode_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_MII_MASK , .value =0 , },
@@ -236,7 +230,6 @@ static struct pmx_mux_reg pmx_gpio_lcdmode_mux[] = {static struct pmx_mux_reg pmx_gpio_fonemode_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_MII_MASK |PMX_TIMER_1_2_MASK |PMX_TIMER_3_4_MASK , .value =0 , },
@@ -244,7 +237,6 @@ static struct pmx_mux_reg pmx_gpio_fonemode_mux[] = {static struct pmx_mux_reg pmx_gpio_atai2smode_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_MII_MASK |PMX_TIMER_3_4_MASK , .value =0 , },
@@ -252,7 +244,6 @@ static struct pmx_mux_reg pmx_gpio_atai2smode_mux[] = {static struct pmx_mux_reg pmx_gpio_lendfonemode_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_MII_MASK |PMX_TIMER_1_2_MASK , .value =0 , },
@@ -260,7 +251,6 @@ static struct pmx_mux_reg pmx_gpio_lendfonemode_mux[] = {static struct pmx_mux_reg pmx_gpio_atawi2smode_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_MII_MASK |PMX_TIMER_1_2_MASK |PMX_TIMER_3_4_MASK |PMX_UART0_MODEM_MASK , .value =0 ,
@@ -300,7 +290,6 @@ struct pmx_dev pmx_telecom_gpio = {/* Pad multiplexing for TDM device */ static struct pmx_mux_reg pmx_tdm_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_UART0_MODEM_MASK |PMX_SSP_CS_MASK , .value =0 , },
@@ -327,7 +316,6 @@ struct pmx_dev pmx_telecom_tdm = {/* Pad multiplexing for spi cs i2c device */ static struct pmx_mux_reg pmx_spi_cs_i2c_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_TIMER_1_2_MASK |PMX_TIMER_3_4_MASK , .value =0 , },
@@ -352,7 +340,6 @@ struct pmx_dev pmx_telecom_spi_cs_i2c_clk = {static struct pmx_mux_reg pmx_caml_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_MII_MASK , .value =0 , },
@@ -360,7 +347,6 @@ static struct pmx_mux_reg pmx_caml_mux[] = {static struct pmx_mux_reg pmx_camu_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_TIMER_1_2_MASK |PMX_TIMER_3_4_MASK |PMX_MII_MASK , .value =0 , },
@@ -387,7 +373,6 @@ struct pmx_dev pmx_telecom_camera = {/* Pad multiplexing for dac device */ static struct pmx_mux_reg pmx_dac_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_TIMER_1_2_MASK , .value =0 , },
@@ -411,7 +396,6 @@ struct pmx_dev pmx_telecom_dac = {/* Pad multiplexing for spi cs i2c device */ static struct pmx_mux_reg pmx_i2s_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_UART0_MODEM_MASK , .value =0 , },
@@ -437,7 +421,6 @@ struct pmx_dev pmx_telecom_i2s = {/* Pad multiplexing for bootpins device */ static struct pmx_mux_reg pmx_bootpins_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_UART0_MODEM_MASK |PMX_TIMER_1_2_MASK |PMX_TIMER_3_4_MASK , .value =0 ,
@@ -461,7 +444,6 @@ struct pmx_dev pmx_telecom_boot_pins = {/* Pad multiplexing for sdhci 4bit device */ static struct pmx_mux_reg pmx_sdhci_4bit_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_GPIO_PIN0_MASK |PMX_GPIO_PIN1_MASK |PMX_GPIO_PIN2_MASK |PMX_GPIO_PIN3_MASK |PMX_GPIO_PIN4_MASK |PMX_GPIO_PIN5_MASK ,
@@ -490,7 +472,6 @@ struct pmx_dev pmx_telecom_sdhci_4bit = {/* Pad multiplexing for spi cs i2c device */ static struct pmx_mux_reg pmx_sdhci_8bit_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_GPIO_PIN0_MASK |PMX_GPIO_PIN1_MASK |PMX_GPIO_PIN2_MASK |PMX_GPIO_PIN3_MASK |PMX_GPIO_PIN4_MASK |PMX_GPIO_PIN5_MASK |PMX_MII_MASK ,
@@ -518,7 +499,6 @@ struct pmx_dev pmx_telecom_sdhci_8bit = {/* Pad multiplexing for spi cs i2c device */ static struct pmx_mux_reg pmx_gpio1_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_UART0_MODEM_MASK |PMX_TIMER_1_2_MASK |PMX_TIMER_3_4_MASK , .value =0 ,
@@ -541,7 +521,7 @@ struct pmx_dev pmx_gpio1 = {/* pmx driver structure */ struct pmx_driver pmx_driver = { - .mode_reg = {.address =MODE_CONFIG_REG , .mask =0x0000000f }, + .mode_reg = {.address =SPEAR300_MODE_CONFIG_REG , .mask =0x0000000f }, };/* Add spear300 specific devices here */
@@ -777,7 +757,7 @@ struct spear_shirq shirq_ras1 = {void sdhci_i2s_mem_enable (u8 mask) {u32 val; -void __iomem *config =ioremap (MODE_CONFIG_REG ,SZ_16 ); +void __iomem *config =ioremap (SPEAR300_MODE_CONFIG_REG ,SZ_16 );if (!config) {pr_debug ("sdhci_i2s_enb: ioremap fail\n" );return ;
@@ -809,6 +789,9 @@ void __init spear300_init(void)printk (KERN_ERR "Error registering Shared IRQ\n" ); } +/* This fixes addresses of all pmx devices for spear300 */ +spear3xx_pmx_init_addr (&pmx_driver,SPEAR300_PAD_MUX_CONFIG_REG ); +/* pmx initialization */ ret =pmx_register (&pmx_driver);if (ret)
arch/arm/mach-spear3xx/spear310.c +3 -8
@@ -26,7 +26,6 @@/* Pad multiplexing for emi_cs_0_1_4_5 devices */ static struct pmx_mux_reg pmx_emi_cs_0_1_4_5_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_TIMER_3_4_MASK , .value =0 , },
@@ -48,7 +47,6 @@ struct pmx_dev pmx_emi_cs_0_1_4_5 = {/* Pad multiplexing for emi_cs_2_3 devices */ static struct pmx_mux_reg pmx_emi_cs_2_3_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_TIMER_1_2_MASK , .value =0 , },
@@ -70,7 +68,6 @@ struct pmx_dev pmx_emi_cs_2_3 = {/* Pad multiplexing for uart1 device */ static struct pmx_mux_reg pmx_uart1_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_FIRDA_MASK , .value =0 , },
@@ -92,7 +89,6 @@ struct pmx_dev pmx_uart1 = {/* Pad multiplexing for uart2 device */ static struct pmx_mux_reg pmx_uart2_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_TIMER_1_2_MASK , .value =0 , },
@@ -114,7 +110,6 @@ struct pmx_dev pmx_uart2 = {/* Pad multiplexing for uart3_4_5 devices */ static struct pmx_mux_reg pmx_uart3_4_5_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_UART0_MODEM_MASK , .value =0 , },
@@ -136,7 +131,6 @@ struct pmx_dev pmx_uart3_4_5 = {/* Pad multiplexing for fsmc device */ static struct pmx_mux_reg pmx_fsmc_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_SSP_CS_MASK , .value =0 , },
@@ -158,7 +152,6 @@ struct pmx_dev pmx_fsmc = {/* Pad multiplexing for rs485_0_1 devices */ static struct pmx_mux_reg pmx_rs485_0_1_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_MII_MASK , .value =0 , },
@@ -180,7 +173,6 @@ struct pmx_dev pmx_rs485_0_1 = {/* Pad multiplexing for tdm0 device */ static struct pmx_mux_reg pmx_tdm0_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_MII_MASK , .value =0 , },
@@ -523,6 +515,9 @@ void __init spear310_init(void)printk (KERN_ERR "Error registering Shared IRQ 4\n" ); } +/* This fixes addresses of all pmx devices for spear310 */ +spear3xx_pmx_init_addr (&pmx_driver,SPEAR310_PAD_MUX_CONFIG_REG ); +/* pmx initialization */ ret =pmx_register (&pmx_driver);if (ret)
arch/arm/mach-spear3xx/spear320.c +4 -27
@@ -58,7 +58,6 @@ struct pmx_mode small_printers_mode = {/* Pad multiplexing for CLCD device */ static struct pmx_mux_reg pmx_clcd_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =0x0 , .value =0 , },
@@ -81,7 +80,6 @@ struct pmx_dev pmx_clcd = {/* Pad multiplexing for EMI (Parallel NOR flash) device */ static struct pmx_mux_reg pmx_emi_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_TIMER_1_2_MASK |PMX_TIMER_3_4_MASK , .value =0 , },
@@ -104,7 +102,6 @@ struct pmx_dev pmx_emi = {/* Pad multiplexing for FSMC (NAND flash) device */ static struct pmx_mux_reg pmx_fsmc_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =0x0 , .value =0 , },
@@ -127,7 +124,6 @@ struct pmx_dev pmx_fsmc = {/* Pad multiplexing for SPP device */ static struct pmx_mux_reg pmx_spp_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =0x0 , .value =0 , },
@@ -150,7 +146,6 @@ struct pmx_dev pmx_spp = {/* Pad multiplexing for SDHCI device */ static struct pmx_mux_reg pmx_sdhci_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_TIMER_1_2_MASK |PMX_TIMER_3_4_MASK , .value =0 , },
@@ -174,7 +169,6 @@ struct pmx_dev pmx_sdhci = {/* Pad multiplexing for I2S device */ static struct pmx_mux_reg pmx_i2s_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_UART0_MODEM_MASK , .value =0 , },
@@ -197,7 +191,6 @@ struct pmx_dev pmx_i2s = {/* Pad multiplexing for UART1 device */ static struct pmx_mux_reg pmx_uart1_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_GPIO_PIN0_MASK |PMX_GPIO_PIN1_MASK , .value =0 , },
@@ -220,7 +213,6 @@ struct pmx_dev pmx_uart1 = {/* Pad multiplexing for UART1 Modem device */ static struct pmx_mux_reg pmx_uart1_modem_autoexp_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_TIMER_1_2_MASK |PMX_TIMER_3_4_MASK |PMX_SSP_CS_MASK , .value =0 ,
@@ -229,7 +221,6 @@ static struct pmx_mux_reg pmx_uart1_modem_autoexp_mux[] = {static struct pmx_mux_reg pmx_uart1_modem_smallpri_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_GPIO_PIN3_MASK |PMX_GPIO_PIN4_MASK |PMX_GPIO_PIN5_MASK |PMX_SSP_CS_MASK , .value =0 ,
@@ -257,7 +248,6 @@ struct pmx_dev pmx_uart1_modem = {/* Pad multiplexing for UART2 device */ static struct pmx_mux_reg pmx_uart2_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_FIRDA_MASK , .value =0 , },
@@ -280,7 +270,6 @@ struct pmx_dev pmx_uart2 = {/* Pad multiplexing for Touchscreen device */ static struct pmx_mux_reg pmx_touchscreen_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_SSP_CS_MASK , .value =0 , },
@@ -303,7 +292,6 @@ struct pmx_dev pmx_touchscreen = {/* Pad multiplexing for CAN device */ static struct pmx_mux_reg pmx_can_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_GPIO_PIN2_MASK |PMX_GPIO_PIN3_MASK |PMX_GPIO_PIN4_MASK |PMX_GPIO_PIN5_MASK , .value =0 ,
@@ -327,7 +315,6 @@ struct pmx_dev pmx_can = {/* Pad multiplexing for SDHCI LED device */ static struct pmx_mux_reg pmx_sdhci_led_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_SSP_CS_MASK , .value =0 , },
@@ -350,7 +337,6 @@ struct pmx_dev pmx_sdhci_led = {/* Pad multiplexing for PWM0 device */ static struct pmx_mux_reg pmx_pwm0_net_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_UART0_MODEM_MASK , .value =0 , },
@@ -358,7 +344,6 @@ static struct pmx_mux_reg pmx_pwm0_net_mux[] = {static struct pmx_mux_reg pmx_pwm0_autoexpsmallpri_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_MII_MASK , .value =0 , },
@@ -385,7 +370,6 @@ struct pmx_dev pmx_pwm0 = {/* Pad multiplexing for PWM1 device */ static struct pmx_mux_reg pmx_pwm1_net_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_UART0_MODEM_MASK , .value =0 , },
@@ -393,7 +377,6 @@ static struct pmx_mux_reg pmx_pwm1_net_mux[] = {static struct pmx_mux_reg pmx_pwm1_autoexpsmallpri_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_MII_MASK , .value =0 , },
@@ -420,7 +403,6 @@ struct pmx_dev pmx_pwm1 = {/* Pad multiplexing for PWM2 device */ static struct pmx_mux_reg pmx_pwm2_net_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_SSP_CS_MASK , .value =0 , },
@@ -428,7 +410,6 @@ static struct pmx_mux_reg pmx_pwm2_net_mux[] = {static struct pmx_mux_reg pmx_pwm2_autoexpsmallpri_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_MII_MASK , .value =0 , },
@@ -455,7 +436,6 @@ struct pmx_dev pmx_pwm2 = {/* Pad multiplexing for PWM3 device */ static struct pmx_mux_reg pmx_pwm3_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_MII_MASK , .value =0 , },
@@ -478,7 +458,6 @@ struct pmx_dev pmx_pwm3 = {/* Pad multiplexing for SSP1 device */ static struct pmx_mux_reg pmx_ssp1_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_MII_MASK , .value =0 , },
@@ -501,7 +480,6 @@ struct pmx_dev pmx_ssp1 = {/* Pad multiplexing for SSP2 device */ static struct pmx_mux_reg pmx_ssp2_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_MII_MASK , .value =0 , },
@@ -524,7 +502,6 @@ struct pmx_dev pmx_ssp2 = {/* Pad multiplexing for mii1 device */ static struct pmx_mux_reg pmx_mii1_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =0x0 , .value =0 , },
@@ -547,7 +524,6 @@ struct pmx_dev pmx_mii1 = {/* Pad multiplexing for smii0 device */ static struct pmx_mux_reg pmx_smii0_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_MII_MASK , .value =0 , },
@@ -570,7 +546,6 @@ struct pmx_dev pmx_smii0 = {/* Pad multiplexing for smii1 device */ static struct pmx_mux_reg pmx_smii1_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =PMX_MII_MASK , .value =0 , },
@@ -593,7 +568,6 @@ struct pmx_dev pmx_smii1 = {/* Pad multiplexing for i2c1 device */ static struct pmx_mux_reg pmx_i2c1_mux[] = { { - .address =PAD_MUX_CONFIG_REG , .mask =0x0 , .value =0 , },
@@ -615,7 +589,7 @@ struct pmx_dev pmx_i2c1 = {/* pmx driver structure */ struct pmx_driver pmx_driver = { - .mode_reg = {.address =MODE_CONFIG_REG , .mask =0x00000007 }, + .mode_reg = {.address =SPEAR320_MODE_CONFIG_REG , .mask =0x00000007 }, };/* Add spear320 specific devices here */
@@ -1015,6 +989,9 @@ void __init spear320_init(void)printk (KERN_ERR "Error registering Shared IRQ 4\n" ); } +/* This fixes addresses of all pmx devices for spear320 */ +spear3xx_pmx_init_addr (&pmx_driver,SPEAR320_PAD_MUX_CONFIG_REG ); +/* pmx initialization */ ret =pmx_register (&pmx_driver);if (ret)
arch/arm/mach-spear3xx/spear3xx.c +18 -30
231 lines not on this page · raw message
Signature · 1 line
1.7.2.2
PATCH v2 56/69 ST SPEAr Clock Framework: Updating for single image solution
In reply to Viresh KUMARThis patch creates different clk_lookup arrays for individual machines. These lookup arrays will be registered only if that specific machine is current machine.
--- arch/arm/mach-spear13xx/clock.c | 29 ++++++++++-- arch/arm/mach-spear3xx/clock.c | 75 +++++++++++++++++++----------- arch/arm/mach-spear6xx/clock.c | 8 +++- arch/arm/plat-spear/clock.c | 8 +--- arch/arm/plat-spear/include/plat/clock.h | 2 +- 5 files changed, 82 insertions(+), 40 deletions(-)
arch/arm/mach-spear13xx/clock.c +25 -4
@@ -1117,13 +1117,17 @@ static struct clk_lookup spear_clk_lookups[] = { {.dev_id = "gpio1", .clk = &gpio1_clk}, {.dev_id = "keyboard", .clk = &kbd_clk}, {.dev_id = "wdt", .clk = &wdt_clk}, +}; - /* spear1300 machine specific clock structures */ +/* array of all spear 1300 clock lookups */ #ifdef CONFIG_MACH_SPEAR1300 +static struct clk_lookup spear1300_clk_lookups[] = { +};#endif - /* spear1310 machine specific clock structures */ +/* array of all spear 1310 clock lookups */ #ifdef CONFIG_MACH_SPEAR1310 +static struct clk_lookup spear1310_clk_lookups[] = { {.dev_id ="spear_can.0" , .clk = &can0_clk}, {.dev_id ="spear_can.1" , .clk = &can1_clk}, {.dev_id = "stmmaceth.1", .clk = &gmac_ras1_clk},
@@ -1134,11 +1138,28 @@ static struct clk_lookup spear_clk_lookups[] = { {.dev_id = "stmmacphy.2", .clk = &gmac_phy2_clk}, {.dev_id = "stmmacphy.3", .clk = &gmac_phy3_clk}, {.dev_id = "stmmacphy.4", .clk = &gmac_phy4_clk}, -#endif }; +#endif /* machine clk init */ void __init spear13xx_clk_init(void) { -clk_init (spear_clk_lookups,ARRAY_SIZE (spear_clk_lookups), &ddr_clk); + int i, cnt; + struct clk_lookup *lookups; + + if (machine_is_spear1300()) { + cnt = ARRAY_SIZE(spear1300_clk_lookups); + lookups = spear1300_clk_lookups; + } else { + cnt = ARRAY_SIZE(spear1310_clk_lookups); + lookups = spear1310_clk_lookups; + } + + for (i = 0; i < ARRAY_SIZE(spear_clk_lookups); i++) + clk_register(&spear_clk_lookups[i]); + + for (i = 0; i < cnt; i++) + clk_register(&lookups[i]); + + clk_init(&ddr_clk); }
arch/arm/mach-spear3xx/clock.c +48 -27
106 lines not on this page · raw message
arch/arm/mach-spear6xx/clock.c +7 -1
@@ -14,6 +14,7 @@#include <linux/init.h> #include <linux/kernel.h> #include <mach/misc_regs.h> +#include <asm/mach-types.h> #include <plat/clock.h> /* root clks */
@@ -740,5 +741,10 @@ static struct clk_lookup spear_clk_lookups[] = {/* machine clk init */ void __init spear6xx_clk_init (void ) { -clk_init (spear_clk_lookups,ARRAY_SIZE (spear_clk_lookups), &ddr_clk); +int i; + +for (i =0 ; i <ARRAY_SIZE (spear_clk_lookups); i++) +clk_register (&spear_clk_lookups[i]); + +clk_init (&ddr_clk); }
arch/arm/plat-spear/clock.c +1 -7
@@ -949,14 +949,8 @@ void recalc_root_clocks(void)spin_unlock_irqrestore (&clocks_lock, flags); } -void __init -clk_init (struct clk_lookup *clk_lookups,u32 count,struct clk *dclk) +void __init clk_init (struct clk *dclk) { -int i; - -for (i =0 ; i < count; i++) -clk_register (&clk_lookups[i]); -recalc_root_clocks ();/* Mark all ancestors of DDR with special flag */
arch/arm/plat-spear/include/plat/clock.h +1 -1
@@ -241,7 +241,7 @@ struct ddr_rate_tbl {* Actually before changing rate of DDRs ancestor, we must put ddr in refresh * state and then change parent. */ -void clk_init (struct clk_lookup *clk_lookups,u32 count,struct clk *dclk); +void clk_init (struct clk *dclk);void clk_register (struct clk_lookup *cl);void recalc_root_clocks (void );
Signature · 1 line
1.7.2.2
PATCH v2 57/69 SPEAr3xx: Make local structures static
In reply to Viresh KUMARFrom: Ryan Mallon <[email protected]>
Several structures in arch/arm/mach-spear3xx are not marked static like they should be. Fix this.
--- arch/arm/mach-spear3xx/spear300.c | 6 +++--- arch/arm/mach-spear3xx/spear310.c | 16 ++++++++-------- arch/arm/mach-spear3xx/spear320.c | 12 ++++++------ arch/arm/mach-spear3xx/spear3xx.c | 2 -- 4 files changed, 17 insertions(+), 19 deletions(-)
arch/arm/mach-spear3xx/spear300.c +3 -3
@@ -114,7 +114,6 @@ struct pmx_mode caml_lcd_mode = { .value = 0x0F, }; -/* devices */ /* Pad multiplexing for FSMC 2 NAND devices */ static struct pmx_mux_reg pmx_fsmc_2_mux[] = { {
@@ -700,7 +699,7 @@ struct platform_device sdhci_device = { };/* spear3xx shared irq */ -struct shirq_dev_config shirq_ras1_config[] = { +static struct shirq_dev_config shirq_ras1_config[] = { { .virq =VIRQ_IT_PERS_S , .enb_mask =IT_PERS_S_IRQ_MASK ,
@@ -740,7 +739,8 @@ struct shirq_dev_config shirq_ras1_config[] = { }, }; -struct spear_shirq shirq_ras1 = { + +static struct spear_shirq shirq_ras1 = { .irq =IRQ_GEN_RAS_1 , .dev_config = shirq_ras1_config, .dev_count =ARRAY_SIZE (shirq_ras1_config),
arch/arm/mach-spear3xx/spear310.c +8 -8
@@ -363,7 +363,7 @@ struct platform_device plgpio_device = {/* spear3xx shared irq */ -struct shirq_dev_config shirq_ras1_config[] = { +static struct shirq_dev_config shirq_ras1_config[] = { { .virq =VIRQ_SMII0 , .status_mask =SMII0_IRQ_MASK ,
@@ -391,7 +391,7 @@ struct shirq_dev_config shirq_ras1_config[] = { }, }; -struct spear_shirq shirq_ras1 = { +static struct spear_shirq shirq_ras1 = { .irq =IRQ_GEN_RAS_1 , .dev_config = shirq_ras1_config, .dev_count =ARRAY_SIZE (shirq_ras1_config),
@@ -403,7 +403,7 @@ struct spear_shirq shirq_ras1 = { }, }; -struct shirq_dev_config shirq_ras2_config[] = { +static struct shirq_dev_config shirq_ras2_config[] = { { .virq =VIRQ_UART1 , .status_mask =UART1_IRQ_MASK ,
@@ -422,7 +422,7 @@ struct shirq_dev_config shirq_ras2_config[] = { }, }; -struct spear_shirq shirq_ras2 = { +static struct spear_shirq shirq_ras2 = { .irq =IRQ_GEN_RAS_2 , .dev_config = shirq_ras2_config, .dev_count =ARRAY_SIZE (shirq_ras2_config),
@@ -434,14 +434,14 @@ struct spear_shirq shirq_ras2 = { }, }; -struct shirq_dev_config shirq_ras3_config[] = { +static struct shirq_dev_config shirq_ras3_config[] = { { .virq =VIRQ_EMI , .status_mask =EMI_IRQ_MASK , }, }; -struct spear_shirq shirq_ras3 = { +static struct spear_shirq shirq_ras3 = { .irq =IRQ_GEN_RAS_3 , .dev_config = shirq_ras3_config, .dev_count =ARRAY_SIZE (shirq_ras3_config),
@@ -453,7 +453,7 @@ struct spear_shirq shirq_ras3 = { }, }; -struct shirq_dev_config shirq_intrcomm_ras_config[] = { +static struct shirq_dev_config shirq_intrcomm_ras_config[] = { { .virq =VIRQ_TDM_HDLC , .status_mask =TDM_HDLC_IRQ_MASK ,
@@ -466,7 +466,7 @@ struct shirq_dev_config shirq_intrcomm_ras_config[] = { }, }; -struct spear_shirq shirq_intrcomm_ras = { +static struct spear_shirq shirq_intrcomm_ras = { .irq =IRQ_INTRCOMM_RAS_ARM , .dev_config = shirq_intrcomm_ras_config, .dev_count =ARRAY_SIZE (shirq_intrcomm_ras_config),
arch/arm/mach-spear3xx/spear320.c +6 -6
@@ -835,7 +835,7 @@ struct platform_device sdhci_device = { };/* spear3xx shared irq */ -struct shirq_dev_config shirq_ras1_config[] = { +static struct shirq_dev_config shirq_ras1_config[] = { { .virq =VIRQ_EMI , .status_mask =EMI_IRQ_MASK ,
@@ -851,7 +851,7 @@ struct shirq_dev_config shirq_ras1_config[] = { }, }; -struct spear_shirq shirq_ras1 = { +static struct spear_shirq shirq_ras1 = { .irq =IRQ_GEN_RAS_1 , .dev_config = shirq_ras1_config, .dev_count =ARRAY_SIZE (shirq_ras1_config),
@@ -864,7 +864,7 @@ struct spear_shirq shirq_ras1 = { }, }; -struct shirq_dev_config shirq_ras3_config[] = { +static struct shirq_dev_config shirq_ras3_config[] = { { .virq =VIRQ_PLGPIO , .enb_mask =GPIO_IRQ_MASK ,
@@ -883,7 +883,7 @@ struct shirq_dev_config shirq_ras3_config[] = { }, }; -struct spear_shirq shirq_ras3 = { +static struct spear_shirq shirq_ras3 = { .irq =IRQ_GEN_RAS_3 , .dev_config = shirq_ras3_config, .dev_count =ARRAY_SIZE (shirq_ras3_config),
@@ -897,7 +897,7 @@ struct spear_shirq shirq_ras3 = { }, }; -struct shirq_dev_config shirq_intrcomm_ras_config[] = { +static struct shirq_dev_config shirq_intrcomm_ras_config[] = { { .virq =VIRQ_CANU , .status_mask =CAN_U_IRQ_MASK ,
@@ -945,7 +945,7 @@ struct shirq_dev_config shirq_intrcomm_ras_config[] = { }, }; -struct spear_shirq shirq_intrcomm_ras = { +static struct spear_shirq shirq_intrcomm_ras = { .irq =IRQ_INTRCOMM_RAS_ARM , .dev_config = shirq_intrcomm_ras_config, .dev_count =ARRAY_SIZE (shirq_intrcomm_ras_config),
arch/arm/mach-spear3xx/spear3xx.c +0 -2
@@ -292,7 +292,6 @@ void __init spear3xx_map_io(void) }/* pad multiplexing support */ -/* devices */ /* Pad multiplexing for firda device */ static struct pmx_mux_reg pmx_firda_mux[] = {
@@ -625,7 +624,6 @@ struct pmx_dev pmx_timer_1_2 = { }; #if defined(CONFIG_MACH_SPEAR310) || defined(CONFIG_MACH_SPEAR320) -/* plgpios devices */ /* Pad multiplexing for plgpio_0_1 devices */ static struct pmx_mux_reg pmx_plgpio_0_1_mux[] = { {
Signature · 1 line
1.7.2.2
PATCH v2 58/69 SPEAR3xx: Rename register/irq defines to remove naming conflicts
In reply to Viresh KUMARFrom: Ryan Mallon <[email protected]>
Prefix register and irq defintions to remove naming conflicts between the three SPEAr3xx platforms.
--- arch/arm/mach-spear3xx/include/mach/generic.h | 4 +- arch/arm/mach-spear3xx/include/mach/gpio.h | 3 +- arch/arm/mach-spear3xx/include/mach/irqs.h | 207 ++++++++++++------------ arch/arm/mach-spear3xx/include/mach/spear300.h | 26 ++-- arch/arm/mach-spear3xx/include/mach/spear310.h | 44 +++--- arch/arm/mach-spear3xx/include/mach/spear320.h | 48 +++--- arch/arm/mach-spear3xx/spear300.c | 73 ++++----- arch/arm/mach-spear3xx/spear310.c | 108 ++++++------ arch/arm/mach-spear3xx/spear320.c | 158 +++++++++--------- arch/arm/mach-spear3xx/spear3xx.c | 25 ++-- 10 files changed, 349 insertions(+), 347 deletions(-)
arch/arm/mach-spear3xx/include/mach/generic.h +2 -2
@@ -27,8 +27,8 @@* Following GPT channels will be used as clock source and clockevent */ #define SPEAR_GPT0_BASE SPEAR3XX_ML1_TMR_BASE -#define SPEAR_GPT0_CHAN0_IRQ IRQ_CPU_GPT1_1 -#define SPEAR_GPT0_CHAN1_IRQ IRQ_CPU_GPT1_2 +#define SPEAR_GPT0_CHAN0_IRQ SPEAR3XX_IRQ_CPU_GPT1_1 +#define SPEAR_GPT0_CHAN1_IRQ SPEAR3XX_IRQ_CPU_GPT1_2/* Add spear3xx family device structure declarations here */ extern struct amba_device gpio_device;
arch/arm/mach-spear3xx/include/mach/gpio.h +2 -1
@@ -51,8 +51,9 @@#define RAS_GPIO_5 13#define RAS_GPIO_6 14#define RAS_GPIO_7 15 +#endif -#elif defined(CONFIG_MACH_SPEAR310 ) || defined(CONFIG_MACH_SPEAR320 ) +#if defined(CONFIG_MACH_SPEAR310 ) || defined(CONFIG_MACH_SPEAR320 )#define PLGPIO_0 8#define PLGPIO_1 9#define PLGPIO_2 10
arch/arm/mach-spear3xx/include/mach/irqs.h +104 -103
243 lines not on this page · raw message
arch/arm/mach-spear3xx/include/mach/spear300.h +13 -13
@@ -20,19 +20,19 @@#define SPEAR300_TELECOM_BASE UL(0x50000000)/* Interrupt registers offsets and masks */ -#define INT_ENB_MASK_REG 0x54 -#define INT_STS_MASK_REG 0x58 -#define IT_PERS_S_IRQ_MASK (1 << 0) -#define IT_CHANGE_S_IRQ_MASK (1 << 1) -#define I2S_IRQ_MASK (1 << 2) -#define TDM_IRQ_MASK (1 << 3) -#define CAMERA_L_IRQ_MASK (1 << 4) -#define CAMERA_F_IRQ_MASK (1 << 5) -#define CAMERA_V_IRQ_MASK (1 << 6) -#define KEYBOARD_IRQ_MASK (1 << 7) -#define GPIO1_IRQ_MASK (1 << 8) - -#define SHIRQ_RAS1_MASK 0x1FF +#define SPEAR300_INT_ENB_MASK_REG 0x54 +#define SPEAR300_INT_STS_MASK_REG 0x58 +#define SPEAR300_IT_PERS_S_IRQ_MASK (1 << 0) +#define SPEAR300_IT_CHANGE_S_IRQ_MASK (1 << 1) +#define SPEAR300_I2S_IRQ_MASK (1 << 2) +#define SPEAR300_TDM_IRQ_MASK (1 << 3) +#define SPEAR300_CAMERA_L_IRQ_MASK (1 << 4) +#define SPEAR300_CAMERA_F_IRQ_MASK (1 << 5) +#define SPEAR300_CAMERA_V_IRQ_MASK (1 << 6) +#define SPEAR300_KEYBOARD_IRQ_MASK (1 << 7) +#define SPEAR300_GPIO1_IRQ_MASK (1 << 8) + +#define SPEAR300_SHIRQ_RAS1_MASK 0x1FF#define SPEAR300_CLCD_BASE UL(0x60000000)#define SPEAR300_SDHCI_BASE UL(0x70000000)
arch/arm/mach-spear3xx/include/mach/spear310.h +22 -22
51 lines not on this page · raw message
arch/arm/mach-spear3xx/include/mach/spear320.h +24 -24
55 lines not on this page · raw message
arch/arm/mach-spear3xx/spear300.c +36 -37
123 lines not on this page · raw message
arch/arm/mach-spear3xx/spear310.c +54 -54
219 lines not on this page · raw message
arch/arm/mach-spear3xx/spear320.c +79 -79
280 lines not on this page · raw message
arch/arm/mach-spear3xx/spear3xx.c +13 -12
@@ -22,13 +22,14 @@#include <mach/generic.h> #include <mach/spear.h> -#define SPEAR3XX_WKUP_SRCS (1 << IRQ_MAC_1 | 1 << IRQ_USB_DEV | \ - 1 << IRQ_BASIC_RTC | 1 << IRQ_BASIC_GPIO) +#define SPEAR3XX_WKUP_SRCS (1 << SPEAR3XX_IRQ_MAC_1 | 1 << \ + SPEAR3XX_IRQ_USB_DEV | 1 << SPEAR3XX_IRQ_BASIC_RTC | 1 << \ + SPEAR3XX_IRQ_BASIC_GPIO)/* Add spear3xx machines common devices here */ /* gpio device registeration */ static struct pl061_platform_data gpio_plat_data = { .gpio_base =0 , - .irq_base =SPEAR_GPIO_INT_BASE , + .irq_base =SPEAR3XX_GPIO_INT_BASE , };struct amba_device gpio_device = {
@@ -41,7 +42,7 @@ struct amba_device gpio_device = { .end = SPEAR3XX_ICM3_GPIO_BASE + SZ_4K - 1, .flags = IORESOURCE_MEM, }, - .irq = {IRQ_BASIC_GPIO, NO_IRQ}, + .irq = {SPEAR3XX_IRQ_BASIC_GPIO, NO_IRQ}, };/* ssp device registeration */
@@ -71,7 +72,7 @@ struct amba_device ssp0_device = { .end = SPEAR3XX_ICM1_SSP_BASE + SZ_4K - 1, .flags = IORESOURCE_MEM, }, - .irq = {IRQ_SSP, NO_IRQ}, + .irq = {SPEAR3XX_IRQ_SSP, NO_IRQ}, };/* uart device registeration */
@@ -84,7 +85,7 @@ struct amba_device uart_device = { .end = SPEAR3XX_ICM1_UART_BASE + SZ_4K - 1, .flags = IORESOURCE_MEM, }, - .irq = {IRQ_UART, NO_IRQ}, + .irq = {SPEAR3XX_IRQ_UART, NO_IRQ}, };/* watchdog device registeration */
@@ -106,7 +107,7 @@ static struct resource i2c_resources[] = { .end = SPEAR3XX_ICM1_I2C_BASE + SZ_4K - 1, .flags = IORESOURCE_MEM, }, { - .start = IRQ_I2C, + .start = SPEAR3XX_IRQ_I2C, .flags = IORESOURCE_IRQ, }, };
@@ -129,7 +130,7 @@ static struct resource ehci_resources[] = { .flags = IORESOURCE_MEM, }, [1] = { - .start = IRQ_USB_H_EHCI_0, + .start = SPEAR3XX_IRQ_USB_H_EHCI_0, .flags = IORESOURCE_IRQ, }, };
@@ -141,7 +142,7 @@ static struct resource ohci0_resources[] = { .flags = IORESOURCE_MEM, }, [1] = { - .start = IRQ_USB_H_OHCI_0, + .start = SPEAR3XX_IRQ_USB_H_OHCI_0, .flags = IORESOURCE_IRQ, }, };
@@ -153,7 +154,7 @@ static struct resource ohci1_resources[] = { .flags = IORESOURCE_MEM, }, [1] = { - .start = IRQ_USB_H_OHCI_1, + .start = SPEAR3XX_IRQ_USB_H_OHCI_1, .flags = IORESOURCE_IRQ, }, };
@@ -208,7 +209,7 @@ static struct resource rtc_resources[] = { .end = SPEAR3XX_ICM3_RTC_BASE + SZ_4K - 1, .flags = IORESOURCE_MEM, }, { - .start = IRQ_BASIC_RTC, + .start = SPEAR3XX_IRQ_BASIC_RTC, .flags = IORESOURCE_IRQ, }, };
@@ -227,7 +228,7 @@ static struct resource smi_resources[] = { .end = SPEAR3XX_ICM3_SMI_CTRL_BASE + SZ_4K - 1, .flags = IORESOURCE_MEM, }, { - .start = IRQ_BASIC_SMI, + .start = SPEAR3XX_IRQ_BASIC_SMI, .flags = IORESOURCE_IRQ, }, };
Signature · 1 line
1.7.2.2
PATCH v2 59/69 SPEAr3xx: Rework pmx_dev code to remove conflicts
In reply to Viresh KUMARFrom: Ryan Mallon <[email protected]>
Prefix the pmx_devs to remove naming conflicts between the three SPEAr3xx platforms. Also make pmx_driver static to each platform and rework the init code to pass the devices rather than export the pmx_driver structure.
--- arch/arm/mach-spear3xx/include/mach/generic.h | 129 +++++++++++++------------ arch/arm/mach-spear3xx/spear300.c | 40 ++++---- arch/arm/mach-spear3xx/spear300_evb.c | 25 ++--- arch/arm/mach-spear3xx/spear310.c | 28 +++--- arch/arm/mach-spear3xx/spear310_evb.c | 41 ++++----- arch/arm/mach-spear3xx/spear320.c | 56 ++++++----- arch/arm/mach-spear3xx/spear320_evb.c | 35 +++---- arch/arm/mach-spear3xx/spear3xx.c | 60 ++++++------ 8 files changed, 206 insertions(+), 208 deletions(-)
arch/arm/mach-spear3xx/include/mach/generic.h +65 -64
@@ -70,21 +70,21 @@ void spear3xx_pmx_init_addr(struct pmx_driver *driver, unsigned int addr);#define PMX_TIMER_1_2_MASK (1 << 0)/* pad mux devices */ -extern struct pmx_dev pmx_firda; -extern struct pmx_dev pmx_i2c; -extern struct pmx_dev pmx_ssp_cs; -extern struct pmx_dev pmx_ssp; -extern struct pmx_dev pmx_mii; -extern struct pmx_dev pmx_gpio_pin0; -extern struct pmx_dev pmx_gpio_pin1; -extern struct pmx_dev pmx_gpio_pin2; -extern struct pmx_dev pmx_gpio_pin3; -extern struct pmx_dev pmx_gpio_pin4; -extern struct pmx_dev pmx_gpio_pin5; -extern struct pmx_dev pmx_uart0_modem; -extern struct pmx_dev pmx_uart0; -extern struct pmx_dev pmx_timer_3_4; -extern struct pmx_dev pmx_timer_1_2; +extern struct pmx_dev spear3xx_pmx_firda; +extern struct pmx_dev spear3xx_pmx_i2c; +extern struct pmx_dev spear3xx_pmx_ssp_cs; +extern struct pmx_dev spear3xx_pmx_ssp; +extern struct pmx_dev spear3xx_pmx_mii; +extern struct pmx_dev spear3xx_pmx_gpio_pin0; +extern struct pmx_dev spear3xx_pmx_gpio_pin1; +extern struct pmx_dev spear3xx_pmx_gpio_pin2; +extern struct pmx_dev spear3xx_pmx_gpio_pin3; +extern struct pmx_dev spear3xx_pmx_gpio_pin4; +extern struct pmx_dev spear3xx_pmx_gpio_pin5; +extern struct pmx_dev spear3xx_pmx_uart0_modem; +extern struct pmx_dev spear3xx_pmx_uart0; +extern struct pmx_dev spear3xx_pmx_timer_3_4; +extern struct pmx_dev spear3xx_pmx_timer_1_2;#if defined(CONFIG_MACH_SPEAR310 ) || defined(CONFIG_MACH_SPEAR320 )/* padmux plgpio devices */
@@ -105,8 +105,6 @@ extern struct pmx_dev pmx_plgpio_43_44_47_48;extern struct pmx_dev pmx_plgpio_45_46_49_50;#endif -extern struct pmx_driver pmx_driver; -/* spear300 declarations */ #ifdef CONFIG_MACH_SPEAR300 /* Add spear300 machine device structure declarations here */
@@ -135,27 +133,28 @@ extern struct pmx_mode camu_wlcd_mode;extern struct pmx_mode caml_lcd_mode;/* pad mux devices */ -extern struct pmx_dev pmx_fsmc_2_chips; -extern struct pmx_dev pmx_fsmc_4_chips; -extern struct pmx_dev pmx_keyboard; -extern struct pmx_dev pmx_clcd; -extern struct pmx_dev pmx_telecom_gpio; -extern struct pmx_dev pmx_telecom_tdm; -extern struct pmx_dev pmx_telecom_spi_cs_i2c_clk; -extern struct pmx_dev pmx_telecom_camera; -extern struct pmx_dev pmx_telecom_dac; -extern struct pmx_dev pmx_telecom_i2s; -extern struct pmx_dev pmx_telecom_boot_pins; -extern struct pmx_dev pmx_telecom_sdhci_4bit; -extern struct pmx_dev pmx_telecom_sdhci_8bit; -extern struct pmx_dev pmx_gpio1; +extern struct pmx_dev spear300_pmx_fsmc_2_chips; +extern struct pmx_dev spear300_pmx_fsmc_4_chips; +extern struct pmx_dev spear300_pmx_keyboard; +extern struct pmx_dev spear300_pmx_clcd; +extern struct pmx_dev spear300_pmx_telecom_gpio; +extern struct pmx_dev spear300_pmx_telecom_tdm; +extern struct pmx_dev spear300_pmx_telecom_spi_cs_i2c_clk; +extern struct pmx_dev spear300_pmx_telecom_camera; +extern struct pmx_dev spear300_pmx_telecom_dac; +extern struct pmx_dev spear300_pmx_telecom_i2s; +extern struct pmx_dev spear300_pmx_telecom_boot_pins; +extern struct pmx_dev spear300_pmx_telecom_sdhci_4bit; +extern struct pmx_dev spear300_pmx_telecom_sdhci_8bit; +extern struct pmx_dev spear300_pmx_gpio1;/* pad multiplexing support */ #define SPEAR300_PAD_MUX_CONFIG_REG 0x99000000#define SPEAR300_MODE_CONFIG_REG 0x99000004/* Add spear300 machine function declarations here */ -void __init spear300_init (void ); +void __init spear300_init (struct pmx_mode *pmx_mode,struct pmx_dev **pmx_devs, +u8 pmx_dev_count);#define SDHCI_MEM_ENB 0x1#define I2S_MEM_ENB 0x2void sdhci_i2s_mem_enable (u8 mask);
@@ -176,18 +175,19 @@ extern struct platform_device plgpio_device;extern struct platform_device nand_device;/* pad mux devices */ -extern struct pmx_dev pmx_emi_cs_0_1_4_5; -extern struct pmx_dev pmx_emi_cs_2_3; -extern struct pmx_dev pmx_uart1; -extern struct pmx_dev pmx_uart2; -extern struct pmx_dev pmx_uart3_4_5; -extern struct pmx_dev pmx_fsmc; -extern struct pmx_dev pmx_rs485_0_1; -extern struct pmx_dev pmx_tdm0; +extern struct pmx_dev spear310_pmx_emi_cs_0_1_4_5; +extern struct pmx_dev spear310_pmx_emi_cs_2_3; +extern struct pmx_dev spear310_pmx_uart1; +extern struct pmx_dev spear310_pmx_uart2; +extern struct pmx_dev spear310_pmx_uart3_4_5; +extern struct pmx_dev spear310_pmx_fsmc; +extern struct pmx_dev spear310_pmx_rs485_0_1; +extern struct pmx_dev spear310_pmx_tdm0;#define SPEAR310_PAD_MUX_CONFIG_REG 0xB4000008/* Add spear310 machine function declarations here */ -void __init spear310_init (void ); +void __init spear310_init (struct pmx_mode *pmx_mode,struct pmx_dev **pmx_devs, +u8 pmx_dev_count);/* spear320 declarations */ #elif defined(CONFIG_MACH_SPEAR320 )
@@ -212,35 +212,36 @@ extern struct pmx_mode auto_exp_mode;extern struct pmx_mode small_printers_mode;/* pad mux devices */ -extern struct pmx_dev pmx_clcd; -extern struct pmx_dev pmx_emi; -extern struct pmx_dev pmx_fsmc; -extern struct pmx_dev pmx_spp; -extern struct pmx_dev pmx_sdhci; -extern struct pmx_dev pmx_i2s; -extern struct pmx_dev pmx_uart1; -extern struct pmx_dev pmx_uart1_modem; -extern struct pmx_dev pmx_uart2; -extern struct pmx_dev pmx_touchscreen; -extern struct pmx_dev pmx_can; -extern struct pmx_dev pmx_sdhci_led; -extern struct pmx_dev pmx_pwm0; -extern struct pmx_dev pmx_pwm1; -extern struct pmx_dev pmx_pwm2; -extern struct pmx_dev pmx_pwm3; -extern struct pmx_dev pmx_ssp1; -extern struct pmx_dev pmx_ssp2; -extern struct pmx_dev pmx_mii1; -extern struct pmx_dev pmx_smii0; -extern struct pmx_dev pmx_smii1; -extern struct pmx_dev pmx_i2c1; +extern struct pmx_dev spear320_pmx_clcd; +extern struct pmx_dev spear320_pmx_emi; +extern struct pmx_dev spear320_pmx_fsmc; +extern struct pmx_dev spear320_pmx_spp; +extern struct pmx_dev spear320_pmx_sdhci; +extern struct pmx_dev spear320_pmx_i2s; +extern struct pmx_dev spear320_pmx_uart1; +extern struct pmx_dev spear320_pmx_uart1_modem; +extern struct pmx_dev spear320_pmx_uart2; +extern struct pmx_dev spear320_pmx_touchscreen; +extern struct pmx_dev spear320_pmx_can; +extern struct pmx_dev spear320_pmx_sdhci_led; +extern struct pmx_dev spear320_pmx_pwm0; +extern struct pmx_dev spear320_pmx_pwm1; +extern struct pmx_dev spear320_pmx_pwm2; +extern struct pmx_dev spear320_pmx_pwm3; +extern struct pmx_dev spear320_pmx_ssp1; +extern struct pmx_dev spear320_pmx_ssp2; +extern struct pmx_dev spear320_pmx_mii1; +extern struct pmx_dev spear320_pmx_smii0; +extern struct pmx_dev spear320_pmx_smii1; +extern struct pmx_dev spear320_pmx_i2c1;/* pad multiplexing support */ #define SPEAR320_PAD_MUX_CONFIG_REG 0xB300000C#define SPEAR320_MODE_CONFIG_REG 0xB3000010/* Add spear320 machine function declarations here */ -void __init spear320_init (void ); +void __init spear320_init (struct pmx_mode *pmx_mode,struct pmx_dev **pmx_devs, +u8 pmx_dev_count);/* Add misc structure declarations here */ extern struct clcd_board clcd_plat_data;
arch/arm/mach-spear3xx/spear300.c +22 -18
@@ -131,7 +131,7 @@ static struct pmx_dev_mode pmx_fsmc_2_chips_modes[] = { }, }; -struct pmx_dev pmx_fsmc_2_chips = { +struct pmx_dev spear300_pmx_fsmc_2_chips = { .name ="fsmc_2_chips" , .modes = pmx_fsmc_2_chips_modes, .mode_count =ARRAY_SIZE (pmx_fsmc_2_chips_modes),
@@ -154,7 +154,7 @@ static struct pmx_dev_mode pmx_fsmc_4_chips_modes[] = { }, }; -struct pmx_dev pmx_fsmc_4_chips = { +struct pmx_dev spear300_pmx_fsmc_4_chips = { .name ="fsmc_4_chips" , .modes = pmx_fsmc_4_chips_modes, .mode_count =ARRAY_SIZE (pmx_fsmc_4_chips_modes),
@@ -179,7 +179,7 @@ static struct pmx_dev_mode pmx_keyboard_modes[] = { }, }; -struct pmx_dev pmx_keyboard = { +struct pmx_dev spear300_pmx_keyboard = { .name ="keyboard" , .modes = pmx_keyboard_modes, .mode_count =ARRAY_SIZE (pmx_keyboard_modes),
@@ -213,7 +213,7 @@ static struct pmx_dev_mode pmx_clcd_modes[] = { }, }; -struct pmx_dev pmx_clcd = { +struct pmx_dev spear300_pmx_clcd = { .name ="clcd" , .modes = pmx_clcd_modes, .mode_count =ARRAY_SIZE (pmx_clcd_modes),
@@ -280,7 +280,7 @@ static struct pmx_dev_mode pmx_telecom_gpio_modes[] = { }, }; -struct pmx_dev pmx_telecom_gpio = { +struct pmx_dev spear300_pmx_telecom_gpio = { .name ="telecom_gpio" , .modes = pmx_telecom_gpio_modes, .mode_count =ARRAY_SIZE (pmx_telecom_gpio_modes),
@@ -306,7 +306,7 @@ static struct pmx_dev_mode pmx_telecom_tdm_modes[] = { }, }; -struct pmx_dev pmx_telecom_tdm = { +struct pmx_dev spear300_pmx_telecom_tdm = { .name ="telecom_tdm" , .modes = pmx_telecom_tdm_modes, .mode_count =ARRAY_SIZE (pmx_telecom_tdm_modes),
@@ -331,7 +331,7 @@ static struct pmx_dev_mode pmx_telecom_spi_cs_i2c_clk_modes[] = { }, }; -struct pmx_dev pmx_telecom_spi_cs_i2c_clk = { +struct pmx_dev spear300_pmx_telecom_spi_cs_i2c_clk = { .name ="telecom_spi_cs_i2c_clk" , .modes = pmx_telecom_spi_cs_i2c_clk_modes, .mode_count =ARRAY_SIZE (pmx_telecom_spi_cs_i2c_clk_modes),
@@ -363,7 +363,7 @@ static struct pmx_dev_mode pmx_telecom_camera_modes[] = { }, }; -struct pmx_dev pmx_telecom_camera = { +struct pmx_dev spear300_pmx_telecom_camera = { .name ="telecom_camera" , .modes = pmx_telecom_camera_modes, .mode_count =ARRAY_SIZE (pmx_telecom_camera_modes),
@@ -386,7 +386,7 @@ static struct pmx_dev_mode pmx_telecom_dac_modes[] = { }, }; -struct pmx_dev pmx_telecom_dac = { +struct pmx_dev spear300_pmx_telecom_dac = { .name ="telecom_dac" , .modes = pmx_telecom_dac_modes, .mode_count =ARRAY_SIZE (pmx_telecom_dac_modes),
@@ -411,7 +411,7 @@ static struct pmx_dev_mode pmx_telecom_i2s_modes[] = { }, }; -struct pmx_dev pmx_telecom_i2s = { +struct pmx_dev spear300_pmx_telecom_i2s = { .name ="telecom_i2s" , .modes = pmx_telecom_i2s_modes, .mode_count =ARRAY_SIZE (pmx_telecom_i2s_modes),
@@ -434,7 +434,7 @@ static struct pmx_dev_mode pmx_telecom_boot_pins_modes[] = { }, }; -struct pmx_dev pmx_telecom_boot_pins = { +struct pmx_dev spear300_pmx_telecom_boot_pins = { .name ="telecom_boot_pins" , .modes = pmx_telecom_boot_pins_modes, .mode_count =ARRAY_SIZE (pmx_telecom_boot_pins_modes),
@@ -462,7 +462,7 @@ static struct pmx_dev_mode pmx_telecom_sdhci_4bit_modes[] = { }, }; -struct pmx_dev pmx_telecom_sdhci_4bit = { +struct pmx_dev spear300_pmx_telecom_sdhci_4bit = { .name ="telecom_sdhci_4bit" , .modes = pmx_telecom_sdhci_4bit_modes, .mode_count =ARRAY_SIZE (pmx_telecom_sdhci_4bit_modes),
@@ -489,7 +489,7 @@ static struct pmx_dev_mode pmx_telecom_sdhci_8bit_modes[] = { }, }; -struct pmx_dev pmx_telecom_sdhci_8bit = { +struct pmx_dev spear300_pmx_telecom_sdhci_8bit = { .name ="telecom_sdhci_8bit" , .modes = pmx_telecom_sdhci_8bit_modes, .mode_count =ARRAY_SIZE (pmx_telecom_sdhci_8bit_modes),
@@ -512,14 +512,14 @@ static struct pmx_dev_mode pmx_gpio1_modes[] = { }, }; -struct pmx_dev pmx_gpio1 = { +struct pmx_dev spear300_pmx_gpio1 = { .name ="arm gpio1" , .modes = pmx_gpio1_modes, .mode_count =ARRAY_SIZE (pmx_gpio1_modes), };/* pmx driver structure */ -struct pmx_driver pmx_driver = { +static struct pmx_driver pmx_driver = { .mode_reg = {.address =SPEAR300_MODE_CONFIG_REG , .mask =0x0000000f }, };
@@ -773,7 +773,8 @@ void sdhci_i2s_mem_enable(u8 mask) }/* spear300 routines */ -void __init spear300_init (void ) +void __init spear300_init (struct pmx_mode *pmx_mode,struct pmx_dev **pmx_devs, +u8 pmx_dev_count) {int ret =0 ;
@@ -788,10 +789,13 @@ void __init spear300_init(void)printk (KERN_ERR "Error registering Shared IRQ\n" ); } +/* pmx initialization */ + pmx_driver.mode = pmx_mode; + pmx_driver.devs = pmx_devs; + pmx_driver.devs_count = pmx_dev_count; +/* This fixes addresses of all pmx devices for spear300 */ spear3xx_pmx_init_addr (&pmx_driver,SPEAR300_PAD_MUX_CONFIG_REG ); - -/* pmx initialization */ ret =pmx_register (&pmx_driver);if (ret)pr_err ("padmux: registeration failed. err no: %d\n" , ret);
arch/arm/mach-spear3xx/spear300_evb.c +10 -15
@@ -29,17 +29,17 @@/* padmux devices to enable */ static struct pmx_dev *pmx_devs[] = {/* spear3xx specific devices */ - &pmx_i2c, - &pmx_ssp_cs, - &pmx_ssp, - &pmx_mii, - &pmx_uart0, + &spear3xx_pmx_i2c, + &spear3xx_pmx_ssp_cs, + &spear3xx_pmx_ssp, + &spear3xx_pmx_mii, + &spear3xx_pmx_uart0,/* spear300 specific devices */ - &pmx_fsmc_2_chips, - &pmx_clcd, - &pmx_telecom_sdhci_4bit, - &pmx_gpio1, + &spear300_pmx_fsmc_2_chips, + &spear300_pmx_clcd, + &spear300_pmx_telecom_sdhci_4bit, + &spear300_pmx_gpio1, };static struct amba_device *amba_devs[]__initdata = {
@@ -113,11 +113,6 @@ static void __init spear300_evb_init(void) {unsigned int i; -/* padmux initialization, must be done before spear300_init */ - pmx_driver.mode = &photo_frame_mode; - pmx_driver.devs = pmx_devs; - pmx_driver.devs_count =ARRAY_SIZE (pmx_devs); -/* set keyboard plat data */ kbd_set_plat_data (&kbd_device, &kbd_data);
@@ -132,7 +127,7 @@ static void __init spear300_evb_init(void)sdhci_i2s_mem_enable (SDHCI_MEM_ENB );/* call spear300 machine init function */ -spear300_init (); +spear300_init (&photo_frame_mode, pmx_devs,ARRAY_SIZE (pmx_devs));/* Register slave devices on the I2C buses */ i2c_register_board_devices ();
arch/arm/mach-spear3xx/spear310.c +16 -12
@@ -38,7 +38,7 @@ static struct pmx_dev_mode pmx_emi_cs_0_1_4_5_modes[] = { }, }; -struct pmx_dev pmx_emi_cs_0_1_4_5 = { +struct pmx_dev spear310_pmx_emi_cs_0_1_4_5 = { .name ="emi_cs_0_1_4_5" , .modes = pmx_emi_cs_0_1_4_5_modes, .mode_count =ARRAY_SIZE (pmx_emi_cs_0_1_4_5_modes),
@@ -59,7 +59,7 @@ static struct pmx_dev_mode pmx_emi_cs_2_3_modes[] = { }, }; -struct pmx_dev pmx_emi_cs_2_3 = { +struct pmx_dev spear310_pmx_emi_cs_2_3 = { .name ="emi_cs_2_3" , .modes = pmx_emi_cs_2_3_modes, .mode_count =ARRAY_SIZE (pmx_emi_cs_2_3_modes),
@@ -80,7 +80,7 @@ static struct pmx_dev_mode pmx_uart1_modes[] = { }, }; -struct pmx_dev pmx_uart1 = { +struct pmx_dev spear310_pmx_uart1 = { .name ="uart1" , .modes = pmx_uart1_modes, .mode_count =ARRAY_SIZE (pmx_uart1_modes),
@@ -101,7 +101,7 @@ static struct pmx_dev_mode pmx_uart2_modes[] = { }, }; -struct pmx_dev pmx_uart2 = { +struct pmx_dev spear310_pmx_uart2 = { .name ="uart2" , .modes = pmx_uart2_modes, .mode_count =ARRAY_SIZE (pmx_uart2_modes),
@@ -122,7 +122,7 @@ static struct pmx_dev_mode pmx_uart3_4_5_modes[] = { }, }; -struct pmx_dev pmx_uart3_4_5 = { +struct pmx_dev spear310_pmx_uart3_4_5 = { .name ="uart3_4_5" , .modes = pmx_uart3_4_5_modes, .mode_count =ARRAY_SIZE (pmx_uart3_4_5_modes),
@@ -143,7 +143,7 @@ static struct pmx_dev_mode pmx_fsmc_modes[] = { }, }; -struct pmx_dev pmx_fsmc = { +struct pmx_dev spear310_pmx_fsmc = { .name ="fsmc" , .modes = pmx_fsmc_modes, .mode_count =ARRAY_SIZE (pmx_fsmc_modes),
@@ -164,7 +164,7 @@ static struct pmx_dev_mode pmx_rs485_0_1_modes[] = { }, }; -struct pmx_dev pmx_rs485_0_1 = { +struct pmx_dev spear310_pmx_rs485_0_1 = { .name ="rs485_0_1" , .modes = pmx_rs485_0_1_modes, .mode_count =ARRAY_SIZE (pmx_rs485_0_1_modes),
@@ -185,14 +185,14 @@ static struct pmx_dev_mode pmx_tdm0_modes[] = { }, }; -struct pmx_dev pmx_tdm0 = { +struct pmx_dev spear310_pmx_tdm0 = { .name ="tdm0" , .modes = pmx_tdm0_modes, .mode_count =ARRAY_SIZE (pmx_tdm0_modes), };/* pmx driver structure */ -struct pmx_driver pmx_driver; +static struct pmx_driver pmx_driver;/* Add spear310 specific devices here */ /* uart1 device registeration */
@@ -479,7 +479,8 @@ static struct spear_shirq shirq_intrcomm_ras = { };/* spear310 routines */ -void __init spear310_init (void ) +void __init spear310_init (struct pmx_mode *pmx_mode,struct pmx_dev **pmx_devs, +u8 pmx_dev_count) {void __iomem *base;int ret =0 ;
@@ -515,10 +516,13 @@ void __init spear310_init(void)printk (KERN_ERR "Error registering Shared IRQ 4\n" ); } +/* pmx initialization */ + pmx_driver.mode = pmx_mode; + pmx_driver.devs = pmx_devs; + pmx_driver.devs_count = pmx_dev_count; +/* This fixes addresses of all pmx devices for spear310 */ spear3xx_pmx_init_addr (&pmx_driver,SPEAR310_PAD_MUX_CONFIG_REG ); - -/* pmx initialization */ ret =pmx_register (&pmx_driver);if (ret)pr_err ("padmux: registeration failed. err no: %d\n" , ret);
arch/arm/mach-spear3xx/spear310_evb.c +18 -23
60 lines not on this page · raw message
arch/arm/mach-spear3xx/spear320.c +30 -26
208 lines not on this page · raw message
arch/arm/mach-spear3xx/spear320_evb.c +15 -20
@@ -47,22 +47,22 @@ static struct resource emi_nor_resources[] = {/* padmux devices to enable */ static struct pmx_dev *pmx_devs[] = {/* spear3xx specific devices */ - &pmx_i2c, - &pmx_ssp, - &pmx_mii, - &pmx_uart0, + &spear3xx_pmx_i2c, + &spear3xx_pmx_ssp, + &spear3xx_pmx_mii, + &spear3xx_pmx_uart0,/* spear320 specific devices */ - &pmx_fsmc, - &pmx_sdhci, - &pmx_i2s, - &pmx_uart1, - &pmx_uart2, - &pmx_can, - &pmx_pwm0, - &pmx_pwm1, - &pmx_pwm2, - &pmx_mii1, + &spear320_pmx_fsmc, + &spear320_pmx_sdhci, + &spear320_pmx_i2s, + &spear320_pmx_uart1, + &spear320_pmx_uart2, + &spear320_pmx_can, + &spear320_pmx_pwm0, + &spear320_pmx_pwm1, + &spear320_pmx_pwm2, + &spear320_pmx_mii1, };static struct amba_device *amba_devs[]__initdata = {
@@ -117,17 +117,12 @@ static void __init spear320_evb_init(void)/* set sdhci device platform data */ sdhci_set_plat_data (&sdhci_device, &sdhci_plat_data); -/* padmux initialization, must be done before spear320_init */ - pmx_driver.mode = &auto_net_mii_mode; - pmx_driver.devs = pmx_devs; - pmx_driver.devs_count =ARRAY_SIZE (pmx_devs); -/* set nand device's plat data */ fsmc_nand_set_plat_data (&nand_device,NULL ,0 ,NAND_SKIP_BBTSCAN ,FSMC_NAND_BW8 );/* call spear320 machine init function */ -spear320_init (); +spear320_init (&auto_net_mii_mode, pmx_devs,ARRAY_SIZE (pmx_devs));/* initialize serial nor related data in smi plat data */ smi_init_board_info (&smi_device);
arch/arm/mach-spear3xx/spear3xx.c +30 -30
240 lines not on this page · raw message
Signature · 1 line
1.7.2.2
PATCH v2 60/69 SPEAr3xx: Rework KConfig to allow all boards to be compiled in
In reply to Viresh KUMARFrom: Ryan Mallon <[email protected]>
Now that all three SPEAr3xx platforms can be built into one kernel, rework KConfig to allow this. Move everything into one KConfig file while we are here.
--- arch/arm/mach-spear3xx/Kconfig | 30 ++++++++++++++++-------- arch/arm/mach-spear3xx/Kconfig300 | 17 -------------- arch/arm/mach-spear3xx/Kconfig310 | 17 -------------- arch/arm/mach-spear3xx/Kconfig320 | 17 -------------- arch/arm/mach-spear3xx/include/mach/generic.h | 6 +++- 5 files changed, 24 insertions(+), 63 deletions(-) delete mode 100644 arch/arm/mach-spear3xx/Kconfig300 delete mode 100644 arch/arm/mach-spear3xx/Kconfig310 delete mode 100644 arch/arm/mach-spear3xx/Kconfig320
arch/arm/mach-spear3xx/Kconfig +20 -10
@@ -4,9 +4,26 @@ if ARCH_SPEAR3XX -choice - prompt "SPEAr3XX Family" - default MACH_SPEAR300 +menu "SPEAr3xx Implementations" +config BOARD_SPEAR300_EVB + bool "SPEAr300 Evaluation Board" + select MACH_SPEAR300 + help + Supports ST SPEAr300 Evaluation Board + +config BOARD_SPEAR310_EVB + bool "SPEAr310 Evaluation Board" + select MACH_SPEAR310 + help + Supports ST SPEAr310 Evaluation Board + +config BOARD_SPEAR320_EVB + bool "SPEAr320 Evaluation Board" + select MACH_SPEAR320 + help + Supports ST SPEAr320 Evaluation Board + +endmenu config MACH_SPEAR300 bool "SPEAr300"
@@ -23,11 +40,4 @@ config MACH_SPEAR320 help Supports ST SPEAr320 Machine -endchoice - -# Adding SPEAr3XX machine specific configuration files -source "arch/arm/mach-spear3xx/Kconfig300" -source "arch/arm/mach-spear3xx/Kconfig310" -source "arch/arm/mach-spear3xx/Kconfig320" - endif #ARCH_SPEAR3XX
arch/arm/mach-spear3xx/Kconfig300 deleted +0 -17
@@ -1,17 +0,0 @@ -# -# SPEAr300 machine configuration file -# - -if MACH_SPEAR300 - -choice - prompt "SPEAr300 Boards" - default BOARD_SPEAR300_EVB - -config BOARD_SPEAR300_EVB - bool "SPEAr300 Evaluation Board" - help - Supports ST SPEAr300 Evaluation Board -endchoice - -endif #MACH_SPEAR300
arch/arm/mach-spear3xx/Kconfig310 deleted +0 -17
@@ -1,17 +0,0 @@ -# -# SPEAr310 machine configuration file -# - -if MACH_SPEAR310 - -choice - prompt "SPEAr310 Boards" - default BOARD_SPEAR310_EVB - -config BOARD_SPEAR310_EVB - bool "SPEAr310 Evaluation Board" - help - Supports ST SPEAr310 Evaluation Board -endchoice - -endif #MACH_SPEAR310
arch/arm/mach-spear3xx/Kconfig320 deleted +0 -17
@@ -1,17 +0,0 @@ -# -# SPEAr320 machine configuration file -# - -if MACH_SPEAR320 - -choice - prompt "SPEAr320 Boards" - default BOARD_SPEAR320_EVB - -config BOARD_SPEAR320_EVB - bool "SPEAr320 Evaluation Board" - help - Supports ST SPEAr320 Evaluation Board -endchoice - -endif #MACH_SPEAR320
arch/arm/mach-spear3xx/include/mach/generic.h +4 -2
@@ -161,9 +161,10 @@ void sdhci_i2s_mem_enable(u8 mask);/* Add misc structure declarations here */ extern struct clcd_board clcd_plat_data; +#endif /* spear310 declarations */ -#elif defined(CONFIG_MACH_SPEAR310 ) +#if defined(CONFIG_MACH_SPEAR310 )/* Add spear310 machine device structure declarations here */ extern struct amba_device uart1_device;extern struct amba_device uart2_device;
@@ -188,9 +189,10 @@ extern struct pmx_dev spear310_pmx_tdm0;/* Add spear310 machine function declarations here */ void __init spear310_init (struct pmx_mode *pmx_mode,struct pmx_dev **pmx_devs,u8 pmx_dev_count); +#endif /* spear320 declarations */ -#elif defined(CONFIG_MACH_SPEAR320 ) +#if defined(CONFIG_MACH_SPEAR320 )/* Add spear320 machine device structure declarations here */ extern struct amba_device clcd_device;extern struct amba_device ssp_device[];
Signature · 1 line
1.7.2.2
PATCH v2 61/69 SPEAr3xx: Replace defconfigs with single unified defconfig
In reply to Viresh KUMARFrom: Ryan Mallon <[email protected]>
We only need one defconfig for SPEAr3xx now since we can build all three boards into one kernel.
---
arch/arm/configs/spear310_defconfig | 52 --------------------
arch/arm/configs/spear320_defconfig | 52 --------------------
.../{spear300_defconfig => spear3xx_defconfig} | 4 +-
3 files changed, 3 insertions(+), 105 deletions(-)
delete mode 100644 arch/arm/configs/spear310_defconfig
delete mode 100644 arch/arm/configs/spear320_defconfig
rename arch/arm/configs/{spear300_defconfig => spear3xx_defconfig} (93%)arch/arm/configs/spear310_defconfig deleted +0 -52
@@ -1,52 +0,0 @@ -CONFIG_EXPERIMENTAL=y -CONFIG_SYSVIPC=y -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_BLK_DEV_INITRD=y -CONFIG_KALLSYMS_EXTRA_PASS=y -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -CONFIG_MODVERSIONS=y -CONFIG_PLAT_SPEAR=y -CONFIG_MACH_SPEAR310=y -CONFIG_BINFMT_MISC=y -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_SIZE=16384 -CONFIG_INPUT_FF_MEMLESS=y -# CONFIG_INPUT_MOUSEDEV_PSAUX is not set -# CONFIG_INPUT_KEYBOARD is not set -# CONFIG_INPUT_MOUSE is not set -CONFIG_SERIAL_AMBA_PL011=y -CONFIG_SERIAL_AMBA_PL011_CONSOLE=y -# CONFIG_LEGACY_PTYS is not set -# CONFIG_HW_RANDOM is not set -CONFIG_RAW_DRIVER=y -CONFIG_MAX_RAW_DEVS=8192 -CONFIG_GPIO_SYSFS=y -CONFIG_GPIO_PL061=y -# CONFIG_HWMON is not set -# CONFIG_VGA_CONSOLE is not set -# CONFIG_HID_SUPPORT is not set -# CONFIG_USB_SUPPORT is not set -CONFIG_EXT2_FS=y -CONFIG_EXT2_FS_XATTR=y -CONFIG_EXT2_FS_SECURITY=y -CONFIG_EXT3_FS=y -CONFIG_EXT3_FS_SECURITY=y -CONFIG_AUTOFS4_FS=m -CONFIG_MSDOS_FS=m -CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_IOCHARSET="ascii" -CONFIG_TMPFS=y -CONFIG_PARTITION_ADVANCED=y -CONFIG_NLS=y -CONFIG_NLS_DEFAULT="utf8" -CONFIG_NLS_CODEPAGE_437=y -CONFIG_NLS_ASCII=m -CONFIG_MAGIC_SYSRQ=y -CONFIG_DEBUG_FS=y -CONFIG_DEBUG_KERNEL=y -CONFIG_DEBUG_SPINLOCK=y -CONFIG_DEBUG_SPINLOCK_SLEEP=y -CONFIG_DEBUG_INFO=y -# CONFIG_CRC32 is not set
arch/arm/configs/spear320_defconfig deleted +0 -52
52 lines not on this page · raw message
arch/arm/configs/spear3xx_defconfig renamed from arch/arm/configs/spear300_defconfig +3 -1
@@ -7,6 +7,9 @@ CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_MODVERSIONS=y CONFIG_PLAT_SPEAR=y +CONFIG_BOARD_SPEAR300_EVB=y +CONFIG_BOARD_SPEAR310_EVB=y +CONFIG_BOARD_SPEAR320_EVB=y CONFIG_BINFMT_MISC=y CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_BLK_DEV_RAM=y
@@ -24,7 +27,6 @@ CONFIG_MAX_RAW_DEVS=8192 CONFIG_GPIO_SYSFS=y CONFIG_GPIO_PL061=y # CONFIG_HWMON is not set -# CONFIG_VGA_CONSOLE is not set # CONFIG_HID_SUPPORT is not set # CONFIG_USB_SUPPORT is not set CONFIG_EXT2_FS=y
Signature · 1 line
1.7.2.2
PATCH v2 62/69 ST SPEAr: Appending spear3** with global structures
In reply to Viresh KUMAR--- arch/arm/mach-spear3xx/include/mach/generic.h | 140 ++++++++++++------------ arch/arm/mach-spear3xx/spear300.c | 42 ++++---- arch/arm/mach-spear3xx/spear300_evb.c | 43 ++++---- arch/arm/mach-spear3xx/spear310.c | 16 ++-- arch/arm/mach-spear3xx/spear310_evb.c | 37 ++++--- arch/arm/mach-spear3xx/spear320.c | 32 +++--- arch/arm/mach-spear3xx/spear320_evb.c | 50 +++++---- arch/arm/mach-spear3xx/spear3xx.c | 20 ++-- arch/arm/plat-spear/include/plat/spi.h | 2 +- 9 files changed, 193 insertions(+), 189 deletions(-)
arch/arm/mach-spear3xx/include/mach/generic.h +70 -70
@@ -31,16 +31,16 @@#define SPEAR_GPT0_CHAN1_IRQ SPEAR3XX_IRQ_CPU_GPT1_2/* Add spear3xx family device structure declarations here */ -extern struct amba_device gpio_device; -extern struct amba_device ssp0_device; -extern struct amba_device uart_device; -extern struct amba_device wdt_device; -extern struct platform_device ehci_device; -extern struct platform_device i2c_device; -extern struct platform_device ohci0_device; -extern struct platform_device ohci1_device; -extern struct platform_device rtc_device; -extern struct platform_device smi_device; +extern struct amba_device spear3xx_gpio_device; +extern struct amba_device spear3xx_ssp0_device; +extern struct amba_device spear3xx_uart_device; +extern struct amba_device spear3xx_wdt_device; +extern struct platform_device spear3xx_ehci_device; +extern struct platform_device spear3xx_i2c_device; +extern struct platform_device spear3xx_ohci0_device; +extern struct platform_device spear3xx_ohci1_device; +extern struct platform_device spear3xx_rtc_device; +extern struct platform_device spear3xx_smi_device;extern struct sys_timer spear3xx_timer;/* Add spear3xx family function declarations here */
@@ -88,49 +88,49 @@ extern struct pmx_dev spear3xx_pmx_timer_1_2;#if defined(CONFIG_MACH_SPEAR310 ) || defined(CONFIG_MACH_SPEAR320 )/* padmux plgpio devices */ -extern struct pmx_dev pmx_plgpio_0_1; -extern struct pmx_dev pmx_plgpio_2_3; -extern struct pmx_dev pmx_plgpio_4_5; -extern struct pmx_dev pmx_plgpio_6_9; -extern struct pmx_dev pmx_plgpio_10_27; -extern struct pmx_dev pmx_plgpio_28; -extern struct pmx_dev pmx_plgpio_29; -extern struct pmx_dev pmx_plgpio_30; -extern struct pmx_dev pmx_plgpio_31; -extern struct pmx_dev pmx_plgpio_32; -extern struct pmx_dev pmx_plgpio_33; -extern struct pmx_dev pmx_plgpio_34_36; -extern struct pmx_dev pmx_plgpio_37_42; -extern struct pmx_dev pmx_plgpio_43_44_47_48; -extern struct pmx_dev pmx_plgpio_45_46_49_50; +extern struct pmx_dev spear3xx_pmx_plgpio_0_1; +extern struct pmx_dev spear3xx_pmx_plgpio_2_3; +extern struct pmx_dev spear3xx_pmx_plgpio_4_5; +extern struct pmx_dev spear3xx_pmx_plgpio_6_9; +extern struct pmx_dev spear3xx_pmx_plgpio_10_27; +extern struct pmx_dev spear3xx_pmx_plgpio_28; +extern struct pmx_dev spear3xx_pmx_plgpio_29; +extern struct pmx_dev spear3xx_pmx_plgpio_30; +extern struct pmx_dev spear3xx_pmx_plgpio_31; +extern struct pmx_dev spear3xx_pmx_plgpio_32; +extern struct pmx_dev spear3xx_pmx_plgpio_33; +extern struct pmx_dev spear3xx_pmx_plgpio_34_36; +extern struct pmx_dev spear3xx_pmx_plgpio_37_42; +extern struct pmx_dev spear3xx_pmx_plgpio_43_44_47_48; +extern struct pmx_dev spear3xx_pmx_plgpio_45_46_49_50;#endif /* spear300 declarations */ #ifdef CONFIG_MACH_SPEAR300 /* Add spear300 machine device structure declarations here */ -extern struct amba_device clcd_device; -extern struct amba_device gpio1_device; -extern struct platform_device kbd_device; -extern struct platform_device nand0_device; -extern struct platform_device nand1_device; -extern struct platform_device nand2_device; -extern struct platform_device nand3_device; -extern struct platform_device sdhci_device; +extern struct amba_device spear300_clcd_device; +extern struct amba_device spear300_gpio1_device; +extern struct platform_device spear300_kbd_device; +extern struct platform_device spear300_nand0_device; +extern struct platform_device spear300_nand1_device; +extern struct platform_device spear300_nand2_device; +extern struct platform_device spear300_nand3_device; +extern struct platform_device spear300_sdhci_device;/* pad mux modes */ -extern struct pmx_mode nand_mode; -extern struct pmx_mode nor_mode; -extern struct pmx_mode photo_frame_mode; -extern struct pmx_mode lend_ip_phone_mode; -extern struct pmx_mode hend_ip_phone_mode; -extern struct pmx_mode lend_wifi_phone_mode; -extern struct pmx_mode hend_wifi_phone_mode; -extern struct pmx_mode ata_pabx_wi2s_mode; -extern struct pmx_mode ata_pabx_i2s_mode; -extern struct pmx_mode caml_lcdw_mode; -extern struct pmx_mode camu_lcd_mode; -extern struct pmx_mode camu_wlcd_mode; -extern struct pmx_mode caml_lcd_mode; +extern struct pmx_mode spear300_nand_mode; +extern struct pmx_mode spear300_nor_mode; +extern struct pmx_mode spear300_photo_frame_mode; +extern struct pmx_mode spear300_lend_ip_phone_mode; +extern struct pmx_mode spear300_hend_ip_phone_mode; +extern struct pmx_mode spear300_lend_wifi_phone_mode; +extern struct pmx_mode spear300_hend_wifi_phone_mode; +extern struct pmx_mode spear300_ata_pabx_wi2s_mode; +extern struct pmx_mode spear300_ata_pabx_i2s_mode; +extern struct pmx_mode spear300_caml_lcdw_mode; +extern struct pmx_mode spear300_camu_lcd_mode; +extern struct pmx_mode spear300_camu_wlcd_mode; +extern struct pmx_mode spear300_caml_lcd_mode;/* pad mux devices */ extern struct pmx_dev spear300_pmx_fsmc_2_chips;
@@ -166,14 +166,14 @@ extern struct clcd_board clcd_plat_data;/* spear310 declarations */ #if defined(CONFIG_MACH_SPEAR310 )/* Add spear310 machine device structure declarations here */ -extern struct amba_device uart1_device; -extern struct amba_device uart2_device; -extern struct amba_device uart3_device; -extern struct amba_device uart4_device; -extern struct amba_device uart5_device; -extern struct platform_device emi_nor_device; -extern struct platform_device plgpio_device; -extern struct platform_device nand_device; +extern struct amba_device spear310_uart1_device; +extern struct amba_device spear310_uart2_device; +extern struct amba_device spear310_uart3_device; +extern struct amba_device spear310_uart4_device; +extern struct amba_device spear310_uart5_device; +extern struct platform_device spear310_emi_nor_device; +extern struct platform_device spear310_plgpio_device; +extern struct platform_device spear310_nand_device;/* pad mux devices */ extern struct pmx_dev spear310_pmx_emi_cs_0_1_4_5;
@@ -194,24 +194,24 @@ void __init spear310_init(struct pmx_mode *pmx_mode, struct pmx_dev **pmx_devs,/* spear320 declarations */ #if defined(CONFIG_MACH_SPEAR320 )/* Add spear320 machine device structure declarations here */ -extern struct amba_device clcd_device; -extern struct amba_device ssp_device[]; -extern struct amba_device uart1_device; -extern struct amba_device uart2_device; -extern struct platform_device can0_device; -extern struct platform_device can1_device; -extern struct platform_device emi_nor_device; -extern struct platform_device i2c1_device; -extern struct platform_device nand_device; -extern struct platform_device plgpio_device; -extern struct platform_device pwm_device; -extern struct platform_device sdhci_device; +extern struct amba_device spear320_clcd_device; +extern struct amba_device spear320_ssp_device[]; +extern struct amba_device spear320_uart1_device; +extern struct amba_device spear320_uart2_device; +extern struct platform_device spear320_can0_device; +extern struct platform_device spear320_can1_device; +extern struct platform_device spear320_emi_nor_device; +extern struct platform_device spear320_i2c1_device; +extern struct platform_device spear320_nand_device; +extern struct platform_device spear320_plgpio_device; +extern struct platform_device spear320_pwm_device; +extern struct platform_device spear320_sdhci_device;/* pad mux modes */ -extern struct pmx_mode auto_net_smii_mode; -extern struct pmx_mode auto_net_mii_mode; -extern struct pmx_mode auto_exp_mode; -extern struct pmx_mode small_printers_mode; +extern struct pmx_mode spear320_auto_net_smii_mode; +extern struct pmx_mode spear320_auto_net_mii_mode; +extern struct pmx_mode spear320_auto_exp_mode; +extern struct pmx_mode spear320_small_printers_mode;/* pad mux devices */ extern struct pmx_dev spear320_pmx_clcd;
arch/arm/mach-spear3xx/spear300.c +21 -21
156 lines not on this page · raw message
arch/arm/mach-spear3xx/spear300_evb.c +22 -21
77 lines not on this page · raw message
arch/arm/mach-spear3xx/spear310.c +8 -8
@@ -196,7 +196,7 @@ static struct pmx_driver pmx_driver;/* Add spear310 specific devices here */ /* uart1 device registeration */ -struct amba_device uart1_device = { +struct amba_device spear310_uart1_device = { .dev = { .init_name ="uart1" , },
@@ -209,7 +209,7 @@ struct amba_device uart1_device = { };/* uart2 device registeration */ -struct amba_device uart2_device = { +struct amba_device spear310_uart2_device = { .dev = { .init_name ="uart2" , },
@@ -222,7 +222,7 @@ struct amba_device uart2_device = { };/* uart3 device registeration */ -struct amba_device uart3_device = { +struct amba_device spear310_uart3_device = { .dev = { .init_name ="uart3" , },
@@ -235,7 +235,7 @@ struct amba_device uart3_device = { };/* uart4 device registeration */ -struct amba_device uart4_device = { +struct amba_device spear310_uart4_device = { .dev = { .init_name ="uart4" , },
@@ -248,7 +248,7 @@ struct amba_device uart4_device = { };/* uart5 device registeration */ -struct amba_device uart5_device = { +struct amba_device spear310_uart5_device = { .dev = { .init_name ="uart5" , },
@@ -277,7 +277,7 @@ static struct resource nand_resources[] = { }, }; -struct platform_device nand_device = { +struct platform_device spear310_nand_device = { .name ="nand" , .id =-1 , .resource = nand_resources,
@@ -323,7 +323,7 @@ int spear300_o2p(int offset)/* emi nor flash device registeration */ static struct physmap_flash_data emi_norflash_data; -struct platform_device emi_nor_device = { +struct platform_device spear310_emi_nor_device = { .name ="physmap-flash" , .id =-1 , .dev.platform_data = &emi_norflash_data,
@@ -351,7 +351,7 @@ static struct resource plgpio_resources[] = { }, }; -struct platform_device plgpio_device = { +struct platform_device spear310_plgpio_device = { .name ="plgpio" , .id =-1 , .dev = {
arch/arm/mach-spear3xx/spear310_evb.c +19 -18
@@ -69,27 +69,27 @@ static struct pmx_dev *pmx_devs[] = {static struct amba_device *amba_devs[]__initdata = {/* spear3xx specific devices */ - &gpio_device, - &ssp0_device, - &uart_device, - &wdt_device, + &spear3xx_gpio_device, + &spear3xx_ssp0_device, + &spear3xx_uart_device, + &spear3xx_wdt_device,/* spear310 specific devices */ };static struct platform_device *plat_devs[]__initdata = {/* spear3xx specific devices */ - &ehci_device, - &emi_nor_device, - &i2c_device, - &nand_device, - &ohci0_device, - &ohci1_device, - &rtc_device, - &smi_device, + &spear3xx_ehci_device, + &spear3xx_i2c_device, + &spear3xx_ohci0_device, + &spear3xx_ohci1_device, + &spear3xx_rtc_device, + &spear3xx_smi_device,/* spear310 specific devices */ - &plgpio_device, + &spear310_emi_nor_device, + &spear310_nand_device, + &spear310_plgpio_device, };/* spi board information */
@@ -132,8 +132,8 @@ static void __init spear310_evb_init(void)unsigned int i;/* set nand device's plat data */ -fsmc_nand_set_plat_data (&nand_device,NULL ,0 ,NAND_SKIP_BBTSCAN , -FSMC_NAND_BW8 ); +fsmc_nand_set_plat_data (&spear310_nand_device,NULL ,0 , +NAND_SKIP_BBTSCAN ,FSMC_NAND_BW8 );/* call spear310 machine init function */ spear310_init (NULL , pmx_devs,ARRAY_SIZE (pmx_devs));
@@ -142,10 +142,10 @@ static void __init spear310_evb_init(void)i2c_register_board_devices ();/* initialize serial nor related data in smi plat data */ -smi_init_board_info (&smi_device); +smi_init_board_info (&spear3xx_smi_device);/* initialize emi related data in emi plat data */ -emi_init_board_info (&emi_nor_device, emi_nor_resources, +emi_init_board_info (&spear310_emi_nor_device, emi_nor_resources,ARRAY_SIZE (emi_nor_resources), partition_info,ARRAY_SIZE (partition_info),EMI_FLASH_WIDTH32 );
@@ -157,7 +157,8 @@ static void __init spear310_evb_init(void)amba_device_register (amba_devs[i], &iomem_resource);/* Initialize emi regiters */ -emi_init (&emi_nor_device,SPEAR310_EMI_REG_BASE ,0 ,EMI_FLASH_WIDTH32 ); +emi_init (&spear310_emi_nor_device,SPEAR310_EMI_REG_BASE ,0 , +EMI_FLASH_WIDTH32 );spi_init (); }
arch/arm/mach-spear3xx/spear320.c +16 -16
@@ -30,25 +30,25 @@#define SMALL_PRINTERS_MODE (1 << 3)#define ALL_MODES 0xF -struct pmx_mode auto_net_smii_mode = { +struct pmx_mode spear320_auto_net_smii_mode = { .id =AUTO_NET_SMII_MODE , .name ="Automation Networking SMII Mode" , .value =0x00 , }; -struct pmx_mode auto_net_mii_mode = { +struct pmx_mode spear320_auto_net_mii_mode = { .id =AUTO_NET_MII_MODE , .name ="Automation Networking MII Mode" , .value =0x01 , }; -struct pmx_mode auto_exp_mode = { +struct pmx_mode spear320_auto_exp_mode = { .id =AUTO_EXP_MODE , .name ="Automation Expanded Mode" , .value =0x02 , }; -struct pmx_mode small_printers_mode = { +struct pmx_mode spear320_small_printers_mode = { .id =SMALL_PRINTERS_MODE , .name ="Small Printers Mode" , .value =0x03 ,
@@ -594,7 +594,7 @@ static struct pmx_driver pmx_driver = {/* Add spear320 specific devices here */ /* CLCD device registration */ -struct amba_device clcd_device = { +struct amba_device spear320_clcd_device = { .dev = { .init_name ="clcd" , .coherent_dma_mask = ~0 ,
@@ -622,7 +622,7 @@ static struct pl022_ssp_controller ssp_platform_data[] = { } }; -struct amba_device ssp_device[] = { +struct amba_device spear320_ssp_device[] = { { .dev = { .coherent_dma_mask = ~0 ,
@@ -651,7 +651,7 @@ struct amba_device ssp_device[] = { };/* uart1 device registeration */ -struct amba_device uart1_device = { +struct amba_device spear320_uart1_device = { .dev = { .init_name ="uart1" , },
@@ -664,7 +664,7 @@ struct amba_device uart1_device = { };/* uart2 device registeration */ -struct amba_device uart2_device = { +struct amba_device spear320_uart2_device = { .dev = { .init_name ="uart2" , },
@@ -678,7 +678,7 @@ struct amba_device uart2_device = {/* emi nor flash device registeration */ static struct physmap_flash_data emi_norflash_data; -struct platform_device emi_nor_device = { +struct platform_device spear320_emi_nor_device = { .name ="physmap-flash" , .id =-1 , .dev.platform_data = &emi_norflash_data,
@@ -703,7 +703,7 @@ static struct resource can0_resources[] = { }, }; -struct platform_device can0_device = { +struct platform_device spear320_can0_device = { .name ="spear_can" , .id =0 , .num_resources =ARRAY_SIZE (can0_resources),
@@ -721,7 +721,7 @@ static struct resource can1_resources[] = { }, }; -struct platform_device can1_device = { +struct platform_device spear320_can1_device = { .name ="spear_can" , .id =1 , .num_resources =ARRAY_SIZE (can1_resources),
@@ -740,7 +740,7 @@ static struct resource i2c1_resources[] = { }, }; -struct platform_device i2c1_device = { +struct platform_device spear320_i2c1_device = { .name ="i2c_designware" , .id =1 , .dev = {
@@ -767,7 +767,7 @@ static struct resource nand_resources[] = { }, }; -struct platform_device nand_device = { +struct platform_device spear320_nand_device = { .name ="nand" , .id =-1 , .resource = nand_resources,
@@ -786,7 +786,7 @@ static struct resource plgpio_resources[] = { }, }; -struct platform_device plgpio_device = { +struct platform_device spear320_plgpio_device = { .name ="plgpio" , .id =-1 , .dev = {
@@ -805,7 +805,7 @@ static struct resource pwm_resources[] = { }, }; -struct platform_device pwm_device = { +struct platform_device spear320_pwm_device = { .name ="pwm" , .id =-1 , .num_resources =ARRAY_SIZE (pwm_resources),
@@ -824,7 +824,7 @@ static struct resource sdhci_resources[] = { } }; -struct platform_device sdhci_device = { +struct platform_device spear320_sdhci_device = { .dev = { .coherent_dma_mask = ~0 , },
arch/arm/mach-spear3xx/spear320_evb.c +26 -24
87 lines not on this page · raw message
arch/arm/mach-spear3xx/spear3xx.c +10 -10
@@ -32,7 +32,7 @@ static struct pl061_platform_data gpio_plat_data = { .irq_base = SPEAR3XX_GPIO_INT_BASE, }; -struct amba_device gpio_device = { +struct amba_device spear3xx_gpio_device = { .dev = { .init_name ="gpio" , .platform_data = &gpio_plat_data,
@@ -61,7 +61,7 @@ static struct pl022_ssp_controller ssp_platform_data = { .num_chipselect = 2, }; -struct amba_device ssp0_device = { +struct amba_device spear3xx_ssp0_device = { .dev = { .coherent_dma_mask = ~0 , .init_name ="ssp-pl022.0" ,
@@ -76,7 +76,7 @@ struct amba_device ssp0_device = { };/* uart device registeration */ -struct amba_device uart_device = { +struct amba_device spear3xx_uart_device = { .dev = { .init_name ="uart" , },
@@ -89,7 +89,7 @@ struct amba_device uart_device = { };/* watchdog device registeration */ -struct amba_device wdt_device = { +struct amba_device spear3xx_wdt_device = { .dev = { .init_name ="wdt" , },
@@ -112,7 +112,7 @@ static struct resource i2c_resources[] = { }, }; -struct platform_device i2c_device = { +struct platform_device spear3xx_i2c_device = { .name ="i2c_designware" , .id =0 , .dev = {
@@ -162,7 +162,7 @@ static struct resource ohci1_resources[] = {static u64 ehci_dmamask = ~0 ;static int usbh_id =-1 ; -struct platform_device ehci_device = { +struct platform_device spear3xx_ehci_device = { .name ="spear-ehci" , .id =-1 , .dev = {
@@ -176,7 +176,7 @@ struct platform_device ehci_device = {static u64 ohci0_dmamask = ~0 ; -struct platform_device ohci0_device = { +struct platform_device spear3xx_ohci0_device = { .name ="spear-ohci" , .id =0 , .dev = {
@@ -190,7 +190,7 @@ struct platform_device ohci0_device = {static u64 ohci1_dmamask = ~0 ; -struct platform_device ohci1_device = { +struct platform_device spear3xx_ohci1_device = { .name ="spear-ohci" , .id =1 , .dev = {
@@ -214,7 +214,7 @@ static struct resource rtc_resources[] = { }, }; -struct platform_device rtc_device = { +struct platform_device spear3xx_rtc_device = { .name ="rtc-spear" , .id =-1 , .num_resources =ARRAY_SIZE (rtc_resources),
@@ -233,7 +233,7 @@ static struct resource smi_resources[] = { }, }; -struct platform_device smi_device = { +struct platform_device spear3xx_smi_device = { .name ="smi" , .id =-1 , .num_resources =ARRAY_SIZE (smi_resources),
arch/arm/plat-spear/include/plat/spi.h +1 -1
@@ -55,7 +55,7 @@ static void spi##id##_##type##_cs_control(u32 control) \/* This will define CHIP_INFO structure for a specific spi slave */ #define DECLARE_SPI_CHIP_INFO (id, type, chip_select_control) \ -struct pl022_config_chip spi##id##_##type##_chip_info = { \ +static struct pl022_config_chip spi##id##_##type##_chip_info = {\ .lbm = LOOPBACK_DISABLED, \ .iface = SSP_INTERFACE_MOTOROLA_SPI, \ .hierarchy = SSP_MASTER, \
Signature · 1 line
1.7.2.2
Re: [PATCH V2 62/69] ST SPEAr: Appending spear3** with global structures
Quoted 11 lines · Viresh KUMAR
Signed-off-by Viresh Kumar <[email protected]>---
?arch/arm/mach-spear3xx/include/mach/generic.h | ?140 ++++++++++++------------ ?arch/arm/mach-spear3xx/spear300.c ? ? ? ? ? ? | ? 42 ++++---- ?arch/arm/mach-spear3xx/spear300_evb.c ? ? ? ? | ? 43 ++++---- ?arch/arm/mach-spear3xx/spear310.c ? ? ? ? ? ? | ? 16 ++-- ?arch/arm/mach-spear3xx/spear310_evb.c ? ? ? ? | ? 37 ++++--- ?arch/arm/mach-spear3xx/spear320.c ? ? ? ? ? ? | ? 32 +++--- ?arch/arm/mach-spear3xx/spear320_evb.c ? ? ? ? | ? 50 +++++---- ?arch/arm/mach-spear3xx/spear3xx.c ? ? ? ? ? ? | ? 20 ++-- ?arch/arm/plat-spear/include/plat/spi.h ? ? ? ?| ? ?2 +-
Quoted 1 line
?9 files changed, 193 insertions(+), 189 deletions(-)
Hello everybody,
I have used an latest patch on git for sending this patch series. I think there is some bug
there, due to which all of you have received some mails which are not intended for all of you.
There was a bugfix in git which enables to send mail to "recipients mentioned in TO field", of patch
itself.
After creating patches (with git format-patch ---), i have added To and CC lists in patches.
But when i sent patches the TO field was carried away in later patches too. So due to this
all patches send after rtc patches have following recipients added:
rtc-linux at googlegroups.com,
a.zummo at towertech.it. Similarly for other patches too.
Once again sorry for this.
--
viresh
Re: [PATCH V2 62/69] ST SPEAr: Appending spear3** with global structures
Quoted 10 lines · viresh kumar
Hello everybody,
I have used an latest patch on git for sending this patch series. I think there is some bug
there, due to which all of you have received some mails which are not intended for all of you.
There was a bugfix in git which enables to send mail to "recipients mentioned in TO field", of patch
itself.
Quoted 8 lines
After creating patches (with git format-patch ---), i have added To and CC lists in patches.
But when i sent patches the TO field was carried away in later patches too. So due to this
all patches send after rtc patches have following recipients added:
rtc-linux at googlegroups.com,
a.zummo at towertech.it. Similarly for other patches too.
Hello,
Should i resend my patches (with correct list of people in To:)??
Signature · 1 line
viresh
PATCH v2 63/69 ST SPEAr3xx: Updating plgpio and emi source to make it compliant with single image strategy
In reply to Viresh KUMAR--- arch/arm/mach-spear3xx/emi.c | 18 ++++++++++- arch/arm/mach-spear3xx/include/mach/emi.h | 19 ++++++----- arch/arm/mach-spear3xx/include/mach/gpio.h | 27 ++++++++-------- arch/arm/plat-spear/plgpio.c | 46 ++++++++++++++++++++------- 4 files changed, 75 insertions(+), 35 deletions(-)
arch/arm/mach-spear3xx/emi.c +17 -1
@@ -15,6 +15,7 @@#include <linux/err.h> #include <linux/init.h> #include <linux/io.h> +#include <asm/mach-types.h> #include <mach/emi.h> int __init emi_init(struct platform_device *pdev, unsigned long base,
@@ -23,8 +24,23 @@ int __init emi_init(struct platform_device *pdev, unsigned long base,void __iomem *emi_reg_base;struct clk *clk;int ret; +u32 ack_reg, max_banks; +/* u32 timeout_reg, irq_reg; */ + +/* fixing machine dependent values */ +if (machine_is_spear310 ()) { + ack_reg =SPEAR310_ACK_REG ; + max_banks =SPEAR310_EMI_MAX_BANKS ; +/* timeout_reg = SPEAR310_TIMEOUT_REG; */ +/* irq_reg = SPEAR310_IRQ_REG; */ + }else { + ack_reg =SPEAR320_ACK_REG ; + max_banks =SPEAR320_EMI_MAX_BANKS ; +/* timeout_reg = SPEAR320_TIMEOUT_REG; */ +/* irq_reg = SPEAR320_IRQ_REG; */ + } -if (bank > (EMI_MAX_BANKS -1 )) +if (bank > (max_banks -1 ))return -EINVAL ; emi_reg_base =ioremap (base,EMI_REG_SIZE );
arch/arm/mach-spear3xx/include/mach/emi.h +10 -9
@@ -33,18 +33,19 @@#define CTRL_REG (0x14)#if defined(CONFIG_MACH_SPEAR310 ) -#define TIMEOUT_REG (0x90) -#define ACK_REG (0x94) -#define IRQ_REG (0x98) +#define SPEAR310_TIMEOUT_REG (0x90) +#define SPEAR310_ACK_REG (0x94) +#define SPEAR310_IRQ_REG (0x98) -#define EMI_MAX_BANKS 6 +#define SPEAR310_EMI_MAX_BANKS 6 +#endif -#elif defined(CONFIG_MACH_SPEAR320 ) -#define TIMEOUT_REG (0x60) -#define ACK_REG (0x64) -#define IRQ_REG (0x68) +#if defined(CONFIG_MACH_SPEAR320 ) +#define SPEAR320_TIMEOUT_REG (0x60) +#define SPEAR320_ACK_REG (0x64) +#define SPEAR320_IRQ_REG (0x68) -#define EMI_MAX_BANKS 4 +#define SPEAR320_EMI_MAX_BANKS 4#endif
arch/arm/mach-spear3xx/include/mach/gpio.h +14 -13
@@ -17,20 +17,21 @@#include <plat/gpio.h> #ifdef CONFIG_MACH_SPEAR310 -#define PLGPIO_ENB 0x0010 -#define PLGPIO_WDATA 0x0020 -#define PLGPIO_DIR 0x0030 -#define PLGPIO_IE 0x0040 -#define PLGPIO_RDATA 0x0050 -#define PLGPIO_MIS 0x0060 +#define SPEAR310_PLGPIO_ENB 0x0010 +#define SPEAR310_PLGPIO_WDATA 0x0020 +#define SPEAR310_PLGPIO_DIR 0x0030 +#define SPEAR310_PLGPIO_IE 0x0040 +#define SPEAR310_PLGPIO_RDATA 0x0050 +#define SPEAR310_PLGPIO_MIS 0x0060 +#endif -#elif defined(CONFIG_MACH_SPEAR320 ) -#define PLGPIO_ENB 0x0024 -#define PLGPIO_WDATA 0x0034 -#define PLGPIO_DIR 0x0044 -#define PLGPIO_RDATA 0x0054 -#define PLGPIO_IE 0x0064 -#define PLGPIO_MIS 0x0074 +#if defined(CONFIG_MACH_SPEAR320 ) +#define SPEAR320_PLGPIO_ENB 0x0024 +#define SPEAR320_PLGPIO_WDATA 0x0034 +#define SPEAR320_PLGPIO_DIR 0x0044 +#define SPEAR320_PLGPIO_RDATA 0x0054 +#define SPEAR320_PLGPIO_IE 0x0064 +#define SPEAR320_PLGPIO_MIS 0x0074#endif #define BASIC_GPIO_0 0
arch/arm/plat-spear/plgpio.c +34 -12
121 lines not on this page · raw message
Signature · 1 line
1.7.2.2
PATCH v2 64/69 SPEAr6xx: Rework Kconfig for single image solution
In reply to Viresh KUMAR--- arch/arm/mach-spear6xx/Kconfig | 15 ++++++++------- arch/arm/mach-spear6xx/Kconfig600 | 17 ----------------- 2 files changed, 8 insertions(+), 24 deletions(-) delete mode 100644 arch/arm/mach-spear6xx/Kconfig600
arch/arm/mach-spear6xx/Kconfig +8 -7
@@ -4,17 +4,18 @@ if ARCH_SPEAR6XX -choice - prompt "SPEAr6XX Family" - default MACH_SPEAR600 +menu "SPEAr6xx Implementations" +config BOARD_SPEAR600_EVB + bool "SPEAr600 Evaluation Board" + select MACH_SPEAR600 + help + Supports ST SPEAr600 Evaluation Board + +endmenu config MACH_SPEAR600 bool "SPEAr600" help Supports ST SPEAr600 Machine -endchoice - -# Adding SPEAr6XX machine specific configuration files -source "arch/arm/mach-spear6xx/Kconfig600" endif #ARCH_SPEAR6XX
arch/arm/mach-spear6xx/Kconfig600 deleted +0 -17
@@ -1,17 +0,0 @@ -# -# SPEAr600 machine configuration file -# - -if MACH_SPEAR600 - -choice - prompt "SPEAr600 Boards" - default BOARD_SPEAR600_EVB - -config BOARD_SPEAR600_EVB - bool "SPEAr600 Evaluation Board" - help - Supports ST SPEAr600 Evaluation Board -endchoice - -endif #MACH_SPEAR600
Signature · 1 line
1.7.2.2
PATCH v2 65/69 ST SPEAR6xx: renaming spear600_defconfig as spear6xx_defconfig
In reply to Viresh KUMAR---
.../{spear600_defconfig => spear6xx_defconfig} | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
rename arch/arm/configs/{spear600_defconfig => spear6xx_defconfig} (97%)arch/arm/configs/spear6xx_defconfig renamed from arch/arm/configs/spear600_defconfig +1 -1
@@ -8,6 +8,7 @@ CONFIG_MODULE_UNLOAD=y CONFIG_MODVERSIONS=y CONFIG_PLAT_SPEAR=y CONFIG_ARCH_SPEAR6XX=y +CONFIG_BOARD_SPEAR600_EVB=y CONFIG_BINFMT_MISC=y CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_BLK_DEV_RAM=y
@@ -22,7 +23,6 @@ CONFIG_MAX_RAW_DEVS=8192 CONFIG_GPIO_SYSFS=y CONFIG_GPIO_PL061=y # CONFIG_HWMON is not set -# CONFIG_VGA_CONSOLE is not set # CONFIG_HID_SUPPORT is not set # CONFIG_USB_SUPPORT is not set CONFIG_EXT2_FS=y
Signature · 1 line
1.7.2.2
PATCH v2 66/69 ST SPEAr13xx: Pass default padmux settings as parameter to spear13**_init routine
In reply to Viresh KUMARThis patch makes pmx_driver static to spear1300.c and spear1310.c, also now default setting of padmux are sent to spear1300_init and spear1310_init routines
--- arch/arm/mach-spear13xx/include/mach/generic.h | 8 ++++---- arch/arm/mach-spear13xx/spear1300.c | 9 +++++++-- arch/arm/mach-spear13xx/spear1300_evb.c | 7 +------ arch/arm/mach-spear13xx/spear1310.c | 9 +++++++-- arch/arm/mach-spear13xx/spear1310_evb.c | 7 +------ 5 files changed, 20 insertions(+), 20 deletions(-)
arch/arm/mach-spear13xx/include/mach/generic.h +4 -4
@@ -220,8 +220,6 @@ extern struct pmx_dev pmx_uart1_modem;#define SPEAR_GPT0_CHAN0_IRQ IRQ_GPT0_TMR0#define SPEAR_GPT0_CHAN1_IRQ IRQ_GPT0_TMR1 -extern struct pmx_driver pmx_driver; -/* Add spear13xx family device structure declarations here */ extern struct amba_device spear13xx_gpio_device[];extern struct amba_device spear13xx_ssp_device;
@@ -255,7 +253,8 @@ void spear13xx_secondary_startup(void);/* spear1300 declarations */ #ifdef CONFIG_MACH_SPEAR1300 /* Add spear1300 machine function declarations here */ -void __init spear1300_init (void ); +void __init spear1300_init (struct pmx_mode *pmx_mode,struct pmx_dev **pmx_devs, +u8 pmx_dev_count);#endif /* CONFIG_MACH_SPEAR1300 */
@@ -266,7 +265,8 @@ extern struct platform_device spear1310_can0_device;extern struct platform_device spear1310_can1_device;/* Add spear1310 machine function declarations here */ -void __init spear1310_init (void ); +void __init spear1310_init (struct pmx_mode *pmx_mode,struct pmx_dev **pmx_devs, +u8 pmx_dev_count);#endif /* CONFIG_MACH_SPEAR1310 */
arch/arm/mach-spear13xx/spear1300.c +7 -2
@@ -15,11 +15,12 @@#include <mach/spear.h> /* pmx driver structure */ -struct pmx_driver pmx_driver; +static struct pmx_driver pmx_driver;/* Add spear1300 specific devices here */ -void __init spear1300_init (void ) +void __init spear1300_init (struct pmx_mode *pmx_mode,struct pmx_dev **pmx_devs, +u8 pmx_dev_count) {int ret;
@@ -27,6 +28,10 @@ void __init spear1300_init(void)spear13xx_init ();/* pmx initialization */ + pmx_driver.mode = pmx_mode; + pmx_driver.devs = pmx_devs; + pmx_driver.devs_count = pmx_dev_count; + ret =pmx_register (&pmx_driver);if (ret)pr_err ("padmux: registeration failed. err no: %d\n" , ret);
arch/arm/mach-spear13xx/spear1300_evb.c +1 -6
@@ -122,11 +122,6 @@ static void __init spear1300_evb_init(void) {unsigned int i; -/* padmux initialization, must be done before spear1300_init */ - pmx_driver.mode =NULL ; - pmx_driver.devs = pmx_devs; - pmx_driver.devs_count =ARRAY_SIZE (pmx_devs); -/* set keyboard plat data */ kbd_set_plat_data (&spear13xx_kbd_device, &kbd_data);
@@ -136,7 +131,7 @@ static void __init spear1300_evb_init(void)nand_mach_init (FSMC_NAND_BW8 );/* call spear1300 machine init function */ -spear1300_init (); +spear1300_init (NULL , pmx_devs,ARRAY_SIZE (pmx_devs));/* Register slave devices on the I2C buses */ i2c_register_board_devices ();
arch/arm/mach-spear13xx/spear1310.c +7 -2
@@ -17,7 +17,7 @@#include <mach/hardware.h> /* pmx driver structure */ -struct pmx_driver pmx_driver; +static struct pmx_driver pmx_driver;/* Pad multiplexing for uart1_modem device */ static struct pmx_mux_reg pmx_uart1_modem_mux[] = {
@@ -393,7 +393,8 @@ struct platform_device spear1310_can1_device = { .resource = can1_resources, }; -void __init spear1310_init (void ) +void __init spear1310_init (struct pmx_mode *pmx_mode,struct pmx_dev **pmx_devs, +u8 pmx_dev_count) {int ret;
@@ -401,6 +402,10 @@ void __init spear1310_init(void)spear13xx_init ();/* pmx initialization */ + pmx_driver.mode = pmx_mode; + pmx_driver.devs = pmx_devs; + pmx_driver.devs_count = pmx_dev_count; + ret =pmx_register (&pmx_driver);if (ret)pr_err ("padmux: registeration failed. err no: %d\n" , ret);
arch/arm/mach-spear13xx/spear1310_evb.c +1 -6
@@ -133,11 +133,6 @@ static void __init spear1310_evb_init(void) {unsigned int i; -/* padmux initialization, must be done before spear1300_init */ - pmx_driver.mode =NULL ; - pmx_driver.devs = pmx_devs; - pmx_driver.devs_count =ARRAY_SIZE (pmx_devs); -/* set keyboard plat data */ kbd_set_plat_data (&spear13xx_kbd_device, &kbd_data);
@@ -147,7 +142,7 @@ static void __init spear1310_evb_init(void)nand_mach_init (FSMC_NAND_BW8 );/* call spear1310 machine init function */ -spear1310_init (); +spear1310_init (NULL , pmx_devs,ARRAY_SIZE (pmx_devs));/* Register slave devices on the I2C buses */ i2c_register_board_devices ();
Signature · 1 line
1.7.2.2
PATCH v2 67/69 ST SPEAr: Adding devices & clocks
In reply to Viresh KUMAR--- arch/arm/mach-spear13xx/clock.c | 39 ++++++++ arch/arm/mach-spear13xx/include/mach/generic.h | 7 ++ arch/arm/mach-spear13xx/include/mach/irqs.h | 10 +- arch/arm/mach-spear13xx/include/mach/spear1310.h | 34 +++++++ arch/arm/mach-spear13xx/spear1310.c | 107 ++++++++++++++++++++++ arch/arm/mach-spear13xx/spear1310_evb.c | 32 +++++++ arch/arm/mach-spear3xx/spear310_evb.c | 5 + arch/arm/mach-spear3xx/spear320_evb.c | 6 + 8 files changed, 235 insertions(+), 5 deletions(-)
arch/arm/mach-spear13xx/clock.c +39 -0
@@ -1025,6 +1025,40 @@ static struct clk gmac_phy4_clk = { .recalc = &follow_parent, }; +/* uart1 clock */ +static struct clk uart1_clk = { + .flags =ALWAYS_ENABLED , + .pclk = &ras_pclk_clk, + .recalc = &follow_parent, +}; + +/* uart2 clock */ +static struct clk uart2_clk = { + .flags =ALWAYS_ENABLED , + .pclk = &ras_pclk_clk, + .recalc = &follow_parent, +}; + +/* uart3 clock */ +static struct clk uart3_clk = { + .flags =ALWAYS_ENABLED , + .pclk = &ras_pclk_clk, + .recalc = &follow_parent, +}; + +/* uart4 clock */ +static struct clk uart4_clk = { + .flags =ALWAYS_ENABLED , + .pclk = &ras_pclk_clk, + .recalc = &follow_parent, +}; + +/* uart5 clock */ +static struct clk uart5_clk = { + .flags =ALWAYS_ENABLED , + .pclk = &ras_pclk_clk, + .recalc = &follow_parent, +};#endif static struct clk dummy_apb_pclk;
@@ -1138,6 +1172,11 @@ static struct clk_lookup spear1310_clk_lookups[] = { {.dev_id = "stmmacphy.2", .clk = &gmac_phy2_clk}, {.dev_id = "stmmacphy.3", .clk = &gmac_phy3_clk}, {.dev_id = "stmmacphy.4", .clk = &gmac_phy4_clk}, + {.dev_id = "uart1", .clk = &uart1_clk}, + {.dev_id = "uart2", .clk = &uart2_clk}, + {.dev_id = "uart3", .clk = &uart3_clk}, + {.dev_id = "uart4", .clk = &uart4_clk}, + {.dev_id = "uart5", .clk = &uart5_clk}, }; #endif
arch/arm/mach-spear13xx/include/mach/generic.h +7 -0
@@ -261,8 +261,15 @@ void __init spear1300_init(struct pmx_mode *pmx_mode, struct pmx_dev **pmx_devs,/* spear1310 declarations */ #ifdef CONFIG_MACH_SPEAR1310 /* Add spear1310 machine device structure declarations here */ +extern struct amba_device spear1310_uart1_device; +extern struct amba_device spear1310_uart2_device; +extern struct amba_device spear1310_uart3_device; +extern struct amba_device spear1310_uart4_device; +extern struct amba_device spear1310_uart5_device;extern struct platform_device spear1310_can0_device;extern struct platform_device spear1310_can1_device; +extern struct platform_device spear1310_i2c1_device; +extern struct platform_device spear1310_ras_fsmc_nor_device;/* Add spear1310 machine function declarations here */ void __init spear1310_init(struct pmx_mode *pmx_mode, struct pmx_dev **pmx_devs,
arch/arm/mach-spear13xx/include/mach/irqs.h +5 -5
@@ -97,11 +97,11 @@#define IRQ_CCAN1 (IRQ_SHPI_START + 83)#define IRQ_TDM0 (IRQ_SHPI_START + 84)#define IRQ_TDM1 (IRQ_SHPI_START + 85) -#define IRQ_UART0 (IRQ_SHPI_START + 86) -#define IRQ_UART1 (IRQ_SHPI_START + 87) -#define IRQ_UART2 (IRQ_SHPI_START + 88) -#define IRQ_UART3 (IRQ_SHPI_START + 89) -#define IRQ_UART4 (IRQ_SHPI_START + 90) +#define IRQ_UART1 (IRQ_SHPI_START + 86) +#define IRQ_UART2 (IRQ_SHPI_START + 87) +#define IRQ_UART3 (IRQ_SHPI_START + 88) +#define IRQ_UART4 (IRQ_SHPI_START + 89) +#define IRQ_UART5 (IRQ_SHPI_START + 90)#define IRQ_I2C_CNTR (IRQ_SHPI_START + 91)#define IRQ_GMAC0_SBD (IRQ_SHPI_START + 92)#define IRQ_GMAC0_PMT (IRQ_SHPI_START + 93)
arch/arm/mach-spear13xx/include/mach/spear1310.h +34 -0
@@ -16,9 +16,33 @@#ifndef __MACH_SPEAR1310_H#define __MACH_SPEAR1310_H +#define SPEAR1310_TDM_E1_0_BASE UL(0x6C200000) +#define SPEAR1310_TDM_E1_1_BASE UL(0x6C300000) +#define SPEAR1310_RS485_0_BASE UL(0x6C400000) +#define SPEAR1310_RS485_1_BASE UL(0x6C500000) +#define SPEAR1310_RAS_BASE UL(0x6C800000) +#define SPEAR1310_GETH1_BASE UL(0x6D000000) +#define SPEAR1310_GETH2_BASE UL(0x6D100000) +#define SPEAR1310_GETH3_BASE UL(0x6D200000) +#define SPEAR1310_GETH4_BASE UL(0x6D300000) +#define SPEAR1310_UART1_BASE UL(0x6D400000) +#define SPEAR1310_UART2_BASE UL(0x6D500000) +#define SPEAR1310_UART3_BASE UL(0x6D600000) +#define SPEAR1310_UART4_BASE UL(0x6D700000) +#define SPEAR1310_UART5_BASE UL(0x6D800000) +#define SPEAR1310_I2C1_BASE UL(0x6D900000)#define SPEAR1310_CAN0_BASE UL(0x6DA00000)#define SPEAR1310_CAN1_BASE UL(0x6DB00000)#define SPEAR1310_RAS_BASE UL(0x6C800000) +#define SPEAR1310_GETH1_BASE UL(0x6D000000) +#define SPEAR1310_GETH2_BASE UL(0x6D100000) +#define SPEAR1310_GETH3_BASE UL(0x6D200000) +#define SPEAR1310_GETH4_BASE UL(0x6D300000) +#define SPEAR1310_FSMC1_CS0_BASE UL(0x70000000) +#define SPEAR1310_FSMC1_CS1_BASE UL(0x74000000) +#define SPEAR1310_FSMC1_CS2_BASE UL(0x78000000) +#define SPEAR1310_FSMC1_CS3_BASE UL(0x7C000000) +#define SPEAR1310_FSMC1_BASE UL(0x6FF00000)/* RAS Area Control Register */ #define SPEAR1310_RAS_CTRL_REG0 (SPEAR1310_RAS_BASE + 0x0)
@@ -26,6 +50,16 @@#define SPEAR1310_PHY_CLK_MASK 0xF#define SPEAR1310_PHY_CLK_SHIFT 0 +#define RAS_FSMC_MODE_MASK 0x3 +#define RAS_FSMC_MODE_NOR 0 +#define RAS_FSMC_MODE_NAND 1 +#define RAS_FSMC_MODE_SRAM 2 +#define RAS_FSMC_WIDTH_MASK 0x30 +#define RAS_FSMC_WIDTH_8 0x00 +#define RAS_FSMC_WIDTH_16 0x10 +#define RAS_FSMC_WIDTH_32 0x20 +#define RAS_FSMC_CS_SPLIT 0x40 +#endif /* __MACH_SPEAR1310_H */ #endif /* CONFIG_MACH_SPEAR1310 */
arch/arm/mach-spear13xx/spear1310.c +107 -0
125 lines not on this page · raw message
arch/arm/mach-spear13xx/spear1310_evb.c +32 -0
@@ -67,6 +67,13 @@ static struct amba_device *amba_devs[] __initdata = { &spear13xx_gpio_device[1 ], &spear13xx_ssp_device, &spear13xx_uart_device, + +/* spear1310 specific devices */ + &spear1310_uart1_device, + &spear1310_uart2_device, + &spear1310_uart3_device, + &spear1310_uart4_device, + &spear1310_uart5_device, }; static struct platform_device *plat_devs[] __initdata = {
@@ -86,6 +93,7 @@ static struct platform_device *plat_devs[] __initdata = {/* spear1310 specific devices */ &spear1310_can0_device, &spear1310_can1_device, + &spear1310_i2c1_device, };/* keyboard specific platform data */
@@ -129,6 +137,23 @@ int spear1310_pcie_port_is_host(int port) }#endif +static void __init ras_fsmc_config (u32 mode,u32 width) +{ +u32 val, *address; + + address =ioremap (SPEAR1310_RAS_CTRL_REG0 ,SZ_16 ); + + val =readl (address); + val &= ~(RAS_FSMC_MODE_MASK |RAS_FSMC_WIDTH_MASK ); + val |= mode; + val |= width; + val |=RAS_FSMC_CS_SPLIT ; + +writel (val, address); + +iounmap (address); +} +static void __init spear1310_evb_init (void ) {unsigned int i;
@@ -153,6 +178,8 @@ static void __init spear1310_evb_init(void)/* initialize fsmc related data in fsmc plat data */ fsmc_init_board_info (&spear13xx_fsmc_nor_device, partition_info,ARRAY_SIZE (partition_info),FSMC_FLASH_WIDTH8 ); +fsmc_init_board_info (&spear1310_ras_fsmc_nor_device,NULL , +0 ,FSMC_FLASH_WIDTH16 );/* Initialize fsmc regiters */ fsmc_nor_init(&spear13xx_fsmc_nor_device, SPEAR13XX_FSMC_BASE, 0,
@@ -171,6 +198,11 @@ static void __init spear1310_evb_init(void)for (i =0 ; i <ARRAY_SIZE (amba_devs); i++)amba_device_register (amba_devs[i], &iomem_resource); +/* ras fsmc init */ +ras_fsmc_config (RAS_FSMC_MODE_NOR ,RAS_FSMC_WIDTH_16 ); +fsmc_nor_init (&spear1310_ras_fsmc_nor_device,SPEAR1310_FSMC1_BASE ,3 , +FSMC_FLASH_WIDTH16 ); +spi_init (); }
arch/arm/mach-spear3xx/spear310_evb.c +5 -0
@@ -75,6 +75,11 @@ static struct amba_device *amba_devs[] __initdata = { &spear3xx_wdt_device,/* spear310 specific devices */ + &spear310_uart1_device, + &spear310_uart2_device, + &spear310_uart3_device, + &spear310_uart4_device, + &spear310_uart5_device, }; static struct platform_device *plat_devs[] __initdata = {
arch/arm/mach-spear3xx/spear320_evb.c +6 -0
@@ -68,11 +68,16 @@ static struct pmx_dev *pmx_devs[] = {static struct amba_device *amba_devs[]__initdata = {/* spear3xx specific devices */ &spear3xx_gpio_device, + &spear3xx_ssp0_device, &spear3xx_uart_device, &spear3xx_wdt_device,/* spear320 specific devices */ &spear320_clcd_device, + &spear320_ssp_device[0 ], + &spear320_ssp_device[1 ], + &spear320_uart1_device, + &spear320_uart2_device, };static struct platform_device *plat_devs[]__initdata = {
@@ -87,6 +92,7 @@ static struct platform_device *plat_devs[] __initdata = {/* spear320 specific devices */ &spear320_can0_device, &spear320_can1_device, + &spear320_emi_nor_device, &spear320_i2c1_device, &spear320_nand_device, &spear320_plgpio_device,
Signature · 1 line
1.7.2.2
PATCH v2 68/69 ST SPEAr: Adding information in Documentation/ and MAINTAINERS
In reply to Viresh KUMARFrom: Shiraz Hashim <[email protected]>
--- Documentation/arm/SPEAr/overview.txt | 34 +++++++++++++++++++++++----------- MAINTAINERS | 6 ++++++ 2 files changed, 29 insertions(+), 11 deletions(-)
Documentation/arm/SPEAr/overview.txt +23 -11
@@ -9,8 +9,9 @@ Introduction The ST Microelectronics SPEAr range of ARM9/CortexA9 System-on-Chip CPUs are supported by the 'spear' platform of ARM Linux. Currently SPEAr300, - SPEAr310, SPEAr320 and SPEAr600 SOCs are supported. Support for the SPEAr13XX - series is in progress. + SPEAr310, SPEAr320, SPEAr600, SPEAr1300 and SPEAr1310 SOCs are supported. + SPEAr3XX and SPEAr6XX are based on ARM9 whereas SPEAr13XX is based on latest + ARM Cortex A9 CPUs. Hierarchy in SPEAr is as follows:
@@ -27,16 +28,25 @@ Introduction - SPEAr600_EVB (Evaluation Board) - SPEAr13XX (13XX SOC series, based on ARM CORTEXA9) - SPEAr1300 (SOC) + - SPEAr1300_EVB (Evaluation Board) + - SPEAr1310 (SOC) + - SPEAr1310_EVB (Evaluation Board) Configuration ------------- - A generic configuration is provided for each machine, and can be used as the + A generic configuration is provided for each machine family, and can be used as the default by - make spear600_defconfig - make spear300_defconfig - make spear310_defconfig - make spear320_defconfig + #make ARCH=arm spear13xx_defconfig + #make ARCH=arm spear3xx_defconfig + #make ARCH=arm spear6xx_defconfig + + Compilation + ----------- + + After applying default configuration, Linux kernel for SPEAr architecture + can be compiled as + #make ARCH=arm CROSS_COMPILE=arm-linux- uImage Layout ------
@@ -48,13 +58,15 @@ Introduction Each machine series have a directory with name arch/arm/mach-spear followed by series name. Like mach-spear3xx, mach-spear6xx and mach-spear13xx. - Common file for machines of spear3xx family is mach-spear3xx/spear3xx.c and for - spear6xx is mach-spear6xx/spear6xx.c. mach-spear* also contain soc/machine + Common file for machines of spear3xx family is mach-spear3xx/spear3xx.c, for + spear6xx is mach-spear6xx/spear6xx.c and similarly for spear13xx is + mach-spear13xx/spear13xx.c. mach-spear* also contain soc/machine specific files, like spear300.c, spear310.c, spear320.c and spear600.c. - mach-spear* also contains board specific files for each machine type. + Board specific files for each machine type is also contained in mach-spear* + folder. Document Author --------------- - Viresh Kumar, (c) 2010 ST Microelectronics + Viresh Kumar, Shiraz Hashim (c) 2010 ST Microelectronics
MAINTAINERS +6 -0
@@ -5462,6 +5462,12 @@ W: http://www.st.com/spear S: Maintained F: arch/arm/plat-spear/ +SPEAR13XX MACHINE SUPPORT +M: Shiraz Hashim <[email protected]> +W: http://www.st.com/spear +S: Maintained +F: arch/arm/mach-spear13xx/ + SPEAR3XX MACHINE SUPPORT M: Viresh Kumar <[email protected]> W: http://www.st.com/spear
Signature · 1 line
1.7.2.2
PATCH v2 69/69 ST SPEAr: Updating defconfigs
In reply to Viresh KUMAR--- arch/arm/configs/spear13xx_defconfig | 78 ++++++++++++++++++++++++++++++--- arch/arm/configs/spear3xx_defconfig | 80 +++++++++++++++++++++++++++++++--- arch/arm/configs/spear6xx_defconfig | 72 ++++++++++++++++++++++++++++--- 3 files changed, 211 insertions(+), 19 deletions(-)
arch/arm/configs/spear13xx_defconfig +72 -6
@@ -10,31 +10,94 @@ CONFIG_PLAT_SPEAR=y CONFIG_ARCH_SPEAR13XX=y CONFIG_BOARD_SPEAR1300_EVB=y CONFIG_BOARD_SPEAR1310_EVB=y +CONFIG_PCI=y +CONFIG_PCI_MSI=y +CONFIG_PCIEPORTBUS=y +# CONFIG_PCIEAER is not set CONFIG_SMP=y CONFIG_NR_CPUS=2 CONFIG_AEABI=y +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_STAT_DETAILS=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_VFP=y CONFIG_BINFMT_MISC=y +CONFIG_PM=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_NET_IPIP=y +CONFIG_ARPD=y +# CONFIG_IPV6 is not set +# CONFIG_WIRELESS is not set CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y CONFIG_MTD=y CONFIG_MTD_CONCAT=y CONFIG_MTD_PARTITIONS=y CONFIG_MTD_CMDLINE_PARTS=y CONFIG_MTD_CHAR=y CONFIG_MTD_BLOCK=y +CONFIG_MTD_CFI=y +CONFIG_MTD_CFI_INTELEXT=y +CONFIG_MTD_CFI_STAA=y +CONFIG_MTD_PHYSMAP=y +CONFIG_MTD_M25P80=y +# CONFIG_M25PXX_USE_FAST_READ is not set +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_FSMC=y CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_SIZE=16384 +CONFIG_SCSI=y +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_ST=y +CONFIG_CHR_DEV_OSST=y +CONFIG_BLK_DEV_SR=y +CONFIG_CHR_DEV_SG=y +CONFIG_CHR_DEV_SCH=y +CONFIG_NETDEVICES=y +# CONFIG_WLAN is not set CONFIG_INPUT_FF_MEMLESS=y # CONFIG_INPUT_MOUSEDEV_PSAUX is not set -# CONFIG_INPUT_KEYBOARD is not set +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_EVBUG=y +# CONFIG_KEYBOARD_ATKBD is not set +CONFIG_KEYBOARD_SPEAR=y # CONFIG_INPUT_MOUSE is not set CONFIG_SERIAL_AMBA_PL011=y CONFIG_SERIAL_AMBA_PL011_CONSOLE=y # CONFIG_LEGACY_PTYS is not set CONFIG_RAW_DRIVER=y CONFIG_MAX_RAW_DEVS=8192 +CONFIG_I2C=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_DESIGNWARE=y +CONFIG_SPI=y +CONFIG_SPI_PL022=y +CONFIG_SPI_SPIDEV=y +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_PL061=y # CONFIG_HWMON is not set # CONFIG_HID_SUPPORT is not set -# CONFIG_USB_SUPPORT is not set +CONFIG_USB=y +CONFIG_USB_EHCI_HCD=y +# CONFIG_USB_EHCI_TT_NEWSCHED is not set +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_STORAGE=y +CONFIG_USB_TEST=y +CONFIG_MMC=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_SPEAR=y +CONFIG_RTC_CLASS=y CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_SECURITY=y
@@ -42,16 +105,18 @@ CONFIG_EXT3_FS=y # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set CONFIG_EXT3_FS_SECURITY=y CONFIG_AUTOFS4_FS=m -CONFIG_MSDOS_FS=m -CONFIG_VFAT_FS=m +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y CONFIG_FAT_DEFAULT_IOCHARSET="ascii" CONFIG_TMPFS=y CONFIG_JFFS2_FS=y +CONFIG_NFS_FS=y +CONFIG_ROOT_NFS=y +# CONFIG_RPCSEC_GSS_KRB5 is not set CONFIG_PARTITION_ADVANCED=y -CONFIG_NLS=y CONFIG_NLS_DEFAULT="utf8" CONFIG_NLS_CODEPAGE_437=y -CONFIG_NLS_ASCII=m +CONFIG_NLS_ASCII=y CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_FS=y CONFIG_DEBUG_KERNEL=y
@@ -59,3 +124,4 @@ CONFIG_DETECT_HUNG_TASK=y CONFIG_DEBUG_SPINLOCK=y CONFIG_DEBUG_SPINLOCK_SLEEP=y CONFIG_DEBUG_INFO=y +# CONFIG_ARM_UNWIND is not set
arch/arm/configs/spear3xx_defconfig +73 -7
116 lines not on this page · raw message
arch/arm/configs/spear6xx_defconfig +66 -6
106 lines not on this page · raw message
Signature · 1 line
1.7.2.2
v2 cover Updating SPEAr Support
In reply to Viresh KUMARQuoted 14 lines · Viresh KUMAR
Following set of patches:
- updates SPEAr3xx, 6xx support
- Adds support for SPEAr13xx
- Removes Multiple defconfigs per machine familyChanges since V1:
- sev definitions moved tosystem.hand removed from spear and omap archs
- bug fix added in system controller filesp810.h
- Review Comments incorporated
- Driver and machine support are divided into separate patches
- Nand Driver is removed from patch list as it is already floated by Linus Walleij.
- Few later patches of SPEAr13xx Patches are merged with initial patches of SPEAr13xx
Quoted 8 lines
- Smaller Defconfigs are used instead of large.
- Clock renaming & minor corrections are moved to clock specific patches from peripheral machine support patches.
- Removed Commented code related to SPI
- [PATCH] Incrementing theecc_posarray to contain 128 char - is removed from list
- Board specific code is moved to *evb.c files from machine files for EMI NOR
- replaced readl with__raw_readlinuncompress.hin plat-spear/include/plat/
Russell,
Are there open points in these v2 patches or are they fine?
Signature · 1 line
viresh
v2 cover Updating SPEAr Support
Quoted 24 lines · Viresh KUMAR
Quoted 14 lines · Viresh KUMAR
Following set of patches:
- updates SPEAr3xx, 6xx support
- Adds support for SPEAr13xx
- Removes Multiple defconfigs per machine familyChanges since V1:
- sev definitions moved tosystem.hand removed from spear and omap archs
- bug fix added in system controller filesp810.h
- Review Comments incorporated
- Driver and machine support are divided into separate patches
- Nand Driver is removed from patch list as it is already floated by Linus Walleij.
- Few later patches of SPEAr13xx Patches are merged with initial patches of SPEAr13xxQuoted 8 lines
- Smaller Defconfigs are used instead of large.
- Clock renaming & minor corrections are moved to clock specific patches from peripheral machine support patches.
- Removed Commented code related to SPI
- [PATCH] Incrementing theecc_posarray to contain 128 char - is removed from list
- Board specific code is moved to *evb.c files from machine files for EMI NOR
- replaced readl with__raw_readlinuncompress.hin plat-spear/include/plat/
Quoted 4 lines
Russell,
Are there open points in these v2 patches or are they fine?
Russell,
Are there open points in these v2 patches or are they fine?
Signature · 1 line
viresh