Lines Matching refs:client
35 static int blinkm_transfer_hw(struct i2c_client *client, int cmd);
36 static int blinkm_test_run(struct i2c_client *client);
150 struct i2c_client *client; in show_color_common() local
154 client = to_i2c_client(dev); in show_color_common()
155 data = i2c_get_clientdata(client); in show_color_common()
157 ret = blinkm_transfer_hw(client, BLM_GET_CUR_RGB); in show_color_common()
175 struct i2c_client *client; in store_color_common() local
180 client = to_i2c_client(dev); in store_color_common()
181 data = i2c_get_clientdata(client); in store_color_common()
207 ret = blinkm_transfer_hw(client, BLM_GO_RGB); in store_color_common()
284 struct i2c_client *client; in store_test() local
286 client = to_i2c_client(dev); in store_test()
289 ret = blinkm_test_run(client); in store_test()
313 static int blinkm_write(struct i2c_client *client, int cmd, u8 *arg) in blinkm_write() argument
319 result = i2c_smbus_write_byte(client, blinkm_cmds[cmd].cmdbyte); in blinkm_write()
328 result = i2c_smbus_write_byte(client, arg[i]); in blinkm_write()
335 static int blinkm_read(struct i2c_client *client, int cmd, u8 *arg) in blinkm_read() argument
342 result = i2c_smbus_read_byte(client); in blinkm_read()
351 static int blinkm_transfer_hw(struct i2c_client *client, int cmd) in blinkm_transfer_hw() argument
365 struct blinkm_data *data = i2c_get_clientdata(client); in blinkm_transfer_hw()
380 blinkm_write(client, cmd, data->args); in blinkm_transfer_hw()
390 blinkm_write(client, cmd, data->args); in blinkm_transfer_hw()
399 blinkm_write(client, cmd, data->args); in blinkm_transfer_hw()
402 blinkm_write(client, cmd, NULL); in blinkm_transfer_hw()
408 blinkm_write(client, cmd, NULL); in blinkm_transfer_hw()
409 blinkm_read(client, cmd, data->args); in blinkm_transfer_hw()
416 blinkm_write(client, cmd, NULL); in blinkm_transfer_hw()
417 blinkm_read(client, cmd, data->args); in blinkm_transfer_hw()
428 dev_err(&client->dev, in blinkm_transfer_hw()
432 dev_err(&client->dev, "BlinkM: unknown command %d\n", cmd); in blinkm_transfer_hw()
547 static void blinkm_init_hw(struct i2c_client *client) in blinkm_init_hw() argument
550 ret = blinkm_transfer_hw(client, BLM_STOP_SCRIPT); in blinkm_init_hw()
551 ret = blinkm_transfer_hw(client, BLM_GO_RGB); in blinkm_init_hw()
554 static int blinkm_test_run(struct i2c_client *client) in blinkm_test_run() argument
557 struct blinkm_data *data = i2c_get_clientdata(client); in blinkm_test_run()
562 ret = blinkm_transfer_hw(client, BLM_GO_RGB); in blinkm_test_run()
570 ret = blinkm_transfer_hw(client, BLM_FADE_RGB); in blinkm_test_run()
578 ret = blinkm_transfer_hw(client, BLM_FADE_HSB); in blinkm_test_run()
587 static int blinkm_detect(struct i2c_client *client, struct i2c_board_info *info) in blinkm_detect() argument
589 struct i2c_adapter *adapter = client->adapter; in blinkm_detect()
604 ret = blinkm_write(client, BLM_GET_ADDR, NULL); in blinkm_detect()
606 ret = blinkm_read(client, BLM_GET_ADDR, tmpargs); in blinkm_detect()
614 ret = blinkm_write(client, BLM_GET_ADDR, NULL); in blinkm_detect()
618 ret = blinkm_read(client, BLM_GET_ADDR, tmpargs); in blinkm_detect()
623 dev_err(&client->dev, "enodev DEV ADDR = 0x%02X\n", tmpargs[0]); in blinkm_detect()
631 static int blinkm_probe(struct i2c_client *client, in blinkm_probe() argument
639 data = devm_kzalloc(&client->dev, in blinkm_probe()
653 data->i2c_client = client; in blinkm_probe()
655 i2c_set_clientdata(client, data); in blinkm_probe()
659 err = sysfs_create_group(&client->dev.kobj, &blinkm_group); in blinkm_probe()
661 dev_err(&client->dev, "couldn't register sysfs group\n"); in blinkm_probe()
668 led[i]->i2c_client = client; in blinkm_probe()
677 client->adapter->nr, in blinkm_probe()
678 client->addr); in blinkm_probe()
681 err = led_classdev_register(&client->dev, in blinkm_probe()
684 dev_err(&client->dev, in blinkm_probe()
693 client->adapter->nr, in blinkm_probe()
694 client->addr); in blinkm_probe()
697 err = led_classdev_register(&client->dev, in blinkm_probe()
700 dev_err(&client->dev, in blinkm_probe()
709 client->adapter->nr, in blinkm_probe()
710 client->addr); in blinkm_probe()
713 err = led_classdev_register(&client->dev, in blinkm_probe()
716 dev_err(&client->dev, in blinkm_probe()
726 blinkm_init_hw(client); in blinkm_probe()
737 sysfs_remove_group(&client->dev.kobj, &blinkm_group); in blinkm_probe()
742 static int blinkm_remove(struct i2c_client *client) in blinkm_remove() argument
744 struct blinkm_data *data = i2c_get_clientdata(client); in blinkm_remove()
758 ret = blinkm_transfer_hw(client, BLM_FADE_RGB); in blinkm_remove()
760 dev_err(&client->dev, "Failure in blinkm_remove ignored. Continuing.\n"); in blinkm_remove()
766 ret = blinkm_transfer_hw(client, BLM_FADE_HSB); in blinkm_remove()
768 dev_err(&client->dev, "Failure in blinkm_remove ignored. Continuing.\n"); in blinkm_remove()
772 ret = blinkm_transfer_hw(client, BLM_GO_RGB); in blinkm_remove()
774 dev_err(&client->dev, "Failure in blinkm_remove ignored. Continuing.\n"); in blinkm_remove()
778 ret = blinkm_transfer_hw(client, BLM_FADE_RGB); in blinkm_remove()
780 dev_err(&client->dev, "Failure in blinkm_remove ignored. Continuing.\n"); in blinkm_remove()
782 sysfs_remove_group(&client->dev.kobj, &blinkm_group); in blinkm_remove()