Lines Matching +full:gpio +full:- +full:backlight
13 #include <linux/backlight.h>
17 #include <linux/gpio.h>
75 struct backlight_device *backlight; member
81 return i2c_smbus_write_byte_data(bd->client, reg, data); in bd6107_write()
84 static int bd6107_backlight_update_status(struct backlight_device *backlight) in bd6107_backlight_update_status() argument
86 struct bd6107 *bd = bl_get_data(backlight); in bd6107_backlight_update_status()
87 int brightness = backlight->props.brightness; in bd6107_backlight_update_status()
89 if (backlight->props.power != FB_BLANK_UNBLANK || in bd6107_backlight_update_status()
90 backlight->props.fb_blank != FB_BLANK_UNBLANK || in bd6107_backlight_update_status()
91 backlight->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK)) in bd6107_backlight_update_status()
100 gpio_set_value(bd->pdata->reset, 0); in bd6107_backlight_update_status()
102 gpio_set_value(bd->pdata->reset, 1); in bd6107_backlight_update_status()
108 static int bd6107_backlight_check_fb(struct backlight_device *backlight, in bd6107_backlight_check_fb() argument
111 struct bd6107 *bd = bl_get_data(backlight); in bd6107_backlight_check_fb()
113 return bd->pdata->fbdev == NULL || bd->pdata->fbdev == info->dev; in bd6107_backlight_check_fb()
125 struct bd6107_platform_data *pdata = dev_get_platdata(&client->dev); in bd6107_probe()
126 struct backlight_device *backlight; in bd6107_probe() local
131 if (pdata == NULL || !pdata->reset) { in bd6107_probe()
132 dev_err(&client->dev, "No reset GPIO in platform data\n"); in bd6107_probe()
133 return -EINVAL; in bd6107_probe()
136 if (!i2c_check_functionality(client->adapter, in bd6107_probe()
138 dev_warn(&client->dev, in bd6107_probe()
140 return -EIO; in bd6107_probe()
143 bd = devm_kzalloc(&client->dev, sizeof(*bd), GFP_KERNEL); in bd6107_probe()
145 return -ENOMEM; in bd6107_probe()
147 bd->client = client; in bd6107_probe()
148 bd->pdata = pdata; in bd6107_probe()
150 ret = devm_gpio_request_one(&client->dev, pdata->reset, in bd6107_probe()
153 dev_err(&client->dev, "unable to request reset GPIO\n"); in bd6107_probe()
160 props.brightness = clamp_t(unsigned int, pdata->def_value, 0, in bd6107_probe()
163 backlight = devm_backlight_device_register(&client->dev, in bd6107_probe()
164 dev_name(&client->dev), in bd6107_probe()
165 &bd->client->dev, bd, in bd6107_probe()
167 if (IS_ERR(backlight)) { in bd6107_probe()
168 dev_err(&client->dev, "failed to register backlight\n"); in bd6107_probe()
169 return PTR_ERR(backlight); in bd6107_probe()
172 backlight_update_status(backlight); in bd6107_probe()
173 i2c_set_clientdata(client, backlight); in bd6107_probe()
180 struct backlight_device *backlight = i2c_get_clientdata(client); in bd6107_remove() local
182 backlight->props.brightness = 0; in bd6107_remove()
183 backlight_update_status(backlight); in bd6107_remove()
205 MODULE_DESCRIPTION("Rohm BD6107 Backlight Driver");