On Fri, May 19, 2017 at 12:04 PM, Gregory CLEMENT <gregory.clement@xxxxxxxxxxxxxxxxxx> wrote: > From: Hanna Hawa <hannah@xxxxxxxxxxx> > > This commit adds a pinctrl driver for the CP110 part of the Marvell > Armada 7K and 8K SoCs. The Armada 7K has a single CP110, where almost all > the MPP pins are available. On the other side, the Armada 8K has two > CP110, and the available MPPs are split between the master CP110 (MPPs 32 > to 62) and the slave CP110 (MPPs 0 to 31). > > The register interface to control the MPPs is however the same as all > other mvebu SoCs, so we can reuse the common pinctrl-mvebu.c logic. > > Signed-off-by: Hanna Hawa <hannah@xxxxxxxxxxx> > Reviewed-by: Shadi Ammouri <shadi@xxxxxxxxxxx> > > [updated for mvebu pinctrl and 4.9 changes: > - converted to simple_mmio > - converted to syscon/regmap > - removed unimplemented .remove function > - dropped DTS changes > - defered gpio ranges to DT > - fixed warning > - properly set soc->nmodes > -- rmk] > Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxx> > > [ add missing MPP[61:56] function 14 (SDIO) > -- Konstantin Porotchkin] > Signed-off-by: Konstantin Porotchkin <kostap@xxxxxxxxxxx> > > [ allow to properly register more then one instance of this driver > -- Grzegorz Jaszczyk] > Signed-off-by: Grzegorz Jaszczyk <jaz@xxxxxxxxxxxx> > > [ - rebased on 4.12-rc1 > - fixed the 80 character limit for mvebu_mpp_mode array > - aligned the compatible name on the ones already used > - fixed the MPP table for CP110: some MPP are not available on Armada 7K > -- Gregory CLEMENT] > Signed-off-by: Gregory CLEMENT <gregory.clement@xxxxxxxxxxxxxxxxxx> > --- > drivers/pinctrl/mvebu/Kconfig | 4 +- > drivers/pinctrl/mvebu/Makefile | 1 +- > drivers/pinctrl/mvebu/pinctrl-armada-cp110.c | 692 ++++++++++++++++++++- > 3 files changed, 697 insertions(+) > create mode 100644 drivers/pinctrl/mvebu/pinctrl-armada-cp110.c > > diff --git a/drivers/pinctrl/mvebu/Kconfig b/drivers/pinctrl/mvebu/Kconfig > index 0e0b009f2b71..d9773b77ff9f 100644 > --- a/drivers/pinctrl/mvebu/Kconfig > +++ b/drivers/pinctrl/mvebu/Kconfig > @@ -32,6 +32,10 @@ config PINCTRL_ARMADA_AP806 > bool > select PINCTRL_MVEBU > > +config PINCTRL_ARMADA_CP110 > + bool > + select PINCTRL_MVEBU Same comment for this driver; if we'd not add new instances of non-modular code using the modular functions/macros, it would be greatly appreciated. Thanks, Paul. -- > + > config PINCTRL_ARMADA_XP > bool > select PINCTRL_MVEBU > diff --git a/drivers/pinctrl/mvebu/Makefile b/drivers/pinctrl/mvebu/Makefile > index 455db274b53d..5b03fd55e28d 100644 > --- a/drivers/pinctrl/mvebu/Makefile > +++ b/drivers/pinctrl/mvebu/Makefile > @@ -6,6 +6,7 @@ obj-$(CONFIG_PINCTRL_ARMADA_375) += pinctrl-armada-375.o > obj-$(CONFIG_PINCTRL_ARMADA_38X) += pinctrl-armada-38x.o > obj-$(CONFIG_PINCTRL_ARMADA_39X) += pinctrl-armada-39x.o > obj-$(CONFIG_PINCTRL_ARMADA_AP806) += pinctrl-armada-ap806.o > +obj-$(CONFIG_PINCTRL_ARMADA_CP110) += pinctrl-armada-cp110.o > obj-$(CONFIG_PINCTRL_ARMADA_XP) += pinctrl-armada-xp.o > obj-$(CONFIG_PINCTRL_ARMADA_37XX) += pinctrl-armada-37xx.o > obj-$(CONFIG_PINCTRL_ORION) += pinctrl-orion.o > diff --git a/drivers/pinctrl/mvebu/pinctrl-armada-cp110.c b/drivers/pinctrl/mvebu/pinctrl-armada-cp110.c > new file mode 100644 > index 000000000000..f835f9262829 > --- /dev/null > +++ b/drivers/pinctrl/mvebu/pinctrl-armada-cp110.c > @@ -0,0 +1,692 @@ > +/* > + * Marvell Armada CP110 pinctrl driver based on mvebu pinctrl core > + * > + * Copyright (C) 2017 Marvell > + * > + * Hanna Hawa <hannah@xxxxxxxxxxx> > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License as published by > + * the Free Software Foundation; either version 2 of the License, or > + * (at your option) any later version. > + */ > + > +#include <linux/err.h> > +#include <linux/init.h> > +#include <linux/io.h> > +#include <linux/mfd/syscon.h> > +#include <linux/module.h> [...] > + > +module_platform_driver(armada_cp110_pinctrl_driver); > + > +MODULE_AUTHOR("Hanna Hawa <hannah@xxxxxxxxxxx>"); > +MODULE_DESCRIPTION("Marvell Armada CP110 pinctrl driver"); > +MODULE_LICENSE("GPL v2"); > -- > git-series 0.9.1 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html