On Thu, Nov 07, 2024 at 03:57:20PM +0100, Jules Maselbas wrote: > sunxi pinctrl driver, adapted from Linux, is split in two parts: > - pinctrl-sunxi.c that implements gpio, pinctrl and pinmux functions > - pinctrl-sun50i-a64.c that declare sun50i pins and their functions. > This file only require minor adaptations and be easily copied from Linux. > > The pin functions are needed for uart, SD/MMC, and likely for other > controllers too. > > Signed-off-by: Jules Maselbas <jmaselbas@xxxxxxxx> > --- > drivers/pinctrl/Kconfig | 2 + > drivers/pinctrl/Makefile | 1 + > drivers/pinctrl/sunxi/Kconfig | 13 + > drivers/pinctrl/sunxi/Makefile | 3 + > drivers/pinctrl/sunxi/pinctrl-sun50i-a64.c | 594 +++++++++++++++++++++ > drivers/pinctrl/sunxi/pinctrl-sunxi.c | 372 +++++++++++++ > drivers/pinctrl/sunxi/pinctrl-sunxi.h | 224 ++++++++ > 7 files changed, 1209 insertions(+) > create mode 100644 drivers/pinctrl/sunxi/Kconfig > create mode 100644 drivers/pinctrl/sunxi/Makefile > create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun50i-a64.c > create mode 100644 drivers/pinctrl/sunxi/pinctrl-sunxi.c > create mode 100644 drivers/pinctrl/sunxi/pinctrl-sunxi.h > ... > + > +int sunxi_pinctrl_probe(struct device *dev) > +{ > + const struct sunxi_pinctrl_desc *desc; > + struct sunxi_pinctrl *pinctrl; > + struct resource *iores; > + int ret; > + > + if (!IS_ENABLED(CONFIG_PINCTRL)) > + return 0; You can drop this. A few drivers have it because they provide GPIO support even with pinctrl support disabled, but you don't do this here. Sascha > + > + desc = device_get_match_data(dev); > + if (!desc) > + return -EINVAL; > + -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |