pinctrl: pxa: pxa2xx: add pin control skeleton
authorRobert Jarzmik <robert.jarzmik@free.fr>
Sat, 21 Nov 2015 18:04:49 +0000 (19:04 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 10 Dec 2015 15:10:16 +0000 (16:10 +0100)
commit73317712d9277407b726917de7c4e6d5a4b7df99
tree4d4ae4a82c5dba1130ad15de48b2ee24a5fe85b8
parent1403ead9ea0fda604e28ed861d5c25fdbc8d0dbc
pinctrl: pxa: pxa2xx: add pin control skeleton

Add a pincontrol driver for pxa2xx architecture, encompassing all pxa25x
and pxa27x variants. This is only the pin muxing part of the driver.

One specific consideration is also the memory space (MMIO), which is
intertwined with the GPIO registers. To make things worse, the GPIO
direction register also affect pin muxing, as it chooses the "kind" of
pin, ie. the 4 output functions or 4 input functions.

The mapping between pinctrl notions and PXA Technical Reference Manual
is as follows :
 - a pin is obviously a pin
 - a group is also a pin, ie. group P101 is the pin 101
 - a mux function is an alternate function
   (ie. gpio-in, gpio-out, MMCLK, BTRTS, etc ...)

The individual architecture (pxa27x, pxa25x) instantiate a pin control
by providing a table of pins, each pin being provided a list of
PXA_FUNCTION (alternate functions).

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pxa/Kconfig [new file with mode: 0644]
drivers/pinctrl/pxa/pinctrl-pxa2xx.c [new file with mode: 0644]
drivers/pinctrl/pxa/pinctrl-pxa2xx.h [new file with mode: 0644]