drivers/gpio/gpio-nct6694.c
107
ret = nct6694_read_msg(data->nct6694, &cmd_hd, &data->reg_val);
drivers/gpio/gpio-nct6694.c
112
ret = nct6694_write_msg(data->nct6694, &cmd_hd, &data->reg_val);
drivers/gpio/gpio-nct6694.c
118
ret = nct6694_read_msg(data->nct6694, &cmd_hd, &data->reg_val);
drivers/gpio/gpio-nct6694.c
127
return nct6694_write_msg(data->nct6694, &cmd_hd, &data->reg_val);
drivers/gpio/gpio-nct6694.c
142
ret = nct6694_read_msg(data->nct6694, &cmd_hd, &data->reg_val);
drivers/gpio/gpio-nct6694.c
148
ret = nct6694_read_msg(data->nct6694, &cmd_hd, &data->reg_val);
drivers/gpio/gpio-nct6694.c
156
ret = nct6694_read_msg(data->nct6694, &cmd_hd, &data->reg_val);
drivers/gpio/gpio-nct6694.c
176
ret = nct6694_read_msg(data->nct6694, &cmd_hd, &data->reg_val);
drivers/gpio/gpio-nct6694.c
185
return nct6694_write_msg(data->nct6694, &cmd_hd, &data->reg_val);
drivers/gpio/gpio-nct6694.c
201
ret = nct6694_read_msg(data->nct6694, &cmd_hd, &data->reg_val);
drivers/gpio/gpio-nct6694.c
216
return nct6694_write_msg(data->nct6694, &cmd_hd, &data->reg_val);
drivers/gpio/gpio-nct6694.c
233
ret = nct6694_read_msg(data->nct6694, &cmd_hd, &data->reg_val);
drivers/gpio/gpio-nct6694.c
255
ret = nct6694_read_msg(data->nct6694, &cmd_hd, &data->reg_val);
drivers/gpio/gpio-nct6694.c
268
nct6694_write_msg(data->nct6694, &cmd_hd, &data->reg_val);
drivers/gpio/gpio-nct6694.c
285
ret = nct6694_read_msg(data->nct6694, &cmd_hd, &data->irq_trig_falling);
drivers/gpio/gpio-nct6694.c
290
return nct6694_read_msg(data->nct6694, &cmd_hd, &data->irq_trig_rising);
drivers/gpio/gpio-nct6694.c
357
nct6694_write_msg(data->nct6694, &cmd_hd, &data->irq_trig_falling);
drivers/gpio/gpio-nct6694.c
360
nct6694_write_msg(data->nct6694, &cmd_hd, &data->irq_trig_rising);
drivers/gpio/gpio-nct6694.c
38
struct nct6694 *nct6694;
drivers/gpio/gpio-nct6694.c
387
struct nct6694 *nct6694 = data->nct6694;
drivers/gpio/gpio-nct6694.c
389
ida_free(&nct6694->gpio_ida, data->group);
drivers/gpio/gpio-nct6694.c
395
struct nct6694 *nct6694 = dev_get_drvdata(dev->parent);
drivers/gpio/gpio-nct6694.c
405
data->nct6694 = nct6694;
drivers/gpio/gpio-nct6694.c
407
ret = ida_alloc(&nct6694->gpio_ida, GFP_KERNEL);
drivers/gpio/gpio-nct6694.c
428
data->irq = irq_create_mapping(nct6694->domain,
drivers/gpio/gpio-nct6694.c
65
ret = nct6694_read_msg(data->nct6694, &cmd_hd, &data->reg_val);
drivers/gpio/gpio-nct6694.c
84
ret = nct6694_read_msg(data->nct6694, &cmd_hd, &data->reg_val);
drivers/gpio/gpio-nct6694.c
90
return nct6694_write_msg(data->nct6694, &cmd_hd, &data->reg_val);
drivers/hwmon/nct6694-hwmon.c
129
struct nct6694 *nct6694;
drivers/hwmon/nct6694-hwmon.c
261
ret = nct6694_read_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
276
ret = nct6694_read_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
291
ret = nct6694_read_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
305
ret = nct6694_read_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
341
ret = nct6694_read_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
360
ret = nct6694_read_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
375
ret = nct6694_read_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
392
ret = nct6694_read_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
427
ret = nct6694_read_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
442
ret = nct6694_read_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
456
ret = nct6694_read_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
491
ret = nct6694_read_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
533
return nct6694_write_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
542
ret = nct6694_read_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
550
return nct6694_write_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
559
ret = nct6694_read_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
567
return nct6694_write_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
601
return nct6694_write_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
610
ret = nct6694_read_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
618
return nct6694_write_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
627
ret = nct6694_read_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
638
return nct6694_write_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
670
return nct6694_write_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
679
ret = nct6694_read_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
687
return nct6694_write_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
719
return nct6694_write_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
732
ret = nct6694_read_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
739
return nct6694_write_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
751
return nct6694_write_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
875
ret = nct6694_read_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
888
ret = nct6694_read_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
895
return nct6694_write_msg(data->nct6694, &cmd_hd,
drivers/hwmon/nct6694-hwmon.c
902
struct nct6694 *nct6694 = dev_get_drvdata(pdev->dev.parent);
drivers/hwmon/nct6694-hwmon.c
920
data->nct6694 = nct6694;
drivers/i2c/busses/i2c-nct6694.c
140
struct nct6694 *nct6694 = data->nct6694;
drivers/i2c/busses/i2c-nct6694.c
142
ida_free(&nct6694->i2c_ida, data->port);
drivers/i2c/busses/i2c-nct6694.c
148
struct nct6694 *nct6694 = dev_get_drvdata(dev->parent);
drivers/i2c/busses/i2c-nct6694.c
157
data->nct6694 = nct6694;
drivers/i2c/busses/i2c-nct6694.c
159
ret = ida_alloc(&nct6694->i2c_ida, GFP_KERNEL);
drivers/i2c/busses/i2c-nct6694.c
58
struct nct6694 *nct6694;
drivers/i2c/busses/i2c-nct6694.c
87
ret = nct6694_write_msg(data->nct6694, &cmd_hd, deliver);
drivers/i2c/busses/i2c-nct6694.c
95
ret = nct6694_write_msg(data->nct6694, &cmd_hd, deliver);
drivers/mfd/nct6694.c
100
struct usb_device *udev = nct6694->udev;
drivers/mfd/nct6694.c
103
guard(mutex)(&nct6694->access_lock);
drivers/mfd/nct6694.c
127
dev_err(nct6694->dev, "Expected received length %d, but got %d\n",
drivers/mfd/nct6694.c
132
return nct6694_response_err_handling(nct6694, msg->response_header.sts);
drivers/mfd/nct6694.c
147
int nct6694_write_msg(struct nct6694 *nct6694, const struct nct6694_cmd_header *cmd_hd, void *buf)
drivers/mfd/nct6694.c
149
union nct6694_usb_msg *msg = nct6694->usb_msg;
drivers/mfd/nct6694.c
150
struct usb_device *udev = nct6694->udev;
drivers/mfd/nct6694.c
153
guard(mutex)(&nct6694->access_lock);
drivers/mfd/nct6694.c
183
dev_err(nct6694->dev, "Expected transmitted length %d, but got %d\n",
drivers/mfd/nct6694.c
188
return nct6694_response_err_handling(nct6694, msg->response_header.sts);
drivers/mfd/nct6694.c
194
struct nct6694 *nct6694 = urb->context;
drivers/mfd/nct6694.c
215
generic_handle_irq_safe(irq_find_mapping(nct6694->domain, irq));
drivers/mfd/nct6694.c
222
dev_warn(nct6694->dev, "Failed to resubmit urb, status %pe", ERR_PTR(ret));
drivers/mfd/nct6694.c
227
struct nct6694 *nct6694 = irq_data_get_irq_chip_data(data);
drivers/mfd/nct6694.c
230
guard(spinlock_irqsave)(&nct6694->irq_lock);
drivers/mfd/nct6694.c
232
nct6694->irq_enable |= BIT(hwirq);
drivers/mfd/nct6694.c
237
struct nct6694 *nct6694 = irq_data_get_irq_chip_data(data);
drivers/mfd/nct6694.c
240
guard(spinlock_irqsave)(&nct6694->irq_lock);
drivers/mfd/nct6694.c
242
nct6694->irq_enable &= ~BIT(hwirq);
drivers/mfd/nct6694.c
254
struct nct6694 *nct6694 = d->host_data;
drivers/mfd/nct6694.c
256
irq_set_chip_data(irq, nct6694);
drivers/mfd/nct6694.c
280
struct nct6694 *nct6694;
drivers/mfd/nct6694.c
283
nct6694 = devm_kzalloc(dev, sizeof(*nct6694), GFP_KERNEL);
drivers/mfd/nct6694.c
284
if (!nct6694)
drivers/mfd/nct6694.c
287
nct6694->usb_msg = devm_kzalloc(dev, sizeof(union nct6694_usb_msg), GFP_KERNEL);
drivers/mfd/nct6694.c
288
if (!nct6694->usb_msg)
drivers/mfd/nct6694.c
291
nct6694->int_buffer = devm_kzalloc(dev, sizeof(*nct6694->int_buffer), GFP_KERNEL);
drivers/mfd/nct6694.c
292
if (!nct6694->int_buffer)
drivers/mfd/nct6694.c
295
nct6694->int_in_urb = usb_alloc_urb(0, GFP_KERNEL);
drivers/mfd/nct6694.c
296
if (!nct6694->int_in_urb)
drivers/mfd/nct6694.c
299
nct6694->domain = irq_domain_create_simple(NULL, NCT6694_NR_IRQS, 0,
drivers/mfd/nct6694.c
301
nct6694);
drivers/mfd/nct6694.c
302
if (!nct6694->domain) {
drivers/mfd/nct6694.c
307
nct6694->dev = dev;
drivers/mfd/nct6694.c
308
nct6694->udev = udev;
drivers/mfd/nct6694.c
310
ida_init(&nct6694->gpio_ida);
drivers/mfd/nct6694.c
311
ida_init(&nct6694->i2c_ida);
drivers/mfd/nct6694.c
312
ida_init(&nct6694->canfd_ida);
drivers/mfd/nct6694.c
313
ida_init(&nct6694->wdt_ida);
drivers/mfd/nct6694.c
315
spin_lock_init(&nct6694->irq_lock);
drivers/mfd/nct6694.c
317
ret = devm_mutex_init(dev, &nct6694->access_lock);
drivers/mfd/nct6694.c
329
usb_fill_int_urb(nct6694->int_in_urb, udev, usb_rcvintpipe(udev, NCT6694_INT_IN_EP),
drivers/mfd/nct6694.c
330
nct6694->int_buffer, sizeof(*nct6694->int_buffer), usb_int_callback,
drivers/mfd/nct6694.c
331
nct6694, int_endpoint->bInterval);
drivers/mfd/nct6694.c
333
ret = usb_submit_urb(nct6694->int_in_urb, GFP_KERNEL);
drivers/mfd/nct6694.c
337
usb_set_intfdata(iface, nct6694);
drivers/mfd/nct6694.c
346
usb_kill_urb(nct6694->int_in_urb);
drivers/mfd/nct6694.c
348
ida_destroy(&nct6694->wdt_ida);
drivers/mfd/nct6694.c
349
ida_destroy(&nct6694->canfd_ida);
drivers/mfd/nct6694.c
350
ida_destroy(&nct6694->i2c_ida);
drivers/mfd/nct6694.c
351
ida_destroy(&nct6694->gpio_ida);
drivers/mfd/nct6694.c
352
irq_domain_remove(nct6694->domain);
drivers/mfd/nct6694.c
354
usb_free_urb(nct6694->int_in_urb);
drivers/mfd/nct6694.c
360
struct nct6694 *nct6694 = usb_get_intfdata(iface);
drivers/mfd/nct6694.c
362
mfd_remove_devices(nct6694->dev);
drivers/mfd/nct6694.c
363
usb_kill_urb(nct6694->int_in_urb);
drivers/mfd/nct6694.c
364
ida_destroy(&nct6694->wdt_ida);
drivers/mfd/nct6694.c
365
ida_destroy(&nct6694->canfd_ida);
drivers/mfd/nct6694.c
366
ida_destroy(&nct6694->i2c_ida);
drivers/mfd/nct6694.c
367
ida_destroy(&nct6694->gpio_ida);
drivers/mfd/nct6694.c
368
irq_domain_remove(nct6694->domain);
drivers/mfd/nct6694.c
369
usb_free_urb(nct6694->int_in_urb);
drivers/mfd/nct6694.c
61
static int nct6694_response_err_handling(struct nct6694 *nct6694, unsigned char err_status)
drivers/mfd/nct6694.c
67
dev_err(nct6694->dev, "Command is not supported!\n");
drivers/mfd/nct6694.c
70
dev_warn(nct6694->dev, "Command received no response!\n");
drivers/mfd/nct6694.c
73
dev_warn(nct6694->dev, "Command timed out!\n");
drivers/mfd/nct6694.c
76
dev_err(nct6694->dev, "Command is pending!\n");
drivers/mfd/nct6694.c
97
int nct6694_read_msg(struct nct6694 *nct6694, const struct nct6694_cmd_header *cmd_hd, void *buf)
drivers/mfd/nct6694.c
99
union nct6694_usb_msg *msg = nct6694->usb_msg;
drivers/net/can/usb/nct6694_canfd.c
137
struct nct6694 *nct6694;
drivers/net/can/usb/nct6694_canfd.c
222
ret = nct6694_read_msg(priv->nct6694, &cmd_hd, frame);
drivers/net/can/usb/nct6694_canfd.c
394
ret = nct6694_read_msg(priv->nct6694, &cmd_hd, priv->event);
drivers/net/can/usb/nct6694_canfd.c
491
err = nct6694_write_msg(priv->nct6694, &cmd_hd, frame);
drivers/net/can/usb/nct6694_canfd.c
574
ret = nct6694_write_msg(priv->nct6694, &cmd_hd, setting);
drivers/net/can/usb/nct6694_canfd.c
603
nct6694_read_msg(priv->nct6694, &cmd_hd, setting);
drivers/net/can/usb/nct6694_canfd.c
606
nct6694_write_msg(priv->nct6694, &cmd_hd, setting);
drivers/net/can/usb/nct6694_canfd.c
714
ret = nct6694_read_msg(priv->nct6694, &cmd_hd, info);
drivers/net/can/usb/nct6694_canfd.c
723
struct nct6694 *nct6694 = dev_get_drvdata(pdev->dev.parent);
drivers/net/can/usb/nct6694_canfd.c
728
port = ida_alloc(&nct6694->canfd_ida, GFP_KERNEL);
drivers/net/can/usb/nct6694_canfd.c
732
irq = irq_create_mapping(nct6694->domain,
drivers/net/can/usb/nct6694_canfd.c
752
priv->nct6694 = nct6694;
drivers/net/can/usb/nct6694_canfd.c
800
ida_free(&nct6694->canfd_ida, port);
drivers/net/can/usb/nct6694_canfd.c
807
struct nct6694 *nct6694 = priv->nct6694;
drivers/net/can/usb/nct6694_canfd.c
816
ida_free(&nct6694->canfd_ida, port);
drivers/rtc/rtc-nct6694.c
124
return nct6694_write_msg(data->nct6694, &cmd_hd, time);
drivers/rtc/rtc-nct6694.c
139
ret = nct6694_read_msg(data->nct6694, &cmd_hd, alarm);
drivers/rtc/rtc-nct6694.c
169
return nct6694_write_msg(data->nct6694, &cmd_hd, alarm);
drivers/rtc/rtc-nct6694.c
190
return nct6694_write_msg(data->nct6694, &cmd_hd, sts);
drivers/rtc/rtc-nct6694.c
217
ret = nct6694_write_msg(data->nct6694, &cmd_hd, sts);
drivers/rtc/rtc-nct6694.c
240
struct nct6694 *nct6694 = dev_get_drvdata(pdev->dev.parent);
drivers/rtc/rtc-nct6694.c
252
data->irq = irq_create_mapping(nct6694->domain, NCT6694_IRQ_RTC);
drivers/rtc/rtc-nct6694.c
269
data->nct6694 = nct6694;
drivers/rtc/rtc-nct6694.c
72
struct nct6694 *nct6694;
drivers/rtc/rtc-nct6694.c
90
ret = nct6694_read_msg(data->nct6694, &cmd_hd, time);
drivers/watchdog/nct6694_wdt.c
113
return nct6694_write_msg(data->nct6694, &cmd_hd, setup);
drivers/watchdog/nct6694_wdt.c
146
return nct6694_write_msg(data->nct6694, &cmd_hd, cmd);
drivers/watchdog/nct6694_wdt.c
163
return nct6694_write_msg(data->nct6694, &cmd_hd, cmd);
drivers/watchdog/nct6694_wdt.c
209
ret = nct6694_read_msg(data->nct6694, &cmd_hd, setup);
drivers/watchdog/nct6694_wdt.c
239
struct nct6694 *nct6694 = data->nct6694;
drivers/watchdog/nct6694_wdt.c
241
ida_free(&nct6694->wdt_ida, data->wdev_idx);
drivers/watchdog/nct6694_wdt.c
247
struct nct6694 *nct6694 = dev_get_drvdata(dev->parent);
drivers/watchdog/nct6694_wdt.c
262
data->nct6694 = nct6694;
drivers/watchdog/nct6694_wdt.c
264
ret = ida_alloc(&nct6694->wdt_ida, GFP_KERNEL);
drivers/watchdog/nct6694_wdt.c
84
struct nct6694 *nct6694;
include/linux/mfd/nct6694.h
100
int nct6694_write_msg(struct nct6694 *nct6694, const struct nct6694_cmd_header *cmd_hd, void *buf);
include/linux/mfd/nct6694.h
99
int nct6694_read_msg(struct nct6694 *nct6694, const struct nct6694_cmd_header *cmd_hd, void *buf);