Lines Matching +full:brightness +full:- +full:level
1 // SPDX-License-Identifier: GPL-2.0+
21 * Otherwise the levels are an index into @levels (0..n-1).
25 * @pwm: PWM to use to change the backlight brightness
30 * @cur_level: Current level for the backlight (index or value)
31 * @default_level: Default level for the backlight (index or value)
32 * @min_level: Minimum level of the backlight (full off)
33 * @min_level: Maximum level of the backlight (full on)
56 duty_cycle = priv->period_ns * (priv->cur_level - priv->min_level) / in set_pwm()
57 (priv->max_level - priv->min_level + 1); in set_pwm()
58 ret = pwm_set_config(priv->pwm, priv->channel, priv->period_ns, in set_pwm()
71 if (priv->reg) { in enable_sequence()
75 plat = dev_get_uclass_platdata(priv->reg); in enable_sequence()
77 dev->name, priv->reg->name, plat->name); in enable_sequence()
78 ret = regulator_set_enable(priv->reg, true); in enable_sequence()
81 dev->name); in enable_sequence()
89 dm_gpio_set_value(&priv->enable, 1); in enable_sequence()
107 ret = pwm_set_enable(priv->pwm, priv->channel, true); in pwm_backlight_enable()
113 priv->enabled = true; in pwm_backlight_enable()
122 int level; in pwm_backlight_set_brightness() local
125 if (!priv->enabled) { in pwm_backlight_set_brightness()
135 level = priv->default_level; in pwm_backlight_set_brightness()
137 if (priv->levels) { in pwm_backlight_set_brightness()
138 level = priv->levels[percent * (priv->num_levels - 1) in pwm_backlight_set_brightness()
141 level = priv->min_level + in pwm_backlight_set_brightness()
142 (priv->max_level - priv->min_level) * in pwm_backlight_set_brightness()
146 priv->cur_level = level; in pwm_backlight_set_brightness()
151 if (!priv->enabled) { in pwm_backlight_set_brightness()
155 priv->enabled = true; in pwm_backlight_set_brightness()
158 dm_gpio_set_value(&priv->enable, 0); in pwm_backlight_set_brightness()
159 if (priv->reg) { in pwm_backlight_set_brightness()
160 ret = regulator_set_enable(priv->reg, false); in pwm_backlight_set_brightness()
164 priv->enabled = false; in pwm_backlight_set_brightness()
179 "power-supply", &priv->reg); in pwm_backlight_ofdata_to_platdata()
182 ret = gpio_request_by_name(dev, "enable-gpios", 0, &priv->enable, in pwm_backlight_ofdata_to_platdata()
186 if (ret != -ENOENT) in pwm_backlight_ofdata_to_platdata()
189 ret = dev_read_phandle_with_args(dev, "pwms", "#pwm-cells", 0, 0, in pwm_backlight_ofdata_to_platdata()
196 ret = uclass_get_device_by_ofnode(UCLASS_PWM, args.node, &priv->pwm); in pwm_backlight_ofdata_to_platdata()
202 return log_msg_ret("Not enough arguments to pwm\n", -EINVAL); in pwm_backlight_ofdata_to_platdata()
203 priv->channel = args.args[0]; in pwm_backlight_ofdata_to_platdata()
204 priv->period_ns = args.args[1]; in pwm_backlight_ofdata_to_platdata()
206 index = dev_read_u32_default(dev, "default-brightness-level", 255); in pwm_backlight_ofdata_to_platdata()
207 cell = dev_read_prop(dev, "brightness-levels", &len); in pwm_backlight_ofdata_to_platdata()
210 priv->levels = malloc(len); in pwm_backlight_ofdata_to_platdata()
211 if (!priv->levels) in pwm_backlight_ofdata_to_platdata()
212 return log_ret(-ENOMEM); in pwm_backlight_ofdata_to_platdata()
213 dev_read_u32_array(dev, "brightness-levels", priv->levels, in pwm_backlight_ofdata_to_platdata()
215 priv->num_levels = count; in pwm_backlight_ofdata_to_platdata()
216 priv->default_level = priv->levels[index]; in pwm_backlight_ofdata_to_platdata()
217 priv->max_level = priv->levels[count - 1]; in pwm_backlight_ofdata_to_platdata()
219 priv->default_level = index; in pwm_backlight_ofdata_to_platdata()
220 priv->max_level = 255; in pwm_backlight_ofdata_to_platdata()
222 priv->cur_level = priv->default_level; in pwm_backlight_ofdata_to_platdata()
240 { .compatible = "pwm-backlight" },