~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/pinctrl/mediatek,mt7622-pinctrl.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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,mt7622-pinctrl.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: MediaTek MT7622 Pin Controller
  8 
  9 maintainers:
 10   - Sean Wang <sean.wang@kernel.org>
 11 
 12 description:
 13   The MediaTek's MT7622 Pin controller is used to control SoC pins.
 14 
 15 properties:
 16   compatible:
 17     enum:
 18       - mediatek,mt7622-pinctrl
 19       - mediatek,mt7629-pinctrl
 20 
 21   reg:
 22     maxItems: 1
 23 
 24   reg-names:
 25     items:
 26       - const: eint
 27 
 28   gpio-controller: true
 29 
 30   "#gpio-cells":
 31     const: 2
 32     description:
 33       Number of cells in GPIO specifier. Since the generic GPIO binding is used,
 34       the amount of cells must be specified as 2. See the below mentioned gpio
 35       binding representation for description of particular cells.
 36 
 37   gpio-ranges:
 38     maxItems: 1
 39 
 40   interrupt-controller: true
 41 
 42   interrupts:
 43     maxItems: 1
 44 
 45   "#interrupt-cells":
 46     const: 2
 47 
 48 allOf:
 49   - $ref: pinctrl.yaml#
 50 
 51 required:
 52   - compatible
 53   - reg
 54   - gpio-controller
 55   - "#gpio-cells"
 56 
 57 if:
 58   required:
 59     - interrupt-controller
 60 then:
 61   required:
 62     - reg-names
 63     - interrupts
 64     - "#interrupt-cells"
 65 
 66 patternProperties:
 67   '-pins(-[a-z]+)?$':
 68     type: object
 69     additionalProperties: false
 70     patternProperties:
 71       '^mux(-|$)':
 72         type: object
 73         additionalProperties: false
 74         description:
 75           pinmux configuration nodes.
 76         $ref: /schemas/pinctrl/pinmux-node.yaml
 77         properties:
 78           function:
 79             description:
 80               A string containing the name of the function to mux to the group.
 81             enum: [antsel, emmc, eth, i2c, i2s, ir, led, flash, pcie, pmic, pwm,
 82                    sd, spi, tdm, uart, watchdog, wifi]
 83 
 84           groups:
 85             description:
 86               An array of strings. Each string contains the name of a group.
 87 
 88           drive-strength:
 89             enum: [4, 8, 12, 16]
 90 
 91         required:
 92           - groups
 93           - function
 94 
 95         allOf:
 96           - if:
 97               properties:
 98                 function:
 99                   const: antsel
