Lines Matching refs:pctrl

37 	struct berlin_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctrl_dev);
39 return pctrl->desc->ngroups;
45 struct berlin_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctrl_dev);
47 return pctrl->desc->groups[group].name;
55 struct berlin_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctrl_dev);
66 dev_err(pctrl->dev,
73 dev_err(pctrl->dev,
81 dev_err(pctrl->dev, "can't reserve map: %d\n", ret);
90 dev_err(pctrl->dev, "can't add map: %d\n", ret);
107 struct berlin_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctrl_dev);
109 return pctrl->nfunctions;
115 struct berlin_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctrl_dev);
117 return pctrl->functions[function].name;
125 struct berlin_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctrl_dev);
127 *groups = pctrl->functions[function].groups;
128 *num_groups = pctrl->functions[function].ngroups;
134 berlin_pinctrl_find_function_by_name(struct berlin_pinctrl *pctrl,
154 struct berlin_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctrl_dev);
155 const struct berlin_desc_group *group_desc = pctrl->desc->groups + group;
156 struct berlin_pinctrl_function *func = pctrl->functions + function;
158 berlin_pinctrl_find_function_by_name(pctrl, group_desc,
168 regmap_update_bits(pctrl->regmap, group_desc->offset, mask, val);
180 static int berlin_pinctrl_add_function(struct berlin_pinctrl *pctrl,
183 struct berlin_pinctrl_function *function = pctrl->functions;
196 pctrl->nfunctions++;
203 struct berlin_pinctrl *pctrl = platform_get_drvdata(pdev);
208 pctrl->nfunctions = 0;
210 for (i = 0; i < pctrl->desc->ngroups; i++) {
211 desc_group = pctrl->desc->groups + i;
217 pctrl->functions = kcalloc(max_functions,
218 sizeof(*pctrl->functions), GFP_KERNEL);
219 if (!pctrl->functions)
223 for (i = 0; i < pctrl->desc->ngroups; i++) {
224 desc_group = pctrl->desc->groups + i;
228 berlin_pinctrl_add_function(pctrl, desc_function->name);
233 pctrl->functions = krealloc(pctrl->functions,
234 pctrl->nfunctions * sizeof(*pctrl->functions),
236 if (!pctrl->functions)
240 for (i = 0; i < pctrl->desc->ngroups; i++) {
241 desc_group = pctrl->desc->groups + i;
246 *function = pctrl->functions;
259 kfree(pctrl->functions);
271 kfree(pctrl->functions);
301 struct berlin_pinctrl *pctrl;
304 pctrl = devm_kzalloc(dev, sizeof(*pctrl), GFP_KERNEL);
305 if (!pctrl)
308 platform_set_drvdata(pdev, pctrl);
310 pctrl->regmap = regmap;
311 pctrl->dev = &pdev->dev;
312 pctrl->desc = desc;
320 pctrl->pctrl_dev = devm_pinctrl_register(dev, &berlin_pctrl_desc,
321 pctrl);
322 if (IS_ERR(pctrl->pctrl_dev)) {
324 return PTR_ERR(pctrl->pctrl_dev);