diff options
author | Soren Brinkmann <soren.brinkmann@xilinx.com> | 2015-01-09 10:43:47 -0500 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2015-01-11 16:34:07 -0500 |
commit | da085a86732e351503ca8264b146343faaf20660 (patch) | |
tree | 6d0d16659c5595b9ee3f910c7613caf48c630933 | |
parent | dd4d01f7bad886c22687224bc7070b87de8deb51 (diff) |
pinctrl: zynq: Document DT binding
Add documentation for the devicetree binding for the Zynq pincontroller.
Changes since v1:
- fix typo
- add USB related documentation
- remove 'pinctrl-' prefix for pinctrl sub-nodes
- update documentation to enforce strict separation of pinmux
and pinconf nodes
- update example accordingly
Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
Tested-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r-- | Documentation/devicetree/bindings/pinctrl/xlnx,zynq-pinctrl.txt | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/pinctrl/xlnx,zynq-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/xlnx,zynq-pinctrl.txt new file mode 100644 index 000000000000..b7b55a964f65 --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/xlnx,zynq-pinctrl.txt | |||
@@ -0,0 +1,104 @@ | |||
1 | Binding for Xilinx Zynq Pinctrl | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: "xlnx,zynq-pinctrl" | ||
5 | - syscon: phandle to SLCR | ||
6 | - reg: Offset and length of pinctrl space in SLCR | ||
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 | Zynq'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 pin(s)/group(s), and various pin configuration | ||
16 | parameters, such as pull-up, slew rate, etc. | ||
17 | |||
18 | Each configuration node can consist of multiple nodes describing the pinmux and | ||
19 | pinconf options. Those nodes can be pinmux nodes or pinconf nodes. | ||
20 | |||
21 | The name of each subnode is not important; all subnodes should be enumerated | ||
22 | and processed purely based on their content. | ||
23 | |||
24 | Required properties for pinmux nodes are: | ||
25 | - groups: A list of pinmux groups. | ||
26 | - function: The name of a pinmux function to activate for the specified set | ||
27 | of groups. | ||
28 | |||
29 | Required properties for configuration nodes: | ||
30 | One of: | ||
31 | - pins: a list of pin names | ||
32 | - groups: A list of pinmux groups. | ||
33 | |||
34 | The following generic properties as defined in pinctrl-bindings.txt are valid | ||
35 | to specify in a pinmux subnode: | ||
36 | groups, function | ||
37 | |||
38 | The following generic properties as defined in pinctrl-bindings.txt are valid | ||
39 | to specify in a pinconf subnode: | ||
40 | groups, pins, bias-disable, bias-high-impedance, bias-pull-up, slew-rate, | ||
41 | low-power-disable, low-power-enable | ||
42 | |||
43 | Valid arguments for 'slew-rate' are '0' and '1' to select between slow and fast | ||
44 | respectively. | ||
45 | |||
46 | Valid values for groups are: | ||
47 | ethernet0_0_grp, ethernet1_0_grp, mdio0_0_grp, mdio1_0_grp, | ||
48 | qspi0_0_grp, qspi1_0_grp, qspi_fbclk, qspi_cs1_grp, spi0_0_grp, | ||
49 | spi0_1_grp - spi0_2_grp, spi1_0_grp - spi1_3_grp, sdio0_0_grp - sdio0_2_grp, | ||
50 | sdio1_0_grp - sdio1_3_grp, sdio0_emio_wp, sdio0_emio_cd, sdio1_emio_wp, | ||
51 | sdio1_emio_cd, smc0_nor, smc0_nor_cs1_grp, smc0_nor_addr25_grp, smc0_nand, | ||
52 | can0_0_grp - can0_10_grp, can1_0_grp - can1_11_grp, uart0_0_grp - uart0_10_grp, | ||
53 | uart1_0_grp - uart1_11_grp, i2c0_0_grp - i2c0_10_grp, i2c1_0_grp - i2c1_10_grp, | ||
54 | ttc0_0_grp - ttc0_2_grp, ttc1_0_grp - ttc1_2_grp, swdt0_0_grp - swdt0_4_grp, | ||
55 | gpio0_0_grp - gpio0_53_grp, usb0_0_grp, usb1_0_grp | ||
56 | |||
57 | Valid values for pins are: | ||
58 | MIO0 - MIO53 | ||
59 | |||
60 | Valid values for function are: | ||
61 | ethernet0, ethernet1, mdio0, mdio1, qspi0, qspi1, qspi_fbclk, qspi_cs1, | ||
62 | spi0, spi1, sdio0, sdio0_pc, sdio0_cd, sdio0_wp, | ||
63 | sdio1, sdio1_pc, sdio1_cd, sdio1_wp, | ||
64 | smc0_nor, smc0_nor_cs1, smc0_nor_addr25, smc0_nand, can0, can1, uart0, uart1, | ||
65 | i2c0, i2c1, ttc0, ttc1, swdt0, gpio0, usb0, usb1 | ||
66 | |||
67 | The following driver-specific properties as defined here are valid to specify in | ||
68 | a pin configuration subnode: | ||
69 | - io-standard: Configure the pin to use the selected IO standard according to | ||
70 | this mapping: | ||
71 | 1: LVCMOS18 | ||
72 | 2: LVCMOS25 | ||
73 | 3: LVCMOS33 | ||
74 | 4: HSTL | ||
75 | |||
76 | Example: | ||
77 | pinctrl0: pinctrl@700 { | ||
78 | compatible = "xlnx,pinctrl-zynq"; | ||
79 | reg = <0x700 0x200>; | ||
80 | syscon = <&slcr>; | ||
81 | |||
82 | pinctrl_uart1_default: uart1-default { | ||
83 | mux { | ||
84 | groups = "uart1_10_grp"; | ||
85 | function = "uart1"; | ||
86 | }; | ||
87 | |||
88 | conf { | ||
89 | groups = "uart1_10_grp"; | ||
90 | slew-rate = <0>; | ||
91 | io-standard = <1>; | ||
92 | }; | ||
93 | |||
94 | conf-rx { | ||
95 | pins = "MIO49"; | ||
96 | bias-high-impedance; | ||
97 | }; | ||
98 | |||
99 | conf-tx { | ||
100 | pins = "MIO48"; | ||
101 | bias-disable; | ||
102 | }; | ||
103 | }; | ||
104 | }; | ||