Tom Rini | 53633a8 | 2024-02-29 12:33:36 -0500 | [diff] [blame^] | 1 | VIA VT8500 and Wondermedia WM8xxx-series pinmux/gpio controller |
| 2 | |
| 3 | These SoCs contain a combined Pinmux/GPIO module. Each pin may operate as |
| 4 | either a GPIO in, GPIO out or as an alternate function (I2C, SPI etc). |
| 5 | |
| 6 | Required properties: |
| 7 | - compatible: "via,vt8500-pinctrl", "wm,wm8505-pinctrl", "wm,wm8650-pinctrl", |
| 8 | "wm8750-pinctrl" or "wm,wm8850-pinctrl" |
| 9 | - reg: Should contain the physical address of the module's registers. |
| 10 | - interrupt-controller: Marks the device node as an interrupt controller. |
| 11 | - #interrupt-cells: Should be two. |
| 12 | - gpio-controller: Marks the device node as a GPIO controller. |
| 13 | - #gpio-cells : Should be two. The first cell is the pin number and the |
| 14 | second cell is used to specify optional parameters. |
| 15 | bit 0 - active low |
| 16 | |
| 17 | Please refer to ../gpio/gpio.txt for a general description of GPIO bindings. |
| 18 | |
| 19 | Please refer to pinctrl-bindings.txt in this directory for details of the |
| 20 | common pinctrl bindings used by client devices, including the meaning of the |
| 21 | phrase "pin configuration node". |
| 22 | |
| 23 | Each pin configuration node lists the pin(s) to which it applies, and one or |
| 24 | more of the mux functions to select on those pin(s), and pull-up/down |
| 25 | configuration. Each subnode only affects those parameters that are explicitly |
| 26 | listed. In other words, a subnode that lists only a mux function implies no |
| 27 | information about any pull configuration. Similarly, a subnode that lists only |
| 28 | a pull parameter implies no information about the mux function. |
| 29 | |
| 30 | Required subnode-properties: |
| 31 | - wm,pins: An array of cells. Each cell contains the ID of a pin. |
| 32 | |
| 33 | Optional subnode-properties: |
| 34 | - wm,function: Integer, containing the function to mux to the pin(s): |
| 35 | 0: GPIO in |
| 36 | 1: GPIO out |
| 37 | 2: alternate |
| 38 | |
| 39 | - wm,pull: Integer, representing the pull-down/up to apply to the pin(s): |
| 40 | 0: none |
| 41 | 1: down |
| 42 | 2: up |
| 43 | |
| 44 | Each of wm,function and wm,pull may contain either a single value which |
| 45 | will be applied to all pins in wm,pins, or one value for each entry in |
| 46 | wm,pins. |
| 47 | |
| 48 | Example: |
| 49 | |
| 50 | pinctrl: pinctrl { |
| 51 | compatible = "wm,wm8505-pinctrl"; |
| 52 | reg = <0xD8110000 0x10000>; |
| 53 | interrupt-controller; |
| 54 | #interrupt-cells = <2>; |
| 55 | gpio-controller; |
| 56 | #gpio-cells = <2>; |
| 57 | }; |