diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-11-01 23:31:25 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-11-01 23:31:25 -0400 |
commit | 16ee792e45cf0c97ce061fce03c36cab5551ec72 (patch) | |
tree | dc68af705fbac4b5d71325aa972730199bb187dd /arch/arm/mach-mx5 | |
parent | f906fb1d70e016726fccfb0d978c5d425503db9d (diff) | |
parent | efa62e1355f0495f37f1296754b8880947c8da72 (diff) |
Merge branch 'next/devel' of git://git.linaro.org/people/arnd/arm-soc
* 'next/devel' of git://git.linaro.org/people/arnd/arm-soc: (50 commits)
ARM: tegra: update defconfig
arm/tegra: Harmony: Configure PMC for low-level interrupts
arm/tegra: device tree support for ventana board
arm/tegra: add support for ventana pinmuxing
arm/tegra: prepare Seaboard pinmux code for derived boards
arm/tegra: pinmux: ioremap registers
gpio/tegra: Convert to a platform device
arm/tegra: Convert pinmux driver to a platform device
arm/dt: Tegra: Add pinmux node to tegra20.dtsi
arm/tegra: Prep boards for gpio/pinmux conversion to pdevs
ARM: mx5: fix clock usage for suspend
ARM i.MX entry-macro.S: remove now unused code
ARM i.MX boards: use CONFIG_MULTI_IRQ_HANDLER
ARM i.MX tzic: add handle_irq function
ARM i.MX avic: add handle_irq function
ARM: mx25: Add the missing IIM base definition
ARM i.MX avic: convert to use generic irq chip
mx31moboard: Add poweroff support
ARM: mach-qong: Add watchdog support
ARM: davinci: AM18x: Add wl1271/wlan support
...
Fix up conflicts in:
arch/arm/mach-at91/at91sam9g45.c
arch/arm/mach-mx5/devices-imx53.h
arch/arm/plat-mxc/include/mach/memory.h
Diffstat (limited to 'arch/arm/mach-mx5')
-rw-r--r-- | arch/arm/mach-mx5/Kconfig | 18 | ||||
-rw-r--r-- | arch/arm/mach-mx5/board-cpuimx51.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-mx5/board-cpuimx51sd.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-mx5/board-mx50_rdp.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-mx5/board-mx51_3ds.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-mx5/board-mx51_babbage.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-mx5/board-mx51_efikamx.c | 12 | ||||
-rw-r--r-- | arch/arm/mach-mx5/board-mx51_efikasb.c | 19 | ||||
-rw-r--r-- | arch/arm/mach-mx5/board-mx53_ard.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-mx5/board-mx53_evk.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-mx5/board-mx53_loco.c | 21 | ||||
-rw-r--r-- | arch/arm/mach-mx5/board-mx53_smd.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-mx5/clock-mx51-mx53.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-mx5/cpu.c | 74 | ||||
-rw-r--r-- | arch/arm/mach-mx5/devices-imx53.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-mx5/mx51_efika.c | 1 |
16 files changed, 81 insertions, 79 deletions
diff --git a/arch/arm/mach-mx5/Kconfig b/arch/arm/mach-mx5/Kconfig index 5e42c73881a5..3d4c31306ca7 100644 --- a/arch/arm/mach-mx5/Kconfig +++ b/arch/arm/mach-mx5/Kconfig | |||
@@ -1,8 +1,9 @@ | |||
1 | if ARCH_MX503 || ARCH_MX51 | 1 | if ARCH_MX5 |
2 | |||
2 | # ARCH_MX5/50/53 are left to mark places where prevent multi-soc in single | 3 | # ARCH_MX5/50/53 are left to mark places where prevent multi-soc in single |
3 | # image. So for most time, SOC_IMX50/51/53 should be used. | 4 | # image. So for most time, SOC_IMX50/51/53 should be used. |
4 | 5 | ||
5 | config ARCH_MX5 | 6 | config ARCH_MX51 |
6 | bool | 7 | bool |
7 | 8 | ||
8 | config ARCH_MX50 | 9 | config ARCH_MX50 |
@@ -19,7 +20,6 @@ config SOC_IMX50 | |||
19 | select ARCH_MXC_IOMUX_V3 | 20 | select ARCH_MXC_IOMUX_V3 |
20 | select ARCH_MXC_AUDMUX_V2 | 21 | select ARCH_MXC_AUDMUX_V2 |
21 | select ARCH_HAS_CPUFREQ | 22 | select ARCH_HAS_CPUFREQ |
22 | select ARCH_MX5 | ||
23 | select ARCH_MX50 | 23 | select ARCH_MX50 |
24 | 24 | ||
25 | config SOC_IMX51 | 25 | config SOC_IMX51 |
@@ -30,7 +30,7 @@ config SOC_IMX51 | |||
30 | select ARCH_MXC_IOMUX_V3 | 30 | select ARCH_MXC_IOMUX_V3 |
31 | select ARCH_MXC_AUDMUX_V2 | 31 | select ARCH_MXC_AUDMUX_V2 |
32 | select ARCH_HAS_CPUFREQ | 32 | select ARCH_HAS_CPUFREQ |
33 | select ARCH_MX5 | 33 | select ARCH_MX51 |
34 | 34 | ||
35 | config SOC_IMX53 | 35 | config SOC_IMX53 |
36 | bool | 36 | bool |
@@ -38,10 +38,8 @@ config SOC_IMX53 | |||
38 | select ARM_L1_CACHE_SHIFT_6 | 38 | select ARM_L1_CACHE_SHIFT_6 |
39 | select MXC_TZIC | 39 | select MXC_TZIC |
40 | select ARCH_MXC_IOMUX_V3 | 40 | select ARCH_MXC_IOMUX_V3 |
41 | select ARCH_MX5 | ||
42 | select ARCH_MX53 | 41 | select ARCH_MX53 |
43 | 42 | ||
44 | if ARCH_MX50_SUPPORTED | ||
45 | #comment "i.MX50 machines:" | 43 | #comment "i.MX50 machines:" |
46 | 44 | ||
47 | config MACH_MX50_RDP | 45 | config MACH_MX50_RDP |
@@ -56,9 +54,6 @@ config MACH_MX50_RDP | |||
56 | Include support for MX50 reference design platform (RDP) board. This | 54 | Include support for MX50 reference design platform (RDP) board. This |
57 | includes specific configurations for the board and its peripherals. | 55 | includes specific configurations for the board and its peripherals. |
58 | 56 | ||
59 | endif # ARCH_MX50_SUPPORTED | ||
60 | |||
61 | if ARCH_MX51 | ||
62 | comment "i.MX51 machines:" | 57 | comment "i.MX51 machines:" |
63 | 58 | ||
64 | config MACH_MX51_BABBAGE | 59 | config MACH_MX51_BABBAGE |
@@ -174,9 +169,6 @@ config MACH_MX51_EFIKASB | |||
174 | Include support for Genesi Efika Smartbook. This includes specific | 169 | Include support for Genesi Efika Smartbook. This includes specific |
175 | configurations for the board and its peripherals. | 170 | configurations for the board and its peripherals. |
176 | 171 | ||
177 | endif # ARCH_MX51 | ||
178 | |||
179 | if ARCH_MX53_SUPPORTED | ||
180 | comment "i.MX53 machines:" | 172 | comment "i.MX53 machines:" |
181 | 173 | ||
182 | config MACH_MX53_EVK | 174 | config MACH_MX53_EVK |
@@ -228,6 +220,4 @@ config MACH_MX53_ARD | |||
228 | Include support for MX53 ARD platform. This includes specific | 220 | Include support for MX53 ARD platform. This includes specific |
229 | configurations for the board and its peripherals. | 221 | configurations for the board and its peripherals. |
230 | 222 | ||
231 | endif # ARCH_MX53_SUPPORTED | ||
232 | |||
233 | endif | 223 | endif |
diff --git a/arch/arm/mach-mx5/board-cpuimx51.c b/arch/arm/mach-mx5/board-cpuimx51.c index 190a6e73ec7b..1fc110348040 100644 --- a/arch/arm/mach-mx5/board-cpuimx51.c +++ b/arch/arm/mach-mx5/board-cpuimx51.c | |||
@@ -294,6 +294,7 @@ MACHINE_START(EUKREA_CPUIMX51, "Eukrea CPUIMX51 Module") | |||
294 | .map_io = mx51_map_io, | 294 | .map_io = mx51_map_io, |
295 | .init_early = imx51_init_early, | 295 | .init_early = imx51_init_early, |
296 | .init_irq = mx51_init_irq, | 296 | .init_irq = mx51_init_irq, |
297 | .handle_irq = imx51_handle_irq, | ||
297 | .timer = &mxc_timer, | 298 | .timer = &mxc_timer, |
298 | .init_machine = eukrea_cpuimx51_init, | 299 | .init_machine = eukrea_cpuimx51_init, |
299 | MACHINE_END | 300 | MACHINE_END |
diff --git a/arch/arm/mach-mx5/board-cpuimx51sd.c b/arch/arm/mach-mx5/board-cpuimx51sd.c index 72410d201f88..52a11c1898e6 100644 --- a/arch/arm/mach-mx5/board-cpuimx51sd.c +++ b/arch/arm/mach-mx5/board-cpuimx51sd.c | |||
@@ -332,6 +332,7 @@ MACHINE_START(EUKREA_CPUIMX51SD, "Eukrea CPUIMX51SD") | |||
332 | .map_io = mx51_map_io, | 332 | .map_io = mx51_map_io, |
333 | .init_early = imx51_init_early, | 333 | .init_early = imx51_init_early, |
334 | .init_irq = mx51_init_irq, | 334 | .init_irq = mx51_init_irq, |
335 | .handle_irq = imx51_handle_irq, | ||
335 | .timer = &mxc_timer, | 336 | .timer = &mxc_timer, |
336 | .init_machine = eukrea_cpuimx51sd_init, | 337 | .init_machine = eukrea_cpuimx51sd_init, |
337 | MACHINE_END | 338 | MACHINE_END |
diff --git a/arch/arm/mach-mx5/board-mx50_rdp.c b/arch/arm/mach-mx5/board-mx50_rdp.c index 7de25c6712eb..fc3621d90bde 100644 --- a/arch/arm/mach-mx5/board-mx50_rdp.c +++ b/arch/arm/mach-mx5/board-mx50_rdp.c | |||
@@ -219,6 +219,7 @@ MACHINE_START(MX50_RDP, "Freescale MX50 Reference Design Platform") | |||
219 | .map_io = mx50_map_io, | 219 | .map_io = mx50_map_io, |
220 | .init_early = imx50_init_early, | 220 | .init_early = imx50_init_early, |
221 | .init_irq = mx50_init_irq, | 221 | .init_irq = mx50_init_irq, |
222 | .handle_irq = imx50_handle_irq, | ||
222 | .timer = &mx50_rdp_timer, | 223 | .timer = &mx50_rdp_timer, |
223 | .init_machine = mx50_rdp_board_init, | 224 | .init_machine = mx50_rdp_board_init, |
224 | MACHINE_END | 225 | MACHINE_END |
diff --git a/arch/arm/mach-mx5/board-mx51_3ds.c b/arch/arm/mach-mx5/board-mx51_3ds.c index f988be7324fb..05783906db2b 100644 --- a/arch/arm/mach-mx5/board-mx51_3ds.c +++ b/arch/arm/mach-mx5/board-mx51_3ds.c | |||
@@ -172,6 +172,7 @@ MACHINE_START(MX51_3DS, "Freescale MX51 3-Stack Board") | |||
172 | .map_io = mx51_map_io, | 172 | .map_io = mx51_map_io, |
173 | .init_early = imx51_init_early, | 173 | .init_early = imx51_init_early, |
174 | .init_irq = mx51_init_irq, | 174 | .init_irq = mx51_init_irq, |
175 | .handle_irq = imx51_handle_irq, | ||
175 | .timer = &mx51_3ds_timer, | 176 | .timer = &mx51_3ds_timer, |
176 | .init_machine = mx51_3ds_init, | 177 | .init_machine = mx51_3ds_init, |
177 | MACHINE_END | 178 | MACHINE_END |
diff --git a/arch/arm/mach-mx5/board-mx51_babbage.c b/arch/arm/mach-mx5/board-mx51_babbage.c index 622b2de7d0e8..5993208a8f00 100644 --- a/arch/arm/mach-mx5/board-mx51_babbage.c +++ b/arch/arm/mach-mx5/board-mx51_babbage.c | |||
@@ -418,6 +418,7 @@ MACHINE_START(MX51_BABBAGE, "Freescale MX51 Babbage Board") | |||
418 | .map_io = mx51_map_io, | 418 | .map_io = mx51_map_io, |
419 | .init_early = imx51_init_early, | 419 | .init_early = imx51_init_early, |
420 | .init_irq = mx51_init_irq, | 420 | .init_irq = mx51_init_irq, |
421 | .handle_irq = imx51_handle_irq, | ||
421 | .timer = &mx51_babbage_timer, | 422 | .timer = &mx51_babbage_timer, |
422 | .init_machine = mx51_babbage_init, | 423 | .init_machine = mx51_babbage_init, |
423 | MACHINE_END | 424 | MACHINE_END |
diff --git a/arch/arm/mach-mx5/board-mx51_efikamx.c b/arch/arm/mach-mx5/board-mx51_efikamx.c index d231b3e1e522..a9e48662cf75 100644 --- a/arch/arm/mach-mx5/board-mx51_efikamx.c +++ b/arch/arm/mach-mx5/board-mx51_efikamx.c | |||
@@ -161,6 +161,11 @@ static const struct gpio_led_platform_data | |||
161 | .num_leds = ARRAY_SIZE(mx51_efikamx_leds), | 161 | .num_leds = ARRAY_SIZE(mx51_efikamx_leds), |
162 | }; | 162 | }; |
163 | 163 | ||
164 | static struct esdhc_platform_data sd_pdata = { | ||
165 | .cd_type = ESDHC_CD_CONTROLLER, | ||
166 | .wp_type = ESDHC_WP_CONTROLLER, | ||
167 | }; | ||
168 | |||
164 | static struct gpio_keys_button mx51_efikamx_powerkey[] = { | 169 | static struct gpio_keys_button mx51_efikamx_powerkey[] = { |
165 | { | 170 | { |
166 | .code = KEY_POWER, | 171 | .code = KEY_POWER, |
@@ -237,9 +242,11 @@ static void __init mx51_efikamx_init(void) | |||
237 | 242 | ||
238 | /* on < 1.2 boards both SD controllers are used */ | 243 | /* on < 1.2 boards both SD controllers are used */ |
239 | if (system_rev < 0x12) { | 244 | if (system_rev < 0x12) { |
240 | imx51_add_sdhci_esdhc_imx(1, NULL); | 245 | imx51_add_sdhci_esdhc_imx(0, NULL); |
246 | imx51_add_sdhci_esdhc_imx(1, &sd_pdata); | ||
241 | mx51_efikamx_leds[2].default_trigger = "mmc1"; | 247 | mx51_efikamx_leds[2].default_trigger = "mmc1"; |
242 | } | 248 | } else |
249 | imx51_add_sdhci_esdhc_imx(0, &sd_pdata); | ||
243 | 250 | ||
244 | gpio_led_register_device(-1, &mx51_efikamx_leds_data); | 251 | gpio_led_register_device(-1, &mx51_efikamx_leds_data); |
245 | imx_add_gpio_keys(&mx51_efikamx_powerkey_data); | 252 | imx_add_gpio_keys(&mx51_efikamx_powerkey_data); |
@@ -282,6 +289,7 @@ MACHINE_START(MX51_EFIKAMX, "Genesi EfikaMX nettop") | |||
282 | .map_io = mx51_map_io, | 289 | .map_io = mx51_map_io, |
283 | .init_early = imx51_init_early, | 290 | .init_early = imx51_init_early, |
284 | .init_irq = mx51_init_irq, | 291 | .init_irq = mx51_init_irq, |
292 | .handle_irq = imx51_handle_irq, | ||
285 | .timer = &mx51_efikamx_timer, | 293 | .timer = &mx51_efikamx_timer, |
286 | .init_machine = mx51_efikamx_init, | 294 | .init_machine = mx51_efikamx_init, |
287 | MACHINE_END | 295 | MACHINE_END |
diff --git a/arch/arm/mach-mx5/board-mx51_efikasb.c b/arch/arm/mach-mx5/board-mx51_efikasb.c index d4e98f0e33f5..38c4a3e28d3c 100644 --- a/arch/arm/mach-mx5/board-mx51_efikasb.c +++ b/arch/arm/mach-mx5/board-mx51_efikasb.c | |||
@@ -54,6 +54,7 @@ | |||
54 | #define EFIKASB_RFKILL IMX_GPIO_NR(3, 1) | 54 | #define EFIKASB_RFKILL IMX_GPIO_NR(3, 1) |
55 | 55 | ||
56 | #define MX51_PAD_PWRKEY IOMUX_PAD(0x48c, 0x0f8, 1, 0x0, 0, PAD_CTL_PUS_100K_UP | PAD_CTL_PKE) | 56 | #define MX51_PAD_PWRKEY IOMUX_PAD(0x48c, 0x0f8, 1, 0x0, 0, PAD_CTL_PUS_100K_UP | PAD_CTL_PKE) |
57 | #define MX51_PAD_SD1_CD IOMUX_PAD(0x47c, 0x0e8, 1, __NA_, 0, MX51_ESDHC_PAD_CTRL) | ||
57 | 58 | ||
58 | static iomux_v3_cfg_t mx51efikasb_pads[] = { | 59 | static iomux_v3_cfg_t mx51efikasb_pads[] = { |
59 | /* USB HOST2 */ | 60 | /* USB HOST2 */ |
@@ -95,6 +96,8 @@ static iomux_v3_cfg_t mx51efikasb_pads[] = { | |||
95 | 96 | ||
96 | /* BT */ | 97 | /* BT */ |
97 | MX51_PAD_EIM_A17__GPIO2_11, | 98 | MX51_PAD_EIM_A17__GPIO2_11, |
99 | |||
100 | MX51_PAD_SD1_CD, | ||
98 | }; | 101 | }; |
99 | 102 | ||
100 | static int initialize_usbh2_port(struct platform_device *pdev) | 103 | static int initialize_usbh2_port(struct platform_device *pdev) |
@@ -180,6 +183,18 @@ static const struct gpio_keys_platform_data mx51_efikasb_keys_data __initconst = | |||
180 | .nbuttons = ARRAY_SIZE(mx51_efikasb_keys), | 183 | .nbuttons = ARRAY_SIZE(mx51_efikasb_keys), |
181 | }; | 184 | }; |
182 | 185 | ||
186 | static struct esdhc_platform_data sd0_pdata = { | ||
187 | #define EFIKASB_SD1_CD IMX_GPIO_NR(2, 27) | ||
188 | .cd_gpio = EFIKASB_SD1_CD, | ||
189 | .cd_type = ESDHC_CD_GPIO, | ||
190 | .wp_type = ESDHC_WP_CONTROLLER, | ||
191 | }; | ||
192 | |||
193 | static struct esdhc_platform_data sd1_pdata = { | ||
194 | .cd_type = ESDHC_CD_CONTROLLER, | ||
195 | .wp_type = ESDHC_WP_CONTROLLER, | ||
196 | }; | ||
197 | |||
183 | static struct regulator *pwgt1, *pwgt2; | 198 | static struct regulator *pwgt1, *pwgt2; |
184 | 199 | ||
185 | static void mx51_efikasb_power_off(void) | 200 | static void mx51_efikasb_power_off(void) |
@@ -248,7 +263,8 @@ static void __init efikasb_board_init(void) | |||
248 | 263 | ||
249 | mx51_efikasb_board_id(); | 264 | mx51_efikasb_board_id(); |
250 | mx51_efikasb_usb(); | 265 | mx51_efikasb_usb(); |
251 | imx51_add_sdhci_esdhc_imx(1, NULL); | 266 | imx51_add_sdhci_esdhc_imx(0, &sd0_pdata); |
267 | imx51_add_sdhci_esdhc_imx(1, &sd1_pdata); | ||
252 | 268 | ||
253 | gpio_led_register_device(-1, &mx51_efikasb_leds_data); | 269 | gpio_led_register_device(-1, &mx51_efikasb_leds_data); |
254 | imx_add_gpio_keys(&mx51_efikasb_keys_data); | 270 | imx_add_gpio_keys(&mx51_efikasb_keys_data); |
@@ -268,6 +284,7 @@ MACHINE_START(MX51_EFIKASB, "Genesi Efika Smartbook") | |||
268 | .map_io = mx51_map_io, | 284 | .map_io = mx51_map_io, |
269 | .init_early = imx51_init_early, | 285 | .init_early = imx51_init_early, |
270 | .init_irq = mx51_init_irq, | 286 | .init_irq = mx51_init_irq, |
287 | .handle_irq = imx51_handle_irq, | ||
271 | .init_machine = efikasb_board_init, | 288 | .init_machine = efikasb_board_init, |
272 | .timer = &mx51_efikasb_timer, | 289 | .timer = &mx51_efikasb_timer, |
273 | MACHINE_END | 290 | MACHINE_END |
diff --git a/arch/arm/mach-mx5/board-mx53_ard.c b/arch/arm/mach-mx5/board-mx53_ard.c index 9d844f102382..614edcb0aa7e 100644 --- a/arch/arm/mach-mx5/board-mx53_ard.c +++ b/arch/arm/mach-mx5/board-mx53_ard.c | |||
@@ -250,6 +250,7 @@ MACHINE_START(MX53_ARD, "Freescale MX53 ARD Board") | |||
250 | .map_io = mx53_map_io, | 250 | .map_io = mx53_map_io, |
251 | .init_early = imx53_init_early, | 251 | .init_early = imx53_init_early, |
252 | .init_irq = mx53_init_irq, | 252 | .init_irq = mx53_init_irq, |
253 | .handle_irq = imx53_handle_irq, | ||
253 | .timer = &mx53_ard_timer, | 254 | .timer = &mx53_ard_timer, |
254 | .init_machine = mx53_ard_board_init, | 255 | .init_machine = mx53_ard_board_init, |
255 | MACHINE_END | 256 | MACHINE_END |
diff --git a/arch/arm/mach-mx5/board-mx53_evk.c b/arch/arm/mach-mx5/board-mx53_evk.c index 1b417b06b736..6a3e6168e322 100644 --- a/arch/arm/mach-mx5/board-mx53_evk.c +++ b/arch/arm/mach-mx5/board-mx53_evk.c | |||
@@ -167,6 +167,7 @@ MACHINE_START(MX53_EVK, "Freescale MX53 EVK Board") | |||
167 | .map_io = mx53_map_io, | 167 | .map_io = mx53_map_io, |
168 | .init_early = imx53_init_early, | 168 | .init_early = imx53_init_early, |
169 | .init_irq = mx53_init_irq, | 169 | .init_irq = mx53_init_irq, |
170 | .handle_irq = imx53_handle_irq, | ||
170 | .timer = &mx53_evk_timer, | 171 | .timer = &mx53_evk_timer, |
171 | .init_machine = mx53_evk_board_init, | 172 | .init_machine = mx53_evk_board_init, |
172 | MACHINE_END | 173 | MACHINE_END |
diff --git a/arch/arm/mach-mx5/board-mx53_loco.c b/arch/arm/mach-mx5/board-mx53_loco.c index 940aac932fa3..0af2766f8610 100644 --- a/arch/arm/mach-mx5/board-mx53_loco.c +++ b/arch/arm/mach-mx5/board-mx53_loco.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/clk.h> | 22 | #include <linux/clk.h> |
23 | #include <linux/delay.h> | 23 | #include <linux/delay.h> |
24 | #include <linux/gpio.h> | 24 | #include <linux/gpio.h> |
25 | #include <linux/i2c.h> | ||
25 | 26 | ||
26 | #include <mach/common.h> | 27 | #include <mach/common.h> |
27 | #include <mach/hardware.h> | 28 | #include <mach/hardware.h> |
@@ -42,6 +43,7 @@ | |||
42 | #define LOCO_SD3_CD IMX_GPIO_NR(3, 11) | 43 | #define LOCO_SD3_CD IMX_GPIO_NR(3, 11) |
43 | #define LOCO_SD3_WP IMX_GPIO_NR(3, 12) | 44 | #define LOCO_SD3_WP IMX_GPIO_NR(3, 12) |
44 | #define LOCO_SD1_CD IMX_GPIO_NR(3, 13) | 45 | #define LOCO_SD1_CD IMX_GPIO_NR(3, 13) |
46 | #define LOCO_ACCEL_EN IMX_GPIO_NR(6, 14) | ||
45 | 47 | ||
46 | static iomux_v3_cfg_t mx53_loco_pads[] = { | 48 | static iomux_v3_cfg_t mx53_loco_pads[] = { |
47 | /* FEC */ | 49 | /* FEC */ |
@@ -64,6 +66,10 @@ static iomux_v3_cfg_t mx53_loco_pads[] = { | |||
64 | MX53_PAD_KEY_ROW0__AUDMUX_AUD5_TXD, | 66 | MX53_PAD_KEY_ROW0__AUDMUX_AUD5_TXD, |
65 | MX53_PAD_KEY_COL1__AUDMUX_AUD5_TXFS, | 67 | MX53_PAD_KEY_COL1__AUDMUX_AUD5_TXFS, |
66 | MX53_PAD_KEY_ROW1__AUDMUX_AUD5_RXD, | 68 | MX53_PAD_KEY_ROW1__AUDMUX_AUD5_RXD, |
69 | /* I2C1 */ | ||
70 | MX53_PAD_CSI0_DAT8__I2C1_SDA, | ||
71 | MX53_PAD_CSI0_DAT9__I2C1_SCL, | ||
72 | MX53_PAD_NANDF_CS1__GPIO6_14, /* Accelerometer Enable */ | ||
67 | /* I2C2 */ | 73 | /* I2C2 */ |
68 | MX53_PAD_KEY_COL3__I2C2_SCL, | 74 | MX53_PAD_KEY_COL3__I2C2_SCL, |
69 | MX53_PAD_KEY_ROW3__I2C2_SDA, | 75 | MX53_PAD_KEY_ROW3__I2C2_SDA, |
@@ -257,8 +263,15 @@ static const struct gpio_led_platform_data mx53loco_leds_data __initconst = { | |||
257 | .num_leds = ARRAY_SIZE(mx53loco_leds), | 263 | .num_leds = ARRAY_SIZE(mx53loco_leds), |
258 | }; | 264 | }; |
259 | 265 | ||
266 | static struct i2c_board_info mx53loco_i2c_devices[] = { | ||
267 | { | ||
268 | I2C_BOARD_INFO("mma8450", 0x1C), | ||
269 | }, | ||
270 | }; | ||
271 | |||
260 | static void __init mx53_loco_board_init(void) | 272 | static void __init mx53_loco_board_init(void) |
261 | { | 273 | { |
274 | int ret; | ||
262 | imx53_soc_init(); | 275 | imx53_soc_init(); |
263 | 276 | ||
264 | mxc_iomux_v3_setup_multiple_pads(mx53_loco_pads, | 277 | mxc_iomux_v3_setup_multiple_pads(mx53_loco_pads, |
@@ -267,6 +280,13 @@ static void __init mx53_loco_board_init(void) | |||
267 | mx53_loco_fec_reset(); | 280 | mx53_loco_fec_reset(); |
268 | imx53_add_fec(&mx53_loco_fec_data); | 281 | imx53_add_fec(&mx53_loco_fec_data); |
269 | imx53_add_imx2_wdt(0, NULL); | 282 | imx53_add_imx2_wdt(0, NULL); |
283 | |||
284 | ret = gpio_request_one(LOCO_ACCEL_EN, GPIOF_OUT_INIT_HIGH, "accel_en"); | ||
285 | if (ret) | ||
286 | pr_err("Cannot request ACCEL_EN pin: %d\n", ret); | ||
287 | |||
288 | i2c_register_board_info(0, mx53loco_i2c_devices, | ||
289 | ARRAY_SIZE(mx53loco_i2c_devices)); | ||
270 | imx53_add_imx_i2c(0, &mx53_loco_i2c_data); | 290 | imx53_add_imx_i2c(0, &mx53_loco_i2c_data); |
271 | imx53_add_imx_i2c(1, &mx53_loco_i2c_data); | 291 | imx53_add_imx_i2c(1, &mx53_loco_i2c_data); |
272 | imx53_add_sdhci_esdhc_imx(0, &mx53_loco_sd1_data); | 292 | imx53_add_sdhci_esdhc_imx(0, &mx53_loco_sd1_data); |
@@ -289,6 +309,7 @@ MACHINE_START(MX53_LOCO, "Freescale MX53 LOCO Board") | |||
289 | .map_io = mx53_map_io, | 309 | .map_io = mx53_map_io, |
290 | .init_early = imx53_init_early, | 310 | .init_early = imx53_init_early, |
291 | .init_irq = mx53_init_irq, | 311 | .init_irq = mx53_init_irq, |
312 | .handle_irq = imx53_handle_irq, | ||
292 | .timer = &mx53_loco_timer, | 313 | .timer = &mx53_loco_timer, |
293 | .init_machine = mx53_loco_board_init, | 314 | .init_machine = mx53_loco_board_init, |
294 | MACHINE_END | 315 | MACHINE_END |
diff --git a/arch/arm/mach-mx5/board-mx53_smd.c b/arch/arm/mach-mx5/board-mx53_smd.c index efcab68840ae..d12fd3043ba6 100644 --- a/arch/arm/mach-mx5/board-mx53_smd.c +++ b/arch/arm/mach-mx5/board-mx53_smd.c | |||
@@ -156,6 +156,7 @@ MACHINE_START(MX53_SMD, "Freescale MX53 SMD Board") | |||
156 | .map_io = mx53_map_io, | 156 | .map_io = mx53_map_io, |
157 | .init_early = imx53_init_early, | 157 | .init_early = imx53_init_early, |
158 | .init_irq = mx53_init_irq, | 158 | .init_irq = mx53_init_irq, |
159 | .handle_irq = imx53_handle_irq, | ||
159 | .timer = &mx53_smd_timer, | 160 | .timer = &mx53_smd_timer, |
160 | .init_machine = mx53_smd_board_init, | 161 | .init_machine = mx53_smd_board_init, |
161 | MACHINE_END | 162 | MACHINE_END |
diff --git a/arch/arm/mach-mx5/clock-mx51-mx53.c b/arch/arm/mach-mx5/clock-mx51-mx53.c index c2dafe406304..b94879e8679f 100644 --- a/arch/arm/mach-mx5/clock-mx51-mx53.c +++ b/arch/arm/mach-mx5/clock-mx51-mx53.c | |||
@@ -1573,9 +1573,8 @@ int __init mx51_clocks_init(unsigned long ckil, unsigned long osc, | |||
1573 | clk_enable(&main_bus_clk); | 1573 | clk_enable(&main_bus_clk); |
1574 | 1574 | ||
1575 | clk_enable(&iim_clk); | 1575 | clk_enable(&iim_clk); |
1576 | mx51_revision(); | 1576 | imx_print_silicon_rev("i.MX51", mx51_revision()); |
1577 | clk_disable(&iim_clk); | 1577 | clk_disable(&iim_clk); |
1578 | mx51_display_revision(); | ||
1579 | 1578 | ||
1580 | /* move usb_phy_clk to 24MHz */ | 1579 | /* move usb_phy_clk to 24MHz */ |
1581 | clk_set_parent(&usb_phy1_clk, &osc_clk); | 1580 | clk_set_parent(&usb_phy1_clk, &osc_clk); |
@@ -1617,9 +1616,8 @@ int __init mx53_clocks_init(unsigned long ckil, unsigned long osc, | |||
1617 | clk_enable(&main_bus_clk); | 1616 | clk_enable(&main_bus_clk); |
1618 | 1617 | ||
1619 | clk_enable(&iim_clk); | 1618 | clk_enable(&iim_clk); |
1620 | mx53_revision(); | 1619 | imx_print_silicon_rev("i.MX53", mx53_revision()); |
1621 | clk_disable(&iim_clk); | 1620 | clk_disable(&iim_clk); |
1622 | mx53_display_revision(); | ||
1623 | 1621 | ||
1624 | /* Set SDHC parents to be PLL2 */ | 1622 | /* Set SDHC parents to be PLL2 */ |
1625 | clk_set_parent(&esdhc1_clk, &pll2_sw_clk); | 1623 | clk_set_parent(&esdhc1_clk, &pll2_sw_clk); |
diff --git a/arch/arm/mach-mx5/cpu.c b/arch/arm/mach-mx5/cpu.c index 86f87da59c64..5c5328257dca 100644 --- a/arch/arm/mach-mx5/cpu.c +++ b/arch/arm/mach-mx5/cpu.c | |||
@@ -18,7 +18,7 @@ | |||
18 | #include <mach/hardware.h> | 18 | #include <mach/hardware.h> |
19 | #include <asm/io.h> | 19 | #include <asm/io.h> |
20 | 20 | ||
21 | static int cpu_silicon_rev = -1; | 21 | static int mx5_cpu_rev = -1; |
22 | 22 | ||
23 | #define IIM_SREV 0x24 | 23 | #define IIM_SREV 0x24 |
24 | #define MX50_HW_ADADIG_DIGPROG 0xB0 | 24 | #define MX50_HW_ADADIG_DIGPROG 0xB0 |
@@ -28,11 +28,14 @@ static int get_mx51_srev(void) | |||
28 | void __iomem *iim_base = MX51_IO_ADDRESS(MX51_IIM_BASE_ADDR); | 28 | void __iomem *iim_base = MX51_IO_ADDRESS(MX51_IIM_BASE_ADDR); |
29 | u32 rev = readl(iim_base + IIM_SREV) & 0xff; | 29 | u32 rev = readl(iim_base + IIM_SREV) & 0xff; |
30 | 30 | ||
31 | if (rev == 0x0) | 31 | switch (rev) { |
32 | case 0x0: | ||
32 | return IMX_CHIP_REVISION_2_0; | 33 | return IMX_CHIP_REVISION_2_0; |
33 | else if (rev == 0x10) | 34 | case 0x10: |
34 | return IMX_CHIP_REVISION_3_0; | 35 | return IMX_CHIP_REVISION_3_0; |
35 | return 0; | 36 | default: |
37 | return IMX_CHIP_REVISION_UNKNOWN; | ||
38 | } | ||
36 | } | 39 | } |
37 | 40 | ||
38 | /* | 41 | /* |
@@ -45,33 +48,13 @@ int mx51_revision(void) | |||
45 | if (!cpu_is_mx51()) | 48 | if (!cpu_is_mx51()) |
46 | return -EINVAL; | 49 | return -EINVAL; |
47 | 50 | ||
48 | if (cpu_silicon_rev == -1) | 51 | if (mx5_cpu_rev == -1) |
49 | cpu_silicon_rev = get_mx51_srev(); | 52 | mx5_cpu_rev = get_mx51_srev(); |
50 | 53 | ||
51 | return cpu_silicon_rev; | 54 | return mx5_cpu_rev; |
52 | } | 55 | } |
53 | EXPORT_SYMBOL(mx51_revision); | 56 | EXPORT_SYMBOL(mx51_revision); |
54 | 57 | ||
55 | void mx51_display_revision(void) | ||
56 | { | ||
57 | int rev; | ||
58 | char *srev; | ||
59 | rev = mx51_revision(); | ||
60 | |||
61 | switch (rev) { | ||
62 | case IMX_CHIP_REVISION_2_0: | ||
63 | srev = IMX_CHIP_REVISION_2_0_STRING; | ||
64 | break; | ||
65 | case IMX_CHIP_REVISION_3_0: | ||
66 | srev = IMX_CHIP_REVISION_3_0_STRING; | ||
67 | break; | ||
68 | default: | ||
69 | srev = IMX_CHIP_REVISION_UNKNOWN_STRING; | ||
70 | } | ||
71 | printk(KERN_INFO "CPU identified as i.MX51, silicon rev %s\n", srev); | ||
72 | } | ||
73 | EXPORT_SYMBOL(mx51_display_revision); | ||
74 | |||
75 | #ifdef CONFIG_NEON | 58 | #ifdef CONFIG_NEON |
76 | 59 | ||
77 | /* | 60 | /* |
@@ -121,10 +104,10 @@ int mx53_revision(void) | |||
121 | if (!cpu_is_mx53()) | 104 | if (!cpu_is_mx53()) |
122 | return -EINVAL; | 105 | return -EINVAL; |
123 | 106 | ||
124 | if (cpu_silicon_rev == -1) | 107 | if (mx5_cpu_rev == -1) |
125 | cpu_silicon_rev = get_mx53_srev(); | 108 | mx5_cpu_rev = get_mx53_srev(); |
126 | 109 | ||
127 | return cpu_silicon_rev; | 110 | return mx5_cpu_rev; |
128 | } | 111 | } |
129 | EXPORT_SYMBOL(mx53_revision); | 112 | EXPORT_SYMBOL(mx53_revision); |
130 | 113 | ||
@@ -134,7 +117,7 @@ static int get_mx50_srev(void) | |||
134 | u32 rev; | 117 | u32 rev; |
135 | 118 | ||
136 | if (!anatop) { | 119 | if (!anatop) { |
137 | cpu_silicon_rev = -EINVAL; | 120 | mx5_cpu_rev = -EINVAL; |
138 | return 0; | 121 | return 0; |
139 | } | 122 | } |
140 | 123 | ||
@@ -159,36 +142,13 @@ int mx50_revision(void) | |||
159 | if (!cpu_is_mx50()) | 142 | if (!cpu_is_mx50()) |
160 | return -EINVAL; | 143 | return -EINVAL; |
161 | 144 | ||
162 | if (cpu_silicon_rev == -1) | 145 | if (mx5_cpu_rev == -1) |
163 | cpu_silicon_rev = get_mx50_srev(); | 146 | mx5_cpu_rev = get_mx50_srev(); |
164 | 147 | ||
165 | return cpu_silicon_rev; | 148 | return mx5_cpu_rev; |
166 | } | 149 | } |
167 | EXPORT_SYMBOL(mx50_revision); | 150 | EXPORT_SYMBOL(mx50_revision); |
168 | 151 | ||
169 | void mx53_display_revision(void) | ||
170 | { | ||
171 | int rev; | ||
172 | char *srev; | ||
173 | rev = mx53_revision(); | ||
174 | |||
175 | switch (rev) { | ||
176 | case IMX_CHIP_REVISION_1_0: | ||
177 | srev = IMX_CHIP_REVISION_1_0_STRING; | ||
178 | break; | ||
179 | case IMX_CHIP_REVISION_2_0: | ||
180 | srev = IMX_CHIP_REVISION_2_0_STRING; | ||
181 | break; | ||
182 | case IMX_CHIP_REVISION_2_1: | ||
183 | srev = IMX_CHIP_REVISION_2_1_STRING; | ||
184 | break; | ||
185 | default: | ||
186 | srev = IMX_CHIP_REVISION_UNKNOWN_STRING; | ||
187 | } | ||
188 | printk(KERN_INFO "CPU identified as i.MX53, silicon rev %s\n", srev); | ||
189 | } | ||
190 | EXPORT_SYMBOL(mx53_display_revision); | ||
191 | |||
192 | static int __init post_cpu_init(void) | 152 | static int __init post_cpu_init(void) |
193 | { | 153 | { |
194 | unsigned int reg; | 154 | unsigned int reg; |
diff --git a/arch/arm/mach-mx5/devices-imx53.h b/arch/arm/mach-mx5/devices-imx53.h index 7fe5e462fdca..6e1e5d1f8c3a 100644 --- a/arch/arm/mach-mx5/devices-imx53.h +++ b/arch/arm/mach-mx5/devices-imx53.h | |||
@@ -44,4 +44,5 @@ extern const struct imx_imx_keypad_data imx53_imx_keypad_data; | |||
44 | extern const struct imx_pata_imx_data imx53_pata_imx_data; | 44 | extern const struct imx_pata_imx_data imx53_pata_imx_data; |
45 | #define imx53_add_pata_imx() \ | 45 | #define imx53_add_pata_imx() \ |
46 | imx_add_pata_imx(&imx53_pata_imx_data) | 46 | imx_add_pata_imx(&imx53_pata_imx_data) |
47 | |||
47 | extern struct platform_device *__init imx53_add_ahci_imx(void); | 48 | extern struct platform_device *__init imx53_add_ahci_imx(void); |
diff --git a/arch/arm/mach-mx5/mx51_efika.c b/arch/arm/mach-mx5/mx51_efika.c index 83c57027de75..b004e178417d 100644 --- a/arch/arm/mach-mx5/mx51_efika.c +++ b/arch/arm/mach-mx5/mx51_efika.c | |||
@@ -607,7 +607,6 @@ void __init efika_board_common_init(void) | |||
607 | ARRAY_SIZE(mx51efika_pads)); | 607 | ARRAY_SIZE(mx51efika_pads)); |
608 | imx51_add_imx_uart(0, &uart_pdata); | 608 | imx51_add_imx_uart(0, &uart_pdata); |
609 | mx51_efika_usb(); | 609 | mx51_efika_usb(); |
610 | imx51_add_sdhci_esdhc_imx(0, NULL); | ||
611 | 610 | ||
612 | /* FIXME: comes from original code. check this. */ | 611 | /* FIXME: comes from original code. check this. */ |
613 | if (mx51_revision() < IMX_CHIP_REVISION_2_0) | 612 | if (mx51_revision() < IMX_CHIP_REVISION_2_0) |