18cc087a1SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 28cc087a1SEmmanuel Vadot%YAML 1.2 38cc087a1SEmmanuel Vadot--- 48cc087a1SEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/mediatek,mt7986-pinctrl.yaml# 58cc087a1SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 68cc087a1SEmmanuel Vadot 7fac71e4eSEmmanuel Vadottitle: MediaTek MT7986 Pin Controller 88cc087a1SEmmanuel Vadot 98cc087a1SEmmanuel Vadotmaintainers: 108cc087a1SEmmanuel Vadot - Sean Wang <sean.wang@kernel.org> 118cc087a1SEmmanuel Vadot 12fac71e4eSEmmanuel Vadotdescription: 138cc087a1SEmmanuel Vadot The MediaTek's MT7986 Pin controller is used to control SoC pins. 148cc087a1SEmmanuel Vadot 158cc087a1SEmmanuel Vadotproperties: 168cc087a1SEmmanuel Vadot compatible: 178cc087a1SEmmanuel Vadot enum: 188cc087a1SEmmanuel Vadot - mediatek,mt7986a-pinctrl 198cc087a1SEmmanuel Vadot - mediatek,mt7986b-pinctrl 208cc087a1SEmmanuel Vadot 218cc087a1SEmmanuel Vadot reg: 228cc087a1SEmmanuel Vadot minItems: 8 238cc087a1SEmmanuel Vadot maxItems: 8 248cc087a1SEmmanuel Vadot 258cc087a1SEmmanuel Vadot reg-names: 268cc087a1SEmmanuel Vadot items: 278cc087a1SEmmanuel Vadot - const: gpio 288cc087a1SEmmanuel Vadot - const: iocfg_rt 298cc087a1SEmmanuel Vadot - const: iocfg_rb 308cc087a1SEmmanuel Vadot - const: iocfg_lt 318cc087a1SEmmanuel Vadot - const: iocfg_lb 328cc087a1SEmmanuel Vadot - const: iocfg_tr 338cc087a1SEmmanuel Vadot - const: iocfg_tl 348cc087a1SEmmanuel Vadot - const: eint 358cc087a1SEmmanuel Vadot 368cc087a1SEmmanuel Vadot gpio-controller: true 378cc087a1SEmmanuel Vadot 388cc087a1SEmmanuel Vadot "#gpio-cells": 398cc087a1SEmmanuel Vadot const: 2 40fac71e4eSEmmanuel Vadot description: 41fac71e4eSEmmanuel Vadot Number of cells in GPIO specifier. Since the generic GPIO binding is used, 42fac71e4eSEmmanuel Vadot the amount of cells must be specified as 2. See the below mentioned gpio 43fac71e4eSEmmanuel Vadot binding representation for description of particular cells. 448cc087a1SEmmanuel Vadot 458cc087a1SEmmanuel Vadot gpio-ranges: 468cc087a1SEmmanuel Vadot minItems: 1 478cc087a1SEmmanuel Vadot maxItems: 5 48fac71e4eSEmmanuel Vadot description: 498cc087a1SEmmanuel Vadot GPIO valid number range. 508cc087a1SEmmanuel Vadot 518cc087a1SEmmanuel Vadot interrupt-controller: true 528cc087a1SEmmanuel Vadot 538cc087a1SEmmanuel Vadot interrupts: 548cc087a1SEmmanuel Vadot maxItems: 1 558cc087a1SEmmanuel Vadot 568cc087a1SEmmanuel Vadot "#interrupt-cells": 578cc087a1SEmmanuel Vadot const: 2 588cc087a1SEmmanuel Vadot 59e67e8565SEmmanuel VadotallOf: 60fac71e4eSEmmanuel Vadot - $ref: pinctrl.yaml# 61e67e8565SEmmanuel Vadot 628cc087a1SEmmanuel Vadotrequired: 638cc087a1SEmmanuel Vadot - compatible 648cc087a1SEmmanuel Vadot - reg 658cc087a1SEmmanuel Vadot - reg-names 668cc087a1SEmmanuel Vadot - gpio-controller 678cc087a1SEmmanuel Vadot - "#gpio-cells" 688cc087a1SEmmanuel Vadot 698cc087a1SEmmanuel VadotpatternProperties: 708cc087a1SEmmanuel Vadot '-pins$': 718cc087a1SEmmanuel Vadot type: object 728cc087a1SEmmanuel Vadot additionalProperties: false 738cc087a1SEmmanuel Vadot 748cc087a1SEmmanuel Vadot patternProperties: 75fac71e4eSEmmanuel Vadot '^.*mux.*$': 768cc087a1SEmmanuel Vadot type: object 778cc087a1SEmmanuel Vadot additionalProperties: false 788cc087a1SEmmanuel Vadot description: | 798cc087a1SEmmanuel Vadot pinmux configuration nodes. 808cc087a1SEmmanuel Vadot 818cc087a1SEmmanuel Vadot The following table shows the effective values of "group", "function" 828cc087a1SEmmanuel Vadot properties and chip pinout pins 838cc087a1SEmmanuel Vadot 848cc087a1SEmmanuel Vadot groups function pins (in pin#) 858cc087a1SEmmanuel Vadot --------------------------------------------------------------------- 868cc087a1SEmmanuel Vadot "watchdog" "watchdog" 0 878cc087a1SEmmanuel Vadot "wifi_led" "led" 1, 2 888cc087a1SEmmanuel Vadot "i2c" "i2c" 3, 4 898cc087a1SEmmanuel Vadot "uart1_0" "uart" 7, 8, 9, 10 908bab661aSEmmanuel Vadot "uart1_rx_tx" "uart" 42, 43 918bab661aSEmmanuel Vadot "uart1_cts_rts" "uart" 44, 45 928cc087a1SEmmanuel Vadot "pcie_clk" "pcie" 9 938cc087a1SEmmanuel Vadot "pcie_wake" "pcie" 10 948cc087a1SEmmanuel Vadot "spi1_0" "spi" 11, 12, 13, 14 958cc087a1SEmmanuel Vadot "pwm1_1" "pwm" 20, 968cc087a1SEmmanuel Vadot "pwm0" "pwm" 21, 978cc087a1SEmmanuel Vadot "pwm1_0" "pwm" 22, 988cc087a1SEmmanuel Vadot "snfi" "flash" 23, 24, 25, 26, 27, 28 998cc087a1SEmmanuel Vadot "spi1_2" "spi" 29, 30, 31, 32 100fac71e4eSEmmanuel Vadot "emmc_45" "emmc" 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 101fac71e4eSEmmanuel Vadot 32 102fac71e4eSEmmanuel Vadot 1038cc087a1SEmmanuel Vadot "spi1_1" "spi" 23, 24, 25, 26 1048bab661aSEmmanuel Vadot "uart1_2_rx_tx" "uart" 29, 30 1058bab661aSEmmanuel Vadot "uart1_2_cts_rts" "uart" 31, 32 1068cc087a1SEmmanuel Vadot "uart1_1" "uart" 23, 24, 25, 26 1078bab661aSEmmanuel Vadot "uart2_0_rx_tx" "uart" 29, 30 1088bab661aSEmmanuel Vadot "uart2_0_cts_rts" "uart" 31, 32 1098cc087a1SEmmanuel Vadot "spi0" "spi" 33, 34, 35, 36 1108cc087a1SEmmanuel Vadot "spi0_wp_hold" "spi" 37, 38 1118cc087a1SEmmanuel Vadot "uart1_3_rx_tx" "uart" 35, 36 1128cc087a1SEmmanuel Vadot "uart1_3_cts_rts" "uart" 37, 38 1138cc087a1SEmmanuel Vadot "uart2_1" "uart" 33, 34, 35, 36 1148cc087a1SEmmanuel Vadot "spi1_3" "spi" 33, 34, 35, 36 1158cc087a1SEmmanuel Vadot "uart0" "uart" 39, 40 1168cc087a1SEmmanuel Vadot "pcie_pereset" "pcie" 41 1178cc087a1SEmmanuel Vadot "uart1" "uart" 42, 43, 44, 45 1188cc087a1SEmmanuel Vadot "uart2" "uart" 46, 47, 48, 49 119fac71e4eSEmmanuel Vadot "emmc_51" "emmc" 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 120fac71e4eSEmmanuel Vadot 60, 61 121fac71e4eSEmmanuel Vadot 1228cc087a1SEmmanuel Vadot "pcm" "audio" 62, 63, 64, 65 1238cc087a1SEmmanuel Vadot "i2s" "audio" 62, 63, 64, 65 1248cc087a1SEmmanuel Vadot "switch_int" "eth" 66 1258cc087a1SEmmanuel Vadot "mdc_mdio" "eth" 67 1267ef62cebSEmmanuel Vadot "wf_2g" "wifi" 74, 75, 76, 77, 78, 79, 80, 81, 82, 83 1277ef62cebSEmmanuel Vadot "wf_5g" "wifi" 91, 92, 93, 94, 95, 96, 97, 98, 99, 100 1287ef62cebSEmmanuel Vadot "wf_dbdc" "wifi" 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 1297ef62cebSEmmanuel Vadot 84, 85 1308cc087a1SEmmanuel Vadot 131fac71e4eSEmmanuel Vadot $ref: /schemas/pinctrl/pinmux-node.yaml 1328cc087a1SEmmanuel Vadot properties: 1338cc087a1SEmmanuel Vadot function: 134fac71e4eSEmmanuel Vadot description: 1358cc087a1SEmmanuel Vadot A string containing the name of the function to mux to the group. 1368cc087a1SEmmanuel Vadot There is no "audio", "pcie" functions on mt7986b, you can only use 1378cc087a1SEmmanuel Vadot those functions on mt7986a. 1388cc087a1SEmmanuel Vadot enum: [audio, emmc, eth, i2c, led, flash, pcie, pwm, spi, uart, 1398cc087a1SEmmanuel Vadot watchdog, wifi] 1408cc087a1SEmmanuel Vadot groups: 141fac71e4eSEmmanuel Vadot description: 1428cc087a1SEmmanuel Vadot An array of strings. Each string contains the name of a group. 143fac71e4eSEmmanuel Vadot There is no "pcie_pereset", "uart1", "uart2" "emmc_51", "pcm", and 144fac71e4eSEmmanuel Vadot "i2s" groups on mt7986b, you can only use those groups on mt7986a. 1458cc087a1SEmmanuel Vadot required: 1468cc087a1SEmmanuel Vadot - function 1478cc087a1SEmmanuel Vadot - groups 1488cc087a1SEmmanuel Vadot 1498cc087a1SEmmanuel Vadot allOf: 1508cc087a1SEmmanuel Vadot - if: 1518cc087a1SEmmanuel Vadot properties: 1528cc087a1SEmmanuel Vadot function: 1538cc087a1SEmmanuel Vadot const: audio 1548cc087a1SEmmanuel Vadot then: 1558cc087a1SEmmanuel Vadot properties: 1568cc087a1SEmmanuel Vadot groups: 1578cc087a1SEmmanuel Vadot enum: [pcm, i2s] 1588cc087a1SEmmanuel Vadot - if: 1598cc087a1SEmmanuel Vadot properties: 1608cc087a1SEmmanuel Vadot function: 1618cc087a1SEmmanuel Vadot const: emmc 1628cc087a1SEmmanuel Vadot then: 1638cc087a1SEmmanuel Vadot properties: 1648cc087a1SEmmanuel Vadot groups: 1658bab661aSEmmanuel Vadot enum: [emmc_45, emmc_51] 1668cc087a1SEmmanuel Vadot - if: 1678cc087a1SEmmanuel Vadot properties: 1688cc087a1SEmmanuel Vadot function: 1698cc087a1SEmmanuel Vadot const: eth 1708cc087a1SEmmanuel Vadot then: 1718cc087a1SEmmanuel Vadot properties: 1728cc087a1SEmmanuel Vadot groups: 1738cc087a1SEmmanuel Vadot enum: [switch_int, mdc_mdio] 1748cc087a1SEmmanuel Vadot - if: 1758cc087a1SEmmanuel Vadot properties: 1768cc087a1SEmmanuel Vadot function: 1778cc087a1SEmmanuel Vadot const: i2c 1788cc087a1SEmmanuel Vadot then: 1798cc087a1SEmmanuel Vadot properties: 1808cc087a1SEmmanuel Vadot groups: 1818cc087a1SEmmanuel Vadot enum: [i2c] 1828cc087a1SEmmanuel Vadot - if: 1838cc087a1SEmmanuel Vadot properties: 1848cc087a1SEmmanuel Vadot function: 1858cc087a1SEmmanuel Vadot const: led 1868cc087a1SEmmanuel Vadot then: 1878cc087a1SEmmanuel Vadot properties: 1888cc087a1SEmmanuel Vadot groups: 1898cc087a1SEmmanuel Vadot enum: [wifi_led] 1908cc087a1SEmmanuel Vadot - if: 1918cc087a1SEmmanuel Vadot properties: 1928cc087a1SEmmanuel Vadot function: 1938cc087a1SEmmanuel Vadot const: flash 1948cc087a1SEmmanuel Vadot then: 1958cc087a1SEmmanuel Vadot properties: 1968cc087a1SEmmanuel Vadot groups: 1978cc087a1SEmmanuel Vadot enum: [snfi] 1988cc087a1SEmmanuel Vadot - if: 1998cc087a1SEmmanuel Vadot properties: 2008cc087a1SEmmanuel Vadot function: 2018cc087a1SEmmanuel Vadot const: pcie 2028cc087a1SEmmanuel Vadot then: 2038cc087a1SEmmanuel Vadot properties: 2048cc087a1SEmmanuel Vadot groups: 2058bab661aSEmmanuel Vadot items: 2068cc087a1SEmmanuel Vadot enum: [pcie_clk, pcie_wake, pcie_pereset] 2078bab661aSEmmanuel Vadot maxItems: 3 2088cc087a1SEmmanuel Vadot - if: 2098cc087a1SEmmanuel Vadot properties: 2108cc087a1SEmmanuel Vadot function: 2118cc087a1SEmmanuel Vadot const: pwm 2128cc087a1SEmmanuel Vadot then: 2138cc087a1SEmmanuel Vadot properties: 2148cc087a1SEmmanuel Vadot groups: 2158bab661aSEmmanuel Vadot items: 2168cc087a1SEmmanuel Vadot enum: [pwm0, pwm1_0, pwm1_1] 2178bab661aSEmmanuel Vadot maxItems: 2 2188cc087a1SEmmanuel Vadot - if: 2198cc087a1SEmmanuel Vadot properties: 2208cc087a1SEmmanuel Vadot function: 2218cc087a1SEmmanuel Vadot const: spi 2228cc087a1SEmmanuel Vadot then: 2238cc087a1SEmmanuel Vadot properties: 2248cc087a1SEmmanuel Vadot groups: 2258bab661aSEmmanuel Vadot items: 2268cc087a1SEmmanuel Vadot enum: [spi0, spi0_wp_hold, spi1_0, spi1_1, spi1_2, spi1_3] 2278bab661aSEmmanuel Vadot maxItems: 2 2288cc087a1SEmmanuel Vadot - if: 2298cc087a1SEmmanuel Vadot properties: 2308cc087a1SEmmanuel Vadot function: 2318cc087a1SEmmanuel Vadot const: uart 2328cc087a1SEmmanuel Vadot then: 2338cc087a1SEmmanuel Vadot properties: 2348cc087a1SEmmanuel Vadot groups: 2358bab661aSEmmanuel Vadot items: 2368bab661aSEmmanuel Vadot enum: [uart1_0, uart1_rx_tx, uart1_cts_rts, uart1_1, 2378bab661aSEmmanuel Vadot uart1_2_rx_tx, uart1_2_cts_rts, uart1_3_rx_tx, 2388bab661aSEmmanuel Vadot uart1_3_cts_rts, uart2_0_rx_tx, uart2_0_cts_rts, 2398bab661aSEmmanuel Vadot uart2_1, uart0, uart1, uart2] 2408bab661aSEmmanuel Vadot maxItems: 2 2418cc087a1SEmmanuel Vadot - if: 2428cc087a1SEmmanuel Vadot properties: 2438cc087a1SEmmanuel Vadot function: 2448cc087a1SEmmanuel Vadot const: watchdog 2458cc087a1SEmmanuel Vadot then: 2468cc087a1SEmmanuel Vadot properties: 2478cc087a1SEmmanuel Vadot groups: 2488cc087a1SEmmanuel Vadot enum: [watchdog] 2498cc087a1SEmmanuel Vadot - if: 2508cc087a1SEmmanuel Vadot properties: 2518cc087a1SEmmanuel Vadot function: 2528cc087a1SEmmanuel Vadot const: wifi 2538cc087a1SEmmanuel Vadot then: 2548cc087a1SEmmanuel Vadot properties: 2558cc087a1SEmmanuel Vadot groups: 2567ef62cebSEmmanuel Vadot items: 2578cc087a1SEmmanuel Vadot enum: [wf_2g, wf_5g, wf_dbdc] 2587ef62cebSEmmanuel Vadot maxItems: 3 259fac71e4eSEmmanuel Vadot '^.*conf.*$': 2608cc087a1SEmmanuel Vadot type: object 2618cc087a1SEmmanuel Vadot additionalProperties: false 262fac71e4eSEmmanuel Vadot description: 2638cc087a1SEmmanuel Vadot pinconf configuration nodes. 264fac71e4eSEmmanuel Vadot $ref: /schemas/pinctrl/pincfg-node.yaml 2658cc087a1SEmmanuel Vadot 2668cc087a1SEmmanuel Vadot properties: 2678cc087a1SEmmanuel Vadot pins: 268fac71e4eSEmmanuel Vadot description: 269fac71e4eSEmmanuel Vadot An array of strings. Each string contains the name of a pin. There 270fac71e4eSEmmanuel Vadot is no PIN 41 to PIN 65 above on mt7686b, you can only use those 271fac71e4eSEmmanuel Vadot pins on mt7986a. 2727ef62cebSEmmanuel Vadot items: 2738cc087a1SEmmanuel Vadot enum: [SYS_WATCHDOG, WF2G_LED, WF5G_LED, I2C_SCL, I2C_SDA, GPIO_0, 2748cc087a1SEmmanuel Vadot GPIO_1, GPIO_2, GPIO_3, GPIO_4, GPIO_5, GPIO_6, GPIO_7, 275fac71e4eSEmmanuel Vadot GPIO_8, GPIO_9, GPIO_10, GPIO_11, GPIO_12, GPIO_13, 276fac71e4eSEmmanuel Vadot GPIO_14, GPIO_15, PWM0, PWM1, SPI0_CLK, SPI0_MOSI, 277fac71e4eSEmmanuel Vadot SPI0_MISO, SPI0_CS, SPI0_HOLD, SPI0_WP, SPI1_CLK, 278fac71e4eSEmmanuel Vadot SPI1_MOSI, SPI1_MISO, SPI1_CS, SPI2_CLK, SPI2_MOSI, 279fac71e4eSEmmanuel Vadot SPI2_MISO, SPI2_CS, SPI2_HOLD, SPI2_WP, UART0_RXD, 280fac71e4eSEmmanuel Vadot UART0_TXD, PCIE_PERESET_N, UART1_RXD, UART1_TXD, UART1_CTS, 281fac71e4eSEmmanuel Vadot UART1_RTS, UART2_RXD, UART2_TXD, UART2_CTS, UART2_RTS, 282fac71e4eSEmmanuel Vadot EMMC_DATA_0, EMMC_DATA_1, EMMC_DATA_2, EMMC_DATA_3, 283fac71e4eSEmmanuel Vadot EMMC_DATA_4, EMMC_DATA_5, EMMC_DATA_6, EMMC_DATA_7, 284fac71e4eSEmmanuel Vadot EMMC_CMD, EMMC_CK, EMMC_DSL, EMMC_RSTB, PCM_DTX, PCM_DRX, 285fac71e4eSEmmanuel Vadot PCM_CLK, PCM_FS, MT7531_INT, SMI_MDC, SMI_MDIO, 2868cc087a1SEmmanuel Vadot WF0_DIG_RESETB, WF0_CBA_RESETB, WF0_XO_REQ, WF0_TOP_CLK, 2878cc087a1SEmmanuel Vadot WF0_TOP_DATA, WF0_HB1, WF0_HB2, WF0_HB3, WF0_HB4, WF0_HB0, 2888cc087a1SEmmanuel Vadot WF0_HB0_B, WF0_HB5, WF0_HB6, WF0_HB7, WF0_HB8, WF0_HB9, 2898cc087a1SEmmanuel Vadot WF0_HB10, WF1_DIG_RESETB, WF1_CBA_RESETB, WF1_XO_REQ, 2908cc087a1SEmmanuel Vadot WF1_TOP_CLK, WF1_TOP_DATA, WF1_HB1, WF1_HB2, WF1_HB3, 2918cc087a1SEmmanuel Vadot WF1_HB4, WF1_HB0, WF1_HB0_B, WF1_HB5, WF1_HB6, WF1_HB7, 2928cc087a1SEmmanuel Vadot WF1_HB8] 2937ef62cebSEmmanuel Vadot maxItems: 101 2948cc087a1SEmmanuel Vadot 2958cc087a1SEmmanuel Vadot bias-disable: true 2968cc087a1SEmmanuel Vadot 2978bab661aSEmmanuel Vadot bias-pull-up: 2988bab661aSEmmanuel Vadot oneOf: 2998bab661aSEmmanuel Vadot - type: boolean 3008bab661aSEmmanuel Vadot description: normal pull up. 3018bab661aSEmmanuel Vadot - enum: [100, 101, 102, 103] 302fac71e4eSEmmanuel Vadot description: 3038bab661aSEmmanuel Vadot PUPD/R1/R0 pull down type. See MTK_PUPD_SET_R1R0 defines in 3048bab661aSEmmanuel Vadot dt-bindings/pinctrl/mt65xx.h. 3058cc087a1SEmmanuel Vadot 3068bab661aSEmmanuel Vadot bias-pull-down: 3078bab661aSEmmanuel Vadot oneOf: 3088bab661aSEmmanuel Vadot - type: boolean 3098bab661aSEmmanuel Vadot description: normal pull down. 3108bab661aSEmmanuel Vadot - enum: [100, 101, 102, 103] 311fac71e4eSEmmanuel Vadot description: 3128bab661aSEmmanuel Vadot PUPD/R1/R0 pull down type. See MTK_PUPD_SET_R1R0 defines in 3138bab661aSEmmanuel Vadot dt-bindings/pinctrl/mt65xx.h. 3148cc087a1SEmmanuel Vadot 3158cc087a1SEmmanuel Vadot input-enable: true 3168cc087a1SEmmanuel Vadot 3178cc087a1SEmmanuel Vadot input-disable: true 3188cc087a1SEmmanuel Vadot 3198cc087a1SEmmanuel Vadot output-enable: true 3208cc087a1SEmmanuel Vadot 3218cc087a1SEmmanuel Vadot output-low: true 3228cc087a1SEmmanuel Vadot 3238cc087a1SEmmanuel Vadot output-high: true 3248cc087a1SEmmanuel Vadot 3258cc087a1SEmmanuel Vadot input-schmitt-enable: true 3268cc087a1SEmmanuel Vadot 3278cc087a1SEmmanuel Vadot input-schmitt-disable: true 3288cc087a1SEmmanuel Vadot 3298cc087a1SEmmanuel Vadot drive-strength: 3308cc087a1SEmmanuel Vadot enum: [2, 4, 6, 8, 10, 12, 14, 16] 3318cc087a1SEmmanuel Vadot 3328cc087a1SEmmanuel Vadot mediatek,pull-up-adv: 3338cc087a1SEmmanuel Vadot description: | 3348cc087a1SEmmanuel Vadot Valid arguments for 'mediatek,pull-up-adv' are '0', '1', '2', '3' 335*aa1a8ff2SEmmanuel Vadot Pull up settings for 2 pull resistors, R0 and R1. Valid arguments 3368cc087a1SEmmanuel Vadot are described as below: 3378cc087a1SEmmanuel Vadot 0: (R1, R0) = (0, 0) which means R1 disabled and R0 disabled. 3388cc087a1SEmmanuel Vadot 1: (R1, R0) = (0, 1) which means R1 disabled and R0 enabled. 3398cc087a1SEmmanuel Vadot 2: (R1, R0) = (1, 0) which means R1 enabled and R0 disabled. 3408cc087a1SEmmanuel Vadot 3: (R1, R0) = (1, 1) which means R1 enabled and R0 enabled. 3418cc087a1SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 3428cc087a1SEmmanuel Vadot enum: [0, 1, 2, 3] 3438cc087a1SEmmanuel Vadot 3448cc087a1SEmmanuel Vadot mediatek,pull-down-adv: 3458cc087a1SEmmanuel Vadot description: | 3468cc087a1SEmmanuel Vadot Valid arguments for 'mediatek,pull-up-adv' are '0', '1', '2', '3' 347*aa1a8ff2SEmmanuel Vadot Pull down settings for 2 pull resistors, R0 and R1. Valid arguments 3488cc087a1SEmmanuel Vadot are described as below: 3498cc087a1SEmmanuel Vadot 0: (R1, R0) = (0, 0) which means R1 disabled and R0 disabled. 3508cc087a1SEmmanuel Vadot 1: (R1, R0) = (0, 1) which means R1 disabled and R0 enabled. 3518cc087a1SEmmanuel Vadot 2: (R1, R0) = (1, 0) which means R1 enabled and R0 disabled. 3528cc087a1SEmmanuel Vadot 3: (R1, R0) = (1, 1) which means R1 enabled and R0 enabled. 3538cc087a1SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 3548cc087a1SEmmanuel Vadot enum: [0, 1, 2, 3] 3558cc087a1SEmmanuel Vadot 3568cc087a1SEmmanuel Vadot required: 3578cc087a1SEmmanuel Vadot - pins 3588cc087a1SEmmanuel Vadot 3598cc087a1SEmmanuel VadotadditionalProperties: false 3608cc087a1SEmmanuel Vadot 3618cc087a1SEmmanuel Vadotexamples: 3628cc087a1SEmmanuel Vadot - | 3638cc087a1SEmmanuel Vadot #include <dt-bindings/interrupt-controller/irq.h> 3648cc087a1SEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 3658bab661aSEmmanuel Vadot #include <dt-bindings/pinctrl/mt65xx.h> 3668cc087a1SEmmanuel Vadot 3678cc087a1SEmmanuel Vadot soc { 3688cc087a1SEmmanuel Vadot #address-cells = <2>; 3698cc087a1SEmmanuel Vadot #size-cells = <2>; 3708cc087a1SEmmanuel Vadot pio: pinctrl@1001f000 { 3718cc087a1SEmmanuel Vadot compatible = "mediatek,mt7986a-pinctrl"; 3728cc087a1SEmmanuel Vadot reg = <0 0x1001f000 0 0x1000>, 3738cc087a1SEmmanuel Vadot <0 0x11c30000 0 0x1000>, 3748cc087a1SEmmanuel Vadot <0 0x11c40000 0 0x1000>, 3758cc087a1SEmmanuel Vadot <0 0x11e20000 0 0x1000>, 3768cc087a1SEmmanuel Vadot <0 0x11e30000 0 0x1000>, 3778cc087a1SEmmanuel Vadot <0 0x11f00000 0 0x1000>, 3788cc087a1SEmmanuel Vadot <0 0x11f10000 0 0x1000>, 3798cc087a1SEmmanuel Vadot <0 0x1000b000 0 0x1000>; 3808cc087a1SEmmanuel Vadot reg-names = "gpio", "iocfg_rt", "iocfg_rb", "iocfg_lt", 3818cc087a1SEmmanuel Vadot "iocfg_lb", "iocfg_tr", "iocfg_tl", "eint"; 3828cc087a1SEmmanuel Vadot gpio-controller; 3838cc087a1SEmmanuel Vadot #gpio-cells = <2>; 3848cc087a1SEmmanuel Vadot gpio-ranges = <&pio 0 0 100>; 3858cc087a1SEmmanuel Vadot interrupt-controller; 3868cc087a1SEmmanuel Vadot interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>; 3878cc087a1SEmmanuel Vadot interrupt-parent = <&gic>; 3888cc087a1SEmmanuel Vadot #interrupt-cells = <2>; 3898cc087a1SEmmanuel Vadot 3908bab661aSEmmanuel Vadot pcie_pins: pcie-pins { 3918bab661aSEmmanuel Vadot mux { 3928bab661aSEmmanuel Vadot function = "pcie"; 3938bab661aSEmmanuel Vadot groups = "pcie_clk", "pcie_wake", "pcie_pereset"; 3948bab661aSEmmanuel Vadot }; 3958bab661aSEmmanuel Vadot }; 3968bab661aSEmmanuel Vadot 3978bab661aSEmmanuel Vadot pwm_pins: pwm-pins { 3988bab661aSEmmanuel Vadot mux { 3998bab661aSEmmanuel Vadot function = "pwm"; 4008bab661aSEmmanuel Vadot groups = "pwm0", "pwm1_0"; 4018bab661aSEmmanuel Vadot }; 4028bab661aSEmmanuel Vadot }; 4038bab661aSEmmanuel Vadot 4048bab661aSEmmanuel Vadot spi0_pins: spi0-pins { 4058bab661aSEmmanuel Vadot mux { 4068bab661aSEmmanuel Vadot function = "spi"; 4078bab661aSEmmanuel Vadot groups = "spi0", "spi0_wp_hold"; 4088bab661aSEmmanuel Vadot }; 4098bab661aSEmmanuel Vadot }; 4108bab661aSEmmanuel Vadot 4118cc087a1SEmmanuel Vadot uart1_pins: uart1-pins { 4128cc087a1SEmmanuel Vadot mux { 4138cc087a1SEmmanuel Vadot function = "uart"; 4148cc087a1SEmmanuel Vadot groups = "uart1"; 4158cc087a1SEmmanuel Vadot }; 4168cc087a1SEmmanuel Vadot }; 4178cc087a1SEmmanuel Vadot 4188bab661aSEmmanuel Vadot uart1_3_pins: uart1-3-pins { 4198bab661aSEmmanuel Vadot mux { 4208bab661aSEmmanuel Vadot function = "uart"; 4218bab661aSEmmanuel Vadot groups = "uart1_3_rx_tx", "uart1_3_cts_rts"; 4228bab661aSEmmanuel Vadot }; 4238bab661aSEmmanuel Vadot }; 4248bab661aSEmmanuel Vadot 4258cc087a1SEmmanuel Vadot uart2_pins: uart2-pins { 4268cc087a1SEmmanuel Vadot mux { 4278cc087a1SEmmanuel Vadot function = "uart"; 4288cc087a1SEmmanuel Vadot groups = "uart2"; 4298cc087a1SEmmanuel Vadot }; 4308cc087a1SEmmanuel Vadot }; 4318cc087a1SEmmanuel Vadot 4328bab661aSEmmanuel Vadot mmc0_pins_default: mmc0-pins { 4338bab661aSEmmanuel Vadot mux { 4348bab661aSEmmanuel Vadot function = "emmc"; 4358bab661aSEmmanuel Vadot groups = "emmc_51"; 4368bab661aSEmmanuel Vadot }; 4378bab661aSEmmanuel Vadot conf-cmd-dat { 4388bab661aSEmmanuel Vadot pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2", 4398bab661aSEmmanuel Vadot "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5", 4408bab661aSEmmanuel Vadot "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD"; 4418bab661aSEmmanuel Vadot input-enable; 4428bab661aSEmmanuel Vadot drive-strength = <4>; 4438bab661aSEmmanuel Vadot bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */ 4448bab661aSEmmanuel Vadot }; 4458bab661aSEmmanuel Vadot conf-clk { 4468bab661aSEmmanuel Vadot pins = "EMMC_CK"; 4478bab661aSEmmanuel Vadot drive-strength = <6>; 4488bab661aSEmmanuel Vadot bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */ 4498bab661aSEmmanuel Vadot }; 4508bab661aSEmmanuel Vadot conf-ds { 4518bab661aSEmmanuel Vadot pins = "EMMC_DSL"; 4528bab661aSEmmanuel Vadot bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */ 4538bab661aSEmmanuel Vadot }; 4548bab661aSEmmanuel Vadot conf-rst { 4558bab661aSEmmanuel Vadot pins = "EMMC_RSTB"; 4568bab661aSEmmanuel Vadot drive-strength = <4>; 4578bab661aSEmmanuel Vadot bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */ 4588bab661aSEmmanuel Vadot }; 4598bab661aSEmmanuel Vadot }; 4608bab661aSEmmanuel Vadot 4618cc087a1SEmmanuel Vadot }; 4628cc087a1SEmmanuel Vadot }; 463