mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-19 13:41:31 +00:00
video: backlight: Parse PWM polarity cell
This patch enables the reading of the polarity cell from a PWM phandle and calls pwm_set_invert(). Not all platforms have polarity cell, so skip if it's not pressent. Signed-off-by: Stefan Mavrodiev <stefan@olimex.com> Reviewed-by: Anatolij Gustschin <agust@denx.de>
This commit is contained in:
parent
cf5eebeb18
commit
57e7775413
1 changed files with 11 additions and 0 deletions
|
@ -39,6 +39,12 @@ struct pwm_backlight_priv {
|
||||||
struct udevice *pwm;
|
struct udevice *pwm;
|
||||||
uint channel;
|
uint channel;
|
||||||
uint period_ns;
|
uint period_ns;
|
||||||
|
/*
|
||||||
|
* the polarity of one PWM
|
||||||
|
* 0: normal polarity
|
||||||
|
* 1: inverted polarity
|
||||||
|
*/
|
||||||
|
bool polarity;
|
||||||
u32 *levels;
|
u32 *levels;
|
||||||
int num_levels;
|
int num_levels;
|
||||||
uint default_level;
|
uint default_level;
|
||||||
|
@ -57,7 +63,10 @@ static int set_pwm(struct pwm_backlight_priv *priv)
|
||||||
(priv->max_level - priv->min_level + 1);
|
(priv->max_level - priv->min_level + 1);
|
||||||
ret = pwm_set_config(priv->pwm, priv->channel, priv->period_ns,
|
ret = pwm_set_config(priv->pwm, priv->channel, priv->period_ns,
|
||||||
duty_cycle);
|
duty_cycle);
|
||||||
|
if (ret)
|
||||||
|
return log_ret(ret);
|
||||||
|
|
||||||
|
ret = pwm_set_invert(priv->pwm, priv->channel, priv->polarity);
|
||||||
return log_ret(ret);
|
return log_ret(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -202,6 +211,8 @@ static int pwm_backlight_ofdata_to_platdata(struct udevice *dev)
|
||||||
return log_msg_ret("Not enough arguments to pwm\n", -EINVAL);
|
return log_msg_ret("Not enough arguments to pwm\n", -EINVAL);
|
||||||
priv->channel = args.args[0];
|
priv->channel = args.args[0];
|
||||||
priv->period_ns = args.args[1];
|
priv->period_ns = args.args[1];
|
||||||
|
if (args.args_count > 2)
|
||||||
|
priv->polarity = args.args[2];
|
||||||
|
|
||||||
index = dev_read_u32_default(dev, "default-brightness-level", 255);
|
index = dev_read_u32_default(dev, "default-brightness-level", 255);
|
||||||
cell = dev_read_prop(dev, "brightness-levels", &len);
|
cell = dev_read_prop(dev, "brightness-levels", &len);
|
||||||
|
|
Loading…
Add table
Reference in a new issue