drivers/gpio/gpio-stmpe.c
107
return stmpe_set_bits(stmpe, reg, mask, mask);
drivers/gpio/gpio-stmpe.c
114
struct stmpe *stmpe = stmpe_gpio->stmpe;
drivers/gpio/gpio-stmpe.c
115
u8 reg = stmpe->regs[STMPE_IDX_GPDR_LSB + (offset / 8)];
drivers/gpio/gpio-stmpe.c
118
return stmpe_set_bits(stmpe, reg, mask, 0);
drivers/gpio/gpio-stmpe.c
124
struct stmpe *stmpe = stmpe_gpio->stmpe;
drivers/gpio/gpio-stmpe.c
129
return stmpe_set_altfunc(stmpe, BIT(offset), STMPE_BLOCK_GPIO);
drivers/gpio/gpio-stmpe.c
156
if (stmpe_gpio->stmpe->partnum == STMPE801 ||
drivers/gpio/gpio-stmpe.c
157
stmpe_gpio->stmpe->partnum == STMPE1600)
drivers/gpio/gpio-stmpe.c
185
struct stmpe *stmpe = stmpe_gpio->stmpe;
drivers/gpio/gpio-stmpe.c
186
int num_banks = DIV_ROUND_UP(stmpe->num_gpios, 8);
drivers/gpio/gpio-stmpe.c
205
if (stmpe->partnum == STMPE1600) {
drivers/gpio/gpio-stmpe.c
206
ret = stmpe_reg_read(stmpe, stmpe->regs[STMPE_IDX_GPMR_LSB]);
drivers/gpio/gpio-stmpe.c
208
dev_err(stmpe->dev, "Failed to read GPMR_LSB: %d\n", ret);
drivers/gpio/gpio-stmpe.c
211
ret = stmpe_reg_read(stmpe, stmpe->regs[STMPE_IDX_GPMR_CSB]);
drivers/gpio/gpio-stmpe.c
213
dev_err(stmpe->dev, "Failed to read GPMR_CSB: %d\n", ret);
drivers/gpio/gpio-stmpe.c
220
if ((stmpe->partnum == STMPE801 ||
drivers/gpio/gpio-stmpe.c
221
stmpe->partnum == STMPE1600) &&
drivers/gpio/gpio-stmpe.c
233
stmpe_reg_write(stmpe, stmpe->regs[regmap[i][j]], new);
drivers/gpio/gpio-stmpe.c
269
struct stmpe *stmpe = stmpe_gpio->stmpe;
drivers/gpio/gpio-stmpe.c
272
u8 dir_reg = stmpe->regs[STMPE_IDX_GPDR_LSB + bank];
drivers/gpio/gpio-stmpe.c
281
ret = stmpe_reg_read(stmpe, dir_reg);
drivers/gpio/gpio-stmpe.c
316
switch (stmpe->partnum) {
drivers/gpio/gpio-stmpe.c
322
edge_det_reg = stmpe->regs[STMPE_IDX_GPEDR_LSB + bank];
drivers/gpio/gpio-stmpe.c
323
ret = stmpe_reg_read(stmpe, edge_det_reg);
drivers/gpio/gpio-stmpe.c
329
rise_reg = stmpe->regs[STMPE_IDX_GPRER_LSB + bank];
drivers/gpio/gpio-stmpe.c
330
fall_reg = stmpe->regs[STMPE_IDX_GPFER_LSB + bank];
drivers/gpio/gpio-stmpe.c
332
ret = stmpe_reg_read(stmpe, rise_reg);
drivers/gpio/gpio-stmpe.c
336
ret = stmpe_reg_read(stmpe, fall_reg);
drivers/gpio/gpio-stmpe.c
34
struct stmpe *stmpe;
drivers/gpio/gpio-stmpe.c
343
irqen_reg = stmpe->regs[STMPE_IDX_IEGPIOR_LSB + bank];
drivers/gpio/gpio-stmpe.c
350
ret = stmpe_reg_read(stmpe, irqen_reg);
drivers/gpio/gpio-stmpe.c
391
struct stmpe *stmpe = stmpe_gpio->stmpe;
drivers/gpio/gpio-stmpe.c
393
int num_banks = DIV_ROUND_UP(stmpe->num_gpios, 8);
drivers/gpio/gpio-stmpe.c
406
if (stmpe->partnum == STMPE1600)
drivers/gpio/gpio-stmpe.c
407
statmsbreg = stmpe->regs[STMPE_IDX_ISGPIOR_LSB];
drivers/gpio/gpio-stmpe.c
409
statmsbreg = stmpe->regs[STMPE_IDX_ISGPIOR_MSB];
drivers/gpio/gpio-stmpe.c
411
ret = stmpe_block_read(stmpe, statmsbreg, num_banks, status);
drivers/gpio/gpio-stmpe.c
416
int bank = (stmpe_gpio->stmpe->partnum == STMPE1600) ? i :
drivers/gpio/gpio-stmpe.c
440
if (stmpe->partnum != STMPE801 && stmpe->partnum != STMPE1600 &&
drivers/gpio/gpio-stmpe.c
441
stmpe->partnum != STMPE1801) {
drivers/gpio/gpio-stmpe.c
442
stmpe_reg_write(stmpe, statmsbreg + i, status[i]);
drivers/gpio/gpio-stmpe.c
443
stmpe_reg_write(stmpe,
drivers/gpio/gpio-stmpe.c
444
stmpe->regs[STMPE_IDX_GPEDR_MSB] + i,
drivers/gpio/gpio-stmpe.c
45
struct stmpe *stmpe = stmpe_gpio->stmpe;
drivers/gpio/gpio-stmpe.c
46
u8 reg = stmpe->regs[STMPE_IDX_GPMR_LSB + (offset / 8)];
drivers/gpio/gpio-stmpe.c
469
static void stmpe_gpio_disable(void *stmpe)
drivers/gpio/gpio-stmpe.c
471
stmpe_disable(stmpe, STMPE_BLOCK_GPIO);
drivers/gpio/gpio-stmpe.c
477
struct stmpe *stmpe = dev_get_drvdata(dev->parent);
drivers/gpio/gpio-stmpe.c
481
if (stmpe->num_gpios > MAX_GPIOS) {
drivers/gpio/gpio-stmpe.c
492
stmpe_gpio->stmpe = stmpe;
drivers/gpio/gpio-stmpe.c
494
stmpe_gpio->chip.ngpio = stmpe->num_gpios;
drivers/gpio/gpio-stmpe.c
50
ret = stmpe_reg_read(stmpe, reg);
drivers/gpio/gpio-stmpe.c
503
ret = stmpe_enable(stmpe, STMPE_BLOCK_GPIO);
drivers/gpio/gpio-stmpe.c
507
ret = devm_add_action_or_reset(dev, stmpe_gpio_disable, stmpe);
drivers/gpio/gpio-stmpe.c
60
struct stmpe *stmpe = stmpe_gpio->stmpe;
drivers/gpio/gpio-stmpe.c
62
u8 reg = stmpe->regs[which + (offset / 8)];
drivers/gpio/gpio-stmpe.c
69
if (stmpe->regs[STMPE_IDX_GPSR_LSB] == stmpe->regs[STMPE_IDX_GPCR_LSB])
drivers/gpio/gpio-stmpe.c
70
return stmpe_set_bits(stmpe, reg, mask, val ? mask : 0);
drivers/gpio/gpio-stmpe.c
72
return stmpe_reg_write(stmpe, reg, mask);
drivers/gpio/gpio-stmpe.c
79
struct stmpe *stmpe = stmpe_gpio->stmpe;
drivers/gpio/gpio-stmpe.c
80
u8 reg = stmpe->regs[STMPE_IDX_GPDR_LSB] - (offset / 8);
drivers/gpio/gpio-stmpe.c
84
ret = stmpe_reg_read(stmpe, reg);
drivers/gpio/gpio-stmpe.c
98
struct stmpe *stmpe = stmpe_gpio->stmpe;
drivers/gpio/gpio-stmpe.c
99
u8 reg = stmpe->regs[STMPE_IDX_GPDR_LSB + (offset / 8)];
drivers/iio/adc/stmpe-adc.c
112
stmpe_reg_write(info->stmpe, STMPE_REG_TEMP_CTRL,
drivers/iio/adc/stmpe-adc.c
165
*val2 = info->stmpe->mod_12b ? 12 : 10;
drivers/iio/adc/stmpe-adc.c
183
int_sta = stmpe_reg_read(info->stmpe, STMPE_REG_ADC_INT_STA);
drivers/iio/adc/stmpe-adc.c
190
stmpe_block_read(info->stmpe,
drivers/iio/adc/stmpe-adc.c
193
stmpe_reg_write(info->stmpe, STMPE_REG_ADC_INT_STA, int_sta);
drivers/iio/adc/stmpe-adc.c
196
stmpe_block_read(info->stmpe, STMPE_REG_TEMP_DATA, 2,
drivers/iio/adc/stmpe-adc.c
232
struct stmpe *stmpe = adc->stmpe;
drivers/iio/adc/stmpe-adc.c
234
ret = stmpe_enable(stmpe, STMPE_BLOCK_ADC);
drivers/iio/adc/stmpe-adc.c
236
dev_err(stmpe->dev, "Could not enable clock for ADC\n");
drivers/iio/adc/stmpe-adc.c
240
ret = stmpe811_adc_common_init(stmpe);
drivers/iio/adc/stmpe-adc.c
242
stmpe_disable(stmpe, STMPE_BLOCK_ADC);
drivers/iio/adc/stmpe-adc.c
247
stmpe_reg_write(stmpe, STMPE_REG_TEMP_TH, 0);
drivers/iio/adc/stmpe-adc.c
248
stmpe_reg_write(stmpe, STMPE_REG_TEMP_TH + 1, 0);
drivers/iio/adc/stmpe-adc.c
302
info->stmpe = dev_get_drvdata(pdev->dev.parent);
drivers/iio/adc/stmpe-adc.c
325
stmpe_reg_write(info->stmpe, STMPE_REG_ADC_INT_EN,
drivers/iio/adc/stmpe-adc.c
328
stmpe_reg_write(info->stmpe, STMPE_REG_ADC_INT_STA,
drivers/iio/adc/stmpe-adc.c
47
struct stmpe *stmpe;
drivers/iio/adc/stmpe-adc.c
77
stmpe_reg_write(info->stmpe, STMPE_REG_ADC_CAPT,
drivers/iio/adc/stmpe-adc.c
83
stmpe_reg_write(info->stmpe, STMPE_REG_ADC_INT_STA,
drivers/input/keyboard/stmpe-keypad.c
130
struct stmpe *stmpe;
drivers/input/keyboard/stmpe-keypad.c
144
struct stmpe *stmpe = keypad->stmpe;
drivers/input/keyboard/stmpe-keypad.c
149
return stmpe_block_read(stmpe, STMPE_KPC_DATA_BYTE0,
drivers/input/keyboard/stmpe-keypad.c
153
ret = stmpe_reg_read(stmpe, STMPE_KPC_DATA_BYTE0 + i);
drivers/input/keyboard/stmpe-keypad.c
200
struct stmpe *stmpe = keypad->stmpe;
drivers/input/keyboard/stmpe-keypad.c
201
u8 pureg = stmpe->regs[STMPE_IDX_GPPUR_LSB];
drivers/input/keyboard/stmpe-keypad.c
238
ret = stmpe_set_altfunc(stmpe, pins, STMPE_BLOCK_KEYPAD);
drivers/input/keyboard/stmpe-keypad.c
251
ret = stmpe_reg_read(stmpe, pureg);
drivers/input/keyboard/stmpe-keypad.c
259
ret = stmpe_reg_write(stmpe, pureg, val);
drivers/input/keyboard/stmpe-keypad.c
268
struct stmpe *stmpe = keypad->stmpe;
drivers/input/keyboard/stmpe-keypad.c
277
ret = stmpe_enable(stmpe, STMPE_BLOCK_KEYPAD);
drivers/input/keyboard/stmpe-keypad.c
285
ret = stmpe_reg_write(stmpe, STMPE_KPC_COL, keypad->cols);
drivers/input/keyboard/stmpe-keypad.c
289
ret = stmpe_reg_write(stmpe, STMPE_KPC_ROW_LSB, keypad->rows);
drivers/input/keyboard/stmpe-keypad.c
294
ret = stmpe_set_bits(stmpe, STMPE_KPC_ROW_MSB,
drivers/input/keyboard/stmpe-keypad.c
301
ret = stmpe_set_bits(stmpe, STMPE_KPC_CTRL_MSB,
drivers/input/keyboard/stmpe-keypad.c
307
return stmpe_set_bits(stmpe, STMPE_KPC_CTRL_LSB,
drivers/input/keyboard/stmpe-keypad.c
333
struct stmpe *stmpe = dev_get_drvdata(pdev->dev.parent);
drivers/input/keyboard/stmpe-keypad.c
351
keypad->stmpe = stmpe;
drivers/input/keyboard/stmpe-keypad.c
352
keypad->variant = &stmpe_keypad_variants[stmpe->partnum];
drivers/input/keyboard/stmpe-keypad.c
411
stmpe_disable(keypad->stmpe, STMPE_BLOCK_KEYPAD);
drivers/input/touchscreen/stmpe-ts.c
106
int_sta = stmpe_reg_read(ts->stmpe, STMPE_REG_INT_STA);
drivers/input/touchscreen/stmpe-ts.c
117
int_sta = stmpe_reg_read(ts->stmpe, STMPE_REG_INT_STA);
drivers/input/touchscreen/stmpe-ts.c
122
__stmpe_reset_fifo(ts->stmpe);
drivers/input/touchscreen/stmpe-ts.c
147
stmpe_set_bits(ts->stmpe, STMPE_REG_TSC_CTRL,
drivers/input/touchscreen/stmpe-ts.c
150
stmpe_block_read(ts->stmpe, STMPE_REG_TSC_DATA_XYZ, 4, data_set);
drivers/input/touchscreen/stmpe-ts.c
162
__stmpe_reset_fifo(ts->stmpe);
drivers/input/touchscreen/stmpe-ts.c
165
stmpe_set_bits(ts->stmpe, STMPE_REG_TSC_CTRL,
drivers/input/touchscreen/stmpe-ts.c
178
struct stmpe *stmpe = ts->stmpe;
drivers/input/touchscreen/stmpe-ts.c
181
ret = stmpe_enable(stmpe, STMPE_BLOCK_TOUCHSCREEN | STMPE_BLOCK_ADC);
drivers/input/touchscreen/stmpe-ts.c
187
ret = stmpe811_adc_common_init(stmpe);
drivers/input/touchscreen/stmpe-ts.c
189
stmpe_disable(stmpe, STMPE_BLOCK_TOUCHSCREEN | STMPE_BLOCK_ADC);
drivers/input/touchscreen/stmpe-ts.c
199
ret = stmpe_set_bits(stmpe, STMPE_REG_TSC_CFG, tsc_cfg_mask, tsc_cfg);
drivers/input/touchscreen/stmpe-ts.c
205
ret = stmpe_set_bits(stmpe, STMPE_REG_TSC_FRACTION_Z,
drivers/input/touchscreen/stmpe-ts.c
212
ret = stmpe_set_bits(stmpe, STMPE_REG_TSC_I_DRIVE,
drivers/input/touchscreen/stmpe-ts.c
220
ret = stmpe_reg_write(stmpe, STMPE_REG_FIFO_TH, 1);
drivers/input/touchscreen/stmpe-ts.c
226
ret = stmpe_set_bits(stmpe, STMPE_REG_TSC_CTRL,
drivers/input/touchscreen/stmpe-ts.c
241
ret = __stmpe_reset_fifo(ts->stmpe);
drivers/input/touchscreen/stmpe-ts.c
245
return stmpe_set_bits(ts->stmpe, STMPE_REG_TSC_CTRL,
drivers/input/touchscreen/stmpe-ts.c
255
stmpe_set_bits(ts->stmpe, STMPE_REG_TSC_CTRL,
drivers/input/touchscreen/stmpe-ts.c
267
ts->stmpe->sample_time = val;
drivers/input/touchscreen/stmpe-ts.c
269
ts->stmpe->mod_12b = val;
drivers/input/touchscreen/stmpe-ts.c
271
ts->stmpe->ref_sel = val;
drivers/input/touchscreen/stmpe-ts.c
273
ts->stmpe->adc_freq = val;
drivers/input/touchscreen/stmpe-ts.c
289
struct stmpe *stmpe = dev_get_drvdata(pdev->dev.parent);
drivers/input/touchscreen/stmpe-ts.c
308
ts->stmpe = stmpe;
drivers/input/touchscreen/stmpe-ts.c
357
stmpe_disable(ts->stmpe, STMPE_BLOCK_TOUCHSCREEN);
drivers/input/touchscreen/stmpe-ts.c
73
struct stmpe *stmpe;
drivers/input/touchscreen/stmpe-ts.c
85
static int __stmpe_reset_fifo(struct stmpe *stmpe)
drivers/input/touchscreen/stmpe-ts.c
89
ret = stmpe_set_bits(stmpe, STMPE_REG_FIFO_STA,
drivers/input/touchscreen/stmpe-ts.c
94
return stmpe_set_bits(stmpe, STMPE_REG_FIFO_STA,
drivers/mfd/stmpe-i2c.c
20
static int i2c_reg_read(struct stmpe *stmpe, u8 reg)
drivers/mfd/stmpe-i2c.c
22
struct i2c_client *i2c = stmpe->client;
drivers/mfd/stmpe-i2c.c
27
static int i2c_reg_write(struct stmpe *stmpe, u8 reg, u8 val)
drivers/mfd/stmpe-i2c.c
29
struct i2c_client *i2c = stmpe->client;
drivers/mfd/stmpe-i2c.c
34
static int i2c_block_read(struct stmpe *stmpe, u8 reg, u8 length, u8 *values)
drivers/mfd/stmpe-i2c.c
36
struct i2c_client *i2c = stmpe->client;
drivers/mfd/stmpe-i2c.c
41
static int i2c_block_write(struct stmpe *stmpe, u8 reg, u8 length,
drivers/mfd/stmpe-i2c.c
44
struct i2c_client *i2c = stmpe->client;
drivers/mfd/stmpe-i2c.c
97
struct stmpe *stmpe = dev_get_drvdata(&i2c->dev);
drivers/mfd/stmpe-i2c.c
99
stmpe_remove(stmpe);
drivers/mfd/stmpe-spi.c
107
struct stmpe *stmpe = spi_get_drvdata(spi);
drivers/mfd/stmpe-spi.c
109
stmpe_remove(stmpe);
drivers/mfd/stmpe-spi.c
20
static int spi_reg_read(struct stmpe *stmpe, u8 reg)
drivers/mfd/stmpe-spi.c
22
struct spi_device *spi = stmpe->client;
drivers/mfd/stmpe-spi.c
28
static int spi_reg_write(struct stmpe *stmpe, u8 reg, u8 val)
drivers/mfd/stmpe-spi.c
30
struct spi_device *spi = stmpe->client;
drivers/mfd/stmpe-spi.c
36
static int spi_block_read(struct stmpe *stmpe, u8 reg, u8 length, u8 *values)
drivers/mfd/stmpe-spi.c
41
ret = spi_reg_read(stmpe, reg + i);
drivers/mfd/stmpe-spi.c
50
static int spi_block_write(struct stmpe *stmpe, u8 reg, u8 length,
drivers/mfd/stmpe-spi.c
56
ret = spi_reg_write(stmpe, reg, *(values + i - 1));
drivers/mfd/stmpe-spi.c
64
static void spi_init(struct stmpe *stmpe)
drivers/mfd/stmpe-spi.c
66
struct spi_device *spi = stmpe->client;
drivers/mfd/stmpe-spi.c
71
if (stmpe->variant->id_val == 0x0811)
drivers/mfd/stmpe-spi.c
72
spi_reg_write(stmpe, STMPE811_REG_SPI_CFG, spi->mode);
drivers/mfd/stmpe.c
100
dev_vdbg(stmpe->dev, "rd: reg %#x (%d) => ret %#x\n", reg, length, ret);
drivers/mfd/stmpe.c
1010
return __stmpe_set_bits(stmpe, stmpe->regs[STMPE_IDX_SYS_CTRL], mask,
drivers/mfd/stmpe.c
1014
static int stmpe24xx_get_altfunc(struct stmpe *stmpe, enum stmpe_block block)
drivers/mfd/stmpe.c
106
static int __stmpe_block_write(struct stmpe *stmpe, u8 reg, u8 length,
drivers/mfd/stmpe.c
1082
struct stmpe *stmpe = data;
drivers/mfd/stmpe.c
1083
struct stmpe_variant_info *variant = stmpe->variant;
drivers/mfd/stmpe.c
1092
int base = irq_find_mapping(stmpe->domain, 0);
drivers/mfd/stmpe.c
1099
israddr = stmpe->regs[STMPE_IDX_ISR_LSB];
drivers/mfd/stmpe.c
1101
israddr = stmpe->regs[STMPE_IDX_ISR_MSB];
drivers/mfd/stmpe.c
1103
ret = stmpe_block_read(stmpe, israddr, num, isr);
drivers/mfd/stmpe.c
111
dev_vdbg(stmpe->dev, "wr: regs %#x (%d)\n", reg, length);
drivers/mfd/stmpe.c
1112
status &= stmpe->ier[bank];
drivers/mfd/stmpe.c
1120
int nestedirq = irq_find_mapping(stmpe->domain, line);
drivers/mfd/stmpe.c
1126
stmpe_reg_write(stmpe, israddr + i, clear);
drivers/mfd/stmpe.c
1134
struct stmpe *stmpe = irq_data_get_irq_chip_data(data);
drivers/mfd/stmpe.c
1136
mutex_lock(&stmpe->irq_lock);
drivers/mfd/stmpe.c
114
ret = stmpe->ci->write_block(stmpe, reg, length, values);
drivers/mfd/stmpe.c
1141
struct stmpe *stmpe = irq_data_get_irq_chip_data(data);
drivers/mfd/stmpe.c
1142
struct stmpe_variant_info *variant = stmpe->variant;
drivers/mfd/stmpe.c
1147
u8 new = stmpe->ier[i];
drivers/mfd/stmpe.c
1148
u8 old = stmpe->oldier[i];
drivers/mfd/stmpe.c
1153
stmpe->oldier[i] = new;
drivers/mfd/stmpe.c
1154
stmpe_reg_write(stmpe, stmpe->regs[STMPE_IDX_IER_LSB + i], new);
drivers/mfd/stmpe.c
1157
mutex_unlock(&stmpe->irq_lock);
drivers/mfd/stmpe.c
116
dev_err(stmpe->dev, "failed to write regs %#x: %d\n", reg, ret);
drivers/mfd/stmpe.c
1162
struct stmpe *stmpe = irq_data_get_irq_chip_data(data);
drivers/mfd/stmpe.c
1167
stmpe->ier[regoffset] &= ~mask;
drivers/mfd/stmpe.c
1172
struct stmpe *stmpe = irq_data_get_irq_chip_data(data);
drivers/mfd/stmpe.c
1177
stmpe->ier[regoffset] |= mask;
drivers/mfd/stmpe.c
1191
struct stmpe *stmpe = d->host_data;
drivers/mfd/stmpe.c
1194
if (stmpe->variant->id_val != STMPE801_ID)
drivers/mfd/stmpe.c
1197
irq_set_chip_data(virq, stmpe);
drivers/mfd/stmpe.c
1217
static int stmpe_irq_init(struct stmpe *stmpe, struct device_node *np)
drivers/mfd/stmpe.c
1220
int num_irqs = stmpe->variant->num_irqs;
drivers/mfd/stmpe.c
1222
stmpe->domain = irq_domain_create_simple(of_fwnode_handle(np), num_irqs,
drivers/mfd/stmpe.c
1223
base, &stmpe_irq_ops, stmpe);
drivers/mfd/stmpe.c
1224
if (!stmpe->domain) {
drivers/mfd/stmpe.c
1225
dev_err(stmpe->dev, "Failed to create irqdomain\n");
drivers/mfd/stmpe.c
1232
static int stmpe_chip_init(struct stmpe *stmpe)
drivers/mfd/stmpe.c
1234
unsigned int irq_trigger = stmpe->pdata->irq_trigger;
drivers/mfd/stmpe.c
1235
int autosleep_timeout = stmpe->pdata->autosleep_timeout;
drivers/mfd/stmpe.c
1236
struct stmpe_variant_info *variant = stmpe->variant;
drivers/mfd/stmpe.c
1242
ret = stmpe_block_read(stmpe, stmpe->regs[STMPE_IDX_CHIP_ID],
drivers/mfd/stmpe.c
1249
dev_err(stmpe->dev, "unknown chip id: %#x\n", id);
drivers/mfd/stmpe.c
1253
dev_info(stmpe->dev, "%s detected, chip id: %#x\n", variant->name, id);
drivers/mfd/stmpe.c
1256
ret = stmpe_disable(stmpe, ~0);
drivers/mfd/stmpe.c
126
int stmpe_enable(struct stmpe *stmpe, unsigned int blocks)
drivers/mfd/stmpe.c
1260
ret = stmpe_reset(stmpe);
drivers/mfd/stmpe.c
1264
if (stmpe->irq >= 0) {
drivers/mfd/stmpe.c
1286
if (stmpe->pdata->autosleep) {
drivers/mfd/stmpe.c
1287
ret = stmpe_autosleep(stmpe, autosleep_timeout);
drivers/mfd/stmpe.c
1292
return stmpe_reg_write(stmpe, stmpe->regs[STMPE_IDX_ICR_LSB], icr);
drivers/mfd/stmpe.c
1295
static int stmpe_add_device(struct stmpe *stmpe, const struct mfd_cell *cell)
drivers/mfd/stmpe.c
1297
return mfd_add_devices(stmpe->dev, stmpe->pdata->id, cell, 1,
drivers/mfd/stmpe.c
1298
NULL, 0, stmpe->domain);
drivers/mfd/stmpe.c
130
mutex_lock(&stmpe->lock);
drivers/mfd/stmpe.c
1301
static int stmpe_devices_init(struct stmpe *stmpe)
drivers/mfd/stmpe.c
1303
struct stmpe_variant_info *variant = stmpe->variant;
drivers/mfd/stmpe.c
1304
unsigned int platform_blocks = stmpe->pdata->blocks;
drivers/mfd/stmpe.c
131
ret = __stmpe_enable(stmpe, blocks);
drivers/mfd/stmpe.c
132
mutex_unlock(&stmpe->lock);
drivers/mfd/stmpe.c
1324
ret = stmpe_add_device(stmpe, block->cell);
drivers/mfd/stmpe.c
1330
dev_warn(stmpe->dev,
drivers/mfd/stmpe.c
1370
struct stmpe *stmpe;
drivers/mfd/stmpe.c
1384
stmpe = devm_kzalloc(ci->dev, sizeof(struct stmpe), GFP_KERNEL);
drivers/mfd/stmpe.c
1385
if (!stmpe)
drivers/mfd/stmpe.c
1388
mutex_init(&stmpe->irq_lock);
drivers/mfd/stmpe.c
1389
mutex_init(&stmpe->lock);
drivers/mfd/stmpe.c
1392
stmpe->sample_time = val;
drivers/mfd/stmpe.c
1394
stmpe->mod_12b = val;
drivers/mfd/stmpe.c
1396
stmpe->ref_sel = val;
drivers/mfd/stmpe.c
1398
stmpe->adc_freq = val;
drivers/mfd/stmpe.c
1400
stmpe->dev = ci->dev;
drivers/mfd/stmpe.c
1401
stmpe->client = ci->client;
drivers/mfd/stmpe.c
1402
stmpe->pdata = pdata;
drivers/mfd/stmpe.c
1403
stmpe->ci = ci;
drivers/mfd/stmpe.c
1404
stmpe->partnum = partnum;
drivers/mfd/stmpe.c
1405
stmpe->variant = stmpe_variant_info[partnum];
drivers/mfd/stmpe.c
1406
stmpe->regs = stmpe->variant->regs;
drivers/mfd/stmpe.c
1407
stmpe->num_gpios = stmpe->variant->num_gpios;
drivers/mfd/stmpe.c
1408
stmpe->vcc = devm_regulator_get_optional(ci->dev, "vcc");
drivers/mfd/stmpe.c
1409
if (!IS_ERR(stmpe->vcc)) {
drivers/mfd/stmpe.c
1410
ret = regulator_enable(stmpe->vcc);
drivers/mfd/stmpe.c
1414
stmpe->vio = devm_regulator_get_optional(ci->dev, "vio");
drivers/mfd/stmpe.c
1415
if (!IS_ERR(stmpe->vio)) {
drivers/mfd/stmpe.c
1416
ret = regulator_enable(stmpe->vio);
drivers/mfd/stmpe.c
1420
dev_set_drvdata(stmpe->dev, stmpe);
drivers/mfd/stmpe.c
1423
ci->init(stmpe);
drivers/mfd/stmpe.c
1428
dev_err(stmpe->dev, "failed to request IRQ GPIO: %d\n", ret);
drivers/mfd/stmpe.c
143
int stmpe_disable(struct stmpe *stmpe, unsigned int blocks)
drivers/mfd/stmpe.c
1433
stmpe->irq = gpiod_to_irq(irq_gpio);
drivers/mfd/stmpe.c
1437
stmpe->irq = ci->irq;
drivers/mfd/stmpe.c
1441
if (stmpe->irq < 0) {
drivers/mfd/stmpe.c
1443
dev_info(stmpe->dev,
drivers/mfd/stmpe.c
1445
stmpe->variant->name);
drivers/mfd/stmpe.c
1446
if (!stmpe_noirq_variant_info[stmpe->partnum]) {
drivers/mfd/stmpe.c
1447
dev_err(stmpe->dev,
drivers/mfd/stmpe.c
1449
stmpe->variant->name);
drivers/mfd/stmpe.c
1452
stmpe->variant = stmpe_noirq_variant_info[stmpe->partnum];
drivers/mfd/stmpe.c
1454
pdata->irq_trigger = irq_get_trigger_type(stmpe->irq);
drivers/mfd/stmpe.c
1457
ret = stmpe_chip_init(stmpe);
drivers/mfd/stmpe.c
1461
if (stmpe->irq >= 0) {
drivers/mfd/stmpe.c
1462
ret = stmpe_irq_init(stmpe, np);
drivers/mfd/stmpe.c
1466
ret = devm_request_threaded_irq(ci->dev, stmpe->irq, NULL,
drivers/mfd/stmpe.c
1468
"stmpe", stmpe);
drivers/mfd/stmpe.c
147
mutex_lock(&stmpe->lock);
drivers/mfd/stmpe.c
1470
dev_err(stmpe->dev, "failed to request IRQ: %d\n",
drivers/mfd/stmpe.c
1476
ret = stmpe_devices_init(stmpe);
drivers/mfd/stmpe.c
148
ret = __stmpe_disable(stmpe, blocks);
drivers/mfd/stmpe.c
1480
dev_err(stmpe->dev, "failed to add children\n");
drivers/mfd/stmpe.c
1481
mfd_remove_devices(stmpe->dev);
drivers/mfd/stmpe.c
1487
void stmpe_remove(struct stmpe *stmpe)
drivers/mfd/stmpe.c
1489
if (stmpe->domain)
drivers/mfd/stmpe.c
149
mutex_unlock(&stmpe->lock);
drivers/mfd/stmpe.c
1490
irq_domain_remove(stmpe->domain);
drivers/mfd/stmpe.c
1492
if (!IS_ERR(stmpe->vio) && regulator_is_enabled(stmpe->vio))
drivers/mfd/stmpe.c
1493
regulator_disable(stmpe->vio);
drivers/mfd/stmpe.c
1494
if (!IS_ERR(stmpe->vcc) && regulator_is_enabled(stmpe->vcc))
drivers/mfd/stmpe.c
1495
regulator_disable(stmpe->vcc);
drivers/mfd/stmpe.c
1497
__stmpe_disable(stmpe, STMPE_BLOCK_ADC);
drivers/mfd/stmpe.c
1499
mfd_remove_devices(stmpe->dev);
drivers/mfd/stmpe.c
1505
struct stmpe *stmpe = dev_get_drvdata(dev);
drivers/mfd/stmpe.c
1507
if (stmpe->irq >= 0 && device_may_wakeup(dev))
drivers/mfd/stmpe.c
1508
enable_irq_wake(stmpe->irq);
drivers/mfd/stmpe.c
1515
struct stmpe *stmpe = dev_get_drvdata(dev);
drivers/mfd/stmpe.c
1517
if (stmpe->irq >= 0 && device_may_wakeup(dev))
drivers/mfd/stmpe.c
1518
disable_irq_wake(stmpe->irq);
drivers/mfd/stmpe.c
160
int stmpe_reg_read(struct stmpe *stmpe, u8 reg)
drivers/mfd/stmpe.c
164
mutex_lock(&stmpe->lock);
drivers/mfd/stmpe.c
165
ret = __stmpe_reg_read(stmpe, reg);
drivers/mfd/stmpe.c
166
mutex_unlock(&stmpe->lock);
drivers/mfd/stmpe.c
178
int stmpe_reg_write(struct stmpe *stmpe, u8 reg, u8 val)
drivers/mfd/stmpe.c
182
mutex_lock(&stmpe->lock);
drivers/mfd/stmpe.c
183
ret = __stmpe_reg_write(stmpe, reg, val);
drivers/mfd/stmpe.c
184
mutex_unlock(&stmpe->lock);
drivers/mfd/stmpe.c
197
int stmpe_set_bits(struct stmpe *stmpe, u8 reg, u8 mask, u8 val)
drivers/mfd/stmpe.c
201
mutex_lock(&stmpe->lock);
drivers/mfd/stmpe.c
202
ret = __stmpe_set_bits(stmpe, reg, mask, val);
drivers/mfd/stmpe.c
203
mutex_unlock(&stmpe->lock);
drivers/mfd/stmpe.c
216
int stmpe_block_read(struct stmpe *stmpe, u8 reg, u8 length, u8 *values)
drivers/mfd/stmpe.c
220
mutex_lock(&stmpe->lock);
drivers/mfd/stmpe.c
221
ret = __stmpe_block_read(stmpe, reg, length, values);
drivers/mfd/stmpe.c
222
mutex_unlock(&stmpe->lock);
drivers/mfd/stmpe.c
235
int stmpe_block_write(struct stmpe *stmpe, u8 reg, u8 length,
drivers/mfd/stmpe.c
240
mutex_lock(&stmpe->lock);
drivers/mfd/stmpe.c
241
ret = __stmpe_block_write(stmpe, reg, length, values);
drivers/mfd/stmpe.c
242
mutex_unlock(&stmpe->lock);
drivers/mfd/stmpe.c
260
int stmpe_set_altfunc(struct stmpe *stmpe, u32 pins, enum stmpe_block block)
drivers/mfd/stmpe.c
262
struct stmpe_variant_info *variant = stmpe->variant;
drivers/mfd/stmpe.c
263
u8 regaddr = stmpe->regs[STMPE_IDX_GPAFR_U_MSB];
drivers/mfd/stmpe.c
265
int numregs = DIV_ROUND_UP(stmpe->num_gpios * af_bits, 8);
drivers/mfd/stmpe.c
274
mutex_lock(&stmpe->lock);
drivers/mfd/stmpe.c
276
ret = __stmpe_enable(stmpe, STMPE_BLOCK_GPIO);
drivers/mfd/stmpe.c
280
ret = __stmpe_block_read(stmpe, regaddr, numregs, regs);
drivers/mfd/stmpe.c
284
af = variant->get_altfunc(stmpe, block);
drivers/mfd/stmpe.c
297
ret = __stmpe_block_write(stmpe, regaddr, numregs, regs);
drivers/mfd/stmpe.c
300
mutex_unlock(&stmpe->lock);
drivers/mfd/stmpe.c
408
static int stmpe801_enable(struct stmpe *stmpe, unsigned int blocks,
drivers/mfd/stmpe.c
41
static int __stmpe_enable(struct stmpe *stmpe, unsigned int blocks)
drivers/mfd/stmpe.c
43
return stmpe->variant->enable(stmpe, blocks, true);
drivers/mfd/stmpe.c
46
static int __stmpe_disable(struct stmpe *stmpe, unsigned int blocks)
drivers/mfd/stmpe.c
48
return stmpe->variant->enable(stmpe, blocks, false);
drivers/mfd/stmpe.c
51
static int __stmpe_reg_read(struct stmpe *stmpe, u8 reg)
drivers/mfd/stmpe.c
527
static int stmpe811_enable(struct stmpe *stmpe, unsigned int blocks,
drivers/mfd/stmpe.c
541
return __stmpe_set_bits(stmpe, stmpe->regs[STMPE_IDX_SYS_CTRL2], mask,
drivers/mfd/stmpe.c
545
int stmpe811_adc_common_init(struct stmpe *stmpe)
drivers/mfd/stmpe.c
55
ret = stmpe->ci->read_byte(stmpe, reg);
drivers/mfd/stmpe.c
550
adc_ctrl1 = STMPE_SAMPLE_TIME(stmpe->sample_time) |
drivers/mfd/stmpe.c
551
STMPE_MOD_12B(stmpe->mod_12b) |
drivers/mfd/stmpe.c
552
STMPE_REF_SEL(stmpe->ref_sel);
drivers/mfd/stmpe.c
556
ret = stmpe_set_bits(stmpe, STMPE811_REG_ADC_CTRL1,
drivers/mfd/stmpe.c
559
dev_err(stmpe->dev, "Could not setup ADC\n");
drivers/mfd/stmpe.c
563
ret = stmpe_set_bits(stmpe, STMPE811_REG_ADC_CTRL2,
drivers/mfd/stmpe.c
564
STMPE_ADC_FREQ(0xff), STMPE_ADC_FREQ(stmpe->adc_freq));
drivers/mfd/stmpe.c
566
dev_err(stmpe->dev, "Could not setup ADC\n");
drivers/mfd/stmpe.c
57
dev_err(stmpe->dev, "failed to read reg %#x: %d\n", reg, ret);
drivers/mfd/stmpe.c
574
static int stmpe811_get_altfunc(struct stmpe *stmpe, enum stmpe_block block)
drivers/mfd/stmpe.c
59
dev_vdbg(stmpe->dev, "rd: reg %#x => data %#x\n", reg, ret);
drivers/mfd/stmpe.c
64
static int __stmpe_reg_write(struct stmpe *stmpe, u8 reg, u8 val)
drivers/mfd/stmpe.c
642
static int stmpe1600_enable(struct stmpe *stmpe, unsigned int blocks,
drivers/mfd/stmpe.c
68
dev_vdbg(stmpe->dev, "wr: reg %#x <= %#x\n", reg, val);
drivers/mfd/stmpe.c
70
ret = stmpe->ci->write_byte(stmpe, reg, val);
drivers/mfd/stmpe.c
72
dev_err(stmpe->dev, "failed to write reg %#x: %d\n", reg, ret);
drivers/mfd/stmpe.c
736
static int stmpe_autosleep(struct stmpe *stmpe, int autosleep_timeout)
drivers/mfd/stmpe.c
740
if (!stmpe->variant->enable_autosleep)
drivers/mfd/stmpe.c
743
mutex_lock(&stmpe->lock);
drivers/mfd/stmpe.c
744
ret = stmpe->variant->enable_autosleep(stmpe, autosleep_timeout);
drivers/mfd/stmpe.c
745
mutex_unlock(&stmpe->lock);
drivers/mfd/stmpe.c
753
static int stmpe1601_autosleep(struct stmpe *stmpe,
drivers/mfd/stmpe.c
761
dev_err(stmpe->dev, "invalid timeout\n");
drivers/mfd/stmpe.c
765
ret = __stmpe_set_bits(stmpe, stmpe->regs[STMPE_IDX_SYS_CTRL2],
drivers/mfd/stmpe.c
77
static int __stmpe_set_bits(struct stmpe *stmpe, u8 reg, u8 mask, u8 val)
drivers/mfd/stmpe.c
771
return __stmpe_set_bits(stmpe, stmpe->regs[STMPE_IDX_SYS_CTRL2],
drivers/mfd/stmpe.c
776
static int stmpe1601_enable(struct stmpe *stmpe, unsigned int blocks,
drivers/mfd/stmpe.c
796
return __stmpe_set_bits(stmpe, stmpe->regs[STMPE_IDX_SYS_CTRL], mask,
drivers/mfd/stmpe.c
800
static int stmpe1601_get_altfunc(struct stmpe *stmpe, enum stmpe_block block)
drivers/mfd/stmpe.c
81
ret = __stmpe_reg_read(stmpe, reg);
drivers/mfd/stmpe.c
877
static int stmpe1801_enable(struct stmpe *stmpe, unsigned int blocks,
drivers/mfd/stmpe.c
88
return __stmpe_reg_write(stmpe, reg, ret);
drivers/mfd/stmpe.c
887
return __stmpe_set_bits(stmpe, STMPE1801_REG_INT_EN_MASK_LOW, mask,
drivers/mfd/stmpe.c
891
static int stmpe_reset(struct stmpe *stmpe)
drivers/mfd/stmpe.c
893
u16 id_val = stmpe->variant->id_val;
drivers/mfd/stmpe.c
905
ret = __stmpe_set_bits(stmpe, stmpe->regs[STMPE_IDX_SYS_CTRL],
drivers/mfd/stmpe.c
91
static int __stmpe_block_read(struct stmpe *stmpe, u8 reg, u8 length,
drivers/mfd/stmpe.c
914
ret = __stmpe_reg_read(stmpe, stmpe->regs[STMPE_IDX_SYS_CTRL]);
drivers/mfd/stmpe.c
96
ret = stmpe->ci->read_block(stmpe, reg, length, values);
drivers/mfd/stmpe.c
98
dev_err(stmpe->dev, "failed to read regs %#x: %d\n", reg, ret);
drivers/mfd/stmpe.c
999
static int stmpe24xx_enable(struct stmpe *stmpe, unsigned int blocks,
drivers/mfd/stmpe.h
101
void stmpe_remove(struct stmpe *stmpe);
drivers/mfd/stmpe.h
73
int (*enable)(struct stmpe *stmpe, unsigned int blocks, bool enable);
drivers/mfd/stmpe.h
74
int (*get_altfunc)(struct stmpe *stmpe, enum stmpe_block block);
drivers/mfd/stmpe.h
75
int (*enable_autosleep)(struct stmpe *stmpe, int autosleep_timeout);
drivers/mfd/stmpe.h
92
int (*read_byte)(struct stmpe *stmpe, u8 reg);
drivers/mfd/stmpe.h
93
int (*write_byte)(struct stmpe *stmpe, u8 reg, u8 val);
drivers/mfd/stmpe.h
94
int (*read_block)(struct stmpe *stmpe, u8 reg, u8 len, u8 *values);
drivers/mfd/stmpe.h
95
int (*write_block)(struct stmpe *stmpe, u8 reg, u8 len,
drivers/mfd/stmpe.h
97
void (*init)(struct stmpe *stmpe);
drivers/pwm/pwm-stmpe.c
120
if (stmpe_pwm->stmpe->partnum == STMPE2401 ||
drivers/pwm/pwm-stmpe.c
121
stmpe_pwm->stmpe->partnum == STMPE2403)
drivers/pwm/pwm-stmpe.c
124
ret = stmpe_set_altfunc(stmpe_pwm->stmpe, BIT(pin),
drivers/pwm/pwm-stmpe.c
156
if (stmpe_pwm->stmpe->partnum == STMPE2401)
drivers/pwm/pwm-stmpe.c
159
if (stmpe_pwm->stmpe->partnum == STMPE2403)
drivers/pwm/pwm-stmpe.c
164
if (stmpe_pwm->stmpe->partnum == STMPE2401)
drivers/pwm/pwm-stmpe.c
167
if (stmpe_pwm->stmpe->partnum == STMPE2403)
drivers/pwm/pwm-stmpe.c
196
} else if (stmpe_pwm->stmpe->partnum == STMPE2403) {
drivers/pwm/pwm-stmpe.c
200
} else if (stmpe_pwm->stmpe->partnum == STMPE2401) {
drivers/pwm/pwm-stmpe.c
233
ret = stmpe_reg_write(stmpe_pwm->stmpe, offset, value);
drivers/pwm/pwm-stmpe.c
242
ret = stmpe_reg_write(stmpe_pwm->stmpe, offset, value);
drivers/pwm/pwm-stmpe.c
29
struct stmpe *stmpe;
drivers/pwm/pwm-stmpe.c
293
struct stmpe *stmpe = dev_get_drvdata(pdev->dev.parent);
drivers/pwm/pwm-stmpe.c
298
switch (stmpe->partnum) {
drivers/pwm/pwm-stmpe.c
315
stmpe_pwm->stmpe = stmpe;
drivers/pwm/pwm-stmpe.c
319
ret = stmpe_enable(stmpe, STMPE_BLOCK_PWM);
drivers/pwm/pwm-stmpe.c
325
stmpe_disable(stmpe, STMPE_BLOCK_PWM);
drivers/pwm/pwm-stmpe.c
336
struct stmpe *stmpe = dev_get_drvdata(pdev->dev.parent);
drivers/pwm/pwm-stmpe.c
340
stmpe_disable(stmpe, STMPE_BLOCK_PWM);
drivers/pwm/pwm-stmpe.c
44
ret = stmpe_reg_read(stmpe_pwm->stmpe, STMPE24XX_PWMCS);
drivers/pwm/pwm-stmpe.c
53
ret = stmpe_reg_write(stmpe_pwm->stmpe, STMPE24XX_PWMCS, value);
drivers/pwm/pwm-stmpe.c
70
ret = stmpe_reg_read(stmpe_pwm->stmpe, STMPE24XX_PWMCS);
drivers/pwm/pwm-stmpe.c
79
ret = stmpe_reg_write(stmpe_pwm->stmpe, STMPE24XX_PWMCS, value);
include/linux/mfd/stmpe.h
148
extern int stmpe_reg_write(struct stmpe *stmpe, u8 reg, u8 data);
include/linux/mfd/stmpe.h
149
extern int stmpe_reg_read(struct stmpe *stmpe, u8 reg);
include/linux/mfd/stmpe.h
150
extern int stmpe_block_read(struct stmpe *stmpe, u8 reg, u8 length,
include/linux/mfd/stmpe.h
152
extern int stmpe_block_write(struct stmpe *stmpe, u8 reg, u8 length,
include/linux/mfd/stmpe.h
154
extern int stmpe_set_bits(struct stmpe *stmpe, u8 reg, u8 mask, u8 val);
include/linux/mfd/stmpe.h
155
extern int stmpe_set_altfunc(struct stmpe *stmpe, u32 pins,
include/linux/mfd/stmpe.h
157
extern int stmpe_enable(struct stmpe *stmpe, unsigned int blocks);
include/linux/mfd/stmpe.h
158
extern int stmpe_disable(struct stmpe *stmpe, unsigned int blocks);
include/linux/mfd/stmpe.h
159
extern int stmpe811_adc_common_init(struct stmpe *stmpe);