Lines Matching refs:client
231 static int acpi_gsb_i2c_read_bytes(struct i2c_client *client, in acpi_gsb_i2c_read_bytes() argument
243 msgs[0].addr = client->addr; in acpi_gsb_i2c_read_bytes()
244 msgs[0].flags = client->flags; in acpi_gsb_i2c_read_bytes()
248 msgs[1].addr = client->addr; in acpi_gsb_i2c_read_bytes()
249 msgs[1].flags = client->flags | I2C_M_RD; in acpi_gsb_i2c_read_bytes()
253 ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs)); in acpi_gsb_i2c_read_bytes()
255 dev_err(&client->adapter->dev, "i2c read failed\n"); in acpi_gsb_i2c_read_bytes()
263 static int acpi_gsb_i2c_write_bytes(struct i2c_client *client, in acpi_gsb_i2c_write_bytes() argument
278 msgs[0].addr = client->addr; in acpi_gsb_i2c_write_bytes()
279 msgs[0].flags = client->flags; in acpi_gsb_i2c_write_bytes()
283 ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs)); in acpi_gsb_i2c_write_bytes()
285 dev_err(&client->adapter->dev, "i2c write failed\n"); in acpi_gsb_i2c_write_bytes()
301 struct i2c_client *client; in acpi_i2c_space_handler() local
312 client = kzalloc(sizeof(*client), GFP_KERNEL); in acpi_i2c_space_handler()
313 if (!client) { in acpi_i2c_space_handler()
329 client->adapter = adapter; in acpi_i2c_space_handler()
330 client->addr = sb->slave_address; in acpi_i2c_space_handler()
333 client->flags |= I2C_CLIENT_TEN; in acpi_i2c_space_handler()
338 status = i2c_smbus_read_byte(client); in acpi_i2c_space_handler()
344 status = i2c_smbus_write_byte(client, gsb->bdata); in acpi_i2c_space_handler()
350 status = i2c_smbus_read_byte_data(client, command); in acpi_i2c_space_handler()
356 status = i2c_smbus_write_byte_data(client, command, in acpi_i2c_space_handler()
363 status = i2c_smbus_read_word_data(client, command); in acpi_i2c_space_handler()
369 status = i2c_smbus_write_word_data(client, command, in acpi_i2c_space_handler()
376 status = i2c_smbus_read_block_data(client, command, in acpi_i2c_space_handler()
383 status = i2c_smbus_write_block_data(client, command, in acpi_i2c_space_handler()
390 status = acpi_gsb_i2c_read_bytes(client, command, in acpi_i2c_space_handler()
395 status = acpi_gsb_i2c_write_bytes(client, command, in acpi_i2c_space_handler()
409 kfree(client); in acpi_i2c_space_handler()
492 const struct i2c_client *client) in i2c_match_id() argument
495 if (strcmp(client->name, id->name) == 0) in i2c_match_id()
504 struct i2c_client *client = i2c_verify_client(dev); in i2c_device_match() local
507 if (!client) in i2c_device_match()
521 return i2c_match_id(driver->id_table, client) != NULL; in i2c_device_match()
530 struct i2c_client *client = to_i2c_client(dev); in i2c_device_uevent() local
538 I2C_MODULE_PREFIX, client->name)) in i2c_device_uevent()
675 struct i2c_client *client = i2c_verify_client(dev); in i2c_device_probe() local
679 if (!client) in i2c_device_probe()
682 if (!client->irq) { in i2c_device_probe()
697 client->irq = irq; in i2c_device_probe()
704 if (client->flags & I2C_CLIENT_WAKE) { in i2c_device_probe()
713 device_init_wakeup(&client->dev, true); in i2c_device_probe()
715 if (wakeirq > 0 && wakeirq != client->irq) in i2c_device_probe()
717 else if (client->irq > 0) in i2c_device_probe()
718 status = dev_pm_set_wake_irq(dev, client->irq); in i2c_device_probe()
723 dev_warn(&client->dev, "failed to set up wakeup irq"); in i2c_device_probe()
732 status = dev_pm_domain_attach(&client->dev, true); in i2c_device_probe()
736 status = driver->probe(client, i2c_match_id(driver->id_table, client)); in i2c_device_probe()
743 dev_pm_domain_detach(&client->dev, true); in i2c_device_probe()
745 dev_pm_clear_wake_irq(&client->dev); in i2c_device_probe()
746 device_init_wakeup(&client->dev, false); in i2c_device_probe()
752 struct i2c_client *client = i2c_verify_client(dev); in i2c_device_remove() local
756 if (!client || !dev->driver) in i2c_device_remove()
762 status = driver->remove(client); in i2c_device_remove()
765 dev_pm_domain_detach(&client->dev, true); in i2c_device_remove()
767 dev_pm_clear_wake_irq(&client->dev); in i2c_device_remove()
768 device_init_wakeup(&client->dev, false); in i2c_device_remove()
775 struct i2c_client *client = i2c_verify_client(dev); in i2c_device_shutdown() local
778 if (!client || !dev->driver) in i2c_device_shutdown()
782 driver->shutdown(client); in i2c_device_shutdown()
801 struct i2c_client *client = to_i2c_client(dev); in show_modalias() local
808 return sprintf(buf, "%s%s\n", I2C_MODULE_PREFIX, client->name); in show_modalias()
855 static unsigned short i2c_encode_flags_to_addr(struct i2c_client *client) in i2c_encode_flags_to_addr() argument
857 unsigned short addr = client->addr; in i2c_encode_flags_to_addr()
860 if (client->flags & I2C_CLIENT_TEN) in i2c_encode_flags_to_addr()
863 if (client->flags & I2C_CLIENT_SLAVE) in i2c_encode_flags_to_addr()
908 struct i2c_client *client = i2c_verify_client(dev); in __i2c_check_addr_busy() local
911 if (client && i2c_encode_flags_to_addr(client) == addr) in __i2c_check_addr_busy()
1005 struct i2c_client *client) in i2c_dev_set_name() argument
1007 struct acpi_device *adev = ACPI_COMPANION(&client->dev); in i2c_dev_set_name()
1010 dev_set_name(&client->dev, "i2c-%s", acpi_dev_name(adev)); in i2c_dev_set_name()
1014 dev_set_name(&client->dev, "%d-%04x", i2c_adapter_id(adap), in i2c_dev_set_name()
1015 i2c_encode_flags_to_addr(client)); in i2c_dev_set_name()
1037 struct i2c_client *client; in i2c_new_device() local
1040 client = kzalloc(sizeof *client, GFP_KERNEL); in i2c_new_device()
1041 if (!client) in i2c_new_device()
1044 client->adapter = adap; in i2c_new_device()
1046 client->dev.platform_data = info->platform_data; in i2c_new_device()
1049 client->dev.archdata = *info->archdata; in i2c_new_device()
1051 client->flags = info->flags; in i2c_new_device()
1052 client->addr = info->addr; in i2c_new_device()
1053 client->irq = info->irq; in i2c_new_device()
1055 strlcpy(client->name, info->type, sizeof(client->name)); in i2c_new_device()
1057 status = i2c_check_addr_validity(client->addr, client->flags); in i2c_new_device()
1060 client->flags & I2C_CLIENT_TEN ? 10 : 7, client->addr); in i2c_new_device()
1065 status = i2c_check_addr_busy(adap, i2c_encode_flags_to_addr(client)); in i2c_new_device()
1069 client->dev.parent = &client->adapter->dev; in i2c_new_device()
1070 client->dev.bus = &i2c_bus_type; in i2c_new_device()
1071 client->dev.type = &i2c_client_type; in i2c_new_device()
1072 client->dev.of_node = info->of_node; in i2c_new_device()
1073 client->dev.fwnode = info->fwnode; in i2c_new_device()
1075 i2c_dev_set_name(adap, client); in i2c_new_device()
1076 status = device_register(&client->dev); in i2c_new_device()
1081 client->name, dev_name(&client->dev)); in i2c_new_device()
1083 return client; in i2c_new_device()
1087 "(%d)\n", client->name, client->addr, status); in i2c_new_device()
1089 kfree(client); in i2c_new_device()
1100 void i2c_unregister_device(struct i2c_client *client) in i2c_unregister_device() argument
1102 if (client->dev.of_node) in i2c_unregister_device()
1103 of_node_clear_flag(client->dev.of_node, OF_POPULATED); in i2c_unregister_device()
1104 device_unregister(&client->dev); in i2c_unregister_device()
1114 static int dummy_probe(struct i2c_client *client, in dummy_probe() argument
1120 static int dummy_remove(struct i2c_client *client) in dummy_remove() argument
1202 struct i2c_client *client; in i2c_sysfs_new_device() local
1240 client = i2c_new_device(adap, &info); in i2c_sysfs_new_device()
1241 if (!client) in i2c_sysfs_new_device()
1246 list_add_tail(&client->detected, &adap->userspace_clients); in i2c_sysfs_new_device()
1269 struct i2c_client *client, *next; in i2c_sysfs_delete_device() local
1289 list_for_each_entry_safe(client, next, &adap->userspace_clients, in i2c_sysfs_delete_device()
1291 if (i2c_encode_flags_to_addr(client) == addr) { in i2c_sysfs_delete_device()
1293 "delete_device", client->name, client->addr); in i2c_sysfs_delete_device()
1295 list_del(&client->detected); in i2c_sysfs_delete_device()
1296 i2c_unregister_device(client); in i2c_sysfs_delete_device()
1450 struct i2c_client *client; in of_find_i2c_device_by_node() local
1456 client = i2c_verify_client(dev); in of_find_i2c_device_by_node()
1457 if (!client) in of_find_i2c_device_by_node()
1460 return client; in of_find_i2c_device_by_node()
1726 struct i2c_client *client, *_n; in i2c_do_del_adapter() local
1730 list_for_each_entry_safe(client, _n, &driver->clients, detected) { in i2c_do_del_adapter()
1731 if (client->adapter == adapter) { in i2c_do_del_adapter()
1733 client->name, client->addr); in i2c_do_del_adapter()
1734 list_del(&client->detected); in i2c_do_del_adapter()
1735 i2c_unregister_device(client); in i2c_do_del_adapter()
1742 struct i2c_client *client = i2c_verify_client(dev); in __unregister_client() local
1743 if (client && strcmp(client->name, "dummy")) in __unregister_client()
1744 i2c_unregister_device(client); in __unregister_client()
1750 struct i2c_client *client = i2c_verify_client(dev); in __unregister_dummy() local
1751 if (client) in __unregister_dummy()
1752 i2c_unregister_device(client); in __unregister_dummy()
1773 struct i2c_client *client, *next; in i2c_del_adapter() local
1795 list_for_each_entry_safe(client, next, &adap->userspace_clients, in i2c_del_adapter()
1797 dev_dbg(&adap->dev, "Removing %s at 0x%x\n", client->name, in i2c_del_adapter()
1798 client->addr); in i2c_del_adapter()
1799 list_del(&client->detected); in i2c_del_adapter()
1800 i2c_unregister_device(client); in i2c_del_adapter()
1931 struct i2c_client *i2c_use_client(struct i2c_client *client) in i2c_use_client() argument
1933 if (client && get_device(&client->dev)) in i2c_use_client()
1934 return client; in i2c_use_client()
1945 void i2c_release_client(struct i2c_client *client) in i2c_release_client() argument
1947 if (client) in i2c_release_client()
1948 put_device(&client->dev); in i2c_release_client()
1959 struct i2c_client *client = i2c_verify_client(dev); in i2c_cmd() local
1963 if (!client || !client->dev.driver) in i2c_cmd()
1966 driver = to_i2c_driver(client->dev.driver); in i2c_cmd()
1968 driver->command(client, arg->cmd, arg->arg); in i2c_cmd()
1988 struct i2c_client *client; in of_i2c_notify() local
2001 client = of_i2c_register_device(adap, rd->dn); in of_i2c_notify()
2004 if (IS_ERR(client)) { in of_i2c_notify()
2007 return notifier_from_errno(PTR_ERR(client)); in of_i2c_notify()
2016 client = of_find_i2c_device_by_node(rd->dn); in of_i2c_notify()
2017 if (client == NULL) in of_i2c_notify()
2021 i2c_unregister_device(client); in of_i2c_notify()
2024 put_device(&client->dev); in of_i2c_notify()
2284 int i2c_master_send(const struct i2c_client *client, const char *buf, int count) in i2c_master_send() argument
2287 struct i2c_adapter *adap = client->adapter; in i2c_master_send()
2290 msg.addr = client->addr; in i2c_master_send()
2291 msg.flags = client->flags & I2C_M_TEN; in i2c_master_send()
2313 int i2c_master_recv(const struct i2c_client *client, char *buf, int count) in i2c_master_recv() argument
2315 struct i2c_adapter *adap = client->adapter; in i2c_master_recv()
2319 msg.addr = client->addr; in i2c_master_recv()
2320 msg.flags = client->flags & I2C_M_TEN; in i2c_master_recv()
2421 struct i2c_client *client; in i2c_detect_address() local
2433 client = i2c_new_device(adapter, &info); in i2c_detect_address()
2434 if (client) in i2c_detect_address()
2435 list_add_tail(&client->detected, &driver->clients); in i2c_detect_address()
2633 s32 i2c_smbus_read_byte(const struct i2c_client *client) in i2c_smbus_read_byte() argument
2638 status = i2c_smbus_xfer(client->adapter, client->addr, client->flags, in i2c_smbus_read_byte()
2653 s32 i2c_smbus_write_byte(const struct i2c_client *client, u8 value) in i2c_smbus_write_byte() argument
2655 return i2c_smbus_xfer(client->adapter, client->addr, client->flags, in i2c_smbus_write_byte()
2668 s32 i2c_smbus_read_byte_data(const struct i2c_client *client, u8 command) in i2c_smbus_read_byte_data() argument
2673 status = i2c_smbus_xfer(client->adapter, client->addr, client->flags, in i2c_smbus_read_byte_data()
2689 s32 i2c_smbus_write_byte_data(const struct i2c_client *client, u8 command, in i2c_smbus_write_byte_data() argument
2694 return i2c_smbus_xfer(client->adapter, client->addr, client->flags, in i2c_smbus_write_byte_data()
2708 s32 i2c_smbus_read_word_data(const struct i2c_client *client, u8 command) in i2c_smbus_read_word_data() argument
2713 status = i2c_smbus_xfer(client->adapter, client->addr, client->flags, in i2c_smbus_read_word_data()
2729 s32 i2c_smbus_write_word_data(const struct i2c_client *client, u8 command, in i2c_smbus_write_word_data() argument
2734 return i2c_smbus_xfer(client->adapter, client->addr, client->flags, in i2c_smbus_write_word_data()
2755 s32 i2c_smbus_read_block_data(const struct i2c_client *client, u8 command, in i2c_smbus_read_block_data() argument
2761 status = i2c_smbus_xfer(client->adapter, client->addr, client->flags, in i2c_smbus_read_block_data()
2782 s32 i2c_smbus_write_block_data(const struct i2c_client *client, u8 command, in i2c_smbus_write_block_data() argument
2791 return i2c_smbus_xfer(client->adapter, client->addr, client->flags, in i2c_smbus_write_block_data()
2798 s32 i2c_smbus_read_i2c_block_data(const struct i2c_client *client, u8 command, in i2c_smbus_read_i2c_block_data() argument
2807 status = i2c_smbus_xfer(client->adapter, client->addr, client->flags, in i2c_smbus_read_i2c_block_data()
2818 s32 i2c_smbus_write_i2c_block_data(const struct i2c_client *client, u8 command, in i2c_smbus_write_i2c_block_data() argument
2827 return i2c_smbus_xfer(client->adapter, client->addr, client->flags, in i2c_smbus_write_i2c_block_data()
3098 s32 i2c_smbus_read_i2c_block_data_or_emulated(const struct i2c_client *client, in i2c_smbus_read_i2c_block_data_or_emulated() argument
3107 if (i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_READ_I2C_BLOCK)) in i2c_smbus_read_i2c_block_data_or_emulated()
3108 return i2c_smbus_read_i2c_block_data(client, command, length, values); in i2c_smbus_read_i2c_block_data_or_emulated()
3110 if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_READ_BYTE_DATA)) in i2c_smbus_read_i2c_block_data_or_emulated()
3113 if (i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_READ_WORD_DATA)) { in i2c_smbus_read_i2c_block_data_or_emulated()
3115 status = i2c_smbus_read_word_data(client, command + i); in i2c_smbus_read_i2c_block_data_or_emulated()
3125 status = i2c_smbus_read_byte_data(client, command + i); in i2c_smbus_read_i2c_block_data_or_emulated()
3137 int i2c_slave_register(struct i2c_client *client, i2c_slave_cb_t slave_cb) in i2c_slave_register() argument
3141 if (!client || !slave_cb) { in i2c_slave_register()
3146 if (!(client->flags & I2C_CLIENT_SLAVE)) in i2c_slave_register()
3147 dev_warn(&client->dev, "%s: client slave flag not set. You might see address collisions\n", in i2c_slave_register()
3150 if (!(client->flags & I2C_CLIENT_TEN)) { in i2c_slave_register()
3152 ret = i2c_check_7bit_addr_validity_strict(client->addr); in i2c_slave_register()
3154 dev_err(&client->dev, "%s: invalid address\n", __func__); in i2c_slave_register()
3159 if (!client->adapter->algo->reg_slave) { in i2c_slave_register()
3160 dev_err(&client->dev, "%s: not supported by adapter\n", __func__); in i2c_slave_register()
3164 client->slave_cb = slave_cb; in i2c_slave_register()
3166 i2c_lock_adapter(client->adapter); in i2c_slave_register()
3167 ret = client->adapter->algo->reg_slave(client); in i2c_slave_register()
3168 i2c_unlock_adapter(client->adapter); in i2c_slave_register()
3171 client->slave_cb = NULL; in i2c_slave_register()
3172 dev_err(&client->dev, "%s: adapter returned error %d\n", __func__, ret); in i2c_slave_register()
3179 int i2c_slave_unregister(struct i2c_client *client) in i2c_slave_unregister() argument
3183 if (!client->adapter->algo->unreg_slave) { in i2c_slave_unregister()
3184 dev_err(&client->dev, "%s: not supported by adapter\n", __func__); in i2c_slave_unregister()
3188 i2c_lock_adapter(client->adapter); in i2c_slave_unregister()
3189 ret = client->adapter->algo->unreg_slave(client); in i2c_slave_unregister()
3190 i2c_unlock_adapter(client->adapter); in i2c_slave_unregister()
3193 client->slave_cb = NULL; in i2c_slave_unregister()
3195 dev_err(&client->dev, "%s: adapter returned error %d\n", __func__, ret); in i2c_slave_unregister()