• Home
  • Raw
  • Download

Lines Matching +full:gpio +full:- +full:backlight

2  * gpio_backlight.c - Simple GPIO-controlled backlight
9 #include <linux/backlight.h>
12 #include <linux/gpio.h> /* Only for legacy support */
13 #include <linux/gpio/consumer.h>
34 int brightness = bl->props.brightness; in gpio_backlight_update_status()
36 if (bl->props.power != FB_BLANK_UNBLANK || in gpio_backlight_update_status()
37 bl->props.fb_blank != FB_BLANK_UNBLANK || in gpio_backlight_update_status()
38 bl->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK)) in gpio_backlight_update_status()
41 gpiod_set_value_cansleep(gbl->gpiod, brightness); in gpio_backlight_update_status()
51 return gbl->fbdev == NULL || gbl->fbdev == info->dev; in gpio_backlight_check_fb()
63 struct device *dev = &pdev->dev; in gpio_backlight_probe_dt()
64 struct device_node *np = dev->of_node; in gpio_backlight_probe_dt()
68 gbl->def_value = of_property_read_bool(np, "default-on"); in gpio_backlight_probe_dt()
69 flags = gbl->def_value ? GPIOD_OUT_HIGH : GPIOD_OUT_LOW; in gpio_backlight_probe_dt()
71 gbl->gpiod = devm_gpiod_get(dev, NULL, flags); in gpio_backlight_probe_dt()
72 if (IS_ERR(gbl->gpiod)) { in gpio_backlight_probe_dt()
73 ret = PTR_ERR(gbl->gpiod); in gpio_backlight_probe_dt()
75 if (ret != -EPROBE_DEFER) { in gpio_backlight_probe_dt()
88 dev_get_platdata(&pdev->dev); in gpio_backlight_probe()
92 struct device_node *np = pdev->dev.of_node; in gpio_backlight_probe()
96 dev_err(&pdev->dev, in gpio_backlight_probe()
98 return -ENODEV; in gpio_backlight_probe()
101 gbl = devm_kzalloc(&pdev->dev, sizeof(*gbl), GFP_KERNEL); in gpio_backlight_probe()
103 return -ENOMEM; in gpio_backlight_probe()
105 gbl->dev = &pdev->dev; in gpio_backlight_probe()
113 * Legacy platform data GPIO retrieveal. Do not expand in gpio_backlight_probe()
119 gbl->fbdev = pdata->fbdev; in gpio_backlight_probe()
120 gbl->def_value = pdata->def_value; in gpio_backlight_probe()
121 flags |= gbl->def_value ? GPIOF_INIT_HIGH : GPIOF_INIT_LOW; in gpio_backlight_probe()
123 ret = devm_gpio_request_one(gbl->dev, pdata->gpio, flags, in gpio_backlight_probe()
124 pdata ? pdata->name : "backlight"); in gpio_backlight_probe()
126 dev_err(&pdev->dev, "unable to request GPIO\n"); in gpio_backlight_probe()
129 gbl->gpiod = gpio_to_desc(pdata->gpio); in gpio_backlight_probe()
130 if (!gbl->gpiod) in gpio_backlight_probe()
131 return -EINVAL; in gpio_backlight_probe()
137 bl = devm_backlight_device_register(&pdev->dev, dev_name(&pdev->dev), in gpio_backlight_probe()
138 &pdev->dev, gbl, &gpio_backlight_ops, in gpio_backlight_probe()
141 dev_err(&pdev->dev, "failed to register backlight\n"); in gpio_backlight_probe()
145 bl->props.brightness = gbl->def_value; in gpio_backlight_probe()
154 { .compatible = "gpio-backlight" },
163 .name = "gpio-backlight",
172 MODULE_DESCRIPTION("GPIO-based Backlight Driver");
174 MODULE_ALIAS("platform:gpio-backlight");