Messages in this thread |  | | From | Andy Shevchenko <> | Date | Wed, 29 Jun 2022 23:13:55 +0200 | Subject | Re: [PATCH v4 12/15] pinctrl: Add AXP192 pin control driver |
| |
On Wed, Jun 29, 2022 at 4:30 PM Aidan MacDonald <aidanmacdonald.0x0@gmail.com> wrote: > > The AXP192 PMIC's GPIO registers are much different from the GPIO > registers of the AXP20x and AXP813 PMICs supported by the existing > pinctrl-axp209 driver. It makes more sense to add a new driver for > the AXP192, rather than add support in the existing axp20x driver. > > The pinctrl-axp192 driver is considerably more flexible in terms of > register layout and should be able to support other X-Powers PMICs. > Interrupts and pull down resistor configuration are supported too.
...
> +config PINCTRL_AXP192 > + tristate "X-Powers AXP192 PMIC pinctrl and GPIO Support" > + depends on MFD_AXP20X > + select PINMUX > + select GENERIC_PINCONF > + select GPIOLIB > + help > + AXP PMICs provide multiple GPIOs that can be muxed for different > + functions. This driver bundles a pinctrl driver to select the function > + muxing and a GPIO driver to handle the GPIO when the GPIO function is > + selected. > + Say Y to enable pinctrl and GPIO support for the AXP192 PMIC.
What will be the module name if compiled as a module?
...
> +/** > + * struct axp192_pctl_function - describes a function that GPIOs may have > + * > + * @name: Function name > + * @muxvals: Mux values used for selecting this function, one per GPIO. > + * The i'th element corresponds to the i'th GPIO and is written > + * to the GPIO's control register field to select this function. > + * U8_MAX indicates that the pin does not support this function. > + * @groups: Array of @ngroups groups listing pins supporting this function. > + * @ngroups: Number of pin groups. > + */ > +struct axp192_pctl_function { > + const char *name; > + /* Mux value written to the control register to select the function (-1 if unsupported) */ > + const u8 *muxvals; > + const char * const *groups; > + unsigned int ngroups; > +};
Can it be replaced by struct function_desc? https://elixir.bootlin.com/linux/latest/source/drivers/pinctrl/pinmux.h#L130
...
> + ret = devm_gpiochip_add_data(dev, &pctl->chip, pctl); > + if (ret) > + dev_err_probe(dev, ret, "Failed to register GPIO chip\n");
Missed return.
-- With Best Regards, Andy Shevchenko
|  |