Lines Matching refs:pca

94 	struct pca9685 *pca = to_pca(chip);  in pca9685_pwm_config()  local
99 if (period_ns != pca->period_ns) { in pca9685_pwm_config()
106 regmap_update_bits(pca->regmap, PCA9685_MODE1, in pca9685_pwm_config()
110 regmap_write(pca->regmap, PCA9685_PRESCALE, prescale); in pca9685_pwm_config()
113 regmap_update_bits(pca->regmap, PCA9685_MODE1, in pca9685_pwm_config()
119 pca->period_ns = period_ns; in pca9685_pwm_config()
125 if (duty_ns == pca->duty_ns) { in pca9685_pwm_config()
126 regmap_update_bits(pca->regmap, PCA9685_MODE1, in pca9685_pwm_config()
137 pca->duty_ns = duty_ns; in pca9685_pwm_config()
145 regmap_write(pca->regmap, reg, LED_FULL); in pca9685_pwm_config()
157 regmap_write(pca->regmap, reg, 0x0); in pca9685_pwm_config()
164 regmap_write(pca->regmap, reg, 0x0); in pca9685_pwm_config()
172 regmap_write(pca->regmap, reg, LED_FULL); in pca9685_pwm_config()
185 regmap_write(pca->regmap, reg, (int)duty & 0xff); in pca9685_pwm_config()
192 regmap_write(pca->regmap, reg, ((int)duty >> 8) & 0xf); in pca9685_pwm_config()
200 regmap_write(pca->regmap, reg, 0); in pca9685_pwm_config()
207 struct pca9685 *pca = to_pca(chip); in pca9685_pwm_enable() local
219 regmap_write(pca->regmap, reg, 0); in pca9685_pwm_enable()
226 regmap_write(pca->regmap, reg, 0); in pca9685_pwm_enable()
237 regmap_update_bits(pca->regmap, reg, LED_FULL, 0x0); in pca9685_pwm_enable()
244 struct pca9685 *pca = to_pca(chip); in pca9685_pwm_disable() local
252 regmap_write(pca->regmap, reg, LED_FULL); in pca9685_pwm_disable()
260 regmap_write(pca->regmap, reg, 0x0); in pca9685_pwm_disable()
265 struct pca9685 *pca = to_pca(chip); in pca9685_pwm_request() local
267 if (pca->active_cnt++ == 0) in pca9685_pwm_request()
268 return regmap_update_bits(pca->regmap, PCA9685_MODE1, in pca9685_pwm_request()
276 struct pca9685 *pca = to_pca(chip); in pca9685_pwm_free() local
278 if (--pca->active_cnt == 0) in pca9685_pwm_free()
279 regmap_update_bits(pca->regmap, PCA9685_MODE1, MODE1_SLEEP, in pca9685_pwm_free()
302 struct pca9685 *pca; in pca9685_pwm_probe() local
306 pca = devm_kzalloc(&client->dev, sizeof(*pca), GFP_KERNEL); in pca9685_pwm_probe()
307 if (!pca) in pca9685_pwm_probe()
310 pca->regmap = devm_regmap_init_i2c(client, &pca9685_regmap_i2c_config); in pca9685_pwm_probe()
311 if (IS_ERR(pca->regmap)) { in pca9685_pwm_probe()
312 ret = PTR_ERR(pca->regmap); in pca9685_pwm_probe()
317 pca->duty_ns = 0; in pca9685_pwm_probe()
318 pca->period_ns = PCA9685_DEFAULT_PERIOD; in pca9685_pwm_probe()
320 i2c_set_clientdata(client, pca); in pca9685_pwm_probe()
322 regmap_read(pca->regmap, PCA9685_MODE2, &mode2); in pca9685_pwm_probe()
334 regmap_write(pca->regmap, PCA9685_MODE2, mode2); in pca9685_pwm_probe()
337 regmap_write(pca->regmap, PCA9685_ALL_LED_OFF_L, 0); in pca9685_pwm_probe()
338 regmap_write(pca->regmap, PCA9685_ALL_LED_OFF_H, 0); in pca9685_pwm_probe()
340 pca->chip.ops = &pca9685_pwm_ops; in pca9685_pwm_probe()
342 pca->chip.npwm = PCA9685_MAXCHAN + 1; in pca9685_pwm_probe()
344 pca->chip.dev = &client->dev; in pca9685_pwm_probe()
345 pca->chip.base = -1; in pca9685_pwm_probe()
346 pca->chip.can_sleep = true; in pca9685_pwm_probe()
348 return pwmchip_add(&pca->chip); in pca9685_pwm_probe()
353 struct pca9685 *pca = i2c_get_clientdata(client); in pca9685_pwm_remove() local
355 regmap_update_bits(pca->regmap, PCA9685_MODE1, MODE1_SLEEP, in pca9685_pwm_remove()
358 return pwmchip_remove(&pca->chip); in pca9685_pwm_remove()