aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-lpc32xx/phy3250.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-lpc32xx/phy3250.c')
-rw-r--r--arch/arm/mach-lpc32xx/phy3250.c42
1 files changed, 16 insertions, 26 deletions
diff --git a/arch/arm/mach-lpc32xx/phy3250.c b/arch/arm/mach-lpc32xx/phy3250.c
index b07dcc90829d..e8ff4c3f0566 100644
--- a/arch/arm/mach-lpc32xx/phy3250.c
+++ b/arch/arm/mach-lpc32xx/phy3250.c
@@ -24,12 +24,9 @@
24#include <linux/irq.h> 24#include <linux/irq.h>
25#include <linux/dma-mapping.h> 25#include <linux/dma-mapping.h>
26#include <linux/device.h> 26#include <linux/device.h>
27#include <linux/spi/spi.h>
28#include <linux/spi/eeprom.h>
29#include <linux/gpio.h> 27#include <linux/gpio.h>
30#include <linux/amba/bus.h> 28#include <linux/amba/bus.h>
31#include <linux/amba/clcd.h> 29#include <linux/amba/clcd.h>
32#include <linux/amba/pl022.h>
33#include <linux/amba/pl08x.h> 30#include <linux/amba/pl08x.h>
34#include <linux/amba/mmci.h> 31#include <linux/amba/mmci.h>
35#include <linux/of.h> 32#include <linux/of.h>
@@ -37,6 +34,8 @@
37#include <linux/of_irq.h> 34#include <linux/of_irq.h>
38#include <linux/of_platform.h> 35#include <linux/of_platform.h>
39#include <linux/clk.h> 36#include <linux/clk.h>
37#include <linux/mtd/lpc32xx_slc.h>
38#include <linux/mtd/lpc32xx_mlc.h>
40 39
41#include <asm/setup.h> 40#include <asm/setup.h>
42#include <asm/mach-types.h> 41#include <asm/mach-types.h>
@@ -156,21 +155,6 @@ static struct clcd_board lpc32xx_clcd_data = {
156 .remove = lpc32xx_clcd_remove, 155 .remove = lpc32xx_clcd_remove,
157}; 156};
158 157
159/*
160 * AMBA SSP (SPI)
161 */
162static struct pl022_ssp_controller lpc32xx_ssp0_data = {
163 .bus_id = 0,
164 .num_chipselect = 1,
165 .enable_dma = 0,
166};
167
168static struct pl022_ssp_controller lpc32xx_ssp1_data = {
169 .bus_id = 1,
170 .num_chipselect = 1,
171 .enable_dma = 0,
172};
173
174static struct pl08x_channel_data pl08x_slave_channels[] = { 158static struct pl08x_channel_data pl08x_slave_channels[] = {
175 { 159 {
176 .bus_id = "nand-slc", 160 .bus_id = "nand-slc",
@@ -223,13 +207,25 @@ static struct mmci_platform_data lpc32xx_mmci_data = {
223 * gather, and the MMCI driver doesn't do it this way */ 207 * gather, and the MMCI driver doesn't do it this way */
224}; 208};
225 209
210static struct lpc32xx_slc_platform_data lpc32xx_slc_data = {
211 .dma_filter = pl08x_filter_id,
212};
213
214static struct lpc32xx_mlc_platform_data lpc32xx_mlc_data = {
215 .dma_filter = pl08x_filter_id,
216};
217
226static const struct of_dev_auxdata lpc32xx_auxdata_lookup[] __initconst = { 218static const struct of_dev_auxdata lpc32xx_auxdata_lookup[] __initconst = {
227 OF_DEV_AUXDATA("arm,pl022", 0x20084000, "dev:ssp0", &lpc32xx_ssp0_data), 219 OF_DEV_AUXDATA("arm,pl022", 0x20084000, "dev:ssp0", NULL),
228 OF_DEV_AUXDATA("arm,pl022", 0x2008C000, "dev:ssp1", &lpc32xx_ssp1_data), 220 OF_DEV_AUXDATA("arm,pl022", 0x2008C000, "dev:ssp1", NULL),
229 OF_DEV_AUXDATA("arm,pl110", 0x31040000, "dev:clcd", &lpc32xx_clcd_data), 221 OF_DEV_AUXDATA("arm,pl110", 0x31040000, "dev:clcd", &lpc32xx_clcd_data),
230 OF_DEV_AUXDATA("arm,pl080", 0x31000000, "pl08xdmac", &pl08x_pd), 222 OF_DEV_AUXDATA("arm,pl080", 0x31000000, "pl08xdmac", &pl08x_pd),
231 OF_DEV_AUXDATA("arm,pl18x", 0x20098000, "20098000.sd", 223 OF_DEV_AUXDATA("arm,pl18x", 0x20098000, "20098000.sd",
232 &lpc32xx_mmci_data), 224 &lpc32xx_mmci_data),
225 OF_DEV_AUXDATA("nxp,lpc3220-slc", 0x20020000, "20020000.flash",
226 &lpc32xx_slc_data),
227 OF_DEV_AUXDATA("nxp,lpc3220-mlc", 0x200a8000, "200a8000.flash",
228 &lpc32xx_mlc_data),
233 { } 229 { }
234}; 230};
235 231
@@ -253,12 +249,6 @@ static void __init lpc3250_machine_init(void)
253 249
254 of_platform_populate(NULL, of_default_bus_match_table, 250 of_platform_populate(NULL, of_default_bus_match_table,
255 lpc32xx_auxdata_lookup, NULL); 251 lpc32xx_auxdata_lookup, NULL);
256
257 /* Register GPIOs used on this board */
258 if (gpio_request(MMC_PWR_ENABLE_GPIO, "mmc_power_en"))
259 pr_err("Error requesting gpio %u", MMC_PWR_ENABLE_GPIO);
260 else if (gpio_direction_output(MMC_PWR_ENABLE_GPIO, 1))
261 pr_err("Error setting gpio %u to output", MMC_PWR_ENABLE_GPIO);
262} 252}
263 253
264static char const *lpc32xx_dt_compat[] __initdata = { 254static char const *lpc32xx_dt_compat[] __initdata = {