diff options
Diffstat (limited to 'arch/arm/mach-davinci/da830.c')
| -rw-r--r-- | arch/arm/mach-davinci/da830.c | 85 | 
1 files changed, 45 insertions, 40 deletions
diff --git a/arch/arm/mach-davinci/da830.c b/arch/arm/mach-davinci/da830.c index ec23ab47362..115d5736da8 100644 --- a/arch/arm/mach-davinci/da830.c +++ b/arch/arm/mach-davinci/da830.c @@ -8,8 +8,10 @@   * is licensed "as is" without any warranty of any kind, whether express   * or implied.   */ +#include <linux/gpio.h>  #include <linux/init.h>  #include <linux/clk.h> +#include <linux/platform_data/gpio-davinci.h>  #include <asm/mach/map.h> @@ -19,7 +21,6 @@  #include <mach/common.h>  #include <mach/time.h>  #include <mach/da8xx.h> -#include <mach/gpio.h>  #include "clock.h"  #include "mux.h" @@ -148,7 +149,7 @@ static struct clk scr2_ss_clk = {  static struct clk dmax_clk = {  	.name		= "dmax",  	.parent		= &pll0_sysclk2, -	.lpsc		= DA8XX_LPSC0_DMAX, +	.lpsc		= DA8XX_LPSC0_PRUSS,  	.flags		= ALWAYS_ENABLED,  }; @@ -384,7 +385,7 @@ static struct clk_lookup da830_clks[] = {  	CLK(NULL,		"pll0_sysclk7",	&pll0_sysclk7),  	CLK("i2c_davinci.1",	NULL,		&i2c0_clk),  	CLK(NULL,		"timer0",	&timerp64_0_clk), -	CLK("watchdog",		NULL,		&timerp64_1_clk), +	CLK("davinci-wdt",	NULL,		&timerp64_1_clk),  	CLK(NULL,		"arm_rom",	&arm_rom_clk),  	CLK(NULL,		"scr0_ss",	&scr0_ss_clk),  	CLK(NULL,		"scr1_ss",	&scr1_ss_clk), @@ -393,12 +394,12 @@ static struct clk_lookup da830_clks[] = {  	CLK(NULL,		"tpcc",		&tpcc_clk),  	CLK(NULL,		"tptc0",	&tptc0_clk),  	CLK(NULL,		"tptc1",	&tptc1_clk), -	CLK("davinci_mmc.0",	NULL,		&mmcsd_clk), -	CLK(NULL,		"uart0",	&uart0_clk), -	CLK(NULL,		"uart1",	&uart1_clk), -	CLK(NULL,		"uart2",	&uart2_clk), -	CLK("dm_spi.0",		NULL,		&spi0_clk), -	CLK("dm_spi.1",		NULL,		&spi1_clk), +	CLK("da830-mmc.0",	NULL,		&mmcsd_clk), +	CLK("serial8250.0",	NULL,		&uart0_clk), +	CLK("serial8250.1",	NULL,		&uart1_clk), +	CLK("serial8250.2",	NULL,		&uart2_clk), +	CLK("spi_davinci.0",	NULL,		&spi0_clk), +	CLK("spi_davinci.1",	NULL,		&spi1_clk),  	CLK(NULL,		"ecap0",	&ecap0_clk),  	CLK(NULL,		"ecap1",	&ecap1_clk),  	CLK(NULL,		"ecap2",	&ecap2_clk), @@ -407,7 +408,7 @@ static struct clk_lookup da830_clks[] = {  	CLK(NULL,		"pwm2",		&pwm2_clk),  	CLK("eqep.0",		NULL,		&eqep0_clk),  	CLK("eqep.1",		NULL,		&eqep1_clk), -	CLK("da8xx_lcdc.0",	NULL,		&lcdc_clk), +	CLK("da8xx_lcdc.0",	"fck",		&lcdc_clk),  	CLK("davinci-mcasp.0",	NULL,		&mcasp0_clk),  	CLK("davinci-mcasp.1",	NULL,		&mcasp1_clk),  	CLK("davinci-mcasp.2",	NULL,		&mcasp2_clk), @@ -416,6 +417,7 @@ static struct clk_lookup da830_clks[] = {  	CLK(NULL,		"aintc",	&aintc_clk),  	CLK(NULL,		"secu_mgr",	&secu_mgr_clk),  	CLK("davinci_emac.1",	NULL,		&emac_clk), +	CLK("davinci_mdio.0",   "fck",          &emac_clk),  	CLK(NULL,		"gpio",		&gpio_clk),  	CLK("i2c_davinci.2",	NULL,		&i2c1_clk),  	CLK(NULL,		"usb11",	&usb11_clk), @@ -837,7 +839,7 @@ static const struct mux_config da830_pins[] = {  #endif  }; -const short da830_emif25_pins[] __initdata = { +const short da830_emif25_pins[] __initconst = {  	DA830_EMA_D_0, DA830_EMA_D_1, DA830_EMA_D_2, DA830_EMA_D_3,  	DA830_EMA_D_4, DA830_EMA_D_5, DA830_EMA_D_6, DA830_EMA_D_7,  	DA830_EMA_D_8, DA830_EMA_D_9, DA830_EMA_D_10, DA830_EMA_D_11, @@ -852,19 +854,19 @@ const short da830_emif25_pins[] __initdata = {  	-1  }; -const short da830_spi0_pins[] __initdata = { +const short da830_spi0_pins[] __initconst = {  	DA830_SPI0_SOMI_0, DA830_SPI0_SIMO_0, DA830_SPI0_CLK, DA830_NSPI0_ENA,  	DA830_NSPI0_SCS_0,  	-1  }; -const short da830_spi1_pins[] __initdata = { +const short da830_spi1_pins[] __initconst = {  	DA830_SPI1_SOMI_0, DA830_SPI1_SIMO_0, DA830_SPI1_CLK, DA830_NSPI1_ENA,  	DA830_NSPI1_SCS_0,  	-1  }; -const short da830_mmc_sd_pins[] __initdata = { +const short da830_mmc_sd_pins[] __initconst = {  	DA830_MMCSD_DAT_0, DA830_MMCSD_DAT_1, DA830_MMCSD_DAT_2,  	DA830_MMCSD_DAT_3, DA830_MMCSD_DAT_4, DA830_MMCSD_DAT_5,  	DA830_MMCSD_DAT_6, DA830_MMCSD_DAT_7, DA830_MMCSD_CLK, @@ -872,32 +874,32 @@ const short da830_mmc_sd_pins[] __initdata = {  	-1  }; -const short da830_uart0_pins[] __initdata = { +const short da830_uart0_pins[] __initconst = {  	DA830_NUART0_CTS, DA830_NUART0_RTS, DA830_UART0_RXD, DA830_UART0_TXD,  	-1  }; -const short da830_uart1_pins[] __initdata = { +const short da830_uart1_pins[] __initconst = {  	DA830_UART1_RXD, DA830_UART1_TXD,  	-1  }; -const short da830_uart2_pins[] __initdata = { +const short da830_uart2_pins[] __initconst = {  	DA830_UART2_RXD, DA830_UART2_TXD,  	-1  }; -const short da830_usb20_pins[] __initdata = { +const short da830_usb20_pins[] __initconst = {  	DA830_USB0_DRVVBUS, DA830_USB_REFCLKIN,  	-1  }; -const short da830_usb11_pins[] __initdata = { +const short da830_usb11_pins[] __initconst = {  	DA830_USB_REFCLKIN,  	-1  }; -const short da830_uhpi_pins[] __initdata = { +const short da830_uhpi_pins[] __initconst = {  	DA830_UHPI_HD_0, DA830_UHPI_HD_1, DA830_UHPI_HD_2, DA830_UHPI_HD_3,  	DA830_UHPI_HD_4, DA830_UHPI_HD_5, DA830_UHPI_HD_6, DA830_UHPI_HD_7,  	DA830_UHPI_HD_8, DA830_UHPI_HD_9, DA830_UHPI_HD_10, DA830_UHPI_HD_11, @@ -908,14 +910,14 @@ const short da830_uhpi_pins[] __initdata = {  	-1  }; -const short da830_cpgmac_pins[] __initdata = { +const short da830_cpgmac_pins[] __initconst = {  	DA830_RMII_TXD_0, DA830_RMII_TXD_1, DA830_RMII_TXEN, DA830_RMII_CRS_DV,  	DA830_RMII_RXD_0, DA830_RMII_RXD_1, DA830_RMII_RXER, DA830_MDIO_CLK,  	DA830_MDIO_D,  	-1  }; -const short da830_emif3c_pins[] __initdata = { +const short da830_emif3c_pins[] __initconst = {  	DA830_EMB_SDCKE, DA830_EMB_CLK_GLUE, DA830_EMB_CLK, DA830_NEMB_CS_0,  	DA830_NEMB_CAS, DA830_NEMB_RAS, DA830_NEMB_WE, DA830_EMB_BA_1,  	DA830_EMB_BA_0, DA830_EMB_A_0, DA830_EMB_A_1, DA830_EMB_A_2, @@ -934,7 +936,7 @@ const short da830_emif3c_pins[] __initdata = {  	-1  }; -const short da830_mcasp0_pins[] __initdata = { +const short da830_mcasp0_pins[] __initconst = {  	DA830_AHCLKX0, DA830_ACLKX0, DA830_AFSX0,  	DA830_AHCLKR0, DA830_ACLKR0, DA830_AFSR0, DA830_AMUTE0,  	DA830_AXR0_0, DA830_AXR0_1, DA830_AXR0_2, DA830_AXR0_3, @@ -944,7 +946,7 @@ const short da830_mcasp0_pins[] __initdata = {  	-1  }; -const short da830_mcasp1_pins[] __initdata = { +const short da830_mcasp1_pins[] __initconst = {  	DA830_AHCLKX1, DA830_ACLKX1, DA830_AFSX1,  	DA830_AHCLKR1, DA830_ACLKR1, DA830_AFSR1, DA830_AMUTE1,  	DA830_AXR1_0, DA830_AXR1_1, DA830_AXR1_2, DA830_AXR1_3, @@ -953,24 +955,24 @@ const short da830_mcasp1_pins[] __initdata = {  	-1  }; -const short da830_mcasp2_pins[] __initdata = { +const short da830_mcasp2_pins[] __initconst = {  	DA830_AHCLKX2, DA830_ACLKX2, DA830_AFSX2,  	DA830_AHCLKR2, DA830_ACLKR2, DA830_AFSR2, DA830_AMUTE2,  	DA830_AXR2_0, DA830_AXR2_1, DA830_AXR2_2, DA830_AXR2_3,  	-1  }; -const short da830_i2c0_pins[] __initdata = { +const short da830_i2c0_pins[] __initconst = {  	DA830_I2C0_SDA, DA830_I2C0_SCL,  	-1  }; -const short da830_i2c1_pins[] __initdata = { +const short da830_i2c1_pins[] __initconst = {  	DA830_I2C1_SCL, DA830_I2C1_SDA,  	-1  }; -const short da830_lcdcntl_pins[] __initdata = { +const short da830_lcdcntl_pins[] __initconst = {  	DA830_LCD_D_0, DA830_LCD_D_1, DA830_LCD_D_2, DA830_LCD_D_3,  	DA830_LCD_D_4, DA830_LCD_D_5, DA830_LCD_D_6, DA830_LCD_D_7,  	DA830_LCD_D_8, DA830_LCD_D_9, DA830_LCD_D_10, DA830_LCD_D_11, @@ -980,34 +982,34 @@ const short da830_lcdcntl_pins[] __initdata = {  	-1  }; -const short da830_pwm_pins[] __initdata = { +const short da830_pwm_pins[] __initconst = {  	DA830_ECAP0_APWM0, DA830_ECAP1_APWM1, DA830_EPWM0B, DA830_EPWM0A,  	DA830_EPWMSYNCI, DA830_EPWMSYNC0, DA830_ECAP2_APWM2, DA830_EHRPWMGLUETZ,  	DA830_EPWM2B, DA830_EPWM2A, DA830_EPWM1B, DA830_EPWM1A,  	-1  }; -const short da830_ecap0_pins[] __initdata = { +const short da830_ecap0_pins[] __initconst = {  	DA830_ECAP0_APWM0,  	-1  }; -const short da830_ecap1_pins[] __initdata = { +const short da830_ecap1_pins[] __initconst = {  	DA830_ECAP1_APWM1,  	-1  }; -const short da830_ecap2_pins[] __initdata = { +const short da830_ecap2_pins[] __initconst = {  	DA830_ECAP2_APWM2,  	-1  }; -const short da830_eqep0_pins[] __initdata = { +const short da830_eqep0_pins[] __initconst = {  	DA830_EQEP0I, DA830_EQEP0S, DA830_EQEP0A, DA830_EQEP0B,  	-1  }; -const short da830_eqep1_pins[] __initdata = { +const short da830_eqep1_pins[] __initconst = {  	DA830_EQEP1I, DA830_EQEP1S, DA830_EQEP1A, DA830_EQEP1B,  	-1  }; @@ -1149,6 +1151,15 @@ static struct davinci_id da830_ids[] = {  	},  }; +static struct davinci_gpio_platform_data da830_gpio_platform_data = { +	.ngpio = 128, +}; + +int __init da830_register_gpio(void) +{ +	return da8xx_register_gpio(&da830_gpio_platform_data); +} +  static struct davinci_timer_instance da830_timer_instance[2] = {  	{  		.base		= DA8XX_TIMER64P0_BASE, @@ -1194,13 +1205,7 @@ static struct davinci_soc_info davinci_soc_info_da830 = {  	.intc_irq_prios		= da830_default_priorities,  	.intc_irq_num		= DA830_N_CP_INTC_IRQ,  	.timer_info		= &da830_timer_info, -	.gpio_type		= GPIO_TYPE_DAVINCI, -	.gpio_base		= DA8XX_GPIO_BASE, -	.gpio_num		= 128, -	.gpio_irq		= IRQ_DA8XX_GPIO0, -	.serial_dev		= &da8xx_serial_device,  	.emac_pdata		= &da8xx_emac_pdata, -	.reset_device		= &da8xx_wdt_device,  };  void __init da830_init(void)  | 
