From 47c54a68d8dfebe6baa91e4f822a71f9c077d07b Mon Sep 17 00:00:00 2001 From: lw Date: Sat, 8 Sep 2012 14:07:13 +0800 Subject: [PATCH] rk3066b:add spi support --- arch/arm/mach-rk30/devices.c | 32 ++++++++++++++++++++++++++++++++ drivers/spi/spi_test.c | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-rk30/devices.c b/arch/arm/mach-rk30/devices.c index fcd0d64c0c70..44b58a8ede04 100755 --- a/arch/arm/mach-rk30/devices.c +++ b/arch/arm/mach-rk30/devices.c @@ -824,6 +824,21 @@ static int spi_io_resume_leakage_bug(void) */ #ifdef CONFIG_SPIM0_RK29 static struct spi_cs_gpio rk29xx_spi0_cs_gpios[SPI_CHIPSELECT_NUM] = { +#if defined(CONFIG_ARCH_RK3066B) + { + .name = "spi0 cs0", + .cs_gpio = RK30_PIN1_PA7, + .cs_iomux_name = GPIO1A7_UART1RTSN_SPI0CSN0_NAME, + .cs_iomux_mode = GPIO1A_SPI0CSN0, + }, + { + .name = "spi0 cs1", + .cs_gpio = RK30_PIN1_PB7, + .cs_iomux_name = GPIO1B7_SPI0CSN1_NAME,//if no iomux,set it NULL + .cs_iomux_mode = GPIO1B_SPI0CSN1, + } + +#else { .name = "spi0 cs0", .cs_gpio = RK30_PIN1_PA4, @@ -836,6 +851,7 @@ static struct spi_cs_gpio rk29xx_spi0_cs_gpios[SPI_CHIPSELECT_NUM] = { .cs_iomux_name = GPIO4B7_SPI0CSN1_NAME,//if no iomux,set it NULL .cs_iomux_mode = GPIO4B_SPI0_CSN1, } +#endif }; static struct rk29xx_spi_platform_data rk29xx_spi0_platdata = { @@ -885,6 +901,21 @@ struct platform_device rk29xx_device_spi0m = { #ifdef CONFIG_SPIM1_RK29 static struct spi_cs_gpio rk29xx_spi1_cs_gpios[SPI_CHIPSELECT_NUM] = { +#if defined(CONFIG_ARCH_RK3066B) + { + .name = "spi1 cs0", + .cs_gpio = RK30_PIN0_PD7, + .cs_iomux_name = GPIO0D7_SPI1CSN0_NAME, + .cs_iomux_mode = GPIO0D_SPI1CSN0, + }, + { + .name = "spi1 cs1", + .cs_gpio = RK30_PIN1_PB6, + .cs_iomux_name = GPIO1B6_SPDIFTX_SPI1CSN1_NAME,//if no iomux,set it NULL + .cs_iomux_mode = GPIO1B_SPI1CSN1, + } + +#else { .name = "spi1 cs0", .cs_gpio = RK30_PIN2_PC4, @@ -897,6 +928,7 @@ static struct spi_cs_gpio rk29xx_spi1_cs_gpios[SPI_CHIPSELECT_NUM] = { .cs_iomux_name = GPIO2C7_LCDC1DATA23_SPI1CSN1_HSADCDATA4_NAME,//if no iomux,set it NULL .cs_iomux_mode = GPIO2C_SPI1_CSN1, } +#endif }; static struct rk29xx_spi_platform_data rk29xx_spi1_platdata = { diff --git a/drivers/spi/spi_test.c b/drivers/spi/spi_test.c index 9c7bc8fbb93e..cfba557f7dd2 100755 --- a/drivers/spi/spi_test.c +++ b/drivers/spi/spi_test.c @@ -141,7 +141,7 @@ static int __devinit spi_test_probe(struct spi_device *spi) g_spi_test_data = spi_test_data; - printk("%s:bus_num=%d,ok\n",__func__,spi->bus_num); + printk("%s:bus_num=%d,ok\n",__func__,spi->master->bus_num); return ret; -- 2.34.1