aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-mx5/board-mx53_loco.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-mx5/board-mx53_loco.c')
-rw-r--r--arch/arm/mach-mx5/board-mx53_loco.c37
1 files changed, 34 insertions, 3 deletions
diff --git a/arch/arm/mach-mx5/board-mx53_loco.c b/arch/arm/mach-mx5/board-mx53_loco.c
index 1b947e8c9c0c..54be525e2bd7 100644
--- a/arch/arm/mach-mx5/board-mx53_loco.c
+++ b/arch/arm/mach-mx5/board-mx53_loco.c
@@ -38,6 +38,10 @@
38#define MX53_LOCO_UI1 IMX_GPIO_NR(2, 14) 38#define MX53_LOCO_UI1 IMX_GPIO_NR(2, 14)
39#define MX53_LOCO_UI2 IMX_GPIO_NR(2, 15) 39#define MX53_LOCO_UI2 IMX_GPIO_NR(2, 15)
40#define LOCO_FEC_PHY_RST IMX_GPIO_NR(7, 6) 40#define LOCO_FEC_PHY_RST IMX_GPIO_NR(7, 6)
41#define LOCO_LED IMX_GPIO_NR(7, 7)
42#define LOCO_SD3_CD IMX_GPIO_NR(3, 11)
43#define LOCO_SD3_WP IMX_GPIO_NR(3, 12)
44#define LOCO_SD1_CD IMX_GPIO_NR(3, 13)
41 45
42static iomux_v3_cfg_t mx53_loco_pads[] = { 46static iomux_v3_cfg_t mx53_loco_pads[] = {
43 /* FEC */ 47 /* FEC */
@@ -70,6 +74,8 @@ static iomux_v3_cfg_t mx53_loco_pads[] = {
70 MX53_PAD_SD1_DATA1__ESDHC1_DAT1, 74 MX53_PAD_SD1_DATA1__ESDHC1_DAT1,
71 MX53_PAD_SD1_DATA2__ESDHC1_DAT2, 75 MX53_PAD_SD1_DATA2__ESDHC1_DAT2,
72 MX53_PAD_SD1_DATA3__ESDHC1_DAT3, 76 MX53_PAD_SD1_DATA3__ESDHC1_DAT3,
77 /* SD1_CD */
78 MX53_PAD_EIM_DA13__GPIO3_13,
73 /* SD3 */ 79 /* SD3 */
74 MX53_PAD_PATA_DATA8__ESDHC3_DAT0, 80 MX53_PAD_PATA_DATA8__ESDHC3_DAT0,
75 MX53_PAD_PATA_DATA9__ESDHC3_DAT1, 81 MX53_PAD_PATA_DATA9__ESDHC3_DAT1,
@@ -163,7 +169,7 @@ static iomux_v3_cfg_t mx53_loco_pads[] = {
163 MX53_PAD_GPIO_7__SPDIF_PLOCK, 169 MX53_PAD_GPIO_7__SPDIF_PLOCK,
164 MX53_PAD_GPIO_17__SPDIF_OUT1, 170 MX53_PAD_GPIO_17__SPDIF_OUT1,
165 /* GPIO */ 171 /* GPIO */
166 MX53_PAD_PATA_DA_1__GPIO7_7, 172 MX53_PAD_PATA_DA_1__GPIO7_7, /* LED */
167 MX53_PAD_PATA_DA_2__GPIO7_8, 173 MX53_PAD_PATA_DA_2__GPIO7_8,
168 MX53_PAD_PATA_DATA5__GPIO2_5, 174 MX53_PAD_PATA_DATA5__GPIO2_5,
169 MX53_PAD_PATA_DATA6__GPIO2_6, 175 MX53_PAD_PATA_DATA6__GPIO2_6,
@@ -202,6 +208,15 @@ static const struct gpio_keys_platform_data loco_button_data __initconst = {
202 .nbuttons = ARRAY_SIZE(loco_buttons), 208 .nbuttons = ARRAY_SIZE(loco_buttons),
203}; 209};
204 210
211static const struct esdhc_platform_data mx53_loco_sd1_data __initconst = {
212 .cd_gpio = LOCO_SD1_CD,
213};
214
215static const struct esdhc_platform_data mx53_loco_sd3_data __initconst = {
216 .cd_gpio = LOCO_SD3_CD,
217 .wp_gpio = LOCO_SD3_WP,
218};
219
205static inline void mx53_loco_fec_reset(void) 220static inline void mx53_loco_fec_reset(void)
206{ 221{
207 int ret; 222 int ret;
@@ -225,8 +240,23 @@ static const struct imxi2c_platform_data mx53_loco_i2c_data __initconst = {
225 .bitrate = 100000, 240 .bitrate = 100000,
226}; 241};
227 242
243static const struct gpio_led mx53loco_leds[] __initconst = {
244 {
245 .name = "green",
246 .default_trigger = "heartbeat",
247 .gpio = LOCO_LED,
248 },
249};
250
251static const struct gpio_led_platform_data mx53loco_leds_data __initconst = {
252 .leds = mx53loco_leds,
253 .num_leds = ARRAY_SIZE(mx53loco_leds),
254};
255
228static void __init mx53_loco_board_init(void) 256static void __init mx53_loco_board_init(void)
229{ 257{
258 imx53_soc_init();
259
230 mxc_iomux_v3_setup_multiple_pads(mx53_loco_pads, 260 mxc_iomux_v3_setup_multiple_pads(mx53_loco_pads,
231 ARRAY_SIZE(mx53_loco_pads)); 261 ARRAY_SIZE(mx53_loco_pads));
232 imx53_add_imx_uart(0, NULL); 262 imx53_add_imx_uart(0, NULL);
@@ -235,9 +265,10 @@ static void __init mx53_loco_board_init(void)
235 imx53_add_imx2_wdt(0, NULL); 265 imx53_add_imx2_wdt(0, NULL);
236 imx53_add_imx_i2c(0, &mx53_loco_i2c_data); 266 imx53_add_imx_i2c(0, &mx53_loco_i2c_data);
237 imx53_add_imx_i2c(1, &mx53_loco_i2c_data); 267 imx53_add_imx_i2c(1, &mx53_loco_i2c_data);
238 imx53_add_sdhci_esdhc_imx(0, NULL); 268 imx53_add_sdhci_esdhc_imx(0, &mx53_loco_sd1_data);
239 imx53_add_sdhci_esdhc_imx(2, NULL); 269 imx53_add_sdhci_esdhc_imx(2, &mx53_loco_sd3_data);
240 imx_add_gpio_keys(&loco_button_data); 270 imx_add_gpio_keys(&loco_button_data);
271 gpio_led_register_device(-1, &mx53loco_leds_data);
241} 272}
242 273
243static void __init mx53_loco_timer_init(void) 274static void __init mx53_loco_timer_init(void)