Tom Rini | 53633a8 | 2024-02-29 12:33:36 -0500 | [diff] [blame] | 1 | Lantiq FALCON pinmux controller |
| 2 | |
| 3 | Required properties: |
| 4 | - compatible: "lantiq,pinctrl-falcon" |
| 5 | - reg: Should contain the physical address and length of the gpio/pinmux |
| 6 | register range |
| 7 | |
| 8 | Please refer to pinctrl-bindings.txt in this directory for details of the |
| 9 | common pinctrl bindings used by client devices, including the meaning of the |
| 10 | phrase "pin configuration node". |
| 11 | |
| 12 | Lantiq's pin configuration nodes act as a container for an arbitrary number of |
| 13 | subnodes. Each of these subnodes represents some desired configuration for a |
| 14 | pin, a group, or a list of pins or groups. This configuration can include the |
| 15 | mux function to select on those group(s), and two pin configuration parameters: |
| 16 | pull-up and open-drain |
| 17 | |
| 18 | The name of each subnode is not important as long as it is unique; all subnodes |
| 19 | should be enumerated and processed purely based on their content. |
| 20 | |
| 21 | Each subnode only affects those parameters that are explicitly listed. In |
| 22 | other words, a subnode that lists a mux function but no pin configuration |
| 23 | parameters implies no information about any pin configuration parameters. |
| 24 | Similarly, a pin subnode that describes a pullup parameter implies no |
| 25 | information about e.g. the mux function. |
| 26 | |
| 27 | We support 2 types of nodes. |
| 28 | |
| 29 | Definition of mux function groups: |
| 30 | |
| 31 | Required subnode-properties: |
| 32 | - lantiq,groups : An array of strings. Each string contains the name of a group. |
| 33 | Valid values for these names are listed below. |
| 34 | - lantiq,function: A string containing the name of the function to mux to the |
| 35 | group. Valid values for function names are listed below. |
| 36 | |
| 37 | Valid values for group and function names: |
| 38 | |
| 39 | mux groups: |
| 40 | por, ntr, ntr8k, hrst, mdio, bootled, asc0, spi, spi cs0, spi cs1, i2c, |
| 41 | jtag, slic, pcm, asc1 |
| 42 | |
| 43 | functions: |
| 44 | rst, ntr, mdio, led, asc, spi, i2c, jtag, slic, pcm |
| 45 | |
| 46 | |
| 47 | Definition of pin configurations: |
| 48 | |
| 49 | Required subnode-properties: |
| 50 | - lantiq,pins : An array of strings. Each string contains the name of a pin. |
| 51 | Valid values for these names are listed below. |
| 52 | |
| 53 | Optional subnode-properties: |
| 54 | - lantiq,pull: Integer, representing the pull-down/up to apply to the pin. |
| 55 | 0: none, 1: down |
| 56 | - lantiq,drive-current: Boolean, enables drive-current |
| 57 | - lantiq,slew-rate: Boolean, enables slew-rate |
| 58 | |
| 59 | Example: |
| 60 | pinmux0 { |
| 61 | compatible = "lantiq,pinctrl-falcon"; |
| 62 | pinctrl-names = "default"; |
| 63 | pinctrl-0 = <&state_default>; |
| 64 | |
| 65 | state_default: pinmux { |
| 66 | asc0 { |
| 67 | lantiq,groups = "asc0"; |
| 68 | lantiq,function = "asc"; |
| 69 | }; |
| 70 | ntr { |
| 71 | lantiq,groups = "ntr8k"; |
| 72 | lantiq,function = "ntr"; |
| 73 | }; |
| 74 | i2c { |
| 75 | lantiq,groups = "i2c"; |
| 76 | lantiq,function = "i2c"; |
| 77 | }; |
| 78 | hrst { |
| 79 | lantiq,groups = "hrst"; |
| 80 | lantiq,function = "rst"; |
| 81 | }; |
| 82 | }; |
| 83 | }; |