100             then:
101               properties:
102                 groups:
103                   items:
104                     enum: [antsel0, antsel1, antsel2, antsel3, antsel4, antsel5,
105                            antsel6, antsel7, antsel8, antsel9, antsel10,
106                            antsel11, antsel12, antsel13, antsel14, antsel15,
107                            antsel16, antsel17, antsel18, antsel19, antsel20,
108                            antsel21, antsel22, antsel23, antsel24, antsel25,
109                            antsel26, antsel27, antsel28, antsel29]
110           - if:
111               properties:
112                 function:
113                   const: emmc
114             then:
115               properties:
116                 groups:
117                   items:
118                     enum: [emmc, emmc_rst]
119           - if:
120               properties:
121                 function:
122                   const: eth
123             then:
124               properties:
125                 groups:
126                   items:
127                     enum: [esw, esw_p0_p1, esw_p2_p3_p4, rgmii_via_esw,
128                            rgmii_via_gmac1, rgmii_via_gmac2, mdc_mdio]
129           - if:
130               properties:
131                 function:
132                   const: i2c
133             then:
134               properties:
135                 groups:
136                   enum: [i2c0, i2c_0, i2c_1, i2c1_0, i2c1_1, i2c1_2, i2c2_0,
137                          i2c2_1, i2c2_2]
138           - if:
139               properties:
140                 function:
141                   const: i2s
142             then:
143               properties:
144                 groups:
145                   items:
146                     enum: [i2s_in_mclk_bclk_ws, i2s1_in_data, i2s2_in_data,
147                            i2s3_in_data, i2s4_in_data, i2s_out_mclk_bclk_ws,
148                            i2s1_out_data, i2s2_out_data, i2s3_out_data,
149                            i2s4_out_data]
150           - if:
151               properties:
152                 function:
153                   const: ir
154             then:
155               properties:
156                 groups:
157                   enum: [ir_0_tx, ir_1_tx, ir_2_tx, ir_0_rx, ir_1_rx, ir_2_rx]
158           - if:
159               properties:
160                 function:
161                   const: led
162             then:
163               properties:
164                 groups:
165                   enum: [ephy_leds, ephy0_led, ephy1_led, ephy2_led, ephy3_led,
166                          ephy4_led, wled, wf2g_led, wf5g_led]
167           - if:
168               properties:
169                 function:
170                   const: flash
171             then:
172               properties:
173                 groups:
174                   enum: [par_nand, snfi, spi_nor]
175           - if:
176               properties:
177                 function:
178                   const: pcie
179             then:
180               properties:
181                 groups:
182                   items:
183                     enum: [pcie0_0_waken, pcie0_1_waken, pcie1_0_waken,
184                            pcie0_0_clkreq, pcie0_1_clkreq, pcie1_0_clkreq,
185                            pcie0_pad_perst, pcie1_pad_perst, pcie_pereset,
186                            pcie_wake, pcie_clkreq]
187           - if:
188               properties:
189                 function:
190                   const: pmic
191             then:
192               properties:
193                 groups:
194                   enum: [pmic_bus]
195           - if:
196               properties:
197                 function:
198                   const: pwm
199             then:
200               properties:
201                 groups:
202                   items:
203                     enum: [pwm_ch1_0, pwm_ch1_1, pwm_ch1_2, pwm_ch2_0, pwm_ch2_1,
204                            pwm_ch2_2, pwm_ch3_0, pwm_ch3_1, pwm_ch3_2, pwm_ch4_0,
205                            pwm_ch4_1, pwm_ch4_2, pwm_ch4_3, pwm_ch5_0, pwm_ch5_1,
206                            pwm_ch5_2, pwm_ch6_0, pwm_ch6_1, pwm_ch6_2, pwm_ch6_3,
207                            pwm_ch7_0, pwm_0, pwm_1]
208           - if:
209               properties:
210                 function:
211                   const: sd
212             then:
213               properties:
214                 groups:
215                   enum: [sd_0, sd_1]
216           - if:
217               properties:
218                 function:
219                   const: spi
220             then:
221               properties:
222                 groups:
223                   enum: [spic0_0, spic0_1, spic1_0, spic1_1, spic2_0_wp_hold,
224                          spic2_0, spi_0, spi_1, spi_wp, spi_hold]
225           - if:
226               properties:
227                 function:
228                   const: tdm
229             then:
230               properties:
231                 groups:
232                   enum: [tdm_0_out_mclk_bclk_ws, tdm_0_in_mclk_bclk_ws,
233                          tdm_0_out_data, tdm_0_in_data, tdm_1_out_mclk_bclk_ws,
234                          tdm_1_in_mclk_bclk_ws, tdm_1_out_data, tdm_1_in_data]
235           - if:
236               properties:
237                 function:
238                   const: uart
239             then:
240               properties:
241                 groups:
242                   enum: [uart0_0_tx_rx, uart1_0_tx_rx, uart1_0_rts_cts,
243                          uart1_1_tx_rx, uart1_1_rts_cts, uart2_0_tx_rx,
244                          uart2_0_rts_cts, uart2_1_tx_rx, uart2_1_rts_cts,
245                          uart2_2_tx_rx, uart2_2_rts_cts, uart2_3_tx_rx,
246                          uart3_0_tx_rx, uart3_1_tx_rx, uart3_1_rts_cts,
247                          uart4_0_tx_rx, uart4_1_tx_rx, uart4_1_rts_cts,
248                          uart4_2_tx_rx, uart4_2_rts_cts, uart0_txd_rxd,
249                          uart1_0_txd_rxd, uart1_0_cts_rts, uart1_1_txd_rxd,
250                          uart1_1_cts_rts, uart2_0_txd_rxd, uart2_0_cts_rts,
251                          uart2_1_txd_rxd, uart2_1_cts_rts]
252           - if:
253               properties:
254                 function:
255                   const: watchdog
256             then:
257               properties:
258                 groups:
259                   enum: [watchdog]
260           - if:
261               properties:
262                 function:
263                   const: wifi
264             then:
265               properties:
266                 groups:
267                   enum: [wf0_2g, wf0_5g]
268 
269       '^conf(-|$)':
270         type: object
271         additionalProperties: false
272         description:
273           pinconf configuration nodes.
274         $ref: /schemas/pinctrl/pincfg-node.yaml
275 
276         properties:
277           groups:
278             description:
279               An array of strings. Each string contains the name of a group.
280               Valid values are the same as the pinmux node.
281 
282           pins:
283             description:
284               An array of strings. Each string contains the name of a pin.
285             items:
286               enum: [GPIO_A, I2S1_IN, I2S1_OUT, I2S_BCLK, I2S_WS, I2S_MCLK, TXD0,
287                      RXD0, SPI_WP, SPI_HOLD, SPI_CLK, SPI_MOSI, SPI_MISO, SPI_CS,
288                      I2C_SDA, I2C_SCL, I2S2_IN, I2S3_IN, I2S4_IN, I2S2_OUT,
289                      I2S3_OUT, I2S4_OUT, GPIO_B, MDC, MDIO, G2_TXD0, G2_TXD1,
290                      G2_TXD2, G2_TXD3, G2_TXEN, G2_TXC, G2_RXD0, G2_RXD1, G2_RXD2,
291                      G2_RXD3, G2_RXDV, G2_RXC, NCEB, NWEB, NREB, NDL4, NDL5, NDL6,
292                      NDL7, NRB, NCLE, NALE, NDL0, NDL1, NDL2, NDL3, MDI_TP_P0,
293                      MDI_TN_P0, MDI_RP_P0, MDI_RN_P0, MDI_TP_P1, MDI_TN_P1,
294                      MDI_RP_P1, MDI_RN_P1, MDI_RP_P2, MDI_RN_P2, MDI_TP_P2,
295                      MDI_TN_P2, MDI_TP_P3, MDI_TN_P3, MDI_RP_P3, MDI_RN_P3,
296                      MDI_RP_P4, MDI_RN_P4, MDI_TP_P4, MDI_TN_P4, PMIC_SCL,
297                      PMIC_SDA, SPIC1_CLK, SPIC1_MOSI, SPIC1_MISO, SPIC1_CS,
298                      GPIO_D, WATCHDOG, RTS3_N, CTS3_N, TXD3, RXD3, PERST0_N,
299                      PERST1_N, WLED_N, EPHY_LED0_N, AUXIN0, AUXIN1, AUXIN2,
300                      AUXIN3, TXD4, RXD4, RTS4_N, CST4_N, PWM1, PWM2, PWM3, PWM4,
301                      PWM5, PWM6, PWM7, GPIO_E, TOP_5G_CLK, TOP_5G_DATA,
302                      WF0_5G_HB0, WF0_5G_HB1, WF0_5G_HB2, WF0_5G_HB3, WF0_5G_HB4,
303                      WF0_5G_HB5, WF0_5G_HB6, XO_REQ, TOP_RST_N, SYS_WATCHDOG,
304                      EPHY_LED0_N_JTDO, EPHY_LED1_N_JTDI, EPHY_LED2_N_JTMS,
305                      EPHY_LED3_N_JTCLK, EPHY_LED4_N_JTRST_N, WF2G_LED_N,
306                      WF5G_LED_N, GPIO_9, GPIO_10, GPIO_11, GPIO_12, UART1_TXD,
307                      UART1_RXD, UART1_CTS, UART1_RTS, UART2_TXD, UART2_RXD,
308                      UART2_CTS, UART2_RTS, SMI_MDC, SMI_MDIO, PCIE_PERESET_N,
309                      PWM_0, GPIO_0, GPIO_1, GPIO_2, GPIO_3, GPIO_4, GPIO_5,
310                      GPIO_6, GPIO_7, GPIO_8, UART0_TXD, UART0_RXD, TOP_2G_CLK,
311                      TOP_2G_DATA, WF0_2G_HB0, WF0_2G_HB1, WF0_2G_HB2, WF0_2G_HB3,
312                      WF0_2G_HB4, WF0_2G_HB5, WF0_2G_HB6]
313 
314           bias-disable: true
315 
316           bias-pull-up: true
317 
318           bias-pull-down: true
319 
320           input-enable: true
321 
322           input-disable: true
323 
324           output-enable: true
325 
326           output-low: true
327 
328           output-high: true
329 
330           input-schmitt-enable: true
331 
332           input-schmitt-disable: true
333 
334           drive-strength:
335             enum: [4, 8, 12, 16]
336 
337           slew-rate:
338             enum: [0, 1]
339 
340           mediatek,tdsel:
341             description:
342               An integer describing the steps for output level shifter duty
343               cycle when asserted (high pulse width adjustment). Valid arguments
344               are from 0 to 15.
345             $ref: /schemas/types.yaml#/definitions/uint32
346 
347           mediatek,rdsel:
348             description:
349               An integer describing the steps for input level shifter duty cycle
350               when asserted (high pulse width adjustment). Valid arguments are
351               from 0 to 63.
352             $ref: /schemas/types.yaml#/definitions/uint32
353 
354         required:
355           - pins
356 
357 additionalProperties: false
358 
359 examples:
360   - |
361     #include <dt-bindings/interrupt-controller/irq.h>
362     #include <dt-bindings/interrupt-controller/arm-gic.h>
363 
364     soc {
365         #address-cells = <2>;
366         #size-cells = <2>;
367 
368         pio: pinctrl@10211000 {
369           compatible = "mediatek,mt7622-pinctrl";
370           reg = <0 0x10211000 0 0x1000>;
371           gpio-controller;
372           #gpio-cells = <2>;
373 
374           pinctrl_eth_default: eth-pins {
375             mux-mdio {
376               groups = "mdc_mdio";
377               function = "eth";
378               drive-strength = <12>;
379             };
380 
381             mux-gmac2 {
382               groups = "rgmii_via_gmac2";
383               function = "eth";
384               drive-strength = <12>;
385             };
386 
387             mux-esw {
388               groups = "esw";
389               function = "eth";
390               drive-strength = <8>;
391             };
392 
393             conf-mdio {
394               pins = "MDC";
395               bias-pull-up;
396             };
397           };
398         };
399     };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php