diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2013-04-19 08:56:46 -0400 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2013-06-17 07:54:28 -0400 |
commit | cf4af8670b7377a9e9dbb4c5d3622538185ca362 (patch) | |
tree | fdf025d16a70c3a5ac1eb034b4dd2763a8bca192 /arch/arm/mach-u300 | |
parent | 39738cc96b66cdb175ac86aa39823963d9f2bb84 (diff) |
ARM: u300: add SPI PL022 to the device tree
This registers the PL022 PrimeCell from the U300 device
tree. We make a new copy of the platform data for the
device tree boot path, as the old platform data is in an
older file which will be going away.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'arch/arm/mach-u300')
-rw-r--r-- | arch/arm/mach-u300/core.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/arm/mach-u300/core.c b/arch/arm/mach-u300/core.c index 7866f54a4eaa..d102cb501f8d 100644 --- a/arch/arm/mach-u300/core.c +++ b/arch/arm/mach-u300/core.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/dmaengine.h> | 19 | #include <linux/dmaengine.h> |
20 | #include <linux/amba/bus.h> | 20 | #include <linux/amba/bus.h> |
21 | #include <linux/amba/mmci.h> | 21 | #include <linux/amba/mmci.h> |
22 | #include <linux/amba/pl022.h> | ||
22 | #include <linux/amba/serial.h> | 23 | #include <linux/amba/serial.h> |
23 | #include <linux/platform_device.h> | 24 | #include <linux/platform_device.h> |
24 | #include <linux/gpio.h> | 25 | #include <linux/gpio.h> |
@@ -704,6 +705,22 @@ MACHINE_END | |||
704 | 705 | ||
705 | #ifdef CONFIG_OF | 706 | #ifdef CONFIG_OF |
706 | 707 | ||
708 | static struct pl022_ssp_controller spi_plat_data = { | ||
709 | /* If you have several SPI buses this varies, we have only bus 0 */ | ||
710 | .bus_id = 0, | ||
711 | /* | ||
712 | * On the APP CPU GPIO 4, 5 and 6 are connected as generic | ||
713 | * chip selects for SPI. (Same on U330, U335 and U365.) | ||
714 | * TODO: make sure the GPIO driver can select these properly | ||
715 | * and do padmuxing accordingly too. | ||
716 | */ | ||
717 | .num_chipselect = 3, | ||
718 | .enable_dma = 1, | ||
719 | .dma_filter = coh901318_filter_id, | ||
720 | .dma_rx_param = (void *) U300_DMA_SPI_RX, | ||
721 | .dma_tx_param = (void *) U300_DMA_SPI_TX, | ||
722 | }; | ||
723 | |||
707 | /* These are mostly to get the right device names for the clock lookups */ | 724 | /* These are mostly to get the right device names for the clock lookups */ |
708 | static struct of_dev_auxdata u300_auxdata_lookup[] __initdata = { | 725 | static struct of_dev_auxdata u300_auxdata_lookup[] __initdata = { |
709 | OF_DEV_AUXDATA("stericsson,pinctrl-u300", U300_SYSCON_BASE, | 726 | OF_DEV_AUXDATA("stericsson,pinctrl-u300", U300_SYSCON_BASE, |
@@ -720,6 +737,8 @@ static struct of_dev_auxdata u300_auxdata_lookup[] __initdata = { | |||
720 | "uart0", &uart0_plat_data), | 737 | "uart0", &uart0_plat_data), |
721 | OF_DEV_AUXDATA("arm,primecell", U300_UART1_BASE, | 738 | OF_DEV_AUXDATA("arm,primecell", U300_UART1_BASE, |
722 | "uart1", &uart1_plat_data), | 739 | "uart1", &uart1_plat_data), |
740 | OF_DEV_AUXDATA("arm,primecell", U300_SPI_BASE, | ||
741 | "pl022", &spi_plat_data), | ||
723 | OF_DEV_AUXDATA("st,ddci2c", U300_I2C0_BASE, | 742 | OF_DEV_AUXDATA("st,ddci2c", U300_I2C0_BASE, |
724 | "stu300.0", NULL), | 743 | "stu300.0", NULL), |
725 | OF_DEV_AUXDATA("st,ddci2c", U300_I2C1_BASE, | 744 | OF_DEV_AUXDATA("st,ddci2c", U300_I2C1_BASE, |