static int sh_pfc_pinconf_pin_set(struct udevice *dev, unsigned int pin_selector, unsigned int param, unsigned int arg) { struct sh_pfc_pinctrl_priv *priv = dev_get_priv(dev); struct sh_pfc_pinctrl *pmx = &priv->pmx; struct sh_pfc *pfc = &priv->pfc; const struct sh_pfc_pin *pin = &pfc->info->pins[pin_selector]; sh_pfc_pinconf_set(pmx, pin->pin, param, arg); return 0; }
static int sh_pfc_pinconf_group_set(struct udevice *dev, unsigned int group_selector, unsigned int param, unsigned int arg) { struct sh_pfc_pinctrl_priv *priv = dev_get_priv(dev); struct sh_pfc_pinctrl *pmx = &priv->pmx; struct sh_pfc *pfc = &priv->pfc; const struct sh_pfc_pin_group *grp = &pfc->info->groups[group_selector]; unsigned int i; for (i = 0; i < grp->nr_pins; i++) sh_pfc_pinconf_set(pmx, grp->pins[i], param, arg); return 0; }
static int sh_pfc_pinconf_group_set(struct pinctrl_dev *pctldev, unsigned group, unsigned long config) { struct sh_pfc_pinctrl *pmx = pinctrl_dev_get_drvdata(pctldev); const unsigned int *pins; unsigned int num_pins; unsigned int i; pins = pmx->pfc->info->groups[group].pins; num_pins = pmx->pfc->info->groups[group].nr_pins; for (i = 0; i < num_pins; ++i) sh_pfc_pinconf_set(pctldev, pins[i], config); return 0; }