Symbol: tc3589x
drivers/gpio/gpio-tc3589x.c
113
struct tc3589x *tc3589x = tc3589x_gpio->tc3589x;
drivers/gpio/gpio-tc3589x.c
127
ret = tc3589x_set_bits(tc3589x, odmreg, BIT(pos), 0);
drivers/gpio/gpio-tc3589x.c
131
return tc3589x_set_bits(tc3589x, odereg, BIT(pos), BIT(pos));
drivers/gpio/gpio-tc3589x.c
134
ret = tc3589x_set_bits(tc3589x, odmreg, BIT(pos), BIT(pos));
drivers/gpio/gpio-tc3589x.c
138
return tc3589x_set_bits(tc3589x, odereg, BIT(pos), BIT(pos));
drivers/gpio/gpio-tc3589x.c
141
return tc3589x_set_bits(tc3589x, odereg, BIT(pos), 0);
drivers/gpio/gpio-tc3589x.c
200
struct tc3589x *tc3589x = tc3589x_gpio->tc3589x;
drivers/gpio/gpio-tc3589x.c
219
tc3589x_reg_write(tc3589x, regmap[i] + j, new);
drivers/gpio/gpio-tc3589x.c
266
struct tc3589x *tc3589x = tc3589x_gpio->tc3589x;
drivers/gpio/gpio-tc3589x.c
271
ret = tc3589x_block_read(tc3589x, TC3589x_GPIOMIS0,
drivers/gpio/gpio-tc3589x.c
29
struct tc3589x *tc3589x;
drivers/gpio/gpio-tc3589x.c
291
tc3589x_reg_write(tc3589x, TC3589x_GPIOIC0 + i, status[i]);
drivers/gpio/gpio-tc3589x.c
299
struct tc3589x *tc3589x = dev_get_drvdata(pdev->dev.parent);
drivers/gpio/gpio-tc3589x.c
323
tc3589x_gpio->tc3589x = tc3589x;
drivers/gpio/gpio-tc3589x.c
326
tc3589x_gpio->chip.ngpio = tc3589x->num_gpio;
drivers/gpio/gpio-tc3589x.c
341
ret = tc3589x_set_bits(tc3589x, TC3589x_RSTCTRL,
drivers/gpio/gpio-tc3589x.c
352
ret = tc3589x_reg_write(tc3589x, TC3589x_DKBDMSK,
drivers/gpio/gpio-tc3589x.c
40
struct tc3589x *tc3589x = tc3589x_gpio->tc3589x;
drivers/gpio/gpio-tc3589x.c
45
ret = tc3589x_reg_read(tc3589x, reg);
drivers/gpio/gpio-tc3589x.c
55
struct tc3589x *tc3589x = tc3589x_gpio->tc3589x;
drivers/gpio/gpio-tc3589x.c
60
return tc3589x_block_write(tc3589x, reg, ARRAY_SIZE(data), data);
drivers/gpio/gpio-tc3589x.c
67
struct tc3589x *tc3589x = tc3589x_gpio->tc3589x;
drivers/gpio/gpio-tc3589x.c
76
return tc3589x_set_bits(tc3589x, reg, BIT(pos), BIT(pos));
drivers/gpio/gpio-tc3589x.c
83
struct tc3589x *tc3589x = tc3589x_gpio->tc3589x;
drivers/gpio/gpio-tc3589x.c
87
return tc3589x_set_bits(tc3589x, reg, BIT(pos), 0);
drivers/gpio/gpio-tc3589x.c
94
struct tc3589x *tc3589x = tc3589x_gpio->tc3589x;
drivers/gpio/gpio-tc3589x.c
99
ret = tc3589x_reg_read(tc3589x, reg);
drivers/input/keyboard/tc3589x-keypad.c
105
struct tc3589x *tc3589x;
drivers/input/keyboard/tc3589x-keypad.c
117
struct tc3589x *tc3589x = keypad->tc3589x;
drivers/input/keyboard/tc3589x-keypad.c
125
ret = tc3589x_reg_write(tc3589x, TC3589x_KBDSIZE,
drivers/input/keyboard/tc3589x-keypad.c
131
ret = tc3589x_reg_write(tc3589x, TC3589x_KBCFG_LSB, DEDICATED_KEY_VAL);
drivers/input/keyboard/tc3589x-keypad.c
135
ret = tc3589x_reg_write(tc3589x, TC3589x_KBCFG_MSB, DEDICATED_KEY_VAL);
drivers/input/keyboard/tc3589x-keypad.c
140
ret = tc3589x_reg_write(tc3589x, TC3589x_KBDSETTLE_REG,
drivers/input/keyboard/tc3589x-keypad.c
146
ret = tc3589x_reg_write(tc3589x, TC3589x_KBDBOUNCE,
drivers/input/keyboard/tc3589x-keypad.c
152
ret = tc3589x_set_bits(tc3589x, TC3589x_IOCFG, 0x0, IOCFG_IG);
drivers/input/keyboard/tc3589x-keypad.c
157
ret = tc3589x_reg_write(tc3589x, TC3589x_IOPULLCFG0_LSB,
drivers/input/keyboard/tc3589x-keypad.c
162
ret = tc3589x_reg_write(tc3589x, TC3589x_IOPULLCFG0_MSB,
drivers/input/keyboard/tc3589x-keypad.c
168
ret = tc3589x_reg_write(tc3589x, TC3589x_IOPULLCFG1_LSB,
drivers/input/keyboard/tc3589x-keypad.c
173
ret = tc3589x_reg_write(tc3589x, TC3589x_IOPULLCFG1_MSB,
drivers/input/keyboard/tc3589x-keypad.c
178
ret = tc3589x_reg_write(tc3589x, TC3589x_IOPULLCFG2_LSB,
drivers/input/keyboard/tc3589x-keypad.c
192
struct tc3589x *tc3589x = keypad->tc3589x;
drivers/input/keyboard/tc3589x-keypad.c
197
kbd_code = tc3589x_reg_read(tc3589x, TC3589x_EVTCODE_FIFO);
drivers/input/keyboard/tc3589x-keypad.c
217
tc3589x_set_bits(tc3589x, TC3589x_KBDIC,
drivers/input/keyboard/tc3589x-keypad.c
220
tc3589x_set_bits(tc3589x, TC3589x_KBDMSK,
drivers/input/keyboard/tc3589x-keypad.c
228
struct tc3589x *tc3589x = keypad->tc3589x;
drivers/input/keyboard/tc3589x-keypad.c
232
ret = tc3589x_set_bits(tc3589x, TC3589x_RSTCTRL, TC3589x_KBDRST, 0x0);
drivers/input/keyboard/tc3589x-keypad.c
237
ret = tc3589x_set_bits(tc3589x, TC3589x_KBDMFS, 0x0, TC3589x_KBDMFS_EN);
drivers/input/keyboard/tc3589x-keypad.c
242
ret = tc3589x_set_bits(tc3589x, TC3589x_CLKEN, 0x0, KPD_CLK_EN);
drivers/input/keyboard/tc3589x-keypad.c
247
ret = tc3589x_set_bits(tc3589x, TC3589x_RSTINTCLR, 0x0, 0x1);
drivers/input/keyboard/tc3589x-keypad.c
252
ret = tc3589x_set_bits(tc3589x, TC3589x_KBDMSK, 0x0,
drivers/input/keyboard/tc3589x-keypad.c
264
struct tc3589x *tc3589x = keypad->tc3589x;
drivers/input/keyboard/tc3589x-keypad.c
268
ret = tc3589x_set_bits(tc3589x, TC3589x_KBDIC,
drivers/input/keyboard/tc3589x-keypad.c
274
ret = tc3589x_set_bits(tc3589x, TC3589x_KBDMSK,
drivers/input/keyboard/tc3589x-keypad.c
280
ret = tc3589x_set_bits(tc3589x, TC3589x_CLKEN, 0x1, 0x0);
drivers/input/keyboard/tc3589x-keypad.c
285
ret = tc3589x_set_bits(tc3589x, TC3589x_RSTCTRL, TC3589x_KBDRST, 0x1);
drivers/input/keyboard/tc3589x-keypad.c
375
struct tc3589x *tc3589x = dev_get_drvdata(pdev->dev.parent);
drivers/input/keyboard/tc3589x-keypad.c
404
keypad->tc3589x = tc3589x;
drivers/mfd/tc3589x.c
101
int tc3589x_block_write(struct tc3589x *tc3589x, u8 reg, u8 length,
drivers/mfd/tc3589x.c
106
ret = i2c_smbus_write_i2c_block_data(tc3589x->i2c, reg, length,
drivers/mfd/tc3589x.c
109
dev_err(tc3589x->dev, "failed to write regs %#x: %d\n",
drivers/mfd/tc3589x.c
123
int tc3589x_set_bits(struct tc3589x *tc3589x, u8 reg, u8 mask, u8 val)
drivers/mfd/tc3589x.c
127
mutex_lock(&tc3589x->lock);
drivers/mfd/tc3589x.c
129
ret = tc3589x_reg_read(tc3589x, reg);
drivers/mfd/tc3589x.c
136
ret = tc3589x_reg_write(tc3589x, reg, ret);
drivers/mfd/tc3589x.c
139
mutex_unlock(&tc3589x->lock);
drivers/mfd/tc3589x.c
180
struct tc3589x *tc3589x = data;
drivers/mfd/tc3589x.c
184
status = tc3589x_reg_read(tc3589x, TC3589x_IRQST);
drivers/mfd/tc3589x.c
190
int virq = irq_find_mapping(tc3589x->domain, bit);
drivers/mfd/tc3589x.c
202
status = tc3589x_reg_read(tc3589x, TC3589x_IRQST);
drivers/mfd/tc3589x.c
212
struct tc3589x *tc3589x = d->host_data;
drivers/mfd/tc3589x.c
214
irq_set_chip_data(virq, tc3589x);
drivers/mfd/tc3589x.c
235
static int tc3589x_irq_init(struct tc3589x *tc3589x, struct device_node *np)
drivers/mfd/tc3589x.c
237
tc3589x->domain = irq_domain_create_simple(of_fwnode_handle(np),
drivers/mfd/tc3589x.c
239
&tc3589x_irq_ops, tc3589x);
drivers/mfd/tc3589x.c
241
if (!tc3589x->domain) {
drivers/mfd/tc3589x.c
242
dev_err(tc3589x->dev, "Failed to create irqdomain\n");
drivers/mfd/tc3589x.c
249
static int tc3589x_chip_init(struct tc3589x *tc3589x)
drivers/mfd/tc3589x.c
253
manf = tc3589x_reg_read(tc3589x, TC3589x_MANFCODE);
drivers/mfd/tc3589x.c
257
ver = tc3589x_reg_read(tc3589x, TC3589x_VERSION);
drivers/mfd/tc3589x.c
262
dev_err(tc3589x->dev, "unknown manufacturer: %#x\n", manf);
drivers/mfd/tc3589x.c
266
dev_info(tc3589x->dev, "manufacturer: %#x, version: %#x\n", manf, ver);
drivers/mfd/tc3589x.c
273
ret = tc3589x_reg_write(tc3589x, TC3589x_RSTCTRL,
drivers/mfd/tc3589x.c
281
return tc3589x_reg_write(tc3589x, TC3589x_RSTINTCLR, 0x1);
drivers/mfd/tc3589x.c
284
static int tc3589x_device_init(struct tc3589x *tc3589x)
drivers/mfd/tc3589x.c
287
unsigned int blocks = tc3589x->pdata->block;
drivers/mfd/tc3589x.c
290
ret = mfd_add_devices(tc3589x->dev, -1, tc3589x_dev_gpio,
drivers/mfd/tc3589x.c
292
0, tc3589x->domain);
drivers/mfd/tc3589x.c
294
dev_err(tc3589x->dev, "failed to add gpio child\n");
drivers/mfd/tc3589x.c
297
dev_info(tc3589x->dev, "added gpio block\n");
drivers/mfd/tc3589x.c
301
ret = mfd_add_devices(tc3589x->dev, -1, tc3589x_dev_keypad,
drivers/mfd/tc3589x.c
303
0, tc3589x->domain);
drivers/mfd/tc3589x.c
305
dev_err(tc3589x->dev, "failed to keypad child\n");
drivers/mfd/tc3589x.c
308
dev_info(tc3589x->dev, "added keypad block\n");
drivers/mfd/tc3589x.c
358
struct tc3589x *tc3589x;
drivers/mfd/tc3589x.c
377
tc3589x = devm_kzalloc(&i2c->dev, sizeof(struct tc3589x),
drivers/mfd/tc3589x.c
379
if (!tc3589x)
drivers/mfd/tc3589x.c
382
mutex_init(&tc3589x->lock);
drivers/mfd/tc3589x.c
384
tc3589x->dev = &i2c->dev;
drivers/mfd/tc3589x.c
385
tc3589x->i2c = i2c;
drivers/mfd/tc3589x.c
386
tc3589x->pdata = pdata;
drivers/mfd/tc3589x.c
392
tc3589x->num_gpio = 20;
drivers/mfd/tc3589x.c
399
tc3589x->num_gpio = 24;
drivers/mfd/tc3589x.c
403
i2c_set_clientdata(i2c, tc3589x);
drivers/mfd/tc3589x.c
405
ret = tc3589x_chip_init(tc3589x);
drivers/mfd/tc3589x.c
409
ret = tc3589x_irq_init(tc3589x, np);
drivers/mfd/tc3589x.c
413
ret = request_threaded_irq(tc3589x->i2c->irq, NULL, tc3589x_irq,
drivers/mfd/tc3589x.c
415
"tc3589x", tc3589x);
drivers/mfd/tc3589x.c
417
dev_err(tc3589x->dev, "failed to request IRQ: %d\n", ret);
drivers/mfd/tc3589x.c
42
int tc3589x_reg_read(struct tc3589x *tc3589x, u8 reg)
drivers/mfd/tc3589x.c
421
ret = tc3589x_device_init(tc3589x);
drivers/mfd/tc3589x.c
423
dev_err(tc3589x->dev, "failed to add child devices\n");
drivers/mfd/tc3589x.c
432
struct tc3589x *tc3589x = i2c_get_clientdata(client);
drivers/mfd/tc3589x.c
434
mfd_remove_devices(tc3589x->dev);
drivers/mfd/tc3589x.c
439
struct tc3589x *tc3589x = dev_get_drvdata(dev);
drivers/mfd/tc3589x.c
440
struct i2c_client *client = tc3589x->i2c;
drivers/mfd/tc3589x.c
445
ret = tc3589x_reg_write(tc3589x, TC3589x_CLKMODE,
drivers/mfd/tc3589x.c
453
struct tc3589x *tc3589x = dev_get_drvdata(dev);
drivers/mfd/tc3589x.c
454
struct i2c_client *client = tc3589x->i2c;
drivers/mfd/tc3589x.c
459
ret = tc3589x_reg_write(tc3589x, TC3589x_CLKMODE,
drivers/mfd/tc3589x.c
46
ret = i2c_smbus_read_byte_data(tc3589x->i2c, reg);
drivers/mfd/tc3589x.c
48
dev_err(tc3589x->dev, "failed to read reg %#x: %d\n",
drivers/mfd/tc3589x.c
61
int tc3589x_reg_write(struct tc3589x *tc3589x, u8 reg, u8 data)
drivers/mfd/tc3589x.c
65
ret = i2c_smbus_write_byte_data(tc3589x->i2c, reg, data);
drivers/mfd/tc3589x.c
67
dev_err(tc3589x->dev, "failed to write reg %#x: %d\n",
drivers/mfd/tc3589x.c
81
int tc3589x_block_read(struct tc3589x *tc3589x, u8 reg, u8 length, u8 *values)
drivers/mfd/tc3589x.c
85
ret = i2c_smbus_read_i2c_block_data(tc3589x->i2c, reg, length, values);
drivers/mfd/tc3589x.c
87
dev_err(tc3589x->dev, "failed to read regs %#x: %d\n",
include/linux/mfd/tc3589x.h
131
extern int tc3589x_reg_write(struct tc3589x *tc3589x, u8 reg, u8 data);
include/linux/mfd/tc3589x.h
132
extern int tc3589x_reg_read(struct tc3589x *tc3589x, u8 reg);
include/linux/mfd/tc3589x.h
133
extern int tc3589x_block_read(struct tc3589x *tc3589x, u8 reg, u8 length,
include/linux/mfd/tc3589x.h
135
extern int tc3589x_block_write(struct tc3589x *tc3589x, u8 reg, u8 length,
include/linux/mfd/tc3589x.h
137
extern int tc3589x_set_bits(struct tc3589x *tc3589x, u8 reg, u8 mask, u8 val);