Lines Matching refs:chip

90 	lp55xx_write(led->chip, LP8501_REG_LED_CURRENT_BASE + led->chan_nr,  in lp8501_set_led_current()
94 static int lp8501_post_init_device(struct lp55xx_chip *chip) in lp8501_post_init_device() argument
99 ret = lp55xx_write(chip, LP8501_REG_ENABLE, LP8501_ENABLE); in lp8501_post_init_device()
106 if (chip->pdata->clock_mode != LP55XX_CLOCK_EXT) in lp8501_post_init_device()
109 ret = lp55xx_write(chip, LP8501_REG_CONFIG, val); in lp8501_post_init_device()
114 return lp55xx_update_bits(chip, LP8501_REG_PWR_CONFIG, in lp8501_post_init_device()
115 LP8501_PWR_CONFIG_M, chip->pdata->pwr_sel); in lp8501_post_init_device()
118 static void lp8501_load_engine(struct lp55xx_chip *chip) in lp8501_load_engine() argument
120 enum lp55xx_engine_index idx = chip->engine_idx; in lp8501_load_engine()
139 lp55xx_update_bits(chip, LP8501_REG_OP_MODE, mask[idx], val[idx]); in lp8501_load_engine()
143 lp55xx_write(chip, LP8501_REG_PROG_PAGE_SEL, page_sel[idx]); in lp8501_load_engine()
146 static void lp8501_stop_engine(struct lp55xx_chip *chip) in lp8501_stop_engine() argument
148 lp55xx_write(chip, LP8501_REG_OP_MODE, 0); in lp8501_stop_engine()
152 static void lp8501_turn_off_channels(struct lp55xx_chip *chip) in lp8501_turn_off_channels() argument
157 lp55xx_write(chip, LP8501_REG_LED_PWM_BASE + i, 0); in lp8501_turn_off_channels()
160 static void lp8501_run_engine(struct lp55xx_chip *chip, bool start) in lp8501_run_engine() argument
168 lp8501_stop_engine(chip); in lp8501_run_engine()
169 lp8501_turn_off_channels(chip); in lp8501_run_engine()
178 ret = lp55xx_read(chip, LP8501_REG_OP_MODE, &mode); in lp8501_run_engine()
182 ret = lp55xx_read(chip, LP8501_REG_ENABLE, &exec); in lp8501_run_engine()
202 lp55xx_write(chip, LP8501_REG_OP_MODE, mode); in lp8501_run_engine()
205 lp55xx_update_bits(chip, LP8501_REG_ENABLE, LP8501_EXEC_M, exec); in lp8501_run_engine()
208 static int lp8501_update_program_memory(struct lp55xx_chip *chip, in lp8501_update_program_memory() argument
222 lp55xx_write(chip, LP8501_REG_PROG_MEM + i, 0); in lp8501_update_program_memory()
246 lp55xx_write(chip, LP8501_REG_PROG_MEM + i, pattern[i]); in lp8501_update_program_memory()
251 dev_err(&chip->cl->dev, "wrong pattern format\n"); in lp8501_update_program_memory()
255 static void lp8501_firmware_loaded(struct lp55xx_chip *chip) in lp8501_firmware_loaded() argument
257 const struct firmware *fw = chip->fw; in lp8501_firmware_loaded()
260 dev_err(&chip->cl->dev, "firmware data size overflow: %zu\n", in lp8501_firmware_loaded()
271 lp8501_load_engine(chip); in lp8501_firmware_loaded()
272 lp8501_update_program_memory(chip, fw->data, fw->size); in lp8501_firmware_loaded()
279 struct lp55xx_chip *chip = led->chip; in lp8501_led_brightness_work() local
281 mutex_lock(&chip->lock); in lp8501_led_brightness_work()
282 lp55xx_write(chip, LP8501_REG_LED_PWM_BASE + led->chan_nr, in lp8501_led_brightness_work()
284 mutex_unlock(&chip->lock); in lp8501_led_brightness_work()
309 struct lp55xx_chip *chip; in lp8501_probe() local
326 chip = devm_kzalloc(&client->dev, sizeof(*chip), GFP_KERNEL); in lp8501_probe()
327 if (!chip) in lp8501_probe()
335 chip->cl = client; in lp8501_probe()
336 chip->pdata = pdata; in lp8501_probe()
337 chip->cfg = &lp8501_cfg; in lp8501_probe()
339 mutex_init(&chip->lock); in lp8501_probe()
343 ret = lp55xx_init_device(chip); in lp8501_probe()
349 ret = lp55xx_register_leds(led, chip); in lp8501_probe()
353 ret = lp55xx_register_sysfs(chip); in lp8501_probe()
362 lp55xx_unregister_leds(led, chip); in lp8501_probe()
364 lp55xx_deinit_device(chip); in lp8501_probe()
372 struct lp55xx_chip *chip = led->chip; in lp8501_remove() local
374 lp8501_stop_engine(chip); in lp8501_remove()
375 lp55xx_unregister_sysfs(chip); in lp8501_remove()
376 lp55xx_unregister_leds(led, chip); in lp8501_remove()
377 lp55xx_deinit_device(chip); in lp8501_remove()