Lines Matching refs:stmpe

13 #include <linux/mfd/stmpe.h>
34 struct stmpe *stmpe;
45 struct stmpe *stmpe = stmpe_gpio->stmpe;
46 u8 reg = stmpe->regs[STMPE_IDX_GPMR_LSB + (offset / 8)];
50 ret = stmpe_reg_read(stmpe, reg);
60 struct stmpe *stmpe = stmpe_gpio->stmpe;
62 u8 reg = stmpe->regs[which + (offset / 8)];
69 if (stmpe->regs[STMPE_IDX_GPSR_LSB] == stmpe->regs[STMPE_IDX_GPCR_LSB])
70 return stmpe_set_bits(stmpe, reg, mask, val ? mask : 0);
72 return stmpe_reg_write(stmpe, reg, mask);
79 struct stmpe *stmpe = stmpe_gpio->stmpe;
80 u8 reg = stmpe->regs[STMPE_IDX_GPDR_LSB] - (offset / 8);
84 ret = stmpe_reg_read(stmpe, reg);
98 struct stmpe *stmpe = stmpe_gpio->stmpe;
99 u8 reg = stmpe->regs[STMPE_IDX_GPDR_LSB + (offset / 8)];
107 return stmpe_set_bits(stmpe, reg, mask, mask);
114 struct stmpe *stmpe = stmpe_gpio->stmpe;
115 u8 reg = stmpe->regs[STMPE_IDX_GPDR_LSB + (offset / 8)];
118 return stmpe_set_bits(stmpe, reg, mask, 0);
124 struct stmpe *stmpe = stmpe_gpio->stmpe;
129 return stmpe_set_altfunc(stmpe, BIT(offset), STMPE_BLOCK_GPIO);
133 .label = "stmpe",
156 if (stmpe_gpio->stmpe->partnum == STMPE801 ||
157 stmpe_gpio->stmpe->partnum == STMPE1600)
185 struct stmpe *stmpe = stmpe_gpio->stmpe;
186 int num_banks = DIV_ROUND_UP(stmpe->num_gpios, 8);
205 if (stmpe->partnum == STMPE1600) {
206 ret = stmpe_reg_read(stmpe, stmpe->regs[STMPE_IDX_GPMR_LSB]);
208 dev_err(stmpe->dev, "Failed to read GPMR_LSB: %d\n", ret);
211 ret = stmpe_reg_read(stmpe, stmpe->regs[STMPE_IDX_GPMR_CSB]);
213 dev_err(stmpe->dev, "Failed to read GPMR_CSB: %d\n", ret);
220 if ((stmpe->partnum == STMPE801 ||
221 stmpe->partnum == STMPE1600) &&
233 stmpe_reg_write(stmpe, stmpe->regs[regmap[i][j]], new);
270 struct stmpe *stmpe = stmpe_gpio->stmpe;
273 u8 dir_reg = stmpe->regs[STMPE_IDX_GPDR_LSB + bank];
282 ret = stmpe_reg_read(stmpe, dir_reg);
317 switch (stmpe->partnum) {
323 edge_det_reg = stmpe->regs[STMPE_IDX_GPEDR_LSB + bank];
324 ret = stmpe_reg_read(stmpe, edge_det_reg);
330 rise_reg = stmpe->regs[STMPE_IDX_GPRER_LSB + bank];
331 fall_reg = stmpe->regs[STMPE_IDX_GPFER_LSB + bank];
333 ret = stmpe_reg_read(stmpe, rise_reg);
337 ret = stmpe_reg_read(stmpe, fall_reg);
344 irqen_reg = stmpe->regs[STMPE_IDX_IEGPIOR_LSB + bank];
351 ret = stmpe_reg_read(stmpe, irqen_reg);
378 .name = "stmpe-gpio",
393 struct stmpe *stmpe = stmpe_gpio->stmpe;
395 int num_banks = DIV_ROUND_UP(stmpe->num_gpios, 8);
408 if (stmpe->partnum == STMPE1600)
409 statmsbreg = stmpe->regs[STMPE_IDX_ISGPIOR_LSB];
411 statmsbreg = stmpe->regs[STMPE_IDX_ISGPIOR_MSB];
413 ret = stmpe_block_read(stmpe, statmsbreg, num_banks, status);
418 int bank = (stmpe_gpio->stmpe->partnum == STMPE1600) ? i :
442 if (stmpe->partnum != STMPE801 && stmpe->partnum != STMPE1600 &&
443 stmpe->partnum != STMPE1801) {
444 stmpe_reg_write(stmpe, statmsbreg + i, status[i]);
445 stmpe_reg_write(stmpe,
446 stmpe->regs[STMPE_IDX_GPEDR_MSB] + i,
471 static void stmpe_gpio_disable(void *stmpe)
473 stmpe_disable(stmpe, STMPE_BLOCK_GPIO);
479 struct stmpe *stmpe = dev_get_drvdata(dev->parent);
483 if (stmpe->num_gpios > MAX_GPIOS) {
494 stmpe_gpio->stmpe = stmpe;
496 stmpe_gpio->chip.ngpio = stmpe->num_gpios;
505 ret = stmpe_enable(stmpe, STMPE_BLOCK_GPIO);
509 ret = devm_add_action_or_reset(dev, stmpe_gpio_disable, stmpe);
518 IRQF_ONESHOT, "stmpe-gpio", stmpe_gpio);
540 .name = "stmpe-gpio",