Lines Matching defs:stmpe
14 #include <linux/mfd/stmpe.h>
32 struct stmpe *stmpe;
44 struct stmpe *stmpe = stmpe_gpio->stmpe;
45 u8 reg = stmpe->regs[STMPE_IDX_GPMR_LSB + (offset / 8)];
49 ret = stmpe_reg_read(stmpe, reg);
59 struct stmpe *stmpe = stmpe_gpio->stmpe;
61 u8 reg = stmpe->regs[which + (offset / 8)];
68 if (stmpe->regs[STMPE_IDX_GPSR_LSB] == stmpe->regs[STMPE_IDX_GPCR_LSB])
69 stmpe_set_bits(stmpe, reg, mask, val ? mask : 0);
71 stmpe_reg_write(stmpe, reg, mask);
78 struct stmpe *stmpe = stmpe_gpio->stmpe;
79 u8 reg = stmpe->regs[STMPE_IDX_GPDR_LSB] - (offset / 8);
83 ret = stmpe_reg_read(stmpe, reg);
97 struct stmpe *stmpe = stmpe_gpio->stmpe;
98 u8 reg = stmpe->regs[STMPE_IDX_GPDR_LSB + (offset / 8)];
103 return stmpe_set_bits(stmpe, reg, mask, mask);
110 struct stmpe *stmpe = stmpe_gpio->stmpe;
111 u8 reg = stmpe->regs[STMPE_IDX_GPDR_LSB + (offset / 8)];
114 return stmpe_set_bits(stmpe, reg, mask, 0);
120 struct stmpe *stmpe = stmpe_gpio->stmpe;
125 return stmpe_set_altfunc(stmpe, BIT(offset), STMPE_BLOCK_GPIO);
129 .label = "stmpe",
152 if (stmpe_gpio->stmpe->partnum == STMPE801 ||
153 stmpe_gpio->stmpe->partnum == STMPE1600)
181 struct stmpe *stmpe = stmpe_gpio->stmpe;
182 int num_banks = DIV_ROUND_UP(stmpe->num_gpios, 8);
201 if (stmpe->partnum == STMPE1600) {
202 stmpe_reg_read(stmpe, stmpe->regs[STMPE_IDX_GPMR_LSB]);
203 stmpe_reg_read(stmpe, stmpe->regs[STMPE_IDX_GPMR_CSB]);
208 if ((stmpe->partnum == STMPE801 ||
209 stmpe->partnum == STMPE1600) &&
221 stmpe_reg_write(stmpe, stmpe->regs[regmap[i][j]], new);
257 struct stmpe *stmpe = stmpe_gpio->stmpe;
261 u8 dir_reg = stmpe->regs[STMPE_IDX_GPDR_LSB + bank];
266 ret = stmpe_reg_read(stmpe, dir_reg);
302 switch (stmpe->partnum) {
308 edge_det_reg = stmpe->regs[STMPE_IDX_GPEDR_LSB + bank];
309 ret = stmpe_reg_read(stmpe, edge_det_reg);
315 rise_reg = stmpe->regs[STMPE_IDX_GPRER_LSB + bank];
316 fall_reg = stmpe->regs[STMPE_IDX_GPFER_LSB + bank];
318 ret = stmpe_reg_read(stmpe, rise_reg);
322 ret = stmpe_reg_read(stmpe, fall_reg);
329 irqen_reg = stmpe->regs[STMPE_IDX_IEGPIOR_LSB + bank];
336 ret = stmpe_reg_read(stmpe, irqen_reg);
363 .name = "stmpe-gpio",
378 struct stmpe *stmpe = stmpe_gpio->stmpe;
380 int num_banks = DIV_ROUND_UP(stmpe->num_gpios, 8);
393 if (stmpe->partnum == STMPE1600)
394 statmsbreg = stmpe->regs[STMPE_IDX_ISGPIOR_LSB];
396 statmsbreg = stmpe->regs[STMPE_IDX_ISGPIOR_MSB];
398 ret = stmpe_block_read(stmpe, statmsbreg, num_banks, status);
403 int bank = (stmpe_gpio->stmpe->partnum == STMPE1600) ? i :
427 if (stmpe->partnum != STMPE801 && stmpe->partnum != STMPE1600 &&
428 stmpe->partnum != STMPE1801) {
429 stmpe_reg_write(stmpe, statmsbreg + i, status[i]);
430 stmpe_reg_write(stmpe,
431 stmpe->regs[STMPE_IDX_GPEDR_MSB] + i,
456 static void stmpe_gpio_disable(void *stmpe)
458 stmpe_disable(stmpe, STMPE_BLOCK_GPIO);
463 struct stmpe *stmpe = dev_get_drvdata(pdev->dev.parent);
468 if (stmpe->num_gpios > MAX_GPIOS) {
480 stmpe_gpio->stmpe = stmpe;
482 stmpe_gpio->chip.ngpio = stmpe->num_gpios;
498 ret = stmpe_enable(stmpe, STMPE_BLOCK_GPIO);
502 ret = devm_add_action_or_reset(&pdev->dev, stmpe_gpio_disable, stmpe);
511 "stmpe-gpio", stmpe_gpio);
535 .name = "stmpe-gpio",