diff options
Diffstat (limited to 'arch/arm/mach-ux500/board-mop500.c')
-rw-r--r-- | arch/arm/mach-ux500/board-mop500.c | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c index bb8d7b771817..0e8fd135a57d 100644 --- a/arch/arm/mach-ux500/board-mop500.c +++ b/arch/arm/mach-ux500/board-mop500.c | |||
@@ -13,19 +13,42 @@ | |||
13 | #include <linux/interrupt.h> | 13 | #include <linux/interrupt.h> |
14 | #include <linux/platform_device.h> | 14 | #include <linux/platform_device.h> |
15 | #include <linux/io.h> | 15 | #include <linux/io.h> |
16 | #include <linux/gpio.h> | ||
16 | #include <linux/amba/bus.h> | 17 | #include <linux/amba/bus.h> |
17 | #include <linux/amba/pl022.h> | 18 | #include <linux/amba/pl022.h> |
18 | #include <linux/spi/spi.h> | 19 | #include <linux/spi/spi.h> |
20 | #include <linux/mfd/ab8500.h> | ||
19 | 21 | ||
20 | #include <asm/mach-types.h> | 22 | #include <asm/mach-types.h> |
21 | #include <asm/mach/arch.h> | 23 | #include <asm/mach/arch.h> |
22 | 24 | ||
25 | #include <plat/pincfg.h> | ||
23 | #include <plat/i2c.h> | 26 | #include <plat/i2c.h> |
24 | 27 | ||
25 | #include <mach/hardware.h> | 28 | #include <mach/hardware.h> |
26 | #include <mach/setup.h> | 29 | #include <mach/setup.h> |
27 | #include <mach/devices.h> | 30 | #include <mach/devices.h> |
28 | 31 | ||
32 | #include "pins-db8500.h" | ||
33 | |||
34 | static pin_cfg_t mop500_pins[] = { | ||
35 | /* SSP0 */ | ||
36 | GPIO143_SSP0_CLK, | ||
37 | GPIO144_SSP0_FRM, | ||
38 | GPIO145_SSP0_RXD, | ||
39 | GPIO146_SSP0_TXD, | ||
40 | |||
41 | /* I2C */ | ||
42 | GPIO147_I2C0_SCL, | ||
43 | GPIO148_I2C0_SDA, | ||
44 | GPIO16_I2C1_SCL, | ||
45 | GPIO17_I2C1_SDA, | ||
46 | GPIO10_I2C2_SDA, | ||
47 | GPIO11_I2C2_SCL, | ||
48 | GPIO229_I2C3_SDA, | ||
49 | GPIO230_I2C3_SCL, | ||
50 | }; | ||
51 | |||
29 | static void ab4500_spi_cs_control(u32 command) | 52 | static void ab4500_spi_cs_control(u32 command) |
30 | { | 53 | { |
31 | /* set the FRM signal, which is CS - TODO */ | 54 | /* set the FRM signal, which is CS - TODO */ |
@@ -48,15 +71,20 @@ struct pl022_config_chip ab4500_chip_info = { | |||
48 | .cs_control = ab4500_spi_cs_control, | 71 | .cs_control = ab4500_spi_cs_control, |
49 | }; | 72 | }; |
50 | 73 | ||
74 | static struct ab8500_platform_data ab8500_platdata = { | ||
75 | .irq_base = MOP500_AB8500_IRQ_BASE, | ||
76 | }; | ||
77 | |||
51 | static struct spi_board_info u8500_spi_devices[] = { | 78 | static struct spi_board_info u8500_spi_devices[] = { |
52 | { | 79 | { |
53 | .modalias = "ab8500", | 80 | .modalias = "ab8500", |
54 | .controller_data = &ab4500_chip_info, | 81 | .controller_data = &ab4500_chip_info, |
82 | .platform_data = &ab8500_platdata, | ||
55 | .max_speed_hz = 12000000, | 83 | .max_speed_hz = 12000000, |
56 | .bus_num = 0, | 84 | .bus_num = 0, |
57 | .chip_select = 0, | 85 | .chip_select = 0, |
58 | .mode = SPI_MODE_0, | 86 | .mode = SPI_MODE_0, |
59 | .irq = IRQ_AB4500, | 87 | .irq = IRQ_DB8500_AB8500, |
60 | }, | 88 | }, |
61 | }; | 89 | }; |
62 | 90 | ||
@@ -118,6 +146,10 @@ static void __init u8500_init_machine(void) | |||
118 | { | 146 | { |
119 | int i; | 147 | int i; |
120 | 148 | ||
149 | u8500_init_devices(); | ||
150 | |||
151 | nmk_config_pins(mop500_pins, ARRAY_SIZE(mop500_pins)); | ||
152 | |||
121 | u8500_i2c0_device.dev.platform_data = &u8500_i2c0_data; | 153 | u8500_i2c0_device.dev.platform_data = &u8500_i2c0_data; |
122 | ux500_i2c1_device.dev.platform_data = &u8500_i2c1_data; | 154 | ux500_i2c1_device.dev.platform_data = &u8500_i2c1_data; |
123 | ux500_i2c2_device.dev.platform_data = &u8500_i2c2_data; | 155 | ux500_i2c2_device.dev.platform_data = &u8500_i2c2_data; |
@@ -133,8 +165,6 @@ static void __init u8500_init_machine(void) | |||
133 | 165 | ||
134 | spi_register_board_info(u8500_spi_devices, | 166 | spi_register_board_info(u8500_spi_devices, |
135 | ARRAY_SIZE(u8500_spi_devices)); | 167 | ARRAY_SIZE(u8500_spi_devices)); |
136 | |||
137 | u8500_init_devices(); | ||
138 | } | 168 | } |
139 | 169 | ||
140 | MACHINE_START(U8500, "ST-Ericsson MOP500 platform") | 170 | MACHINE_START(U8500, "ST-Ericsson MOP500 platform") |