Lines Matching defs:info
520 static void st_pinconf_set_retime_packed(struct st_pinctrl *info,
523 const struct st_pctl_data *data = info->data;
550 static void st_pinconf_set_retime_dedicated(struct st_pinctrl *info,
562 info->data, config);
601 static int st_pinconf_get_retime_packed(struct st_pinctrl *info,
604 const struct st_pctl_data *data = info->data;
634 static int st_pinconf_get_retime_dedicated(struct st_pinctrl *info,
648 delay = st_pinconf_bit_to_delay(delay_bits, info->data, output);
776 struct st_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
778 return info->ngroups;
784 struct st_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
786 return info->groups[selector].name;
792 struct st_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
794 if (selector >= info->ngroups)
797 *pins = info->groups[selector].pins;
798 *npins = info->groups[selector].npins;
804 const struct st_pinctrl *info, const char *name)
808 for (i = 0; i < info->ngroups; i++) {
809 if (!strcmp(info->groups[i].name, name))
810 return &info->groups[i];
819 struct st_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
821 struct device *dev = info->dev;
826 grp = st_pctl_find_group_by_name(info, np->name);
881 struct st_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
883 return info->nfunctions;
889 struct st_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
891 return info->functions[selector].name;
897 struct st_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
898 *grps = info->functions[selector].groups;
899 *ngrps = info->functions[selector].ngroups;
907 struct st_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
908 struct st_pinconf *conf = info->groups[group].pin_conf;
912 for (i = 0; i < info->groups[group].npins; i++) {
947 static void st_pinconf_get_retime(struct st_pinctrl *info,
950 if (info->data->rt_style == st_retime_style_packed)
951 st_pinconf_get_retime_packed(info, pc, pin, config);
952 else if (info->data->rt_style == st_retime_style_dedicated)
954 st_pinconf_get_retime_dedicated(info, pc,
958 static void st_pinconf_set_retime(struct st_pinctrl *info,
961 if (info->data->rt_style == st_retime_style_packed)
962 st_pinconf_set_retime_packed(info, pc, config, pin);
963 else if (info->data->rt_style == st_retime_style_dedicated)
965 st_pinconf_set_retime_dedicated(info, pc,
973 struct st_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
979 st_pinconf_set_retime(info, pc, pin, configs[i]);
989 struct st_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
994 st_pinconf_get_retime(info, pc, pin, config);
1042 static void st_pctl_dt_child_count(struct st_pinctrl *info,
1048 info->nbanks++;
1050 info->nfunctions++;
1051 info->ngroups += of_get_child_count(child);
1056 static int st_pctl_dt_setup_retime_packed(struct st_pinctrl *info,
1059 struct device *dev = info->dev;
1060 struct regmap *rm = info->regmap;
1061 const struct st_pctl_data *data = info->data;
1092 static int st_pctl_dt_setup_retime_dedicated(struct st_pinctrl *info,
1095 struct device *dev = info->dev;
1096 struct regmap *rm = info->regmap;
1097 const struct st_pctl_data *data = info->data;
1116 static int st_pctl_dt_setup_retime(struct st_pinctrl *info,
1119 const struct st_pctl_data *data = info->data;
1121 return st_pctl_dt_setup_retime_packed(info, bank, pc);
1123 return st_pctl_dt_setup_retime_dedicated(info, bank, pc);
1141 static void st_parse_syscfgs(struct st_pinctrl *info, int bank,
1144 const struct st_pctl_data *data = info->data;
1152 struct st_pio_control *pc = &info->banks[bank].pc;
1153 struct device *dev = info->dev;
1154 struct regmap *regmap = info->regmap;
1164 st_pctl_dt_setup_retime(info, bank, pc);
1169 static int st_pctl_dt_calculate_pin(struct st_pinctrl *info,
1181 for (i = 0; i < info->nbanks; i++) {
1182 chip = &info->banks[i].gpio_chip;
1199 struct st_pctl_group *grp, struct st_pinctrl *info, int idx)
1204 struct device *dev = info->dev;
1250 conf->pin = st_pctl_dt_calculate_pin(info, bank, offset);
1278 struct st_pinctrl *info, u32 index, int *grp_index)
1280 struct device *dev = info->dev;
1286 func = &info->functions[index];
1298 grp = &info->groups[*grp_index];
1300 ret = st_pctl_dt_parse_groups(child, grp, info, i++);
1472 struct st_pinctrl *info = irq_desc_get_handler_data(desc);
1478 status = readl(info->irqmux_base);
1480 for_each_set_bit(n, &status, info->nbanks)
1481 __gpio_irq_handler(&info->banks[n]);
1508 static int st_gpiolib_register_bank(struct st_pinctrl *info,
1511 struct st_gpio_bank *bank = &info->banks[bank_nr];
1513 struct device *dev = info->dev;
1569 if (!info->irqmux_base) {
1605 struct pinctrl_desc *pctl_desc, struct st_pinctrl *info)
1616 st_pctl_dt_child_count(info, np);
1617 if (!info->nbanks)
1620 dev_info(dev, "nbanks = %d\n", info->nbanks);
1621 dev_info(dev, "nfunctions = %d\n", info->nfunctions);
1622 dev_info(dev, "ngroups = %d\n", info->ngroups);
1624 info->functions = devm_kcalloc(dev, info->nfunctions, sizeof(*info->functions), GFP_KERNEL);
1626 info->groups = devm_kcalloc(dev, info->ngroups, sizeof(*info->groups), GFP_KERNEL);
1628 info->banks = devm_kcalloc(dev, info->nbanks, sizeof(*info->banks), GFP_KERNEL);
1630 if (!info->functions || !info->groups || !info->banks)
1633 info->regmap = syscon_regmap_lookup_by_phandle(np, "st,syscfg");
1634 if (IS_ERR(info->regmap))
1635 return dev_err_probe(dev, PTR_ERR(info->regmap), "No syscfg phandle specified\n");
1636 info->data = of_match_node(st_pctl_of_match, np)->data;
1641 info->irqmux_base = devm_platform_ioremap_resource_byname(pdev, "irqmux");
1642 if (IS_ERR(info->irqmux_base))
1643 return PTR_ERR(info->irqmux_base);
1646 info);
1649 pctl_desc->npins = info->nbanks * ST_GPIO_PINS_PER_BANK;
1662 ret = st_gpiolib_register_bank(info, bank, child);
1668 k = info->banks[bank].range.pin_base;
1669 bank_name = info->banks[bank].range.name;
1682 st_parse_syscfgs(info, bank, child);
1685 ret = st_pctl_parse_functions(child, info,
1701 struct st_pinctrl *info;
1714 info = devm_kzalloc(dev, sizeof(*info), GFP_KERNEL);
1715 if (!info)
1718 info->dev = dev;
1719 platform_set_drvdata(pdev, info);
1720 ret = st_pctl_probe_dt(pdev, pctl_desc, info);
1730 info->pctl = devm_pinctrl_register(dev, pctl_desc, info);
1731 if (IS_ERR(info->pctl))
1732 return dev_err_probe(dev, PTR_ERR(info->pctl), "Failed pinctrl registration\n");
1734 for (i = 0; i < info->nbanks; i++)
1735 pinctrl_add_gpio_range(info->pctl, &info->banks[i].range);