Message ID | 20200110144711.81938-13-giulio.benetti@benettiengineering.com |
---|---|
State | Accepted |
Commit | 916ce98127ab6e78b1a1fafb76a5a3cfc7c4e0a3 |
Headers | show |
Series | Add i.MXRT family support | expand |
> Add i.MXRT pinctrl driver. > Signed-off-by: Giulio Benetti <giulio.benetti at benettiengineering.com> Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic
Hi Giulio, > Add i.MXRT pinctrl driver. Please add information from where this code was ported (SHA1, branch, commit name). Nit tip: - Please use patman, which will give you a warning if somethinf with the commit or commit message is broken. > > Signed-off-by: Giulio Benetti <giulio.benetti at benettiengineering.com> > --- > 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, > + 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 <giulio.benetti at benettiengineering.com> > + */ > + > +#include <common.h> > +#include <dm.h> > +#include <dm/pinctrl.h> > + > +#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, > +}; Reviewed-by: Lukasz Majewski <lukma at denx.de> 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: <https://lists.denx.de/pipermail/u-boot/attachments/20200128/81b0b907/attachment.sig>
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, + 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 <giulio.benetti at benettiengineering.com> + */ + +#include <common.h> +#include <dm.h> +#include <dm/pinctrl.h> + +#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, +};
Add i.MXRT pinctrl driver. Signed-off-by: Giulio Benetti <giulio.benetti at benettiengineering.com> --- 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