Lines Matching +full:bl +full:- +full:name

1 // SPDX-License-Identifier: GPL-2.0-only
26 static int wm831x_backlight_set(struct backlight_device *bl, int brightness) in wm831x_backlight_set() argument
28 struct wm831x_backlight_data *data = bl_get_data(bl); in wm831x_backlight_set()
29 struct wm831x *wm831x = data->wm831x; in wm831x_backlight_set()
30 int power_up = !data->current_brightness && brightness; in wm831x_backlight_set()
31 int power_down = data->current_brightness && !brightness; in wm831x_backlight_set()
36 ret = wm831x_set_bits(wm831x, data->isink_reg, in wm831x_backlight_set()
41 /* Enable the DC-DC */ in wm831x_backlight_set()
56 ret = wm831x_set_bits(wm831x, data->isink_reg, in wm831x_backlight_set()
63 ret = wm831x_set_bits(wm831x, data->isink_reg, in wm831x_backlight_set()
70 ret = wm831x_set_bits(wm831x, data->isink_reg, in wm831x_backlight_set()
76 data->current_brightness = brightness; in wm831x_backlight_set()
86 wm831x_set_bits(wm831x, data->isink_reg, WM831X_CS1_ENA, 0); in wm831x_backlight_set()
92 static int wm831x_backlight_update_status(struct backlight_device *bl) in wm831x_backlight_update_status() argument
94 return wm831x_backlight_set(bl, backlight_get_brightness(bl)); in wm831x_backlight_update_status()
97 static int wm831x_backlight_get_brightness(struct backlight_device *bl) in wm831x_backlight_get_brightness() argument
99 struct wm831x_backlight_data *data = bl_get_data(bl); in wm831x_backlight_get_brightness()
101 return data->current_brightness; in wm831x_backlight_get_brightness()
112 struct wm831x *wm831x = dev_get_drvdata(pdev->dev.parent); in wm831x_backlight_probe()
113 struct wm831x_pdata *wm831x_pdata = dev_get_platdata(pdev->dev.parent); in wm831x_backlight_probe()
116 struct backlight_device *bl; in wm831x_backlight_probe() local
122 pdata = wm831x_pdata->backlight; in wm831x_backlight_probe()
127 dev_err(&pdev->dev, "No platform data supplied\n"); in wm831x_backlight_probe()
128 return -EINVAL; in wm831x_backlight_probe()
133 if (wm831x_isinkv_values[i] > pdata->max_uA) in wm831x_backlight_probe()
138 dev_err(&pdev->dev, "Invalid max_uA: %duA\n", pdata->max_uA); in wm831x_backlight_probe()
139 return -EINVAL; in wm831x_backlight_probe()
141 max_isel = i - 1; in wm831x_backlight_probe()
143 if (pdata->max_uA != wm831x_isinkv_values[max_isel]) in wm831x_backlight_probe()
144 dev_warn(&pdev->dev, in wm831x_backlight_probe()
146 wm831x_isinkv_values[max_isel], pdata->max_uA); in wm831x_backlight_probe()
148 switch (pdata->isink) { in wm831x_backlight_probe()
158 dev_err(&pdev->dev, "Invalid ISINK %d\n", pdata->isink); in wm831x_backlight_probe()
159 return -EINVAL; in wm831x_backlight_probe()
174 data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL); in wm831x_backlight_probe()
176 return -ENOMEM; in wm831x_backlight_probe()
178 data->wm831x = wm831x; in wm831x_backlight_probe()
179 data->current_brightness = 0; in wm831x_backlight_probe()
180 data->isink_reg = isink_reg; in wm831x_backlight_probe()
185 bl = devm_backlight_device_register(&pdev->dev, "wm831x", &pdev->dev, in wm831x_backlight_probe()
187 if (IS_ERR(bl)) { in wm831x_backlight_probe()
188 dev_err(&pdev->dev, "failed to register backlight\n"); in wm831x_backlight_probe()
189 return PTR_ERR(bl); in wm831x_backlight_probe()
192 bl->props.brightness = max_isel; in wm831x_backlight_probe()
194 platform_set_drvdata(pdev, bl); in wm831x_backlight_probe()
199 backlight_update_status(bl); in wm831x_backlight_probe()
206 .name = "wm831x-backlight",
216 MODULE_ALIAS("platform:wm831x-backlight");