Commit 218d72a7 authored by Richard Fitzgerald's avatar Richard Fitzgerald Committed by Lee Jones
Browse files

pinctrl: madera: Add driver for Cirrus Logic Madera codecs



These codecs have a variable number of I/O lines each of which
is individually selectable to a wide range of possible functions.

The functionality is slightly different from the traditional muxed
GPIO since most of the functions can be mapped to any pin (and even
the same function to multiple pins). Most pins have a dedicated
"alternate" function that is only available on that pin. The
alternate functions are usually a group of signals, though it is
not always necessary to enable the full group, depending on the
alternate function and how it is to be used. The mapping between
alternate functions and GPIO pins varies between codecs depending
on the number of alternate functions and available pins.

Signed-off-by: default avatarRichard Fitzgerald <rf@opensource.cirrus.com>
Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
parent b3b606c9
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -3488,9 +3488,11 @@ T: git https://github.com/CirrusLogic/linux-drivers.git
W:	https://github.com/CirrusLogic/linux-drivers/wiki
S:	Supported
F:	Documentation/devicetree/bindings/mfd/madera.txt
F:	Documentation/devicetree/bindings/pinctrl/cirrus,madera-pinctrl.txt
F:	include/linux/mfd/madera/*
F:	drivers/mfd/madera*
F:	drivers/mfd/cs47l*
F:	drivers/pinctrl/cirrus/*

CLEANCACHE API
M:	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+1 −0
Original line number Diff line number Diff line
@@ -359,6 +359,7 @@ source "drivers/pinctrl/vt8500/Kconfig"
source "drivers/pinctrl/mediatek/Kconfig"
source "drivers/pinctrl/zte/Kconfig"
source "drivers/pinctrl/meson/Kconfig"
source "drivers/pinctrl/cirrus/Kconfig"

config PINCTRL_XWAY
	bool
+1 −0
Original line number Diff line number Diff line
@@ -63,3 +63,4 @@ obj-$(CONFIG_PINCTRL_UNIPHIER) += uniphier/
obj-$(CONFIG_ARCH_VT8500)	+= vt8500/
obj-y				+= mediatek/
obj-$(CONFIG_PINCTRL_ZX)	+= zte/
obj-y				+= cirrus/
+14 −0
Original line number Diff line number Diff line
# This is all selected by the Madera MFD driver Kconfig options
config PINCTRL_MADERA
	tristate
	select PINMUX
	select GENERIC_PINCONF

config PINCTRL_CS47L35
	bool

config PINCTRL_CS47L85
	bool

config PINCTRL_CS47L90
	bool
+13 −0
Original line number Diff line number Diff line
# Cirrus Logic pinctrl drivers
pinctrl-madera-objs		:= pinctrl-madera-core.o
ifeq ($(CONFIG_PINCTRL_CS47L35),y)
pinctrl-madera-objs		+= pinctrl-cs47l35.o
endif
ifeq ($(CONFIG_PINCTRL_CS47L85),y)
pinctrl-madera-objs		+= pinctrl-cs47l85.o
endif
ifeq ($(CONFIG_PINCTRL_CS47L90),y)
pinctrl-madera-objs		+= pinctrl-cs47l90.o
endif

obj-$(CONFIG_PINCTRL_MADERA)	+= pinctrl-madera.o
Loading