Lines Matching refs:pin
58 unsigned long pin) in mtk_get_regmap() argument
60 if (pin >= pctl->devdata->type1_start && pin < pctl->devdata->type1_end) in mtk_get_regmap()
65 static unsigned int mtk_get_port(struct mtk_pinctrl *pctl, unsigned long pin) in mtk_get_port() argument
68 return ((pin >> 4) & pctl->devdata->port_mask) in mtk_get_port()
110 static void mtk_pconf_set_ies_smt(struct mtk_pinctrl *pctl, unsigned pin, in mtk_pconf_set_ies_smt() argument
123 ret = pctl->devdata->spec_ies_smt_set(mtk_get_regmap(pctl, pin), in mtk_pconf_set_ies_smt()
124 pin, pctl->devdata->port_align, value); in mtk_pconf_set_ies_smt()
129 bit = BIT(pin & 0xf); in mtk_pconf_set_ies_smt()
137 reg_addr = SET_ADDR(mtk_get_port(pctl, pin) + offset, pctl); in mtk_pconf_set_ies_smt()
139 reg_addr = CLR_ADDR(mtk_get_port(pctl, pin) + offset, pctl); in mtk_pconf_set_ies_smt()
141 regmap_write(mtk_get_regmap(pctl, pin), reg_addr, bit); in mtk_pconf_set_ies_smt()
145 struct mtk_pinctrl *pctl, unsigned long pin) { in mtk_find_pin_drv_grp_by_pin() argument
151 if (pin == pin_drv->pin) in mtk_find_pin_drv_grp_by_pin()
159 unsigned int pin, unsigned char driving) in mtk_pconf_set_driving() argument
166 if (pin >= pctl->devdata->npins) in mtk_pconf_set_driving()
169 pin_drv = mtk_find_pin_drv_grp_by_pin(pctl, pin); in mtk_pconf_set_driving()
182 return regmap_update_bits(mtk_get_regmap(pctl, pin), in mtk_pconf_set_driving()
190 unsigned int pin, bool enable, bool isup, unsigned int arg) in mtk_pconf_set_pull_select() argument
201 ret = pctl->devdata->spec_pull_set(mtk_get_regmap(pctl, pin), in mtk_pconf_set_pull_select()
202 pin, pctl->devdata->port_align, isup, arg); in mtk_pconf_set_pull_select()
210 arg, pin); in mtk_pconf_set_pull_select()
214 bit = BIT(pin & 0xf); in mtk_pconf_set_pull_select()
216 reg_pullen = SET_ADDR(mtk_get_port(pctl, pin) + in mtk_pconf_set_pull_select()
219 reg_pullen = CLR_ADDR(mtk_get_port(pctl, pin) + in mtk_pconf_set_pull_select()
223 reg_pullsel = SET_ADDR(mtk_get_port(pctl, pin) + in mtk_pconf_set_pull_select()
226 reg_pullsel = CLR_ADDR(mtk_get_port(pctl, pin) + in mtk_pconf_set_pull_select()
229 regmap_write(mtk_get_regmap(pctl, pin), reg_pullen, bit); in mtk_pconf_set_pull_select()
230 regmap_write(mtk_get_regmap(pctl, pin), reg_pullsel, bit); in mtk_pconf_set_pull_select()
235 unsigned int pin, enum pin_config_param param, in mtk_pconf_parse_conf() argument
242 mtk_pconf_set_pull_select(pctl, pin, false, false, arg); in mtk_pconf_parse_conf()
245 mtk_pconf_set_pull_select(pctl, pin, true, true, arg); in mtk_pconf_parse_conf()
248 mtk_pconf_set_pull_select(pctl, pin, true, false, arg); in mtk_pconf_parse_conf()
251 mtk_pconf_set_ies_smt(pctl, pin, arg, param); in mtk_pconf_parse_conf()
254 mtk_gpio_set(pctl->chip, pin, arg); in mtk_pconf_parse_conf()
255 mtk_pmx_gpio_set_direction(pctldev, NULL, pin, false); in mtk_pconf_parse_conf()
258 mtk_pconf_set_ies_smt(pctl, pin, arg, param); in mtk_pconf_parse_conf()
261 mtk_pconf_set_driving(pctl, pin, arg); in mtk_pconf_parse_conf()
289 mtk_pconf_parse_conf(pctldev, g->pin, in mtk_pconf_group_set()
305 mtk_pctrl_find_group_by_pin(struct mtk_pinctrl *pctl, u32 pin) in mtk_pctrl_find_group_by_pin() argument
312 if (grp->pin == pin) in mtk_pctrl_find_group_by_pin()
322 const struct mtk_desc_pin *pin = pctl->devdata->pins + pin_num; in mtk_pctrl_find_function_by_pin() local
323 const struct mtk_desc_function *func = pin->functions; in mtk_pctrl_find_function_by_pin()
340 const struct mtk_desc_pin *pin = pctl->devdata->pins + i; in mtk_pctrl_is_function_valid() local
342 if (pin->pin.number == pin_num) { in mtk_pctrl_is_function_valid()
344 pin->functions; in mtk_pctrl_is_function_valid()
360 u32 pin, u32 fnum, struct mtk_pinctrl_group *grp, in mtk_pctrl_dt_node_to_map_func() argument
372 ret = mtk_pctrl_is_function_valid(pctl, pin, fnum); in mtk_pctrl_dt_node_to_map_func()
375 fnum, pin); in mtk_pctrl_dt_node_to_map_func()
392 u32 pinfunc, pin, func; in mtk_pctrl_dt_subnode_to_map() local
438 pin = MTK_GET_PIN_NO(pinfunc); in mtk_pctrl_dt_subnode_to_map()
441 if (pin >= pctl->devdata->npins || in mtk_pctrl_dt_subnode_to_map()
448 grp = mtk_pctrl_find_group_by_pin(pctl, pin); in mtk_pctrl_dt_subnode_to_map()
451 pin); in mtk_pctrl_dt_subnode_to_map()
455 err = mtk_pctrl_dt_node_to_map_func(pctl, pin, func, grp, map, in mtk_pctrl_dt_subnode_to_map()
522 *pins = (unsigned *)&pctl->groups[group].pin; in mtk_pctrl_get_group_pins()
561 unsigned long pin, unsigned long mode) in mtk_pmx_set_mode() argument
569 reg_addr = ((pin / MAX_GPIO_MODE_PER_REG) << pctl->devdata->port_shf) in mtk_pmx_set_mode()
572 bit = pin % MAX_GPIO_MODE_PER_REG; in mtk_pmx_set_mode()
575 return regmap_update_bits(mtk_get_regmap(pctl, pin), in mtk_pmx_set_mode()
583 const struct mtk_desc_pin *pin; in mtk_find_pin_by_eint_num() local
586 pin = pctl->devdata->pins + i; in mtk_find_pin_by_eint_num()
587 if (pin->eint.eintnum == eint_num) in mtk_find_pin_by_eint_num()
588 return pin; in mtk_find_pin_by_eint_num()
603 ret = mtk_pctrl_is_function_valid(pctl, g->pin, function); in mtk_pmx_set_mux()
610 desc = mtk_pctrl_find_function_by_pin(pctl, g->pin, function); in mtk_pmx_set_mux()
613 mtk_pmx_set_mode(pctldev, g->pin, desc->muxval); in mtk_pmx_set_mux()
683 const struct mtk_desc_pin *pin; in mtk_gpio_to_irq() local
687 pin = pctl->devdata->pins + offset; in mtk_gpio_to_irq()
688 if (pin->eint.eintnum == NO_EINT_SUPPORT) in mtk_gpio_to_irq()
691 irq = irq_find_mapping(pctl->domain, pin->eint.eintnum); in mtk_gpio_to_irq()
701 const struct mtk_desc_pin *pin; in mtk_pinctrl_irq_request_resources() local
704 pin = mtk_find_pin_by_eint_num(pctl, d->hwirq); in mtk_pinctrl_irq_request_resources()
706 if (!pin) { in mtk_pinctrl_irq_request_resources()
711 ret = gpiochip_lock_as_irq(pctl->chip, pin->pin.number); in mtk_pinctrl_irq_request_resources()
719 mtk_pmx_set_mode(pctl->pctl_dev, pin->pin.number, pin->eint.eintmux); in mtk_pinctrl_irq_request_resources()
727 const struct mtk_desc_pin *pin; in mtk_pinctrl_irq_release_resources() local
729 pin = mtk_find_pin_by_eint_num(pctl, d->hwirq); in mtk_pinctrl_irq_release_resources()
731 if (!pin) { in mtk_pinctrl_irq_release_resources()
736 gpiochip_unlock_as_irq(pctl->chip, pin->pin.number); in mtk_pinctrl_irq_release_resources()
804 const struct mtk_desc_pin *pin; in mtk_eint_flip_edge() local
806 pin = mtk_find_pin_by_eint_num(pctl, hwirq); in mtk_eint_flip_edge()
807 curr_level = mtk_gpio_get(pctl->chip, pin->pin.number); in mtk_eint_flip_edge()
816 curr_level = mtk_gpio_get(pctl->chip, pin->pin.number); in mtk_eint_flip_edge()
857 const struct mtk_desc_pin *pin; in mtk_gpio_set_debounce() local
860 pin = pctl->devdata->pins + offset; in mtk_gpio_set_debounce()
861 if (pin->eint.eintnum == NO_EINT_SUPPORT) in mtk_gpio_set_debounce()
864 eint_num = pin->eint.eintnum; in mtk_gpio_set_debounce()
1030 const struct mtk_desc_pin *pin; in mtk_eint_irq_handler() local
1050 pin = mtk_find_pin_by_eint_num(pctl, index); in mtk_eint_irq_handler()
1052 pin->pin.number); in mtk_eint_irq_handler()
1095 const struct mtk_desc_pin *pin = pctl->devdata->pins + i; in mtk_pctrl_build_state() local
1098 group->name = pin->pin.name; in mtk_pctrl_build_state()
1099 group->pin = pin->pin.number; in mtk_pctrl_build_state()
1101 pctl->grp_names[i] = pin->pin.name; in mtk_pctrl_build_state()
1163 pins[i] = pctl->devdata->pins[i].pin; in mtk_pctrl_init()