Some boards use a dedicated voltage regulator for this panel. Add & Document this related optional power-supply property and add its support in the driver.
Philippe Cornu (2): dt-bindings/display/panel: otm8009a: Add optional power-supply property drm/panel: otm8009a: Add support for the optional power-supply
.../bindings/display/panel/orisetech,otm8009a.txt | 2 ++ drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 17 +++++++++++++++++ 2 files changed, 19 insertions(+)
Some boards use a dedicated voltage regulator for this panel. Add & document this related optional power-supply property.
Signed-off-by: Philippe Cornu philippe.cornu@st.com --- Documentation/devicetree/bindings/display/panel/orisetech,otm8009a.txt | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/display/panel/orisetech,otm8009a.txt b/Documentation/devicetree/bindings/display/panel/orisetech,otm8009a.txt index 6862028e7b2e..203b03eefb68 100644 --- a/Documentation/devicetree/bindings/display/panel/orisetech,otm8009a.txt +++ b/Documentation/devicetree/bindings/display/panel/orisetech,otm8009a.txt @@ -9,6 +9,7 @@ Required properties:
Optional properties: - reset-gpios: a GPIO spec for the reset pin (active low). + - power-supply: phandle of the regulator that provides the supply voltage.
Example: &dsi { @@ -17,5 +18,6 @@ Example: compatible = "orisetech,otm8009a"; reg = <0>; reset-gpios = <&gpioh 7 GPIO_ACTIVE_LOW>; + power-supply = <&v1v8>; }; };
Reviewed-by: Yannick Fertré yannick.fertre@st.com
On 02/05/2018 10:45 AM, Philippe Cornu wrote:
Some boards use a dedicated voltage regulator for this panel. Add & document this related optional power-supply property.
Signed-off-by: Philippe Cornu philippe.cornu@st.com
Documentation/devicetree/bindings/display/panel/orisetech,otm8009a.txt | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/display/panel/orisetech,otm8009a.txt b/Documentation/devicetree/bindings/display/panel/orisetech,otm8009a.txt index 6862028e7b2e..203b03eefb68 100644 --- a/Documentation/devicetree/bindings/display/panel/orisetech,otm8009a.txt +++ b/Documentation/devicetree/bindings/display/panel/orisetech,otm8009a.txt @@ -9,6 +9,7 @@ Required properties:
Optional properties: - reset-gpios: a GPIO spec for the reset pin (active low).
- power-supply: phandle of the regulator that provides the supply voltage.
Example: &dsi {
@@ -17,5 +18,6 @@ Example: compatible = "orisetech,otm8009a"; reg = <0>; reset-gpios = <&gpioh 7 GPIO_ACTIVE_LOW>;
}; };power-supply = <&v1v8>;
On Mon, Feb 05, 2018 at 10:45:31AM +0100, Philippe Cornu wrote:
Some boards use a dedicated voltage regulator for this panel. Add & document this related optional power-supply property.
Signed-off-by: Philippe Cornu philippe.cornu@st.com
Documentation/devicetree/bindings/display/panel/orisetech,otm8009a.txt | 2 ++ 1 file changed, 2 insertions(+)
Reviewed-by: Rob Herring robh@kernel.org
Add support for the optional power-supply.
Note: A "dummy regulator" is returned by devm_regulator_get() if the optional regulator is not present in the device tree, simplifying the source code when enabling/disabling the regulator.
Signed-off-by: Philippe Cornu philippe.cornu@st.com --- drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)
diff --git a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c index 72530983d55d..90f1ae4af93c 100644 --- a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c +++ b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c @@ -11,6 +11,7 @@ #include <drm/drm_panel.h> #include <linux/backlight.h> #include <linux/gpio/consumer.h> +#include <linux/regulator/consumer.h> #include <video/mipi_display.h>
#define DRV_NAME "orisetech_otm8009a" @@ -62,6 +63,7 @@ struct otm8009a { struct drm_panel panel; struct backlight_device *bl_dev; struct gpio_desc *reset_gpio; + struct regulator *supply; bool prepared; bool enabled; }; @@ -279,6 +281,8 @@ static int otm8009a_unprepare(struct drm_panel *panel) msleep(20); }
+ regulator_disable(ctx->supply); + ctx->prepared = false;
return 0; @@ -292,6 +296,12 @@ static int otm8009a_prepare(struct drm_panel *panel) if (ctx->prepared) return 0;
+ ret = regulator_enable(ctx->supply); + if (ret < 0) { + DRM_ERROR("failed to enable supply: %d\n", ret); + return ret; + } + if (ctx->reset_gpio) { gpiod_set_value_cansleep(ctx->reset_gpio, 0); gpiod_set_value_cansleep(ctx->reset_gpio, 1); @@ -414,6 +424,13 @@ static int otm8009a_probe(struct mipi_dsi_device *dsi) return PTR_ERR(ctx->reset_gpio); }
+ ctx->supply = devm_regulator_get(dev, "power"); + if (IS_ERR(ctx->supply)) { + ret = PTR_ERR(ctx->supply); + dev_err(dev, "failed to request regulator: %d\n", ret); + return ret; + } + mipi_dsi_set_drvdata(dsi, ctx);
ctx->dev = dev;
Reviewed-by: Yannick Fertré yannick.fertre@st.com
On 02/05/2018 10:45 AM, Philippe Cornu wrote:
Add support for the optional power-supply.
Note: A "dummy regulator" is returned by devm_regulator_get() if the optional regulator is not present in the device tree, simplifying the source code when enabling/disabling the regulator.
Signed-off-by: Philippe Cornu philippe.cornu@st.com
drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)
diff --git a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c index 72530983d55d..90f1ae4af93c 100644 --- a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c +++ b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c @@ -11,6 +11,7 @@ #include <drm/drm_panel.h> #include <linux/backlight.h> #include <linux/gpio/consumer.h> +#include <linux/regulator/consumer.h> #include <video/mipi_display.h>
#define DRV_NAME "orisetech_otm8009a" @@ -62,6 +63,7 @@ struct otm8009a { struct drm_panel panel; struct backlight_device *bl_dev; struct gpio_desc *reset_gpio;
- struct regulator *supply; bool prepared; bool enabled; };
@@ -279,6 +281,8 @@ static int otm8009a_unprepare(struct drm_panel *panel) msleep(20); }
regulator_disable(ctx->supply);
ctx->prepared = false;
return 0;
@@ -292,6 +296,12 @@ static int otm8009a_prepare(struct drm_panel *panel) if (ctx->prepared) return 0;
- ret = regulator_enable(ctx->supply);
- if (ret < 0) {
DRM_ERROR("failed to enable supply: %d\n", ret);
return ret;
- }
- if (ctx->reset_gpio) { gpiod_set_value_cansleep(ctx->reset_gpio, 0); gpiod_set_value_cansleep(ctx->reset_gpio, 1);
@@ -414,6 +424,13 @@ static int otm8009a_probe(struct mipi_dsi_device *dsi) return PTR_ERR(ctx->reset_gpio); }
ctx->supply = devm_regulator_get(dev, "power");
if (IS_ERR(ctx->supply)) {
ret = PTR_ERR(ctx->supply);
dev_err(dev, "failed to request regulator: %d\n", ret);
return ret;
}
mipi_dsi_set_drvdata(dsi, ctx);
ctx->dev = dev;
Hi Thierry & David,
May I ask you please your feedback on this small patch? Many thanks,
Philippe :-)
On 02/05/2018 10:45 AM, Philippe Cornu wrote:
Add support for the optional power-supply.
Note: A "dummy regulator" is returned by devm_regulator_get() if the optional regulator is not present in the device tree, simplifying the source code when enabling/disabling the regulator.
Signed-off-by: Philippe Cornu philippe.cornu@st.com
drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)
diff --git a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c index 72530983d55d..90f1ae4af93c 100644 --- a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c +++ b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c @@ -11,6 +11,7 @@ #include <drm/drm_panel.h> #include <linux/backlight.h> #include <linux/gpio/consumer.h> +#include <linux/regulator/consumer.h> #include <video/mipi_display.h>
#define DRV_NAME "orisetech_otm8009a" @@ -62,6 +63,7 @@ struct otm8009a { struct drm_panel panel; struct backlight_device *bl_dev; struct gpio_desc *reset_gpio;
- struct regulator *supply; bool prepared; bool enabled; };
@@ -279,6 +281,8 @@ static int otm8009a_unprepare(struct drm_panel *panel) msleep(20); }
regulator_disable(ctx->supply);
ctx->prepared = false;
return 0;
@@ -292,6 +296,12 @@ static int otm8009a_prepare(struct drm_panel *panel) if (ctx->prepared) return 0;
- ret = regulator_enable(ctx->supply);
- if (ret < 0) {
DRM_ERROR("failed to enable supply: %d\n", ret);
return ret;
- }
- if (ctx->reset_gpio) { gpiod_set_value_cansleep(ctx->reset_gpio, 0); gpiod_set_value_cansleep(ctx->reset_gpio, 1);
@@ -414,6 +424,13 @@ static int otm8009a_probe(struct mipi_dsi_device *dsi) return PTR_ERR(ctx->reset_gpio); }
ctx->supply = devm_regulator_get(dev, "power");
if (IS_ERR(ctx->supply)) {
ret = PTR_ERR(ctx->supply);
dev_err(dev, "failed to request regulator: %d\n", ret);
return ret;
}
mipi_dsi_set_drvdata(dsi, ctx);
ctx->dev = dev;
On Mon, Feb 05, 2018 at 10:45:30AM +0100, Philippe Cornu wrote:
Some boards use a dedicated voltage regulator for this panel. Add & Document this related optional power-supply property and add its support in the driver.
Philippe Cornu (2): dt-bindings/display/panel: otm8009a: Add optional power-supply property drm/panel: otm8009a: Add support for the optional power-supply
.../bindings/display/panel/orisetech,otm8009a.txt | 2 ++ drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 17 +++++++++++++++++ 2 files changed, 19 insertions(+)
Applied, thanks.
Thierry
dri-devel@lists.freedesktop.org