Hi Peng, On 31 January 2016 at 22:38, Peng Fan <van.free...@gmail.com> wrote: > Introudce i.MX7 pinctrl driver support. > For now only i.MX7D supported. > There are two iomux controllers in i.MX7D, iomuxc and iomuxc_lpsr. > To iomuxc_lpsr, ZERO_OFFSET_VALID is set, means offset of mux_reg > and conf_reg can begin at 0. > > Signed-off-by: Peng Fan <van.free...@gmail.com> > Cc: Simon Glass <s...@chromium.org> > Cc: Stefano Babic <sba...@denx.de> > Cc: Fabio Estevam <fabio.este...@nxp.com> > --- > drivers/pinctrl/nxp/Kconfig | 8 ++++++++ > drivers/pinctrl/nxp/Makefile | 1 + > drivers/pinctrl/nxp/pinctrl-imx7.c | 42 > ++++++++++++++++++++++++++++++++++++++ > 3 files changed, 51 insertions(+) > create mode 100644 drivers/pinctrl/nxp/pinctrl-imx7.c
Reviewed-by: Simon Glass <s...@chromium.org> > > diff --git a/drivers/pinctrl/nxp/Kconfig b/drivers/pinctrl/nxp/Kconfig > index 2032588..a251d54 100644 > --- a/drivers/pinctrl/nxp/Kconfig > +++ b/drivers/pinctrl/nxp/Kconfig > @@ -8,3 +8,11 @@ config PINCTRL_IMX6 > select PINCTRL_IMX > help > Say Y here to enable the imx6ul pinctrl driver > + > +config PINCTRL_IMX7 > + bool "IMX7 pinctrl driver" > + depends on ARCH_MX7 > + select DEVRES > + select PINCTRL_IMX > + help > + Say Y here to enable the imx6ul pinctrl driver Please add some help! > diff --git a/drivers/pinctrl/nxp/Makefile b/drivers/pinctrl/nxp/Makefile > index 7fd9850..0ee7f2f 100644 > --- a/drivers/pinctrl/nxp/Makefile > +++ b/drivers/pinctrl/nxp/Makefile > @@ -1,2 +1,3 @@ > obj-$(CONFIG_PINCTRL_IMX) += pinctrl-imx.o > obj-$(CONFIG_PINCTRL_IMX6) += pinctrl-imx6.o > +obj-$(CONFIG_PINCTRL_IMX7) += pinctrl-imx7.o > diff --git a/drivers/pinctrl/nxp/pinctrl-imx7.c > b/drivers/pinctrl/nxp/pinctrl-imx7.c > new file mode 100644 > index 0000000..150ccf9 > --- /dev/null > +++ b/drivers/pinctrl/nxp/pinctrl-imx7.c > @@ -0,0 +1,42 @@ > + > +/* > + * Copyright (C) 2016 Peng Fan <van.free...@gmail.com> > + * > + * SPDX-License-Identifier: GPL-2.0+ > + */ > + > +#include <dm/device.h> > +#include <dm/pinctrl.h> > + > +#include "pinctrl-imx.h" > + > +static struct imx_pinctrl_soc_info imx7_pinctrl_soc_info; > + > +static struct imx_pinctrl_soc_info imx7_lpsr_pinctrl_soc_info = { > + .flags = ZERO_OFFSET_VALID, > +}; > + > +static int imx7_pinctrl_probe(struct udevice *dev) > +{ > + struct imx_pinctrl_soc_info *info = > + (struct imx_pinctrl_soc_info *)dev_get_driver_data(dev); I think this should be platform data. > + > + return imx_pinctrl_probe(dev, info); > +} > + > +static const struct udevice_id imx7_pinctrl_match[] = { > + { .compatible = "fsl,imx7d-iomuxc", .data = > (ulong)&imx7_pinctrl_soc_info }, > + { .compatible = "fsl,imx7d-iomuxc-lpsr", .data = > (ulong)&imx7_lpsr_pinctrl_soc_info }, > + { /* sentinel */ } > +}; > + > +U_BOOT_DRIVER(imx7_pinctrl) = { > + .name = "imx7-pinctrl", > + .id = UCLASS_PINCTRL, > + .of_match = of_match_ptr(imx7_pinctrl_match), > + .probe = imx7_pinctrl_probe, > + .remove = imx_pinctrl_remove, > + .priv_auto_alloc_size = sizeof(struct imx_pinctrl_priv), > + .ops = &imx_pinctrl_ops, > + .flags = DM_FLAG_PRE_RELOC, > +}; > -- > 2.6.2 > Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot