Lines Matching refs:pin
50 * When pin number greater than type1_start and less than type1_end,
54 unsigned long pin)
56 if (pin >= pctl->devdata->type1_start && pin < pctl->devdata->type1_end)
61 static unsigned int mtk_get_port(struct mtk_pinctrl *pctl, unsigned long pin)
64 return ((pin >> 4) & pctl->devdata->port_mask)
109 static int mtk_pconf_set_ies_smt(struct mtk_pinctrl *pctl, unsigned pin,
134 return pctl->devdata->spec_ies_smt_set(mtk_get_regmap(pctl, pin),
135 pin, pctl->devdata->port_align, value, arg);
138 bit = BIT(pin & 0xf);
146 reg_addr = SET_ADDR(mtk_get_port(pctl, pin) + offset, pctl);
148 reg_addr = CLR_ADDR(mtk_get_port(pctl, pin) + offset, pctl);
150 regmap_write(mtk_get_regmap(pctl, pin), reg_addr, bit);
156 unsigned int pin, unsigned char align, int value)
161 if (pin >= ies_smt_infos[i].start &&
162 pin <= ies_smt_infos[i].end) {
181 struct mtk_pinctrl *pctl, unsigned long pin) {
187 if (pin == pin_drv->pin)
195 unsigned int pin, unsigned char driving)
202 if (pin >= pctl->devdata->npins)
205 pin_drv = mtk_find_pin_drv_grp_by_pin(pctl, pin);
218 return regmap_update_bits(mtk_get_regmap(pctl, pin),
227 unsigned int info_num, unsigned int pin,
237 if (pin == pupd_infos[i].pin) {
286 unsigned int pin, bool enable, bool isup, unsigned int arg)
301 ret = pctl->devdata->spec_pull_set(mtk_get_regmap(pctl, pin),
302 pin, pctl->devdata->port_align, isup, r1r0);
309 dev_err(pctl->dev, "invalid pull-up argument %d on pin %d .\n",
310 arg, pin);
314 bit = BIT(pin & 0xf);
316 reg_pullen = SET_ADDR(mtk_get_port(pctl, pin) +
319 reg_pullen = CLR_ADDR(mtk_get_port(pctl, pin) +
323 reg_pullsel = SET_ADDR(mtk_get_port(pctl, pin) +
326 reg_pullsel = CLR_ADDR(mtk_get_port(pctl, pin) +
329 regmap_write(mtk_get_regmap(pctl, pin), reg_pullen, bit);
330 regmap_write(mtk_get_regmap(pctl, pin), reg_pullsel, bit);
335 unsigned int pin, enum pin_config_param param,
343 ret = mtk_pconf_set_pull_select(pctl, pin, false, false, arg);
346 ret = mtk_pconf_set_pull_select(pctl, pin, true, true, arg);
349 ret = mtk_pconf_set_pull_select(pctl, pin, true, false, arg);
352 mtk_pmx_gpio_set_direction(pctldev, NULL, pin, true);
353 ret = mtk_pconf_set_ies_smt(pctl, pin, arg, param);
356 mtk_gpio_set(pctl->chip, pin, arg);
357 ret = mtk_pmx_gpio_set_direction(pctldev, NULL, pin, false);
360 mtk_pmx_gpio_set_direction(pctldev, NULL, pin, true);
361 ret = mtk_pconf_set_ies_smt(pctl, pin, arg, param);
364 ret = mtk_pconf_set_driving(pctl, pin, arg);
392 ret = mtk_pconf_parse_conf(pctldev, g->pin,
410 mtk_pctrl_find_group_by_pin(struct mtk_pinctrl *pctl, u32 pin)
417 if (grp->pin == pin)
427 const struct mtk_desc_pin *pin = pctl->devdata->pins + pin_num;
428 const struct mtk_desc_function *func = pin->functions;
445 const struct mtk_desc_pin *pin = pctl->devdata->pins + i;
447 if (pin->pin.number == pin_num) {
449 pin->functions;
465 u32 pin, u32 fnum, struct mtk_pinctrl_group *grp,
477 ret = mtk_pctrl_is_function_valid(pctl, pin, fnum);
479 dev_err(pctl->dev, "invalid function %d on pin %d .\n",
480 fnum, pin);
497 u32 pinfunc, pin, func;
548 pin = MTK_GET_PIN_NO(pinfunc);
551 if (pin >= pctl->devdata->npins ||
558 grp = mtk_pctrl_find_group_by_pin(pctl, pin);
560 dev_err(pctl->dev, "unable to match pin %d to group\n",
561 pin);
566 err = mtk_pctrl_dt_node_to_map_func(pctl, pin, func, grp, map,
635 *pins = (unsigned *)&pctl->groups[group].pin;
674 unsigned long pin, unsigned long mode)
683 pctl->devdata->spec_pinmux_set(mtk_get_regmap(pctl, pin),
684 pin, mode);
686 reg_addr = ((pin / MAX_GPIO_MODE_PER_REG) << pctl->devdata->port_shf)
690 bit = pin % MAX_GPIO_MODE_PER_REG;
693 return regmap_update_bits(mtk_get_regmap(pctl, pin),
701 const struct mtk_desc_pin *pin;
704 pin = pctl->devdata->pins + i;
705 if (pin->eint.eintnum == eint_num)
706 return pin;
721 ret = mtk_pctrl_is_function_valid(pctl, g->pin, function);
728 desc = mtk_pctrl_find_function_by_pin(pctl, g->pin, function);
731 mtk_pmx_set_mode(pctldev, g->pin, desc->muxval);
738 const struct mtk_desc_pin *pin = pctl->devdata->pins + offset;
739 const struct mtk_desc_function *func = pin->functions;
760 dev_err(pctl->dev, "invalid gpio pin %d.\n", offset);
831 const struct mtk_desc_pin *pin;
834 pin = pctl->devdata->pins + offset;
835 if (pin->eint.eintnum == NO_EINT_SUPPORT)
838 eint_n = pin->eint.eintnum;
847 const struct mtk_desc_pin *pin;
854 pin = pctl->devdata->pins + offset;
855 if (pin->eint.eintnum == NO_EINT_SUPPORT)
859 eint_n = pin->eint.eintnum;
910 /* We assume that one pin is one group, use pin name as group name. */
917 const struct mtk_desc_pin *pin = pctl->devdata->pins + i;
920 group->name = pin->pin.name;
921 group->pin = pin->pin.number;
923 pctl->grp_names[i] = pin->pin.name;
934 const struct mtk_desc_pin *pin;
936 pin = mtk_find_pin_by_eint_num(pctl, eint_n);
937 if (!pin)
941 *gpio_n = pin->pin.number;
949 const struct mtk_desc_pin *pin;
951 pin = mtk_find_pin_by_eint_num(pctl, eint_n);
952 if (!pin)
955 return mtk_gpio_get(pctl->chip, pin->pin.number);
961 const struct mtk_desc_pin *pin;
963 pin = mtk_find_pin_by_eint_num(pctl, eint_n);
964 if (!pin)
968 mtk_pmx_set_mode(pctl->pctl_dev, pin->pin.number, pin->eint.eintmux);
970 mtk_pmx_gpio_set_direction(pctl->pctl_dev, NULL, pin->pin.number,
973 mtk_pconf_set_ies_smt(pctl, pin->pin.number, 1,
1074 pins[i] = pctl->devdata->pins[i].pin;
1106 /* Register the GPIO to pin mappings. */