HDMI:rk3288: fix pinctrl mode switch error.
authorZheng Yang <zhengyang@rock-chips.com>
Mon, 11 May 2015 11:21:12 +0000 (19:21 +0800)
committerZheng Yang <zhengyang@rock-chips.com>
Mon, 11 May 2015 11:21:12 +0000 (19:21 +0800)
For 3288, i25 pinctrl gpio mode name is "sleep",
not "gpio" any more.

Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
drivers/video/rockchip/hdmi/rockchip-hdmiv2/rockchip_hdmiv2.c

index fe23627ac46ca72d10bb0c51c44f7ab7c621827c..be008fb64d209586b375df27fcd7765da42f7cf5 100644 (file)
@@ -251,6 +251,9 @@ static int rockchip_hdmiv2_fb_event_notify(struct notifier_block *self,
        struct hdmi *hdmi = hdmi_dev->hdmi;
        struct delayed_work *delay_work;
        struct pinctrl_state *gpio_state;
+#ifdef CONFIG_PINCTRL
+       struct dev_pin_info *pins = hdmi_dev->dev->pins;
+#endif
 
        if (action == FB_EARLY_EVENT_BLANK) {
                switch (blank_mode) {
@@ -266,8 +269,18 @@ static int rockchip_hdmiv2_fb_event_notify(struct notifier_block *self,
                                if (delay_work)
                                        flush_delayed_work(delay_work);
                                rockchip_hdmiv2_clk_disable(hdmi_dev);
-                               gpio_state = pinctrl_lookup_state(hdmi_dev->dev->pins->p, "gpio");
-                               pinctrl_select_state(hdmi_dev->dev->pins->p, gpio_state);
+                               #ifdef CONFIG_PINCTRL
+                               if (hdmi_dev->soctype == HDMI_SOC_RK3288)
+                                       gpio_state =
+                                       pinctrl_lookup_state(pins->p,
+                                                            "sleep");
+                               else
+                                       gpio_state =
+                                       pinctrl_lookup_state(pins->p,
+                                                            "gpio");
+                               pinctrl_select_state(pins->p,
+                                                    gpio_state);
+                               #endif
                        }
                        break;
                }
@@ -276,8 +289,10 @@ static int rockchip_hdmiv2_fb_event_notify(struct notifier_block *self,
                case FB_BLANK_UNBLANK:
                        HDMIDBG("resume hdmi\n");
                        if (hdmi->sleep) {
-                               pinctrl_select_state(hdmi_dev->dev->pins->p,
-                                                    hdmi_dev->dev->pins->default_state);
+                               #ifdef CONFIG_PINCTRL
+                               pinctrl_select_state(pins->p,
+                                                    pins->default_state);
+                               #endif
                                rockchip_hdmiv2_clk_enable(hdmi_dev);
                                rockchip_hdmiv2_dev_initial(hdmi_dev);
                                if (hdmi->ops->hdcp_power_on_cb)