aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-omap2/board-4430sdp.c18
-rw-r--r--arch/arm/mach-omap2/board-omap4panda.c18
-rw-r--r--arch/arm/mach-omap2/display.c4
3 files changed, 28 insertions, 12 deletions
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
index e1fe304ce361..0ce758edaad2 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -52,8 +52,9 @@
52#define ETH_KS8851_QUART 138 52#define ETH_KS8851_QUART 138
53#define OMAP4_SFH7741_SENSOR_OUTPUT_GPIO 184 53#define OMAP4_SFH7741_SENSOR_OUTPUT_GPIO 184
54#define OMAP4_SFH7741_ENABLE_GPIO 188 54#define OMAP4_SFH7741_ENABLE_GPIO 188
55#define HDMI_GPIO_HPD 60 /* Hot plug pin for HDMI */ 55#define HDMI_GPIO_CT_CP_HPD 60 /* HPD mode enable/disable */
56#define HDMI_GPIO_LS_OE 41 /* Level shifter for HDMI */ 56#define HDMI_GPIO_LS_OE 41 /* Level shifter for HDMI */
57#define HDMI_GPIO_HPD 63 /* Hotplug detect */
57#define DISPLAY_SEL_GPIO 59 /* LCD2/PicoDLP switch */ 58#define DISPLAY_SEL_GPIO 59 /* LCD2/PicoDLP switch */
58#define DLP_POWER_ON_GPIO 40 59#define DLP_POWER_ON_GPIO 40
59 60
@@ -596,8 +597,9 @@ static void __init omap_sfh7741prox_init(void)
596} 597}
597 598
598static struct gpio sdp4430_hdmi_gpios[] = { 599static struct gpio sdp4430_hdmi_gpios[] = {
599 { HDMI_GPIO_HPD, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_hpd" }, 600 { HDMI_GPIO_CT_CP_HPD, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_ct_cp_hpd" },
600 { HDMI_GPIO_LS_OE, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_ls_oe" }, 601 { HDMI_GPIO_LS_OE, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_ls_oe" },
602 { HDMI_GPIO_HPD, GPIOF_DIR_IN, "hdmi_gpio_hpd" },
601}; 603};
602 604
603static int sdp4430_panel_enable_hdmi(struct omap_dss_device *dssdev) 605static int sdp4430_panel_enable_hdmi(struct omap_dss_device *dssdev)
@@ -614,8 +616,7 @@ static int sdp4430_panel_enable_hdmi(struct omap_dss_device *dssdev)
614 616
615static void sdp4430_panel_disable_hdmi(struct omap_dss_device *dssdev) 617static void sdp4430_panel_disable_hdmi(struct omap_dss_device *dssdev)
616{ 618{
617 gpio_free(HDMI_GPIO_LS_OE); 619 gpio_free_array(sdp4430_hdmi_gpios, ARRAY_SIZE(sdp4430_hdmi_gpios));
618 gpio_free(HDMI_GPIO_HPD);
619} 620}
620 621
621static struct nokia_dsi_panel_data dsi1_panel = { 622static struct nokia_dsi_panel_data dsi1_panel = {
@@ -731,6 +732,10 @@ static void sdp4430_lcd_init(void)
731 pr_err("%s: Could not get lcd2_reset_gpio\n", __func__); 732 pr_err("%s: Could not get lcd2_reset_gpio\n", __func__);
732} 733}
733 734
735static struct omap_dss_hdmi_data sdp4430_hdmi_data = {
736 .hpd_gpio = HDMI_GPIO_HPD,
737};
738
734static struct omap_dss_device sdp4430_hdmi_device = { 739static struct omap_dss_device sdp4430_hdmi_device = {
735 .name = "hdmi", 740 .name = "hdmi",
736 .driver_name = "hdmi_panel", 741 .driver_name = "hdmi_panel",
@@ -738,6 +743,7 @@ static struct omap_dss_device sdp4430_hdmi_device = {
738 .platform_enable = sdp4430_panel_enable_hdmi, 743 .platform_enable = sdp4430_panel_enable_hdmi,
739 .platform_disable = sdp4430_panel_disable_hdmi, 744 .platform_disable = sdp4430_panel_disable_hdmi,
740 .channel = OMAP_DSS_CHANNEL_DIGIT, 745 .channel = OMAP_DSS_CHANNEL_DIGIT,
746 .data = &sdp4430_hdmi_data,
741}; 747};
742 748
743static struct picodlp_panel_data sdp4430_picodlp_pdata = { 749static struct picodlp_panel_data sdp4430_picodlp_pdata = {
@@ -822,6 +828,10 @@ static void omap_4430sdp_display_init(void)
822 omap_hdmi_init(OMAP_HDMI_SDA_SCL_EXTERNAL_PULLUP); 828 omap_hdmi_init(OMAP_HDMI_SDA_SCL_EXTERNAL_PULLUP);
823 else 829 else
824 omap_hdmi_init(0); 830 omap_hdmi_init(0);
831
832 omap_mux_init_gpio(HDMI_GPIO_LS_OE, OMAP_PIN_OUTPUT);
833 omap_mux_init_gpio(HDMI_GPIO_CT_CP_HPD, OMAP_PIN_OUTPUT);
834 omap_mux_init_gpio(HDMI_GPIO_HPD, OMAP_PIN_INPUT_PULLDOWN);
825} 835}
826 836
827#ifdef CONFIG_OMAP_MUX 837#ifdef CONFIG_OMAP_MUX
diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c
index 3e1c507fb01f..370c4b428888 100644
--- a/arch/arm/mach-omap2/board-omap4panda.c
+++ b/arch/arm/mach-omap2/board-omap4panda.c
@@ -51,8 +51,9 @@
51#define GPIO_HUB_NRESET 62 51#define GPIO_HUB_NRESET 62
52#define GPIO_WIFI_PMENA 43 52#define GPIO_WIFI_PMENA 43
53#define GPIO_WIFI_IRQ 53 53#define GPIO_WIFI_IRQ 53
54#define HDMI_GPIO_HPD 60 /* Hot plug pin for HDMI */ 54#define HDMI_GPIO_CT_CP_HPD 60 /* HPD mode enable/disable */
55#define HDMI_GPIO_LS_OE 41 /* Level shifter for HDMI */ 55#define HDMI_GPIO_LS_OE 41 /* Level shifter for HDMI */
56#define HDMI_GPIO_HPD 63 /* Hotplug detect */
56 57
57/* wl127x BT, FM, GPS connectivity chip */ 58/* wl127x BT, FM, GPS connectivity chip */
58static int wl1271_gpios[] = {46, -1, -1}; 59static int wl1271_gpios[] = {46, -1, -1};
@@ -479,8 +480,9 @@ int __init omap4_panda_dvi_init(void)
479} 480}
480 481
481static struct gpio panda_hdmi_gpios[] = { 482static struct gpio panda_hdmi_gpios[] = {
482 { HDMI_GPIO_HPD, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_hpd" }, 483 { HDMI_GPIO_CT_CP_HPD, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_ct_cp_hpd" },
483 { HDMI_GPIO_LS_OE, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_ls_oe" }, 484 { HDMI_GPIO_LS_OE, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_ls_oe" },
485 { HDMI_GPIO_HPD, GPIOF_DIR_IN, "hdmi_gpio_hpd" },
484}; 486};
485 487
486static int omap4_panda_panel_enable_hdmi(struct omap_dss_device *dssdev) 488static int omap4_panda_panel_enable_hdmi(struct omap_dss_device *dssdev)
@@ -497,10 +499,13 @@ static int omap4_panda_panel_enable_hdmi(struct omap_dss_device *dssdev)
497 499
498static void omap4_panda_panel_disable_hdmi(struct omap_dss_device *dssdev) 500static void omap4_panda_panel_disable_hdmi(struct omap_dss_device *dssdev)
499{ 501{
500 gpio_free(HDMI_GPIO_LS_OE); 502 gpio_free_array(panda_hdmi_gpios, ARRAY_SIZE(panda_hdmi_gpios));
501 gpio_free(HDMI_GPIO_HPD);
502} 503}
503 504
505static struct omap_dss_hdmi_data omap4_panda_hdmi_data = {
506 .hpd_gpio = HDMI_GPIO_HPD,
507};
508
504static struct omap_dss_device omap4_panda_hdmi_device = { 509static struct omap_dss_device omap4_panda_hdmi_device = {
505 .name = "hdmi", 510 .name = "hdmi",
506 .driver_name = "hdmi_panel", 511 .driver_name = "hdmi_panel",
@@ -508,6 +513,7 @@ static struct omap_dss_device omap4_panda_hdmi_device = {
508 .platform_enable = omap4_panda_panel_enable_hdmi, 513 .platform_enable = omap4_panda_panel_enable_hdmi,
509 .platform_disable = omap4_panda_panel_disable_hdmi, 514 .platform_disable = omap4_panda_panel_disable_hdmi,
510 .channel = OMAP_DSS_CHANNEL_DIGIT, 515 .channel = OMAP_DSS_CHANNEL_DIGIT,
516 .data = &omap4_panda_hdmi_data,
511}; 517};
512 518
513static struct omap_dss_device *omap4_panda_dss_devices[] = { 519static struct omap_dss_device *omap4_panda_dss_devices[] = {
@@ -539,6 +545,10 @@ void omap4_panda_display_init(void)
539 omap_hdmi_init(OMAP_HDMI_SDA_SCL_EXTERNAL_PULLUP); 545 omap_hdmi_init(OMAP_HDMI_SDA_SCL_EXTERNAL_PULLUP);
540 else 546 else
541 omap_hdmi_init(0); 547 omap_hdmi_init(0);
548
549 omap_mux_init_gpio(HDMI_GPIO_LS_OE, OMAP_PIN_OUTPUT);
550 omap_mux_init_gpio(HDMI_GPIO_CT_CP_HPD, OMAP_PIN_OUTPUT);
551 omap_mux_init_gpio(HDMI_GPIO_HPD, OMAP_PIN_INPUT_PULLDOWN);
542} 552}
543 553
544static void __init omap4_panda_init(void) 554static void __init omap4_panda_init(void)
diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c
index ffd9bd983023..d6e65e29d83d 100644
--- a/arch/arm/mach-omap2/display.c
+++ b/arch/arm/mach-omap2/display.c
@@ -102,12 +102,8 @@ static void omap4_hdmi_mux_pads(enum omap_hdmi_flags flags)
102 u32 reg; 102 u32 reg;
103 u16 control_i2c_1; 103 u16 control_i2c_1;
104 104
105 /* PAD0_HDMI_HPD_PAD1_HDMI_CEC */
106 omap_mux_init_signal("hdmi_hpd",
107 OMAP_PIN_INPUT_PULLUP);
108 omap_mux_init_signal("hdmi_cec", 105 omap_mux_init_signal("hdmi_cec",
109 OMAP_PIN_INPUT_PULLUP); 106 OMAP_PIN_INPUT_PULLUP);
110 /* PAD0_HDMI_DDC_SCL_PAD1_HDMI_DDC_SDA */
111 omap_mux_init_signal("hdmi_ddc_scl", 107 omap_mux_init_signal("hdmi_ddc_scl",
112 OMAP_PIN_INPUT_PULLUP); 108 OMAP_PIN_INPUT_PULLUP);
113 omap_mux_init_signal("hdmi_ddc_sda", 109 omap_mux_init_signal("hdmi_ddc_sda",