This patch enables the reading of the polarity cell from a PWM
phandle and calls pwm_set_invert().
---
 drivers/video/pwm_backlight.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/video/pwm_backlight.c b/drivers/video/pwm_backlight.c
index bd733f5f1c..0a08a76af1 100644
--- a/drivers/video/pwm_backlight.c
+++ b/drivers/video/pwm_backlight.c
@@ -39,6 +39,12 @@ struct pwm_backlight_priv {
        struct udevice *pwm;
        uint channel;
        uint period_ns;
+       /*
+        * the polarity of one PWM
+        * 0: normal polarity
+        * 1: inverted polarity
+        */
+       bool polarity;
        u32 *levels;
        int num_levels;
        uint default_level;
@@ -57,7 +63,10 @@ static int set_pwm(struct pwm_backlight_priv *priv)
                (priv->max_level - priv->min_level + 1);
        ret = pwm_set_config(priv->pwm, priv->channel, priv->period_ns,
                             duty_cycle);
+       if (ret)
+               return log_ret(ret);
 
+       ret = pwm_set_invert(priv->pwm, priv->channel, priv->polarity);
        return log_ret(ret);
 }
 
@@ -202,6 +211,7 @@ static int pwm_backlight_ofdata_to_platdata(struct udevice 
*dev)
                return log_msg_ret("Not enough arguments to pwm\n", -EINVAL);
        priv->channel = args.args[0];
        priv->period_ns = args.args[1];
+       priv->polarity = args.args[2];
 
        index = dev_read_u32_default(dev, "default-brightness-level", 255);
        cell = dev_read_prop(dev, "brightness-levels", &len);
-- 
2.17.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to