From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lukasz Majewski Date: Sun, 8 Dec 2019 15:45:17 +0100 Subject: [PATCH 12/20] pinctrl: add i.MXRT driver In-Reply-To: <20191204174439.69934-13-giulio.benetti@benettiengineering.com> References: <20191204174439.69934-1-giulio.benetti@benettiengineering.com> <20191204174439.69934-13-giulio.benetti@benettiengineering.com> Message-ID: <20191208154517.663de138@jawa> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Wed, 4 Dec 2019 18:44:31 +0100 Giulio Benetti wrote: > Add i.MXRT pinctrl driver. > > Signed-off-by: Giulio Benetti > --- > drivers/pinctrl/nxp/Kconfig | 14 ++++++++++ > drivers/pinctrl/nxp/Makefile | 1 + > drivers/pinctrl/nxp/pinctrl-imxrt.c | 40 > +++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+) > create mode 100644 drivers/pinctrl/nxp/pinctrl-imxrt.c > > diff --git a/drivers/pinctrl/nxp/Kconfig b/drivers/pinctrl/nxp/Kconfig > index f2e67ca231..ec55351e61 100644 > --- a/drivers/pinctrl/nxp/Kconfig > +++ b/drivers/pinctrl/nxp/Kconfig > @@ -99,6 +99,20 @@ config PINCTRL_MXS > familiy, e.g. i.MX28. This feature depends on device tree > configuration. > > +config PINCTRL_IMXRT > + bool "IMXRT pinctrl driver" > + depends on ARCH_IMXRT && PINCTRL_FULL > + select DEVRES > + select PINCTRL_IMX > + help > + Say Y here to enable the imxrt pinctrl driver > + > + This provides a simple pinctrl driver for i.MXRT SoC > familiy. > + This feature depends on device tree configuration. This > driver > + is different from the linux one, this is a simple > implementation, Could you add proper documentation entry (in ./doc/*) in which you would point out the differences between the full blown Linux driver and this U-Boot driver (I do guess that "only parsing 'fsl,pins'" is not the only difference - more details are welcome). And a bit more generic request - it is also nice to add some kind of ./doc/README.* documentation in which one can put some hints (or usage patterns) for in-uboot boards (like during development discovered HW issues, etc.). Such information is priceless when other community member wants to use this code/board (and NXP is very often silence about them :-) ). > + only parses the 'fsl,pins' property and configure related > + registers. > + > config PINCTRL_VYBRID > bool "Vybrid (vf610) pinctrl driver" > depends on ARCH_VF610 && PINCTRL_FULL > diff --git a/drivers/pinctrl/nxp/Makefile > b/drivers/pinctrl/nxp/Makefile index b86448aac9..066ca75b65 100644 > --- a/drivers/pinctrl/nxp/Makefile > +++ b/drivers/pinctrl/nxp/Makefile > @@ -8,3 +8,4 @@ obj-$(CONFIG_PINCTRL_IMX8) += > pinctrl-imx8.o obj-$(CONFIG_PINCTRL_IMX8M) += > pinctrl-imx8m.o obj-$(CONFIG_PINCTRL_MXS) += > pinctrl-mxs.o obj-$(CONFIG_PINCTRL_VYBRID) += > pinctrl-vf610.o +obj-$(CONFIG_PINCTRL_IMXRT) += > pinctrl-imxrt.o diff --git a/drivers/pinctrl/nxp/pinctrl-imxrt.c > b/drivers/pinctrl/nxp/pinctrl-imxrt.c new file mode 100644 > index 0000000000..4a93941927 > --- /dev/null > +++ b/drivers/pinctrl/nxp/pinctrl-imxrt.c > @@ -0,0 +1,40 @@ > +// SPDX-License-Identifier: GPL-2.0+ > +/* > + * Copyright (C) 2019 > + * Author(s): Giulio Benetti > + */ > + > +#include > +#include > +#include > + > +#include "pinctrl-imx.h" > + > +static struct imx_pinctrl_soc_info imxrt_pinctrl_soc_info = { > + .flags = ZERO_OFFSET_VALID, > +}; > + > +static int imxrt_pinctrl_probe(struct udevice *dev) > +{ > + struct imx_pinctrl_soc_info *info = > + (struct imx_pinctrl_soc_info > *)dev_get_driver_data(dev); + > + return imx_pinctrl_probe(dev, info); > +} > + > +static const struct udevice_id imxrt_pinctrl_match[] = { > + { .compatible = "fsl,imxrt-iomuxc", > + .data = (ulong)&imxrt_pinctrl_soc_info }, > + { /* sentinel */ } > +}; > + > +U_BOOT_DRIVER(imxrt_pinctrl) = { > + .name = "imxrt-pinctrl", > + .id = UCLASS_PINCTRL, > + .of_match = of_match_ptr(imxrt_pinctrl_match), > + .probe = imxrt_pinctrl_probe, > + .remove = imx_pinctrl_remove, > + .priv_auto_alloc_size = sizeof(struct imx_pinctrl_priv), > + .ops = &imx_pinctrl_ops, > + .flags = DM_FLAG_PRE_RELOC, > +}; Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 488 bytes Desc: OpenPGP digital signature URL: