Lines Matching refs:pctl

129 	struct axp20x_pctl *pctl = gpiochip_get_data(chip);
135 ret = regmap_read(pctl->regmap, AXP20X_GPIO3_CTRL, &val);
141 ret = regmap_read(pctl->regmap, AXP20X_GPIO20_SS, &val);
145 return !!(val & BIT(offset + pctl->desc->gpio_status_offset));
151 struct axp20x_pctl *pctl = gpiochip_get_data(chip);
157 ret = regmap_read(pctl->regmap, AXP20X_GPIO3_CTRL, &val);
170 ret = regmap_read(pctl->regmap, reg, &val);
203 struct axp20x_pctl *pctl = gpiochip_get_data(chip);
208 regmap_update_bits(pctl->regmap, AXP20X_GPIO3_CTRL,
219 regmap_update_bits(pctl->regmap, reg,
228 struct axp20x_pctl *pctl = pinctrl_dev_get_drvdata(pctldev);
233 return regmap_update_bits(pctl->regmap, AXP20X_GPIO3_CTRL,
243 return regmap_update_bits(pctl->regmap, reg, AXP20X_GPIO_FUNCTIONS,
249 struct axp20x_pctl *pctl = pinctrl_dev_get_drvdata(pctldev);
251 return ARRAY_SIZE(pctl->funcs);
257 struct axp20x_pctl *pctl = pinctrl_dev_get_drvdata(pctldev);
259 return pctl->funcs[selector].name;
267 struct axp20x_pctl *pctl = pinctrl_dev_get_drvdata(pctldev);
269 *groups = pctl->funcs[selector].groups;
270 *num_groups = pctl->funcs[selector].ngroups;
278 struct axp20x_pctl *pctl = pinctrl_dev_get_drvdata(pctldev);
284 pctl->funcs[function].muxval);
287 mask = pctl->desc->ldo_mask;
289 mask = pctl->desc->adc_mask;
303 return axp20x_pmx_set(pctldev, group, pctl->funcs[function].muxval);
310 struct axp20x_pctl *pctl = pinctrl_dev_get_drvdata(pctldev);
314 pctl->funcs[AXP20X_FUNC_GPIO_IN].muxval);
317 pctl->funcs[AXP20X_FUNC_GPIO_OUT].muxval);
331 struct axp20x_pctl *pctl = pinctrl_dev_get_drvdata(pctldev);
333 return pctl->desc->npins;
339 struct axp20x_pctl *pctl = pinctrl_dev_get_drvdata(pctldev);
341 *pins = (unsigned int *)&pctl->desc->pins[selector];
350 struct axp20x_pctl *pctl = pinctrl_dev_get_drvdata(pctldev);
352 return pctl->desc->pins[selector].name;
392 struct axp20x_pctl *pctl = platform_get_drvdata(pdev);
393 int i, ret, pin, npins = pctl->desc->npins;
395 pctl->funcs[AXP20X_FUNC_GPIO_OUT].name = "gpio_out";
396 pctl->funcs[AXP20X_FUNC_GPIO_OUT].muxval = AXP20X_MUX_GPIO_OUT;
397 pctl->funcs[AXP20X_FUNC_GPIO_IN].name = "gpio_in";
398 pctl->funcs[AXP20X_FUNC_GPIO_IN].muxval = AXP20X_MUX_GPIO_IN;
399 pctl->funcs[AXP20X_FUNC_LDO].name = "ldo";
404 pctl->funcs[AXP20X_FUNC_ADC].name = "adc";
405 pctl->funcs[AXP20X_FUNC_ADC].muxval = pctl->desc->adc_mux;
409 pctl->funcs[i].ngroups = npins;
410 pctl->funcs[i].groups = devm_kcalloc(&pdev->dev,
413 if (!pctl->funcs[i].groups)
416 pctl->funcs[i].groups[pin] = pctl->desc->pins[pin].name;
419 ret = axp20x_funcs_groups_from_mask(&pdev->dev, pctl->desc->ldo_mask,
420 npins, &pctl->funcs[AXP20X_FUNC_LDO],
421 pctl->desc->pins);
425 ret = axp20x_funcs_groups_from_mask(&pdev->dev, pctl->desc->adc_mask,
426 npins, &pctl->funcs[AXP20X_FUNC_ADC],
427 pctl->desc->pins);
445 struct axp20x_pctl *pctl;
458 pctl = devm_kzalloc(&pdev->dev, sizeof(*pctl), GFP_KERNEL);
459 if (!pctl)
462 pctl->chip.base = -1;
463 pctl->chip.can_sleep = true;
464 pctl->chip.request = gpiochip_generic_request;
465 pctl->chip.free = gpiochip_generic_free;
466 pctl->chip.parent = &pdev->dev;
467 pctl->chip.label = dev_name(&pdev->dev);
468 pctl->chip.owner = THIS_MODULE;
469 pctl->chip.get = axp20x_gpio_get;
470 pctl->chip.get_direction = axp20x_gpio_get_direction;
471 pctl->chip.set = axp20x_gpio_set;
472 pctl->chip.direction_input = pinctrl_gpio_direction_input;
473 pctl->chip.direction_output = axp20x_gpio_output;
475 pctl->desc = of_device_get_match_data(dev);
477 pctl->chip.ngpio = pctl->desc->npins;
479 pctl->regmap = axp20x->regmap;
480 pctl->dev = &pdev->dev;
482 platform_set_drvdata(pdev, pctl);
496 pctrl_desc->pins = pctl->desc->pins;
497 pctrl_desc->npins = pctl->desc->npins;
501 pctl->pctl_dev = devm_pinctrl_register(&pdev->dev, pctrl_desc, pctl);
502 if (IS_ERR(pctl->pctl_dev)) {
504 return PTR_ERR(pctl->pctl_dev);
507 ret = devm_gpiochip_add_data(&pdev->dev, &pctl->chip, pctl);
513 ret = gpiochip_add_pin_range(&pctl->chip, dev_name(&pdev->dev),
514 pctl->desc->pins->number,
515 pctl->desc->pins->number,
516 pctl->desc->npins);