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
					
				|  | @ -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…
	
		Reference in New Issue