aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/board-4430sdp.c
diff options
context:
space:
mode:
authorMythri P K <mythripk@ti.com>2011-03-08 08:20:09 -0500
committerTomi Valkeinen <tomi.valkeinen@ti.com>2011-03-16 02:15:50 -0400
commit0425b48b3f24b0b2b1f9b4f24fd491b70a8f911c (patch)
treeab989eab3e711edb72feaea2e9c724e562e29937 /arch/arm/mach-omap2/board-4430sdp.c
parentadbc2feee11aef2b3b0f4eff427d2ea5c211e798 (diff)
OMAP4: HDMI: Add HDMI structure in the board file for OMAP4 SDP
Adding board file structure for display which adds the display structure with HDMI as the default driver when the display init is called. HDMI GPIO configurations are also done in this file. Signed-off-by: Mythri P K <mythripk@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'arch/arm/mach-omap2/board-4430sdp.c')
-rw-r--r--arch/arm/mach-omap2/board-4430sdp.c75
1 files changed, 75 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
index 85805d432e38..f5fcc5f2258d 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -36,6 +36,7 @@
36#include <plat/usb.h> 36#include <plat/usb.h>
37#include <plat/mmc.h> 37#include <plat/mmc.h>
38#include <plat/omap4-keypad.h> 38#include <plat/omap4-keypad.h>
39#include <plat/display.h>
39 40
40#include "mux.h" 41#include "mux.h"
41#include "hsmmc.h" 42#include "hsmmc.h"
@@ -47,6 +48,8 @@
47#define ETH_KS8851_QUART 138 48#define ETH_KS8851_QUART 138
48#define OMAP4_SFH7741_SENSOR_OUTPUT_GPIO 184 49#define OMAP4_SFH7741_SENSOR_OUTPUT_GPIO 184
49#define OMAP4_SFH7741_ENABLE_GPIO 188 50#define OMAP4_SFH7741_ENABLE_GPIO 188
51#define HDMI_GPIO_HPD 60 /* Hot plug pin for HDMI */
52#define HDMI_GPIO_LS_OE 41 /* Level shifter for HDMI */
50 53
51static const int sdp4430_keymap[] = { 54static const int sdp4430_keymap[] = {
52 KEY(0, 0, KEY_E), 55 KEY(0, 0, KEY_E),
@@ -620,6 +623,76 @@ static void __init omap_sfh7741prox_init(void)
620 } 623 }
621} 624}
622 625
626static void sdp4430_hdmi_mux_init(void)
627{
628 /* PAD0_HDMI_HPD_PAD1_HDMI_CEC */
629 omap_mux_init_signal("hdmi_hpd",
630 OMAP_PIN_INPUT_PULLUP);
631 omap_mux_init_signal("hdmi_cec",
632 OMAP_PIN_INPUT_PULLUP);
633 /* PAD0_HDMI_DDC_SCL_PAD1_HDMI_DDC_SDA */
634 omap_mux_init_signal("hdmi_ddc_scl",
635 OMAP_PIN_INPUT_PULLUP);
636 omap_mux_init_signal("hdmi_ddc_sda",
637 OMAP_PIN_INPUT_PULLUP);
638}
639
640static int sdp4430_panel_enable_hdmi(struct omap_dss_device *dssdev)
641{
642 int status;
643
644 status = gpio_request_one(HDMI_GPIO_HPD, GPIOF_OUT_INIT_HIGH,
645 "hdmi_gpio_hpd");
646 if (status) {
647 pr_err("Cannot request GPIO %d\n", HDMI_GPIO_HPD);
648 return status;
649 }
650 status = gpio_request_one(HDMI_GPIO_LS_OE, GPIOF_OUT_INIT_HIGH,
651 "hdmi_gpio_ls_oe");
652 if (status) {
653 pr_err("Cannot request GPIO %d\n", HDMI_GPIO_LS_OE);
654 goto error1;
655 }
656
657 return 0;
658
659error1:
660 gpio_free(HDMI_GPIO_HPD);
661
662 return status;
663}
664
665static void sdp4430_panel_disable_hdmi(struct omap_dss_device *dssdev)
666{
667 gpio_free(HDMI_GPIO_LS_OE);
668 gpio_free(HDMI_GPIO_HPD);
669}
670
671static struct omap_dss_device sdp4430_hdmi_device = {
672 .name = "hdmi",
673 .driver_name = "hdmi_panel",
674 .type = OMAP_DISPLAY_TYPE_HDMI,
675 .platform_enable = sdp4430_panel_enable_hdmi,
676 .platform_disable = sdp4430_panel_disable_hdmi,
677 .channel = OMAP_DSS_CHANNEL_DIGIT,
678};
679
680static struct omap_dss_device *sdp4430_dss_devices[] = {
681 &sdp4430_hdmi_device,
682};
683
684static struct omap_dss_board_info sdp4430_dss_data = {
685 .num_devices = ARRAY_SIZE(sdp4430_dss_devices),
686 .devices = sdp4430_dss_devices,
687 .default_device = &sdp4430_hdmi_device,
688};
689
690void omap_4430sdp_display_init(void)
691{
692 sdp4430_hdmi_mux_init();
693 omap_display_init(&sdp4430_dss_data);
694}
695
623#ifdef CONFIG_OMAP_MUX 696#ifdef CONFIG_OMAP_MUX
624static struct omap_board_mux board_mux[] __initdata = { 697static struct omap_board_mux board_mux[] __initdata = {
625 OMAP4_MUX(USBB2_ULPITLL_CLK, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), 698 OMAP4_MUX(USBB2_ULPITLL_CLK, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
@@ -661,6 +734,8 @@ static void __init omap_4430sdp_init(void)
661 status = omap4_keyboard_init(&sdp4430_keypad_data); 734 status = omap4_keyboard_init(&sdp4430_keypad_data);
662 if (status) 735 if (status)
663 pr_err("Keypad initialization failed: %d\n", status); 736 pr_err("Keypad initialization failed: %d\n", status);
737
738 omap_4430sdp_display_init();
664} 739}
665 740
666static void __init omap_4430sdp_map_io(void) 741static void __init omap_4430sdp_map_io(void)