Lines Matching defs:pctl
134 struct axp20x_pctl *pctl = gpiochip_get_data(chip);
140 ret = regmap_read(pctl->regmap, AXP20X_GPIO3_CTRL, &val);
146 ret = regmap_read(pctl->regmap, AXP20X_GPIO20_SS, &val);
150 return !!(val & BIT(offset + pctl->desc->gpio_status_offset));
156 struct axp20x_pctl *pctl = gpiochip_get_data(chip);
162 ret = regmap_read(pctl->regmap, AXP20X_GPIO3_CTRL, &val);
175 ret = regmap_read(pctl->regmap, reg, &val);
208 struct axp20x_pctl *pctl = gpiochip_get_data(chip);
213 regmap_update_bits(pctl->regmap, AXP20X_GPIO3_CTRL,
224 regmap_update_bits(pctl->regmap, reg,
233 struct axp20x_pctl *pctl = pinctrl_dev_get_drvdata(pctldev);
238 return regmap_update_bits(pctl->regmap, AXP20X_GPIO3_CTRL,
248 return regmap_update_bits(pctl->regmap, reg, AXP20X_GPIO_FUNCTIONS,
254 struct axp20x_pctl *pctl = pinctrl_dev_get_drvdata(pctldev);
256 return ARRAY_SIZE(pctl->funcs);
262 struct axp20x_pctl *pctl = pinctrl_dev_get_drvdata(pctldev);
264 return pctl->funcs[selector].name;
272 struct axp20x_pctl *pctl = pinctrl_dev_get_drvdata(pctldev);
274 *groups = pctl->funcs[selector].groups;
275 *num_groups = pctl->funcs[selector].ngroups;
283 struct axp20x_pctl *pctl = pinctrl_dev_get_drvdata(pctldev);
289 pctl->funcs[function].muxval);
292 mask = pctl->desc->ldo_mask;
294 mask = pctl->desc->adc_mask;
308 return axp20x_pmx_set(pctldev, group, pctl->funcs[function].muxval);
315 struct axp20x_pctl *pctl = pinctrl_dev_get_drvdata(pctldev);
319 pctl->funcs[AXP20X_FUNC_GPIO_IN].muxval);
322 pctl->funcs[AXP20X_FUNC_GPIO_OUT].muxval);
336 struct axp20x_pctl *pctl = pinctrl_dev_get_drvdata(pctldev);
338 return pctl->desc->npins;
344 struct axp20x_pctl *pctl = pinctrl_dev_get_drvdata(pctldev);
346 *pins = (unsigned int *)&pctl->desc->pins[selector];
355 struct axp20x_pctl *pctl = pinctrl_dev_get_drvdata(pctldev);
357 return pctl->desc->pins[selector].name;
397 struct axp20x_pctl *pctl = platform_get_drvdata(pdev);
398 int i, ret, pin, npins = pctl->desc->npins;
400 pctl->funcs[AXP20X_FUNC_GPIO_OUT].name = "gpio_out";
401 pctl->funcs[AXP20X_FUNC_GPIO_OUT].muxval = AXP20X_MUX_GPIO_OUT;
402 pctl->funcs[AXP20X_FUNC_GPIO_IN].name = "gpio_in";
403 pctl->funcs[AXP20X_FUNC_GPIO_IN].muxval = AXP20X_MUX_GPIO_IN;
404 pctl->funcs[AXP20X_FUNC_LDO].name = "ldo";
409 pctl->funcs[AXP20X_FUNC_ADC].name = "adc";
410 pctl->funcs[AXP20X_FUNC_ADC].muxval = pctl->desc->adc_mux;
414 pctl->funcs[i].ngroups = npins;
415 pctl->funcs[i].groups = devm_kcalloc(&pdev->dev,
418 if (!pctl->funcs[i].groups)
421 pctl->funcs[i].groups[pin] = pctl->desc->pins[pin].name;
424 ret = axp20x_funcs_groups_from_mask(&pdev->dev, pctl->desc->ldo_mask,
425 npins, &pctl->funcs[AXP20X_FUNC_LDO],
426 pctl->desc->pins);
430 ret = axp20x_funcs_groups_from_mask(&pdev->dev, pctl->desc->adc_mask,
431 npins, &pctl->funcs[AXP20X_FUNC_ADC],
432 pctl->desc->pins);
450 struct axp20x_pctl *pctl;
463 pctl = devm_kzalloc(&pdev->dev, sizeof(*pctl), GFP_KERNEL);
464 if (!pctl)
467 pctl->chip.base = -1;
468 pctl->chip.can_sleep = true;
469 pctl->chip.request = gpiochip_generic_request;
470 pctl->chip.free = gpiochip_generic_free;
471 pctl->chip.parent = &pdev->dev;
472 pctl->chip.label = dev_name(&pdev->dev);
473 pctl->chip.owner = THIS_MODULE;
474 pctl->chip.get = axp20x_gpio_get;
475 pctl->chip.get_direction = axp20x_gpio_get_direction;
476 pctl->chip.set = axp20x_gpio_set;
477 pctl->chip.direction_input = axp20x_gpio_input;
478 pctl->chip.direction_output = axp20x_gpio_output;
480 pctl->desc = of_device_get_match_data(dev);
482 pctl->chip.ngpio = pctl->desc->npins;
484 pctl->regmap = axp20x->regmap;
485 pctl->dev = &pdev->dev;
487 platform_set_drvdata(pdev, pctl);
501 pctrl_desc->pins = pctl->desc->pins;
502 pctrl_desc->npins = pctl->desc->npins;
506 pctl->pctl_dev = devm_pinctrl_register(&pdev->dev, pctrl_desc, pctl);
507 if (IS_ERR(pctl->pctl_dev)) {
509 return PTR_ERR(pctl->pctl_dev);
512 ret = devm_gpiochip_add_data(&pdev->dev, &pctl->chip, pctl);
518 ret = gpiochip_add_pin_range(&pctl->chip, dev_name(&pdev->dev),
519 pctl->desc->pins->number,
520 pctl->desc->pins->number,
521 pctl->desc->npins);