smb: client: Fix minor whitespace errors and warnings
[linux-modified.git] / Documentation / devicetree / bindings / pinctrl / mediatek,mt8195-pinctrl.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/pinctrl/mediatek,mt8195-pinctrl.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: MediaTek MT8195 Pin Controller
8
9 maintainers:
10   - Sean Wang <sean.wang@mediatek.com>
11
12 description:
13   The MediaTek's MT8195 Pin controller is used to control SoC pins.
14
15 properties:
16   compatible:
17     const: mediatek,mt8195-pinctrl
18
19   gpio-controller: true
20
21   '#gpio-cells':
22     description:
23       Number of cells in GPIO specifier. Since the generic GPIO binding is used,
24       the amount of cells must be specified as 2. See the below mentioned gpio
25       binding representation for description of particular cells.
26     const: 2
27
28   gpio-ranges:
29     description: GPIO valid number range.
30     maxItems: 1
31
32   gpio-line-names: true
33
34   reg:
35     description:
36       Physical address base for GPIO base registers. There are 8 GPIO physical
37       address base in mt8195.
38     maxItems: 8
39
40   reg-names:
41     description:
42       GPIO base register names.
43     maxItems: 8
44
45   interrupt-controller: true
46
47   '#interrupt-cells':
48     const: 2
49
50   interrupts:
51     description: The interrupt outputs to sysirq.
52     maxItems: 1
53
54   mediatek,rsel-resistance-in-si-unit:
55     type: boolean
56     description:
57       Identifying i2c pins pull up/down type which is RSEL. It can support RSEL
58       define or si unit value(ohm) to set different resistance.
59
60 # PIN CONFIGURATION NODES
61 patternProperties:
62   '-pins$':
63     type: object
64     additionalProperties: false
65     patternProperties:
66       '^pins':
67         type: object
68         additionalProperties: false
69         description: |
70           A pinctrl node should contain at least one subnodes representing the
71           pinctrl groups available on the machine. Each subnode will list the
72           pins it needs, and how they should be configured, with regard to muxer
73           configuration, pullups, drive strength, input enable/disable and input
74           schmitt.
75           An example of using macro:
76           pincontroller {
77             /* GPIO0 set as multifunction GPIO0 */
78             gpio-pins {
79               pins {
80                 pinmux = <PINMUX_GPIO0__FUNC_GPIO0>;
81               }
82             };
83             /* GPIO8 set as multifunction SDA0 */
84             i2c0-pins {
85               pins {
86                 pinmux = <PINMUX_GPIO8__FUNC_SDA0>;
87               }
88             };
89           };
90         $ref: pinmux-node.yaml
91
92         properties:
93           pinmux:
94             description:
95               Integer array, represents gpio pin number and mux setting.
96               Supported pin number and mux varies for different SoCs, and are
97               defined as macros in dt-bindings/pinctrl/<soc>-pinfunc.h directly.
98
99           drive-strength:
100             enum: [2, 4, 6, 8, 10, 12, 14, 16]
101
102           drive-strength-microamp:
103             enum: [125, 250, 500, 1000]
104
105           bias-pull-down:
106             oneOf:
107               - type: boolean
108               - enum: [100, 101, 102, 103]
109                 description: mt8195 pull down PUPD/R0/R1 type define value.
110               - enum: [200, 201, 202, 203, 204, 205, 206, 207]
111                 description: mt8195 pull down RSEL type define value.
112               - enum: [75000, 5000]
113                 description: mt8195 pull down RSEL type si unit value(ohm).
114             description: |
115               For pull down type is normal, it don't need add RSEL & R1R0 define
116               and resistance value.
117               For pull down type is PUPD/R0/R1 type, it can add R1R0 define to
118               set different resistance. It can support "MTK_PUPD_SET_R1R0_00" &
119               "MTK_PUPD_SET_R1R0_01" & "MTK_PUPD_SET_R1R0_10" &
120               "MTK_PUPD_SET_R1R0_11" define in mt8195.
121               For pull down type is RSEL, it can add RSEL define & resistance
122               value(ohm) to set different resistance by identifying property
123               "mediatek,rsel-resistance-in-si-unit".
124               It can support "MTK_PULL_SET_RSEL_000" & "MTK_PULL_SET_RSEL_001"
125               & "MTK_PULL_SET_RSEL_010" & "MTK_PULL_SET_RSEL_011"
126               & "MTK_PULL_SET_RSEL_100" & "MTK_PULL_SET_RSEL_101"
127               & "MTK_PULL_SET_RSEL_110" & "MTK_PULL_SET_RSEL_111"
128               define in mt8195. It can also support resistance value(ohm)
129               "75000" & "5000" in mt8195.
130
131               An example of using RSEL define:
132               pincontroller {
133                 i2c0_pin {
134                   pins {
135                     pinmux = <PINMUX_GPIO8__FUNC_SDA0>;
136                     bias-pull-down = <MTK_PULL_SET_RSEL_001>;
137                   }
138                 };
139               };
140               An example of using si unit resistance value(ohm):
141               &pio {
142                 mediatek,rsel-resistance-in-si-unit;
143               }
144               pincontroller {
145                 i2c0_pin {
146                   pins {
147                     pinmux = <PINMUX_GPIO8__FUNC_SDA0>;
148                     bias-pull-down = <75000>;
149                   }
150                 };
151               };
152
153           bias-pull-up:
154             oneOf:
155               - type: boolean
156               - enum: [100, 101, 102, 103]
157                 description: mt8195 pull up PUPD/R0/R1 type define value.
158               - enum: [200, 201, 202, 203, 204, 205, 206, 207]
159                 description: mt8195 pull up RSEL type define value.
160               - enum: [1000, 1500, 2000, 3000, 4000, 5000, 10000, 75000]
161                 description: mt8195 pull up RSEL type si unit value(ohm).
162             description: |
163               For pull up type is normal, it don't need add RSEL & R1R0 define
164               and resistance value.
165               For pull up type is PUPD/R0/R1 type, it can add R1R0 define to
166               set different resistance. It can support "MTK_PUPD_SET_R1R0_00" &
167               "MTK_PUPD_SET_R1R0_01" & "MTK_PUPD_SET_R1R0_10" &
168               "MTK_PUPD_SET_R1R0_11" define in mt8195.
169               For pull up type is RSEL, it can add RSEL define & resistance
170               value(ohm) to set different resistance by identifying property
171               "mediatek,rsel-resistance-in-si-unit".
172               It can support "MTK_PULL_SET_RSEL_000" & "MTK_PULL_SET_RSEL_001"
173               & "MTK_PULL_SET_RSEL_010" & "MTK_PULL_SET_RSEL_011"
174               & "MTK_PULL_SET_RSEL_100" & "MTK_PULL_SET_RSEL_101"
175               & "MTK_PULL_SET_RSEL_110" & "MTK_PULL_SET_RSEL_111"
176               define in mt8195. It can also support resistance value(ohm) "1000"
177               & "1500" & "2000" & "3000" & "4000" & "5000" & "10000" & "75000"
178               in mt8195.
179               An example of using RSEL define:
180               pincontroller {
181                 i2c0-pins {
182                   pins {
183                     pinmux = <PINMUX_GPIO8__FUNC_SDA0>;
184                     bias-pull-up = <MTK_PULL_SET_RSEL_001>;
185                   }
186                 };
187               };
188               An example of using si unit resistance value(ohm):
189               &pio {
190                 mediatek,rsel-resistance-in-si-unit;
191               }
192               pincontroller {
193                 i2c0-pins {
194                   pins {
195                     pinmux = <PINMUX_GPIO8__FUNC_SDA0>;
196                     bias-pull-up = <1000>;
197                   }
198                 };
199               };
200
201           bias-disable: true
202
203           output-high: true
204
205           output-low: true
206
207           input-enable: true
208
209           input-disable: true
210
211           input-schmitt-enable: true
212
213           input-schmitt-disable: true
214
215         required:
216           - pinmux
217
218 allOf:
219   - $ref: pinctrl.yaml#
220
221 required:
222   - compatible
223   - reg
224   - interrupts
225   - interrupt-controller
226   - '#interrupt-cells'
227   - gpio-controller
228   - '#gpio-cells'
229   - gpio-ranges
230
231 additionalProperties: false
232
233 examples:
234   - |
235     #include <dt-bindings/pinctrl/mt8195-pinfunc.h>
236     #include <dt-bindings/interrupt-controller/arm-gic.h>
237     #
238     pio: pinctrl@10005000 {
239       compatible = "mediatek,mt8195-pinctrl";
240       reg = <0x10005000 0x1000>,
241             <0x11d10000 0x1000>,
242             <0x11d30000 0x1000>,
243             <0x11d40000 0x1000>,
244             <0x11e20000 0x1000>,
245             <0x11eb0000 0x1000>,
246             <0x11f40000 0x1000>,
247             <0x1000b000 0x1000>;
248       reg-names = "iocfg0", "iocfg_bm", "iocfg_bl",
249                   "iocfg_br", "iocfg_lm", "iocfg_rb",
250                   "iocfg_tl", "eint";
251       gpio-controller;
252       #gpio-cells = <2>;
253       gpio-ranges = <&pio 0 0 144>;
254       interrupt-controller;
255       interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH 0>;
256       #interrupt-cells = <2>;
257
258       pio-pins {
259         pins {
260           pinmux = <PINMUX_GPIO0__FUNC_GPIO0>;
261           output-low;
262         };
263       };
264
265       spi0-pins {
266         pins-spi {
267           pinmux = <PINMUX_GPIO132__FUNC_SPIM0_CSB>,
268                    <PINMUX_GPIO134__FUNC_SPIM0_MO>,
269                    <PINMUX_GPIO133__FUNC_SPIM0_CLK>;
270           bias-disable;
271         };
272         pins-spi-mi {
273           pinmux = <PINMUX_GPIO135__FUNC_SPIM0_MI>;
274           bias-pull-down;
275         };
276       };
277
278       i2c0-pins {
279         pins {
280           pinmux = <PINMUX_GPIO8__FUNC_SDA0>,
281                    <PINMUX_GPIO9__FUNC_SCL0>;
282           bias-disable;
283           drive-strength-microamp = <1000>;
284         };
285       };
286     };