Lines Matching refs:led
52 static void max8997_led_set_mode(struct max8997_led *led, in max8997_led_set_mode() argument
56 struct i2c_client *client = led->iodev->i2c; in max8997_led_set_mode()
62 val = led->id ? in max8997_led_set_mode()
64 led->cdev.max_brightness = MAX8997_LED_FLASH_MAX_BRIGHTNESS; in max8997_led_set_mode()
68 val = led->id ? in max8997_led_set_mode()
70 led->cdev.max_brightness = MAX8997_LED_MOVIE_MAX_BRIGHTNESS; in max8997_led_set_mode()
75 val = led->id ? in max8997_led_set_mode()
77 led->cdev.max_brightness = MAX8997_LED_FLASH_MAX_BRIGHTNESS; in max8997_led_set_mode()
82 val = led->id ? in max8997_led_set_mode()
84 led->cdev.max_brightness = MAX8997_LED_MOVIE_MAX_BRIGHTNESS; in max8997_led_set_mode()
87 led->cdev.max_brightness = MAX8997_LED_NONE_MAX_BRIGHTNESS; in max8997_led_set_mode()
95 dev_err(led->iodev->dev, in max8997_led_set_mode()
99 led->led_mode = mode; in max8997_led_set_mode()
102 static void max8997_led_enable(struct max8997_led *led, bool enable) in max8997_led_enable() argument
105 struct i2c_client *client = led->iodev->i2c; in max8997_led_enable()
108 if (led->enabled == enable) in max8997_led_enable()
115 dev_err(led->iodev->dev, in max8997_led_enable()
118 led->enabled = enable; in max8997_led_enable()
121 static void max8997_led_set_current(struct max8997_led *led, in max8997_led_set_current() argument
125 struct i2c_client *client = led->iodev->i2c; in max8997_led_set_current()
128 switch (led->led_mode) { in max8997_led_set_current()
133 reg = led->id ? MAX8997_REG_FLASH2_CUR : MAX8997_REG_FLASH1_CUR; in max8997_led_set_current()
148 dev_err(led->iodev->dev, in max8997_led_set_current()
156 struct max8997_led *led = in max8997_led_brightness_set() local
160 max8997_led_set_current(led, value); in max8997_led_brightness_set()
161 max8997_led_enable(led, true); in max8997_led_brightness_set()
163 max8997_led_set_current(led, value); in max8997_led_brightness_set()
164 max8997_led_enable(led, false); in max8997_led_brightness_set()
172 struct max8997_led *led = in max8997_led_show_mode() local
176 mutex_lock(&led->mutex); in max8997_led_show_mode()
178 switch (led->led_mode) { in max8997_led_show_mode()
196 mutex_unlock(&led->mutex); in max8997_led_show_mode()
206 struct max8997_led *led = in max8997_led_store_mode() local
210 mutex_lock(&led->mutex); in max8997_led_store_mode()
223 max8997_led_set_mode(led, mode); in max8997_led_store_mode()
225 mutex_unlock(&led->mutex); in max8997_led_store_mode()
242 struct max8997_led *led; in max8997_led_probe() local
251 led = devm_kzalloc(&pdev->dev, sizeof(*led), GFP_KERNEL); in max8997_led_probe()
252 if (led == NULL) in max8997_led_probe()
255 led->id = pdev->id; in max8997_led_probe()
258 led->cdev.name = name; in max8997_led_probe()
259 led->cdev.brightness_set = max8997_led_brightness_set; in max8997_led_probe()
260 led->cdev.flags |= LED_CORE_SUSPENDRESUME; in max8997_led_probe()
261 led->cdev.brightness = 0; in max8997_led_probe()
262 led->cdev.groups = max8997_groups; in max8997_led_probe()
263 led->iodev = iodev; in max8997_led_probe()
269 mode = pdata->led_pdata->mode[led->id]; in max8997_led_probe()
270 brightness = pdata->led_pdata->brightness[led->id]; in max8997_led_probe()
272 max8997_led_set_mode(led, pdata->led_pdata->mode[led->id]); in max8997_led_probe()
274 if (brightness > led->cdev.max_brightness) in max8997_led_probe()
275 brightness = led->cdev.max_brightness; in max8997_led_probe()
276 max8997_led_set_current(led, brightness); in max8997_led_probe()
277 led->cdev.brightness = brightness; in max8997_led_probe()
279 max8997_led_set_mode(led, MAX8997_NONE); in max8997_led_probe()
280 max8997_led_set_current(led, 0); in max8997_led_probe()
283 mutex_init(&led->mutex); in max8997_led_probe()
285 platform_set_drvdata(pdev, led); in max8997_led_probe()
287 ret = led_classdev_register(&pdev->dev, &led->cdev); in max8997_led_probe()
296 struct max8997_led *led = platform_get_drvdata(pdev); in max8997_led_remove() local
298 led_classdev_unregister(&led->cdev); in max8997_led_remove()