diff options
Diffstat (limited to 'arch/arm/mach-omap2/board-4430sdp.c')
-rw-r--r-- | arch/arm/mach-omap2/board-4430sdp.c | 114 |
1 files changed, 25 insertions, 89 deletions
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c index 56702c5e577f..ae3153c5396d 100644 --- a/arch/arm/mach-omap2/board-4430sdp.c +++ b/arch/arm/mach-omap2/board-4430sdp.c | |||
@@ -42,6 +42,7 @@ | |||
42 | #include "hsmmc.h" | 42 | #include "hsmmc.h" |
43 | #include "timer-gp.h" | 43 | #include "timer-gp.h" |
44 | #include "control.h" | 44 | #include "control.h" |
45 | #include "common-board-devices.h" | ||
45 | 46 | ||
46 | #define ETH_KS8851_IRQ 34 | 47 | #define ETH_KS8851_IRQ 34 |
47 | #define ETH_KS8851_POWER_ON 48 | 48 | #define ETH_KS8851_POWER_ON 48 |
@@ -251,58 +252,22 @@ static struct spi_board_info sdp4430_spi_board_info[] __initdata = { | |||
251 | }, | 252 | }, |
252 | }; | 253 | }; |
253 | 254 | ||
255 | static struct gpio sdp4430_eth_gpios[] __initdata = { | ||
256 | { ETH_KS8851_POWER_ON, GPIOF_OUT_INIT_HIGH, "eth_power" }, | ||
257 | { ETH_KS8851_QUART, GPIOF_OUT_INIT_HIGH, "quart" }, | ||
258 | { ETH_KS8851_IRQ, GPIOF_IN, "eth_irq" }, | ||
259 | }; | ||
260 | |||
254 | static int omap_ethernet_init(void) | 261 | static int omap_ethernet_init(void) |
255 | { | 262 | { |
256 | int status; | 263 | int status; |
257 | 264 | ||
258 | /* Request of GPIO lines */ | 265 | /* Request of GPIO lines */ |
266 | status = gpio_request_array(sdp4430_eth_gpios, | ||
267 | ARRAY_SIZE(sdp4430_eth_gpios)); | ||
268 | if (status) | ||
269 | pr_err("Cannot request ETH GPIOs\n"); | ||
259 | 270 | ||
260 | status = gpio_request(ETH_KS8851_POWER_ON, "eth_power"); | ||
261 | if (status) { | ||
262 | pr_err("Cannot request GPIO %d\n", ETH_KS8851_POWER_ON); | ||
263 | return status; | ||
264 | } | ||
265 | |||
266 | status = gpio_request(ETH_KS8851_QUART, "quart"); | ||
267 | if (status) { | ||
268 | pr_err("Cannot request GPIO %d\n", ETH_KS8851_QUART); | ||
269 | goto error1; | ||
270 | } | ||
271 | |||
272 | status = gpio_request(ETH_KS8851_IRQ, "eth_irq"); | ||
273 | if (status) { | ||
274 | pr_err("Cannot request GPIO %d\n", ETH_KS8851_IRQ); | ||
275 | goto error2; | ||
276 | } | ||
277 | |||
278 | /* Configuration of requested GPIO lines */ | ||
279 | |||
280 | status = gpio_direction_output(ETH_KS8851_POWER_ON, 1); | ||
281 | if (status) { | ||
282 | pr_err("Cannot set output GPIO %d\n", ETH_KS8851_IRQ); | ||
283 | goto error3; | ||
284 | } | ||
285 | |||
286 | status = gpio_direction_output(ETH_KS8851_QUART, 1); | ||
287 | if (status) { | ||
288 | pr_err("Cannot set output GPIO %d\n", ETH_KS8851_QUART); | ||
289 | goto error3; | ||
290 | } | ||
291 | |||
292 | status = gpio_direction_input(ETH_KS8851_IRQ); | ||
293 | if (status) { | ||
294 | pr_err("Cannot set input GPIO %d\n", ETH_KS8851_IRQ); | ||
295 | goto error3; | ||
296 | } | ||
297 | |||
298 | return 0; | ||
299 | |||
300 | error3: | ||
301 | gpio_free(ETH_KS8851_IRQ); | ||
302 | error2: | ||
303 | gpio_free(ETH_KS8851_QUART); | ||
304 | error1: | ||
305 | gpio_free(ETH_KS8851_POWER_ON); | ||
306 | return status; | 271 | return status; |
307 | } | 272 | } |
308 | 273 | ||
@@ -575,14 +540,6 @@ static struct twl4030_platform_data sdp4430_twldata = { | |||
575 | .usb = &omap4_usbphy_data | 540 | .usb = &omap4_usbphy_data |
576 | }; | 541 | }; |
577 | 542 | ||
578 | static struct i2c_board_info __initdata sdp4430_i2c_boardinfo[] = { | ||
579 | { | ||
580 | I2C_BOARD_INFO("twl6030", 0x48), | ||
581 | .flags = I2C_CLIENT_WAKE, | ||
582 | .irq = OMAP44XX_IRQ_SYS_1N, | ||
583 | .platform_data = &sdp4430_twldata, | ||
584 | }, | ||
585 | }; | ||
586 | static struct i2c_board_info __initdata sdp4430_i2c_3_boardinfo[] = { | 543 | static struct i2c_board_info __initdata sdp4430_i2c_3_boardinfo[] = { |
587 | { | 544 | { |
588 | I2C_BOARD_INFO("tmp105", 0x48), | 545 | I2C_BOARD_INFO("tmp105", 0x48), |
@@ -598,12 +555,7 @@ static struct i2c_board_info __initdata sdp4430_i2c_4_boardinfo[] = { | |||
598 | }; | 555 | }; |
599 | static int __init omap4_i2c_init(void) | 556 | static int __init omap4_i2c_init(void) |
600 | { | 557 | { |
601 | /* | 558 | omap4_pmic_init("twl6030", &sdp4430_twldata); |
602 | * Phoenix Audio IC needs I2C1 to | ||
603 | * start with 400 KHz or less | ||
604 | */ | ||
605 | omap_register_i2c_bus(1, 400, sdp4430_i2c_boardinfo, | ||
606 | ARRAY_SIZE(sdp4430_i2c_boardinfo)); | ||
607 | omap_register_i2c_bus(2, 400, NULL, 0); | 559 | omap_register_i2c_bus(2, 400, NULL, 0); |
608 | omap_register_i2c_bus(3, 400, sdp4430_i2c_3_boardinfo, | 560 | omap_register_i2c_bus(3, 400, sdp4430_i2c_3_boardinfo, |
609 | ARRAY_SIZE(sdp4430_i2c_3_boardinfo)); | 561 | ARRAY_SIZE(sdp4430_i2c_3_boardinfo)); |
@@ -614,21 +566,13 @@ static int __init omap4_i2c_init(void) | |||
614 | 566 | ||
615 | static void __init omap_sfh7741prox_init(void) | 567 | static void __init omap_sfh7741prox_init(void) |
616 | { | 568 | { |
617 | int error; | 569 | int error; |
618 | 570 | ||
619 | error = gpio_request(OMAP4_SFH7741_ENABLE_GPIO, "sfh7741"); | 571 | error = gpio_request_one(OMAP4_SFH7741_ENABLE_GPIO, |
620 | if (error < 0) { | 572 | GPIOF_OUT_INIT_LOW, "sfh7741"); |
573 | if (error < 0) | ||
621 | pr_err("%s:failed to request GPIO %d, error %d\n", | 574 | pr_err("%s:failed to request GPIO %d, error %d\n", |
622 | __func__, OMAP4_SFH7741_ENABLE_GPIO, error); | 575 | __func__, OMAP4_SFH7741_ENABLE_GPIO, error); |
623 | return; | ||
624 | } | ||
625 | |||
626 | error = gpio_direction_output(OMAP4_SFH7741_ENABLE_GPIO , 0); | ||
627 | if (error < 0) { | ||
628 | pr_err("%s: GPIO configuration failed: GPIO %d,error %d\n", | ||
629 | __func__, OMAP4_SFH7741_ENABLE_GPIO, error); | ||
630 | gpio_free(OMAP4_SFH7741_ENABLE_GPIO); | ||
631 | } | ||
632 | } | 576 | } |
633 | 577 | ||
634 | static void sdp4430_hdmi_mux_init(void) | 578 | static void sdp4430_hdmi_mux_init(void) |
@@ -645,27 +589,19 @@ static void sdp4430_hdmi_mux_init(void) | |||
645 | OMAP_PIN_INPUT_PULLUP); | 589 | OMAP_PIN_INPUT_PULLUP); |
646 | } | 590 | } |
647 | 591 | ||
592 | static struct gpio sdp4430_hdmi_gpios[] = { | ||
593 | { HDMI_GPIO_HPD, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_hpd" }, | ||
594 | { HDMI_GPIO_LS_OE, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_ls_oe" }, | ||
595 | }; | ||
596 | |||
648 | static int sdp4430_panel_enable_hdmi(struct omap_dss_device *dssdev) | 597 | static int sdp4430_panel_enable_hdmi(struct omap_dss_device *dssdev) |
649 | { | 598 | { |
650 | int status; | 599 | int status; |
651 | 600 | ||
652 | status = gpio_request_one(HDMI_GPIO_HPD, GPIOF_OUT_INIT_HIGH, | 601 | status = gpio_request_array(sdp4430_hdmi_gpios, |
653 | "hdmi_gpio_hpd"); | 602 | ARRAY_SIZE(sdp4430_hdmi_gpios)); |
654 | if (status) { | 603 | if (status) |
655 | pr_err("Cannot request GPIO %d\n", HDMI_GPIO_HPD); | 604 | pr_err("%s: Cannot request HDMI GPIOs\n", __func__); |
656 | return status; | ||
657 | } | ||
658 | status = gpio_request_one(HDMI_GPIO_LS_OE, GPIOF_OUT_INIT_HIGH, | ||
659 | "hdmi_gpio_ls_oe"); | ||
660 | if (status) { | ||
661 | pr_err("Cannot request GPIO %d\n", HDMI_GPIO_LS_OE); | ||
662 | goto error1; | ||
663 | } | ||
664 | |||
665 | return 0; | ||
666 | |||
667 | error1: | ||
668 | gpio_free(HDMI_GPIO_HPD); | ||
669 | 605 | ||
670 | return status; | 606 | return status; |
671 | } | 607 | } |