Hi Stephane, On Fri, 2015-05-29 at 09:49 -0400, Stephane Viau wrote: > Some targets (eg: msm8994) use the pinctrl framework to configure > interface pins. This change adds support for initialization and > pinctrl active/sleep state control for the HDMI driver. > > Signed-off-by: Stephane Viau <sviau at codeaurora.org> > --- > drivers/gpu/drm/msm/hdmi/hdmi.c | 25 +++++++++++++++++++++++++ > drivers/gpu/drm/msm/hdmi/hdmi.h | 5 +++++ > drivers/gpu/drm/msm/hdmi/hdmi_connector.c | 31 > +++++++++++++++++++++++++++++++ > 3 files changed, 61 insertions(+) >
No devicetree binding documentation? > static int hdmi_bind(struct device *dev, struct device *master, void *data) > @@ -365,6 +379,7 @@ static int hdmi_bind(struct device *dev, struct device > *master, void *data) > #ifdef CONFIG_OF > struct device_node *of_node = dev->of_node; > const struct of_device_id *match; > + struct pinctrl *pinctrl; > > match = of_match_node(dt_match, of_node); > if (match && match->data) { > @@ -383,6 +398,16 @@ static int hdmi_bind(struct device *dev, struct device > *master, void *data) > hdmi_cfg->mux_sel_gpio = get_gpio(dev, of_node, > "qcom,hdmi-tx-mux-sel"); > hdmi_cfg->mux_lpm_gpio = get_gpio(dev, of_node, > "qcom,hdmi-tx-mux-lpm"); > > + /* not all targets have pinctrl, do not fail in case of error: */ > + pinctrl = devm_pinctrl_get(dev); > + if (IS_ERR_OR_NULL(pinctrl)) { > + dev_warn(dev, "cannot get pinctrl: %s\n", of_node->name); > + } else { > + hdmi_cfg->active = get_pinctrl_state(dev, pinctrl, > "hdmi_active"); > + hdmi_cfg->sleep = get_pinctrl_state(dev, pinctrl, > "hdmi_sleep"); How this differs from PINCTRL_STATE_DEFAULT and PINCTRL_STATE_SLEEP? Regards, Ivan