diff options
Diffstat (limited to 'Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt')
-rw-r--r-- | Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt | 41 |
1 files changed, 38 insertions, 3 deletions
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt index 5187f0dd8b28..2c81e45f1374 100644 --- a/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt +++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt | |||
@@ -14,10 +14,12 @@ Optional properties: | |||
14 | - pinctrl-single,function-off : function off mode for disabled state if | 14 | - pinctrl-single,function-off : function off mode for disabled state if |
15 | available and same for all registers; if not specified, disabling of | 15 | available and same for all registers; if not specified, disabling of |
16 | pin functions is ignored | 16 | pin functions is ignored |
17 | - pinctrl-single,bit-per-mux : boolean to indicate that one register controls | ||
18 | more than one pin | ||
17 | 19 | ||
18 | This driver assumes that there is only one register for each pin, | 20 | This driver assumes that there is only one register for each pin (unless the |
19 | and uses the common pinctrl bindings as specified in the pinctrl-bindings.txt | 21 | pinctrl-single,bit-per-mux is set), and uses the common pinctrl bindings as |
20 | document in this directory. | 22 | specified in the pinctrl-bindings.txt document in this directory. |
21 | 23 | ||
22 | The pin configuration nodes for pinctrl-single are specified as pinctrl | 24 | The pin configuration nodes for pinctrl-single are specified as pinctrl |
23 | register offset and value pairs using pinctrl-single,pins. Only the bits | 25 | register offset and value pairs using pinctrl-single,pins. Only the bits |
@@ -31,6 +33,15 @@ device pinctrl register, and 0x118 contains the desired value of the | |||
31 | pinctrl register. See the device example and static board pins example | 33 | pinctrl register. See the device example and static board pins example |
32 | below for more information. | 34 | below for more information. |
33 | 35 | ||
36 | In case when one register changes more than one pin's mux the | ||
37 | pinctrl-single,bits need to be used which takes three parameters: | ||
38 | |||
39 | pinctrl-single,bits = <0xdc 0x18, 0xff>; | ||
40 | |||
41 | Where 0xdc is the offset from the pinctrl register base address for the | ||
42 | device pinctrl register, 0x18 is the desired value, and 0xff is the sub mask to | ||
43 | be used when applying this change to the register. | ||
44 | |||
34 | Example: | 45 | Example: |
35 | 46 | ||
36 | /* SoC common file */ | 47 | /* SoC common file */ |
@@ -55,6 +66,15 @@ pmx_wkup: pinmux@4a31e040 { | |||
55 | pinctrl-single,function-mask = <0xffff>; | 66 | pinctrl-single,function-mask = <0xffff>; |
56 | }; | 67 | }; |
57 | 68 | ||
69 | control_devconf0: pinmux@48002274 { | ||
70 | compatible = "pinctrl-single"; | ||
71 | reg = <0x48002274 4>; /* Single register */ | ||
72 | #address-cells = <1>; | ||
73 | #size-cells = <0>; | ||
74 | pinctrl-single,bit-per-mux; | ||
75 | pinctrl-single,register-width = <32>; | ||
76 | pinctrl-single,function-mask = <0x5F>; | ||
77 | }; | ||
58 | 78 | ||
59 | /* board specific .dts file */ | 79 | /* board specific .dts file */ |
60 | 80 | ||
@@ -87,6 +107,21 @@ pmx_wkup: pinmux@4a31e040 { | |||
87 | }; | 107 | }; |
88 | }; | 108 | }; |
89 | 109 | ||
110 | &control_devconf0 { | ||
111 | mcbsp1_pins: pinmux_mcbsp1_pins { | ||
112 | pinctrl-single,bits = < | ||
113 | 0x00 0x18 0x18 /* FSR/CLKR signal from FSX/CLKX pin */ | ||
114 | >; | ||
115 | }; | ||
116 | |||
117 | mcbsp2_clks_pins: pinmux_mcbsp2_clks_pins { | ||
118 | pinctrl-single,bits = < | ||
119 | 0x00 0x40 0x40 /* McBSP2 CLKS from McBSP_CLKS pin */ | ||
120 | >; | ||
121 | }; | ||
122 | |||
123 | }; | ||
124 | |||
90 | &uart2 { | 125 | &uart2 { |
91 | pinctrl-names = "default"; | 126 | pinctrl-names = "default"; |
92 | pinctrl-0 = <&uart2_pins>; | 127 | pinctrl-0 = <&uart2_pins>; |