Skip to contentSkip to conversation

pinctrl: mscc: Add gpio and pinctrl driver for MSCC MIPS SoCs (VcoreIII based)

PATCH Superseded Gregory CLEMENT 1 participant 1 message Oct 9, 2018 Pin control

v2 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 pinctrl: mscc: Add gpio and pinctrl driver for MSCC MIPS SoCs (VcoreIII based)

This driver supports the pin and gpio controller found in the Ocelot and Luton SoCs.

The driver was inspired from the pinctrl driver in Linux, but was simplified and was modified to allow supporting an other SoCs (Luton).

For Ocelot and Luton the controller is the same, only the pins to program differ.

---
Changelog:
v1 -> v2:
- use clrbits and setbits from MIPS
- use const and static when needed
- fix style
- use dev_remap_addr

 drivers/pinctrl/Kconfig               |   1 +
 drivers/pinctrl/Makefile              |   1 +
 drivers/pinctrl/mscc/Kconfig          |  22 +++
 drivers/pinctrl/mscc/Makefile         |   5 +
 drivers/pinctrl/mscc/mscc-common.c    | 236 ++++++++++++++++++++++++++
 drivers/pinctrl/mscc/mscc-common.h    |  51 ++++++
 drivers/pinctrl/mscc/pinctrl-luton.c  | 172 +++++++++++++++++++
 drivers/pinctrl/mscc/pinctrl-ocelot.c | 188 ++++++++++++++++++++
 8 files changed, 676 insertions(+)
 create mode 100644 drivers/pinctrl/mscc/Kconfig
 create mode 100644 drivers/pinctrl/mscc/Makefile
 create mode 100644 drivers/pinctrl/mscc/mscc-common.c
 create mode 100644 drivers/pinctrl/mscc/mscc-common.h
 create mode 100644 drivers/pinctrl/mscc/pinctrl-luton.c
 create mode 100644 drivers/pinctrl/mscc/pinctrl-ocelot.c
drivers/pinctrl/Kconfig +1 -0
index ad0b8daba6..cc82f91579 100644
@@ -305,6 +305,7 @@ source "drivers/pinctrl/nxp/Kconfig"
 source "drivers/pinctrl/renesas/Kconfig"
 source "drivers/pinctrl/uniphier/Kconfig"
 source "drivers/pinctrl/exynos/Kconfig"
+source "drivers/pinctrl/mscc/Kconfig"
 source "drivers/pinctrl/mvebu/Kconfig"
 source "drivers/pinctrl/broadcom/Kconfig"
 
drivers/pinctrl/Makefile +1 -0
index a3a6c6d163..2461dba293 100644
@@ -16,6 +16,7 @@ obj-$(CONFIG_PINCTRL_UNIPHIER)	+= uniphier/
 obj-$(CONFIG_PINCTRL_PIC32)	+= pinctrl_pic32.o
 obj-$(CONFIG_PINCTRL_EXYNOS)	+= exynos/
 obj-$(CONFIG_PINCTRL_MESON)	+= meson/
+obj-y				+= mscc/
 obj-$(CONFIG_ARCH_MVEBU)	+= mvebu/
 obj-$(CONFIG_PINCTRL_SINGLE)	+= pinctrl-single.o
 obj-$(CONFIG_PINCTRL_STI)	+= pinctrl-sti.o
drivers/pinctrl/mscc/Kconfig new file +22 -0
new file mode 100644
index 0000000000..cfc6c06076
@@ -0,0 +1,22 @@
+# SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+config PINCTRL_MSCC
+	bool
+
+config PINCTRL_MSCC_OCELOT
+	depends on SOC_OCELOT && PINCTRL_FULL && OF_CONTROL
+	select PINCTRL_MSCC
+	default y
+	bool "Microsemi ocelot family pin control driver"
+	help
+	   Support pin multiplexing and pin configuration control on
+	   Microsemi ocelot SoCs.
+
+config PINCTRL_MSCC_LUTON
+	depends on SOC_LUTON && PINCTRL_FULL && OF_CONTROL
+	select PINCTRL_MSCC
+	default y
+	bool "Microsemi luton family pin control driver"
+	help
+	   Support pin multiplexing and pin configuration control on
+	   Microsemi luton SoCs.
drivers/pinctrl/mscc/Makefile new file +5 -0
new file mode 100644
index 0000000000..941f418ff9
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+obj-$(CONFIG_PINCTRL_MSCC) += mscc-common.o
+obj-$(CONFIG_PINCTRL_MSCC_OCELOT) += pinctrl-ocelot.o
+obj-$(CONFIG_PINCTRL_MSCC_LUTON) += pinctrl-luton.o
drivers/pinctrl/mscc/mscc-common.c new file +236 -0

236 lines not on this page · raw message

drivers/pinctrl/mscc/mscc-common.h new file +51 -0

51 lines not on this page · raw message

drivers/pinctrl/mscc/pinctrl-luton.c new file +172 -0

172 lines not on this page · raw message

drivers/pinctrl/mscc/pinctrl-ocelot.c new file +188 -0

188 lines not on this page · raw message

Signature · 1 line
2.19.1