Lines Matching refs:pca955x
116 struct pca955x { struct
127 struct pca955x *pca955x; member
168 struct pca955x *pca955x = i2c_get_clientdata(client); in pca955x_write_psc() local
172 pca95xx_num_input_regs(pca955x->chipdef->bits) + 2*n, in pca955x_write_psc()
189 struct pca955x *pca955x = i2c_get_clientdata(client); in pca955x_write_pwm() local
193 pca95xx_num_input_regs(pca955x->chipdef->bits) + 1 + 2*n, in pca955x_write_pwm()
207 struct pca955x *pca955x = i2c_get_clientdata(client); in pca955x_write_ls() local
211 pca95xx_num_input_regs(pca955x->chipdef->bits) + 4 + n, in pca955x_write_ls()
225 struct pca955x *pca955x = i2c_get_clientdata(client); in pca955x_read_ls() local
229 pca95xx_num_input_regs(pca955x->chipdef->bits) + 4 + n); in pca955x_read_ls()
243 struct pca955x *pca955x; in pca955x_led_set() local
250 pca955x = pca955x_led->pca955x; in pca955x_led_set()
255 mutex_lock(&pca955x->lock); in pca955x_led_set()
257 ret = pca955x_read_ls(pca955x->client, chip_ls, &ls); in pca955x_led_set()
279 ret = pca955x_write_pwm(pca955x->client, 1, 255 - value); in pca955x_led_set()
286 ret = pca955x_write_ls(pca955x->client, chip_ls, ls); in pca955x_led_set()
289 mutex_unlock(&pca955x->lock); in pca955x_led_set()
314 struct pca955x *pca955x = gpiochip_get_data(gc); in pca955x_gpio_request_pin() local
315 struct pca955x_led *led = &pca955x->leds[offset]; in pca955x_gpio_request_pin()
326 struct pca955x *pca955x = gpiochip_get_data(gc); in pca955x_set_value() local
327 struct pca955x_led *led = &pca955x->leds[offset]; in pca955x_set_value()
343 struct pca955x *pca955x = gpiochip_get_data(gc); in pca955x_gpio_get_value() local
344 struct pca955x_led *led = &pca955x->leds[offset]; in pca955x_gpio_get_value()
348 pca955x_read_input(pca955x->client, led->led_num / 8, ®); in pca955x_gpio_get_value()
356 struct pca955x *pca955x = gpiochip_get_data(gc); in pca955x_gpio_direction_input() local
357 struct pca955x_led *led = &pca955x->leds[offset]; in pca955x_gpio_direction_input()
431 struct pca955x *pca955x; in pca955x_probe() local
470 pca955x = devm_kzalloc(&client->dev, sizeof(*pca955x), GFP_KERNEL); in pca955x_probe()
471 if (!pca955x) in pca955x_probe()
474 pca955x->leds = devm_kcalloc(&client->dev, in pca955x_probe()
476 if (!pca955x->leds) in pca955x_probe()
479 i2c_set_clientdata(client, pca955x); in pca955x_probe()
481 mutex_init(&pca955x->lock); in pca955x_probe()
482 pca955x->client = client; in pca955x_probe()
483 pca955x->chipdef = chip; in pca955x_probe()
486 pca955x_led = &pca955x->leds[i]; in pca955x_probe()
488 pca955x_led->pca955x = pca955x; in pca955x_probe()
550 pca955x->gpio.label = "gpio-pca955x"; in pca955x_probe()
551 pca955x->gpio.direction_input = pca955x_gpio_direction_input; in pca955x_probe()
552 pca955x->gpio.direction_output = pca955x_gpio_direction_output; in pca955x_probe()
553 pca955x->gpio.set = pca955x_gpio_set_value; in pca955x_probe()
554 pca955x->gpio.get = pca955x_gpio_get_value; in pca955x_probe()
555 pca955x->gpio.request = pca955x_gpio_request_pin; in pca955x_probe()
556 pca955x->gpio.can_sleep = 1; in pca955x_probe()
557 pca955x->gpio.base = -1; in pca955x_probe()
558 pca955x->gpio.ngpio = ngpios; in pca955x_probe()
559 pca955x->gpio.parent = &client->dev; in pca955x_probe()
560 pca955x->gpio.owner = THIS_MODULE; in pca955x_probe()
562 err = devm_gpiochip_add_data(&client->dev, &pca955x->gpio, in pca955x_probe()
563 pca955x); in pca955x_probe()
566 pca955x->gpio.parent = NULL; in pca955x_probe()
571 pca955x->gpio.base, pca955x->gpio.base + in pca955x_probe()
572 pca955x->gpio.ngpio - 1); in pca955x_probe()