Lines Matching defs:pctrl
127 struct pinctrl_dev *pctrl;
164 static int pm8xxx_mpp_update(struct pm8xxx_mpp *pctrl,
233 ret = regmap_write(pctrl->regmap, pin->reg, val);
235 dev_err(pctrl->dev, "failed to write register\n");
242 struct pm8xxx_mpp *pctrl = pinctrl_dev_get_drvdata(pctldev);
244 return pctrl->npins;
259 struct pm8xxx_mpp *pctrl = pinctrl_dev_get_drvdata(pctldev);
261 *pins = &pctrl->desc.pins[group].number;
291 struct pm8xxx_mpp *pctrl = pinctrl_dev_get_drvdata(pctldev);
294 *num_groups = pctrl->npins;
302 struct pm8xxx_mpp *pctrl = pinctrl_dev_get_drvdata(pctldev);
303 struct pm8xxx_pin_data *pin = pctrl->desc.pins[group].drv_data;
306 pm8xxx_mpp_update(pctrl, pin);
322 struct pm8xxx_mpp *pctrl = pinctrl_dev_get_drvdata(pctldev);
323 struct pm8xxx_pin_data *pin = pctrl->desc.pins[offset].drv_data;
372 struct pm8xxx_mpp *pctrl = pinctrl_dev_get_drvdata(pctldev);
373 struct pm8xxx_pin_data *pin = pctrl->desc.pins[offset].drv_data;
415 dev_err(pctrl->dev,
422 pm8xxx_mpp_update(pctrl, pin);
444 struct pm8xxx_mpp *pctrl = gpiochip_get_data(chip);
445 struct pm8xxx_pin_data *pin = pctrl->desc.pins[offset].drv_data;
459 pm8xxx_mpp_update(pctrl, pin);
468 struct pm8xxx_mpp *pctrl = gpiochip_get_data(chip);
469 struct pm8xxx_pin_data *pin = pctrl->desc.pins[offset].drv_data;
485 pm8xxx_mpp_update(pctrl, pin);
492 struct pm8xxx_mpp *pctrl = gpiochip_get_data(chip);
493 struct pm8xxx_pin_data *pin = pctrl->desc.pins[offset].drv_data;
509 struct pm8xxx_mpp *pctrl = gpiochip_get_data(chip);
510 struct pm8xxx_pin_data *pin = pctrl->desc.pins[offset].drv_data;
514 pm8xxx_mpp_update(pctrl, pin);
533 struct pm8xxx_mpp *pctrl = gpiochip_get_data(chip);
534 struct pm8xxx_pin_data *pin = pctrl->desc.pins[offset].drv_data;
548 struct pm8xxx_mpp *pctrl = gpiochip_get_data(chip);
549 struct pm8xxx_pin_data *pin = pctrl->desc.pins[offset].drv_data;
648 static int pm8xxx_pin_populate(struct pm8xxx_mpp *pctrl,
657 ret = regmap_read(pctrl->regmap, pin->reg, &val);
659 dev_err(pctrl->dev, "failed to read register\n");
751 struct pm8xxx_mpp *pctrl;
755 pctrl = devm_kzalloc(&pdev->dev, sizeof(*pctrl), GFP_KERNEL);
756 if (!pctrl)
759 pctrl->dev = &pdev->dev;
765 pctrl->npins = npins;
767 pctrl->regmap = dev_get_regmap(pdev->dev.parent, NULL);
768 if (!pctrl->regmap) {
773 pctrl->desc = pm8xxx_pinctrl_desc;
774 pctrl->desc.npins = pctrl->npins;
777 pctrl->desc.npins,
784 pctrl->desc.npins,
790 for (i = 0; i < pctrl->desc.npins; i++) {
796 ret = pm8xxx_pin_populate(pctrl, &pin_data[i]);
804 pctrl->desc.pins = pins;
806 pctrl->desc.num_custom_params = ARRAY_SIZE(pm8xxx_mpp_bindings);
807 pctrl->desc.custom_params = pm8xxx_mpp_bindings;
809 pctrl->desc.custom_conf_items = pm8xxx_conf_items;
812 pctrl->pctrl = devm_pinctrl_register(&pdev->dev, &pctrl->desc, pctrl);
813 if (IS_ERR(pctrl->pctrl)) {
815 return PTR_ERR(pctrl->pctrl);
818 pctrl->chip = pm8xxx_mpp_template;
819 pctrl->chip.base = -1;
820 pctrl->chip.parent = &pdev->dev;
821 pctrl->chip.of_node = pdev->dev.of_node;
822 pctrl->chip.of_gpio_n_cells = 2;
823 pctrl->chip.label = dev_name(pctrl->dev);
824 pctrl->chip.ngpio = pctrl->npins;
825 ret = gpiochip_add_data(&pctrl->chip, pctrl);
831 ret = gpiochip_add_pin_range(&pctrl->chip,
832 dev_name(pctrl->dev),
833 0, 0, pctrl->chip.ngpio);
835 dev_err(pctrl->dev, "failed to add pin range\n");
839 platform_set_drvdata(pdev, pctrl);
846 gpiochip_remove(&pctrl->chip);
853 struct pm8xxx_mpp *pctrl = platform_get_drvdata(pdev);
855 gpiochip_remove(&pctrl->chip);