Lines Matching defs:pin

59  * They take a pin number which is relative to the start of the current device.
66 static u32 sunxi_bank_offset(const struct sunxi_pinctrl *pctl, u32 pin)
70 if (pin >= PK_BASE) {
71 pin -= PK_BASE;
75 return offset + (pin / PINS_PER_BANK) * pctl->bank_mem_size;
79 u32 pin, u32 *reg, u32 *shift, u32 *mask)
81 u32 offset = pin % PINS_PER_BANK * MUX_FIELD_WIDTH;
83 *reg = sunxi_bank_offset(pctl, pin) + MUX_REGS_OFFSET +
90 u32 pin, u32 *reg, u32 *shift, u32 *mask)
92 u32 offset = pin % PINS_PER_BANK * DATA_FIELD_WIDTH;
94 *reg = sunxi_bank_offset(pctl, pin) + DATA_REGS_OFFSET +
101 u32 pin, u32 *reg, u32 *shift, u32 *mask)
103 u32 offset = pin % PINS_PER_BANK * pctl->dlevel_field_width;
105 *reg = sunxi_bank_offset(pctl, pin) + DLEVEL_REGS_OFFSET +
112 u32 pin, u32 *reg, u32 *shift, u32 *mask)
114 u32 offset = pin % PINS_PER_BANK * PULL_FIELD_WIDTH;
116 *reg = sunxi_bank_offset(pctl, pin) + pctl->pull_regs_offset +
163 const struct sunxi_desc_pin *pin = pctl->desc->pins + i;
165 if (!strcmp(pin->pin.name, pin_name)) {
166 struct sunxi_desc_function *func = pin->functions;
190 const struct sunxi_desc_pin *pin = pctl->desc->pins + i;
192 if (pin->pin.number == pin_num) {
193 struct sunxi_desc_function *func = pin->functions;
229 *pins = (unsigned *)&pctl->groups[group].pin;
431 * We have two maps for each pin: one for the function, one
453 dev_err(pctl->dev, "unknown pin %s", group);
460 dev_err(pctl->dev, "unsupported function %s on pin %s",
508 /* pin config is never in the first map */
514 * All the maps share the same pin config,
533 u32 pin, enum pin_config_param param,
538 sunxi_dlevel_reg(pctl, pin, reg, shift, mask);
544 sunxi_pull_reg(pctl, pin, reg, shift, mask);
554 static int sunxi_pconf_get(struct pinctrl_dev *pctldev, unsigned pin,
563 pin -= pctl->desc->pin_base;
565 ret = sunxi_pconf_reg(pctl, pin, param, &reg, &shift, &mask);
612 /* We only support 1 pin per group. Chain it to the pin callback */
613 return sunxi_pconf_get(pctldev, g->pin, config);
616 static int sunxi_pconf_set(struct pinctrl_dev *pctldev, unsigned pin,
622 pin -= pctl->desc->pin_base;
633 ret = sunxi_pconf_reg(pctl, pin, param, &reg, &shift, &mask);
684 /* We only support 1 pin per group. Chain it to the pin callback */
685 return sunxi_pconf_set(pctldev, g->pin, configs, num_configs);
697 unsigned pin,
716 pin -= pctl->desc->pin_base;
717 bank = pin / PINS_PER_BANK;
736 reg = readl(pctl->membase + sunxi_grp_config_reg(pin));
738 writel(reg | val, pctl->membase + sunxi_grp_config_reg(pin));
796 unsigned pin,
803 pin -= pctl->desc->pin_base;
804 sunxi_mux_reg(pctl, pin, &reg, &shift, &mask);
829 sunxi_pmx_set(pctldev, g->pin, desc->muxval);
947 u32 pin = offset + chip->base;
953 sunxi_pmx_set(pctl->pctl_dev, pin, SUN4I_FUNC_INPUT);
958 sunxi_pmx_set(pctl->pctl_dev, pin, SUN4I_FUNC_IRQ);
1002 int pin, base;
1005 pin = base + gpiospec->args[1];
1007 if (pin > gc->ngpio)
1013 return pin;
1215 int pin, base;
1221 pin = pctl->desc->pin_base + base + intspec[1];
1223 desc = sunxi_pinctrl_desc_find_function_by_pin(pctl, pin, "irq");
1312 const struct sunxi_desc_pin *pin = pctl->desc->pins + i;
1315 if (pin->variant && !(pctl->variant & pin->variant))
1318 group->name = pin->pin.name;
1319 group->pin = pin->pin.number;
1328 * special functions per pin, plus one entry for the sentinel.
1339 const struct sunxi_desc_pin *pin = pctl->desc->pins + i;
1342 if (pin->variant && !(pctl->variant & pin->variant))
1345 for (func = pin->functions; func->name; func++) {
1352 pctl->irq_array[irqnum] = pin->pin.number;
1371 const struct sunxi_desc_pin *pin = pctl->desc->pins + i;
1374 if (pin->variant && !(pctl->variant & pin->variant))
1377 for (func = pin->functions; func->name; func++) {
1407 *func_grp = pin->pin.name;
1558 const struct sunxi_desc_pin *pin = pctl->desc->pins + i;
1560 if (pin->variant && !(pctl->variant & pin->variant))
1563 pins[pin_idx++] = pin->pin;
1599 last_pin = pctl->desc->pins[pctl->desc->npins - 1].pin.number;
1623 const struct sunxi_desc_pin *pin = pctl->desc->pins + i;
1626 pin->pin.number - pctl->desc->pin_base,
1627 pin->pin.number, 1);