Tom Rini | 53633a8 | 2024-02-29 12:33:36 -0500 | [diff] [blame] | 1 | CSR SiRFprimaII pinmux controller |
| 2 | |
| 3 | Required properties: |
| 4 | - compatible : "sirf,prima2-pinctrl" |
| 5 | - reg : Address range of the pinctrl registers |
| 6 | - interrupts : Interrupts used by every GPIO group |
| 7 | - gpio-controller : Indicates this device is a GPIO controller |
| 8 | - interrupt-controller : Marks the device node as an interrupt controller |
| 9 | Optional properties: |
| 10 | - sirf,pullups : if n-th bit of m-th bank is set, set a pullup on GPIO-n of bank m |
| 11 | - sirf,pulldowns : if n-th bit of m-th bank is set, set a pulldown on GPIO-n of bank m |
| 12 | |
| 13 | Please refer to pinctrl-bindings.txt in this directory for details of the common |
| 14 | pinctrl bindings used by client devices. |
| 15 | |
| 16 | SiRFprimaII's pinmux nodes act as a container for an arbitrary number of subnodes. |
| 17 | Each of these subnodes represents some desired configuration for a group of pins. |
| 18 | |
| 19 | Required subnode-properties: |
| 20 | - sirf,pins : An array of strings. Each string contains the name of a group. |
| 21 | - sirf,function: A string containing the name of the function to mux to the |
| 22 | group. |
| 23 | |
| 24 | Valid values for group and function names can be found from looking at the |
| 25 | group and function arrays in driver files: |
| 26 | drivers/pinctrl/pinctrl-sirf.c |
| 27 | |
| 28 | For example, pinctrl might have subnodes like the following: |
| 29 | uart2_pins_a: uart2@0 { |
| 30 | uart { |
| 31 | sirf,pins = "uart2grp"; |
| 32 | sirf,function = "uart2"; |
| 33 | }; |
| 34 | }; |
| 35 | uart2_noflow_pins_a: uart2@1 { |
| 36 | uart { |
| 37 | sirf,pins = "uart2_nostreamctrlgrp"; |
| 38 | sirf,function = "uart2_nostreamctrl"; |
| 39 | }; |
| 40 | }; |
| 41 | |
| 42 | For a specific board, if it wants to use uart2 without hardware flow control, |
| 43 | it can add the following to its board-specific .dts file. |
| 44 | uart2: uart@b0070000 { |
| 45 | pinctrl-names = "default"; |
| 46 | pinctrl-0 = <&uart2_noflow_pins_a>; |
| 47 | } |