Commit | Line | Data |
---|---|---|
8e004b47 JC |
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 | ||
a0e27f51 | 12 | Lantiq's pin configuration nodes act as a container for an arbitrary number of |
8e004b47 JC |
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 | }; |