Lines Matching defs:pmx
33 static void muxregs_endisable(struct spear_pmx *pmx,
42 val = pmx_readl(pmx, muxreg->reg);
51 pmx_writel(pmx, val, muxreg->reg);
55 static int set_mode(struct spear_pmx *pmx, int mode)
61 if (!pmx->machdata->pmx_modes || !pmx->machdata->npmx_modes)
64 for (i = 0; i < pmx->machdata->npmx_modes; i++) {
65 if (pmx->machdata->pmx_modes[i]->mode == (1 << mode)) {
66 pmx_mode = pmx->machdata->pmx_modes[i];
74 val = pmx_readl(pmx, pmx_mode->reg);
77 pmx_writel(pmx, val, pmx_mode->reg);
79 pmx->machdata->mode = pmx_mode->mode;
80 dev_info(pmx->dev, "Configured Mode: %s with id: %x\n\n",
118 struct spear_pmx *pmx = pinctrl_dev_get_drvdata(pctldev);
120 return pmx->machdata->ngroups;
126 struct spear_pmx *pmx = pinctrl_dev_get_drvdata(pctldev);
128 return pmx->machdata->groups[group]->name;
134 struct spear_pmx *pmx = pinctrl_dev_get_drvdata(pctldev);
136 *pins = pmx->machdata->groups[group]->pins;
137 *num_pins = pmx->machdata->groups[group]->npins;
153 struct spear_pmx *pmx = pinctrl_dev_get_drvdata(pctldev);
177 dev_err(pmx->dev, "No child nodes passed via DT\n");
218 struct spear_pmx *pmx = pinctrl_dev_get_drvdata(pctldev);
220 return pmx->machdata->nfunctions;
226 struct spear_pmx *pmx = pinctrl_dev_get_drvdata(pctldev);
228 return pmx->machdata->functions[function]->name;
235 struct spear_pmx *pmx = pinctrl_dev_get_drvdata(pctldev);
237 *groups = pmx->machdata->functions[function]->groups;
238 *ngroups = pmx->machdata->functions[function]->ngroups;
246 struct spear_pmx *pmx = pinctrl_dev_get_drvdata(pctldev);
252 pgroup = pmx->machdata->groups[group];
258 if (pmx->machdata->modes_supported) {
259 if (!(pmx->machdata->mode & modemux->modes))
264 muxregs_endisable(pmx, modemux->muxregs, modemux->nmuxregs,
269 dev_err(pmx->dev, "pinmux group: %s not supported\n",
284 static struct spear_gpio_pingroup *get_gpio_pingroup(struct spear_pmx *pmx,
290 if (!pmx->machdata->gpio_pingroups)
293 for (i = 0; i < pmx->machdata->ngpio_pingroups; i++) {
294 gpio_pingroup = &pmx->machdata->gpio_pingroups[i];
308 struct spear_pmx *pmx = pinctrl_dev_get_drvdata(pctldev);
309 struct spear_pinctrl_machdata *machdata = pmx->machdata;
316 gpio_pingroup = get_gpio_pingroup(pmx, offset);
318 muxregs_endisable(pmx, gpio_pingroup->muxregs,
326 machdata->gpio_request_endisable(pmx, offset, enable);
363 struct spear_pmx *pmx;
368 pmx = devm_kzalloc(&pdev->dev, sizeof(*pmx), GFP_KERNEL);
369 if (!pmx)
372 pmx->regmap = device_node_to_regmap(np);
373 if (IS_ERR(pmx->regmap)) {
375 pmx->regmap);
376 return PTR_ERR(pmx->regmap);
379 pmx->dev = &pdev->dev;
380 pmx->machdata = machdata;
391 if (set_mode(pmx, mode)) {
398 platform_set_drvdata(pdev, pmx);
403 pmx->pctl = devm_pinctrl_register(&pdev->dev, &spear_pinctrl_desc, pmx);
404 if (IS_ERR(pmx->pctl)) {
406 return PTR_ERR(pmx->pctl);