Lines Matching defs:info

235 				const struct at91_pinctrl *info,
241 for (i = 0; i < info->ngroups; i++) {
242 if (strcmp(info->groups[i].name, name))
245 grp = &info->groups[i];
246 dev_dbg(info->dev, "%s: %d 0:%d\n", name, grp->npins, grp->pins[0]);
255 struct at91_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
257 return info->ngroups;
263 struct at91_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
265 return info->groups[selector].name;
272 struct at91_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
274 if (selector >= info->ngroups)
277 *pins = info->groups[selector].pins;
278 *npins = info->groups[selector].npins;
293 struct at91_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
304 grp = at91_pinctrl_find_group_by_name(info, np->name);
306 dev_err(info->dev, "unable to find group for node %pOFn\n",
361 static void __iomem *pin_to_controller(struct at91_pinctrl *info,
788 static int pin_check_config(struct at91_pinctrl *info, const char *name,
795 dev_err(info->dev, "%s: pin conf %d bank_id %d >= nbanks %d\n",
801 dev_err(info->dev, "%s: pin conf %d bank_id %d not enabled\n",
807 dev_err(info->dev, "%s: pin conf %d pin_bank_id %d >= %d\n",
817 if (mux >= info->nmux) {
818 dev_err(info->dev, "%s: pin conf %d mux_id %d >= nmux %d\n",
819 name, index, mux, info->nmux);
823 if (!(info->mux_mask[pin->bank * info->nmux + mux] & 1 << pin->pin)) {
824 dev_err(info->dev, "%s: pin conf %d mux_id %d not supported for pio%c%d\n",
846 struct at91_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
847 const struct at91_pmx_pin *pins_conf = info->groups[group].pins_conf;
849 uint32_t npins = info->groups[group].npins;
854 dev_dbg(info->dev, "enable function %s group %s\n",
855 info->functions[selector].name, info->groups[group].name);
861 ret = pin_check_config(info, info->groups[group].name, i, pin);
868 at91_pin_dbg(info->dev, pin);
869 pio = pin_to_controller(info, pin->bank);
881 info->ops->mux_A_periph(pio, mask);
884 info->ops->mux_B_periph(pio, mask);
887 if (!info->ops->mux_C_periph)
889 info->ops->mux_C_periph(pio, mask);
892 if (!info->ops->mux_D_periph)
894 info->ops->mux_D_periph(pio, mask);
906 struct at91_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
908 return info->nfunctions;
914 struct at91_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
916 return info->functions[selector].name;
923 struct at91_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
925 *groups = info->functions[selector].groups;
926 *num_groups = info->functions[selector].ngroups;
985 struct at91_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
992 dev_dbg(info->dev, "%s:%d, pin_id=%d", __func__, __LINE__, pin_id);
993 pio = pin_to_controller(info, pin_to_bank(pin_id));
1006 if (info->ops->get_deglitch && info->ops->get_deglitch(pio, pin))
1008 if (info->ops->get_debounce && info->ops->get_debounce(pio, pin, &div))
1010 if (info->ops->get_pulldown && info->ops->get_pulldown(pio, pin))
1012 if (info->ops->get_schmitt_trig && info->ops->get_schmitt_trig(pio, pin))
1014 if (info->ops->get_drivestrength)
1015 *config |= (info->ops->get_drivestrength(pio, pin)
1017 if (info->ops->get_slewrate)
1018 *config |= (info->ops->get_slewrate(pio, pin) << SLEWRATE_SHIFT);
1029 struct at91_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
1039 dev_dbg(info->dev,
1042 pio = pin_to_controller(info, pin_to_bank(pin_id));
1057 if (info->ops->set_deglitch)
1058 info->ops->set_deglitch(pio, mask, config & DEGLITCH);
1059 if (info->ops->set_debounce)
1060 info->ops->set_debounce(pio, mask, config & DEBOUNCE,
1062 if (info->ops->set_pulldown)
1063 info->ops->set_pulldown(pio, mask, config & PULL_DOWN);
1064 if (info->ops->disable_schmitt_trig && config & DIS_SCHMIT)
1065 info->ops->disable_schmitt_trig(pio, mask);
1066 if (info->ops->set_drivestrength)
1067 info->ops->set_drivestrength(pio, pin,
1070 if (info->ops->set_slewrate)
1071 info->ops->set_slewrate(pio, pin,
1147 static void at91_pinctrl_child_count(struct at91_pinctrl *info,
1155 info->nactive_banks++;
1157 info->nfunctions++;
1158 info->ngroups += of_get_child_count(child);
1163 static int at91_pinctrl_mux_mask(struct at91_pinctrl *info,
1172 dev_err(info->dev, "can not read the mux-mask of %d\n", size);
1178 dev_err(info->dev, "wrong mux mask array should be by %d\n", gpio_banks);
1181 info->nmux = size / gpio_banks;
1183 info->mux_mask = devm_kcalloc(info->dev, size, sizeof(u32),
1185 if (!info->mux_mask)
1189 info->mux_mask, size);
1191 dev_err(info->dev, "can not read the mux-mask of %d\n", size);
1197 struct at91_pinctrl *info, u32 index)
1204 dev_dbg(info->dev, "group(%d): %pOFn\n", index, np);
1217 dev_err(info->dev, "wrong pins number or pins and configs should be by 4\n");
1222 pin = grp->pins_conf = devm_kcalloc(info->dev,
1226 grp->pins = devm_kcalloc(info->dev, grp->npins, sizeof(unsigned int),
1238 at91_pin_dbg(info->dev, pin);
1246 struct at91_pinctrl *info, u32 index)
1255 dev_dbg(info->dev, "parse function(%d): %pOFn\n", index, np);
1257 func = &info->functions[index];
1263 dev_err(info->dev, "no groups defined\n");
1266 func->groups = devm_kcalloc(info->dev,
1273 grp = &info->groups[grp_index++];
1274 ret = at91_pinctrl_parse_groups(child, grp, info, i++);
1293 struct at91_pinctrl *info)
1305 info->dev = dev;
1306 info->ops = of_device_get_match_data(dev);
1307 at91_pinctrl_child_count(info, np);
1318 if (ngpio_chips_enabled < info->nactive_banks)
1321 ret = at91_pinctrl_mux_mask(info, np);
1325 dev_dbg(dev, "nmux = %d\n", info->nmux);
1328 tmp = info->mux_mask;
1330 for (j = 0; j < info->nmux; j++, tmp++) {
1335 dev_dbg(dev, "nfunctions = %d\n", info->nfunctions);
1336 dev_dbg(dev, "ngroups = %d\n", info->ngroups);
1337 info->functions = devm_kcalloc(dev, info->nfunctions, sizeof(*info->functions),
1339 if (!info->functions)
1342 info->groups = devm_kcalloc(dev, info->ngroups, sizeof(*info->groups),
1344 if (!info->groups)
1348 dev_dbg(dev, "nfunctions = %d\n", info->nfunctions);
1349 dev_dbg(dev, "ngroups = %d\n", info->ngroups);
1356 ret = at91_pinctrl_parse_functions(child, info, i++);
1369 struct at91_pinctrl *info;
1373 info = devm_kzalloc(dev, sizeof(*info), GFP_KERNEL);
1374 if (!info)
1377 ret = at91_pinctrl_probe_dt(pdev, info);
1406 platform_set_drvdata(pdev, info);
1407 info->pctl = devm_pinctrl_register(dev, &at91_pinctrl_desc, info);
1408 if (IS_ERR(info->pctl))
1409 return dev_err_probe(dev, PTR_ERR(info->pctl), "could not register AT91 pinctrl driver\n");
1414 pinctrl_add_gpio_range(info->pctl, &gpio_chips[i]->range);