170c6152ae
This patch adds support for the GPIO/pinmux controller found on the VIA VT8500 and Wondermedia WM8xxx-series SoCs. Each pin within the controller is capable of operating as a GPIO or as an alternate function. The pins are numbered according to their control bank/bit so that if new pins are added, the existing numbering is maintained. All currently supported SoCs are included: VT8500, WM8505, WM8650, WM8750 and WM8850. Signed-off-by: Tony Prisk <linux@prisktech.co.nz> Reviewed-by: Stephen Warren <swarren@nvidia.com> Acked-by: Linus Walleij <linus.walleij@linaro.org>
58 lines
2.1 KiB
Plaintext
58 lines
2.1 KiB
Plaintext
VIA VT8500 and Wondermedia WM8xxx-series pinmux/gpio controller
|
|
|
|
These SoCs contain a combined Pinmux/GPIO module. Each pin may operate as
|
|
either a GPIO in, GPIO out or as an alternate function (I2C, SPI etc).
|
|
|
|
Required properties:
|
|
- compatible: "via,vt8500-pinctrl", "wm,wm8505-pinctrl", "wm,wm8650-pinctrl",
|
|
"wm8750-pinctrl" or "wm,wm8850-pinctrl"
|
|
- reg: Should contain the physical address of the module's registers.
|
|
- interrupt-controller: Marks the device node as an interrupt controller.
|
|
- #interrupt-cells: Should be two.
|
|
- gpio-controller: Marks the device node as a GPIO controller.
|
|
- #gpio-cells : Should be two. The first cell is the pin number and the
|
|
second cell is used to specify optional parameters.
|
|
bit 0 - active low
|
|
|
|
Please refer to ../gpio/gpio.txt for a general description of GPIO bindings.
|
|
|
|
Please refer to pinctrl-bindings.txt in this directory for details of the
|
|
common pinctrl bindings used by client devices, including the meaning of the
|
|
phrase "pin configuration node".
|
|
|
|
Each pin configuration node lists the pin(s) to which it applies, and one or
|
|
more of the mux functions to select on those pin(s), and pull-up/down
|
|
configuration. Each subnode only affects those parameters that are explicitly
|
|
listed. In other words, a subnode that lists only a mux function implies no
|
|
information about any pull configuration. Similarly, a subnode that lists only
|
|
a pull parameter implies no information about the mux function.
|
|
|
|
Required subnode-properties:
|
|
- wm,pins: An array of cells. Each cell contains the ID of a pin.
|
|
|
|
Optional subnode-properties:
|
|
- wm,function: Integer, containing the function to mux to the pin(s):
|
|
0: GPIO in
|
|
1: GPIO out
|
|
2: alternate
|
|
|
|
- wm,pull: Integer, representing the pull-down/up to apply to the pin(s):
|
|
0: none
|
|
1: down
|
|
2: up
|
|
|
|
Each of wm,function and wm,pull may contain either a single value which
|
|
will be applied to all pins in wm,pins, or one value for each entry in
|
|
wm,pins.
|
|
|
|
Example:
|
|
|
|
pinctrl: pinctrl {
|
|
compatible = "wm,wm8505-pinctrl";
|
|
reg = <0xD8110000 0x10000>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
};
|