Lines Matching full:pin

49  * When pin number greater than type1_start and less than type1_end,
53 unsigned long pin) in mtk_get_regmap() argument
55 if (pin >= pctl->devdata->type1_start && pin < pctl->devdata->type1_end) in mtk_get_regmap()
60 static unsigned int mtk_get_port(struct mtk_pinctrl *pctl, unsigned long pin) in mtk_get_port() argument
63 return ((pin >> pctl->devdata->mode_shf) & pctl->devdata->port_mask) in mtk_get_port()
108 static int mtk_pconf_set_ies_smt(struct mtk_pinctrl *pctl, unsigned pin, in mtk_pconf_set_ies_smt() argument
133 return pctl->devdata->spec_ies_smt_set(mtk_get_regmap(pctl, pin), in mtk_pconf_set_ies_smt()
134 pin, pctl->devdata->port_align, value, arg); in mtk_pconf_set_ies_smt()
145 reg_addr = SET_ADDR(mtk_get_port(pctl, pin) + offset, pctl); in mtk_pconf_set_ies_smt()
147 reg_addr = CLR_ADDR(mtk_get_port(pctl, pin) + offset, pctl); in mtk_pconf_set_ies_smt()
149 regmap_write(mtk_get_regmap(pctl, pin), reg_addr, bit); in mtk_pconf_set_ies_smt()
155 unsigned int pin, unsigned char align, int value) in mtk_pconf_spec_set_ies_smt_range() argument
160 if (pin >= ies_smt_infos[i].start && in mtk_pconf_spec_set_ies_smt_range()
161 pin <= ies_smt_infos[i].end) { in mtk_pconf_spec_set_ies_smt_range()
180 struct mtk_pinctrl *pctl, unsigned long pin) { in mtk_find_pin_drv_grp_by_pin() argument
186 if (pin == pin_drv->pin) in mtk_find_pin_drv_grp_by_pin()
194 unsigned int pin, unsigned char driving) in mtk_pconf_set_driving() argument
201 if (pin >= pctl->devdata->npins) in mtk_pconf_set_driving()
204 pin_drv = mtk_find_pin_drv_grp_by_pin(pctl, pin); in mtk_pconf_set_driving()
217 return regmap_update_bits(mtk_get_regmap(pctl, pin), in mtk_pconf_set_driving()
226 unsigned int info_num, unsigned int pin, in mtk_pctrl_spec_pull_set_samereg() argument
236 if (pin == pupd_infos[i].pin) { in mtk_pctrl_spec_pull_set_samereg()
285 unsigned int pin, bool enable, bool isup, unsigned int arg) in mtk_pconf_set_pull_select() argument
300 ret = pctl->devdata->spec_pull_set(mtk_get_regmap(pctl, pin), in mtk_pconf_set_pull_select()
301 pin, pctl->devdata->port_align, isup, r1r0); in mtk_pconf_set_pull_select()
308 dev_err(pctl->dev, "invalid pull-up argument %d on pin %d .\n", in mtk_pconf_set_pull_select()
309 arg, pin); in mtk_pconf_set_pull_select()
313 bit = BIT(pin & pctl->devdata->mode_mask); in mtk_pconf_set_pull_select()
315 reg_pullen = SET_ADDR(mtk_get_port(pctl, pin) + in mtk_pconf_set_pull_select()
318 reg_pullen = CLR_ADDR(mtk_get_port(pctl, pin) + in mtk_pconf_set_pull_select()
322 reg_pullsel = SET_ADDR(mtk_get_port(pctl, pin) + in mtk_pconf_set_pull_select()
325 reg_pullsel = CLR_ADDR(mtk_get_port(pctl, pin) + in mtk_pconf_set_pull_select()
328 regmap_write(mtk_get_regmap(pctl, pin), reg_pullen, bit); in mtk_pconf_set_pull_select()
329 regmap_write(mtk_get_regmap(pctl, pin), reg_pullsel, bit); in mtk_pconf_set_pull_select()
334 unsigned int pin, enum pin_config_param param, in mtk_pconf_parse_conf() argument
342 ret = mtk_pconf_set_pull_select(pctl, pin, false, false, arg); in mtk_pconf_parse_conf()
345 ret = mtk_pconf_set_pull_select(pctl, pin, true, true, arg); in mtk_pconf_parse_conf()
348 ret = mtk_pconf_set_pull_select(pctl, pin, true, false, arg); in mtk_pconf_parse_conf()
351 mtk_pmx_gpio_set_direction(pctldev, NULL, pin, true); in mtk_pconf_parse_conf()
352 ret = mtk_pconf_set_ies_smt(pctl, pin, arg, param); in mtk_pconf_parse_conf()
355 mtk_gpio_set(pctl->chip, pin, arg); in mtk_pconf_parse_conf()
356 ret = mtk_pmx_gpio_set_direction(pctldev, NULL, pin, false); in mtk_pconf_parse_conf()
359 mtk_pmx_gpio_set_direction(pctldev, NULL, pin, true); in mtk_pconf_parse_conf()
360 ret = mtk_pconf_set_ies_smt(pctl, pin, arg, param); in mtk_pconf_parse_conf()
363 ret = mtk_pconf_set_driving(pctl, pin, arg); in mtk_pconf_parse_conf()
391 ret = mtk_pconf_parse_conf(pctldev, g->pin, in mtk_pconf_group_set()
409 mtk_pctrl_find_group_by_pin(struct mtk_pinctrl *pctl, u32 pin) in mtk_pctrl_find_group_by_pin() argument
416 if (grp->pin == pin) in mtk_pctrl_find_group_by_pin()
426 const struct mtk_desc_pin *pin = pctl->devdata->pins + pin_num; in mtk_pctrl_find_function_by_pin() local
427 const struct mtk_desc_function *func = pin->functions; in mtk_pctrl_find_function_by_pin()
444 const struct mtk_desc_pin *pin = pctl->devdata->pins + i; in mtk_pctrl_is_function_valid() local
446 if (pin->pin.number == pin_num) { in mtk_pctrl_is_function_valid()
448 pin->functions; in mtk_pctrl_is_function_valid()
464 u32 pin, u32 fnum, struct mtk_pinctrl_group *grp, in mtk_pctrl_dt_node_to_map_func() argument
476 ret = mtk_pctrl_is_function_valid(pctl, pin, fnum); in mtk_pctrl_dt_node_to_map_func()
478 dev_err(pctl->dev, "invalid function %d on pin %d .\n", in mtk_pctrl_dt_node_to_map_func()
479 fnum, pin); in mtk_pctrl_dt_node_to_map_func()
496 u32 pinfunc, pin, func; in mtk_pctrl_dt_subnode_to_map() local
547 pin = MTK_GET_PIN_NO(pinfunc); in mtk_pctrl_dt_subnode_to_map()
550 if (pin >= pctl->devdata->npins || in mtk_pctrl_dt_subnode_to_map()
557 grp = mtk_pctrl_find_group_by_pin(pctl, pin); in mtk_pctrl_dt_subnode_to_map()
559 dev_err(pctl->dev, "unable to match pin %d to group\n", in mtk_pctrl_dt_subnode_to_map()
560 pin); in mtk_pctrl_dt_subnode_to_map()
565 err = mtk_pctrl_dt_node_to_map_func(pctl, pin, func, grp, map, in mtk_pctrl_dt_subnode_to_map()
634 *pins = (unsigned *)&pctl->groups[group].pin; in mtk_pctrl_get_group_pins()
673 unsigned long pin, unsigned long mode) in mtk_pmx_set_mode() argument
682 pctl->devdata->spec_pinmux_set(mtk_get_regmap(pctl, pin), in mtk_pmx_set_mode()
683 pin, mode); in mtk_pmx_set_mode()
685 reg_addr = ((pin / pctl->devdata->mode_per_reg) << pctl->devdata->port_shf) in mtk_pmx_set_mode()
689 bit = pin % pctl->devdata->mode_per_reg; in mtk_pmx_set_mode()
692 return regmap_update_bits(mtk_get_regmap(pctl, pin), in mtk_pmx_set_mode()
700 const struct mtk_desc_pin *pin; in mtk_find_pin_by_eint_num() local
703 pin = pctl->devdata->pins + i; in mtk_find_pin_by_eint_num()
704 if (pin->eint.eintnum == eint_num) in mtk_find_pin_by_eint_num()
705 return pin; in mtk_find_pin_by_eint_num()
720 ret = mtk_pctrl_is_function_valid(pctl, g->pin, function); in mtk_pmx_set_mux()
727 desc = mtk_pctrl_find_function_by_pin(pctl, g->pin, function); in mtk_pmx_set_mux()
730 mtk_pmx_set_mode(pctldev, g->pin, desc->muxval); in mtk_pmx_set_mux()
737 const struct mtk_desc_pin *pin = pctl->devdata->pins + offset; in mtk_pmx_find_gpio_mode() local
738 const struct mtk_desc_function *func = pin->functions; in mtk_pmx_find_gpio_mode()
759 dev_err(pctl->dev, "invalid gpio pin %d.\n", offset); in mtk_pmx_gpio_request_enable()
830 const struct mtk_desc_pin *pin; in mtk_gpio_to_irq() local
833 pin = pctl->devdata->pins + offset; in mtk_gpio_to_irq()
834 if (pin->eint.eintnum == NO_EINT_SUPPORT) in mtk_gpio_to_irq()
837 eint_n = pin->eint.eintnum; in mtk_gpio_to_irq()
846 const struct mtk_desc_pin *pin; in mtk_gpio_set_config() local
853 pin = pctl->devdata->pins + offset; in mtk_gpio_set_config()
854 if (pin->eint.eintnum == NO_EINT_SUPPORT) in mtk_gpio_set_config()
858 eint_n = pin->eint.eintnum; in mtk_gpio_set_config()
909 /* We assume that one pin is one group, use pin name as group name. */ in mtk_pctrl_build_state()
916 const struct mtk_desc_pin *pin = pctl->devdata->pins + i; in mtk_pctrl_build_state() local
919 group->name = pin->pin.name; in mtk_pctrl_build_state()
920 group->pin = pin->pin.number; in mtk_pctrl_build_state()
922 pctl->grp_names[i] = pin->pin.name; in mtk_pctrl_build_state()
933 const struct mtk_desc_pin *pin; in mtk_xt_get_gpio_n() local
935 pin = mtk_find_pin_by_eint_num(pctl, eint_n); in mtk_xt_get_gpio_n()
936 if (!pin) in mtk_xt_get_gpio_n()
940 *gpio_n = pin->pin.number; in mtk_xt_get_gpio_n()
948 const struct mtk_desc_pin *pin; in mtk_xt_get_gpio_state() local
950 pin = mtk_find_pin_by_eint_num(pctl, eint_n); in mtk_xt_get_gpio_state()
951 if (!pin) in mtk_xt_get_gpio_state()
954 return mtk_gpio_get(pctl->chip, pin->pin.number); in mtk_xt_get_gpio_state()
960 const struct mtk_desc_pin *pin; in mtk_xt_set_gpio_as_eint() local
962 pin = mtk_find_pin_by_eint_num(pctl, eint_n); in mtk_xt_set_gpio_as_eint()
963 if (!pin) in mtk_xt_set_gpio_as_eint()
967 mtk_pmx_set_mode(pctl->pctl_dev, pin->pin.number, pin->eint.eintmux); in mtk_xt_set_gpio_as_eint()
969 mtk_pmx_gpio_set_direction(pctl->pctl_dev, NULL, pin->pin.number, in mtk_xt_set_gpio_as_eint()
972 mtk_pconf_set_ies_smt(pctl, pin->pin.number, 1, in mtk_xt_set_gpio_as_eint()
1071 pins[i] = pctl->devdata->pins[i].pin; in mtk_pctrl_init()
1103 /* Register the GPIO to pin mappings. */ in mtk_pctrl_init()