Lines Matching +full:lcd +full:- +full:bl

1 // SPDX-License-Identifier: GPL-2.0-only
3 * TI LP8788 MFD - backlight driver
31 #define DEFAULT_BL_NAME "lcd-backlight"
38 static int lp8788_backlight_configure(struct lp8788_bl *bl) in lp8788_backlight_configure() argument
45 ret = lp8788_write_byte(bl->lp, LP8788_BL_RAMP, val); in lp8788_backlight_configure()
56 return lp8788_write_byte(bl->lp, LP8788_BL_CONFIG, val); in lp8788_backlight_configure()
61 struct lp8788_bl *bl = bl_get_data(bl_dev); in lp8788_bl_update_status() local
63 if (bl_dev->props.state & BL_CORE_SUSPENDED) in lp8788_bl_update_status()
64 bl_dev->props.brightness = 0; in lp8788_bl_update_status()
66 lp8788_write_byte(bl->lp, LP8788_BL_BRIGHTNESS, bl_dev->props.brightness); in lp8788_bl_update_status()
76 static int lp8788_backlight_register(struct lp8788_bl *bl) in lp8788_backlight_register() argument
89 bl_dev = backlight_device_register(DEFAULT_BL_NAME, bl->lp->dev, bl, in lp8788_backlight_register()
94 bl->bl_dev = bl_dev; in lp8788_backlight_register()
99 static void lp8788_backlight_unregister(struct lp8788_bl *bl) in lp8788_backlight_unregister() argument
101 struct backlight_device *bl_dev = bl->bl_dev; in lp8788_backlight_unregister()
127 struct lp8788 *lp = dev_get_drvdata(pdev->dev.parent); in lp8788_backlight_probe()
128 struct lp8788_bl *bl; in lp8788_backlight_probe() local
131 bl = devm_kzalloc(lp->dev, sizeof(struct lp8788_bl), GFP_KERNEL); in lp8788_backlight_probe()
132 if (!bl) in lp8788_backlight_probe()
133 return -ENOMEM; in lp8788_backlight_probe()
135 bl->lp = lp; in lp8788_backlight_probe()
137 platform_set_drvdata(pdev, bl); in lp8788_backlight_probe()
139 ret = lp8788_backlight_configure(bl); in lp8788_backlight_probe()
141 dev_err(lp->dev, "backlight config err: %d\n", ret); in lp8788_backlight_probe()
145 ret = lp8788_backlight_register(bl); in lp8788_backlight_probe()
147 dev_err(lp->dev, "register backlight err: %d\n", ret); in lp8788_backlight_probe()
151 ret = sysfs_create_group(&pdev->dev.kobj, &lp8788_attr_group); in lp8788_backlight_probe()
153 dev_err(lp->dev, "register sysfs err: %d\n", ret); in lp8788_backlight_probe()
157 backlight_update_status(bl->bl_dev); in lp8788_backlight_probe()
162 lp8788_backlight_unregister(bl); in lp8788_backlight_probe()
169 struct lp8788_bl *bl = platform_get_drvdata(pdev); in lp8788_backlight_remove() local
170 struct backlight_device *bl_dev = bl->bl_dev; in lp8788_backlight_remove()
172 bl_dev->props.brightness = 0; in lp8788_backlight_remove()
174 sysfs_remove_group(&pdev->dev.kobj, &lp8788_attr_group); in lp8788_backlight_remove()
175 lp8788_backlight_unregister(bl); in lp8788_backlight_remove()
190 MODULE_ALIAS("platform:lp8788-backlight");