162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/pinctrl/mediatek,mt7986-pinctrl.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: MediaTek MT7986 Pin Controller 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Sean Wang <sean.wang@kernel.org> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cidescription: 1362306a36Sopenharmony_ci The MediaTek's MT7986 Pin controller is used to control SoC pins. 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciproperties: 1662306a36Sopenharmony_ci compatible: 1762306a36Sopenharmony_ci enum: 1862306a36Sopenharmony_ci - mediatek,mt7986a-pinctrl 1962306a36Sopenharmony_ci - mediatek,mt7986b-pinctrl 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci reg: 2262306a36Sopenharmony_ci minItems: 8 2362306a36Sopenharmony_ci maxItems: 8 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci reg-names: 2662306a36Sopenharmony_ci items: 2762306a36Sopenharmony_ci - const: gpio 2862306a36Sopenharmony_ci - const: iocfg_rt 2962306a36Sopenharmony_ci - const: iocfg_rb 3062306a36Sopenharmony_ci - const: iocfg_lt 3162306a36Sopenharmony_ci - const: iocfg_lb 3262306a36Sopenharmony_ci - const: iocfg_tr 3362306a36Sopenharmony_ci - const: iocfg_tl 3462306a36Sopenharmony_ci - const: eint 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci gpio-controller: true 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci "#gpio-cells": 3962306a36Sopenharmony_ci const: 2 4062306a36Sopenharmony_ci description: 4162306a36Sopenharmony_ci Number of cells in GPIO specifier. Since the generic GPIO binding is used, 4262306a36Sopenharmony_ci the amount of cells must be specified as 2. See the below mentioned gpio 4362306a36Sopenharmony_ci binding representation for description of particular cells. 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci gpio-ranges: 4662306a36Sopenharmony_ci minItems: 1 4762306a36Sopenharmony_ci maxItems: 5 4862306a36Sopenharmony_ci description: 4962306a36Sopenharmony_ci GPIO valid number range. 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci interrupt-controller: true 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci interrupts: 5462306a36Sopenharmony_ci maxItems: 1 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci "#interrupt-cells": 5762306a36Sopenharmony_ci const: 2 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_ciallOf: 6062306a36Sopenharmony_ci - $ref: pinctrl.yaml# 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_cirequired: 6362306a36Sopenharmony_ci - compatible 6462306a36Sopenharmony_ci - reg 6562306a36Sopenharmony_ci - reg-names 6662306a36Sopenharmony_ci - gpio-controller 6762306a36Sopenharmony_ci - "#gpio-cells" 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_cipatternProperties: 7062306a36Sopenharmony_ci '-pins$': 7162306a36Sopenharmony_ci type: object 7262306a36Sopenharmony_ci additionalProperties: false 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ci patternProperties: 7562306a36Sopenharmony_ci '^.*mux.*$': 7662306a36Sopenharmony_ci type: object 7762306a36Sopenharmony_ci additionalProperties: false 7862306a36Sopenharmony_ci description: | 7962306a36Sopenharmony_ci pinmux configuration nodes. 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci The following table shows the effective values of "group", "function" 8262306a36Sopenharmony_ci properties and chip pinout pins 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ci groups function pins (in pin#) 8562306a36Sopenharmony_ci --------------------------------------------------------------------- 8662306a36Sopenharmony_ci "watchdog" "watchdog" 0 8762306a36Sopenharmony_ci "wifi_led" "led" 1, 2 8862306a36Sopenharmony_ci "i2c" "i2c" 3, 4 8962306a36Sopenharmony_ci "uart1_0" "uart" 7, 8, 9, 10 9062306a36Sopenharmony_ci "uart1_rx_tx" "uart" 42, 43 9162306a36Sopenharmony_ci "uart1_cts_rts" "uart" 44, 45 9262306a36Sopenharmony_ci "pcie_clk" "pcie" 9 9362306a36Sopenharmony_ci "pcie_wake" "pcie" 10 9462306a36Sopenharmony_ci "spi1_0" "spi" 11, 12, 13, 14 9562306a36Sopenharmony_ci "pwm1_1" "pwm" 20, 9662306a36Sopenharmony_ci "pwm0" "pwm" 21, 9762306a36Sopenharmony_ci "pwm1_0" "pwm" 22, 9862306a36Sopenharmony_ci "snfi" "flash" 23, 24, 25, 26, 27, 28 9962306a36Sopenharmony_ci "spi1_2" "spi" 29, 30, 31, 32 10062306a36Sopenharmony_ci "emmc_45" "emmc" 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 10162306a36Sopenharmony_ci 32 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ci "spi1_1" "spi" 23, 24, 25, 26 10462306a36Sopenharmony_ci "uart1_2_rx_tx" "uart" 29, 30 10562306a36Sopenharmony_ci "uart1_2_cts_rts" "uart" 31, 32 10662306a36Sopenharmony_ci "uart1_1" "uart" 23, 24, 25, 26 10762306a36Sopenharmony_ci "uart2_0_rx_tx" "uart" 29, 30 10862306a36Sopenharmony_ci "uart2_0_cts_rts" "uart" 31, 32 10962306a36Sopenharmony_ci "spi0" "spi" 33, 34, 35, 36 11062306a36Sopenharmony_ci "spi0_wp_hold" "spi" 37, 38 11162306a36Sopenharmony_ci "uart1_3_rx_tx" "uart" 35, 36 11262306a36Sopenharmony_ci "uart1_3_cts_rts" "uart" 37, 38 11362306a36Sopenharmony_ci "uart2_1" "uart" 33, 34, 35, 36 11462306a36Sopenharmony_ci "spi1_3" "spi" 33, 34, 35, 36 11562306a36Sopenharmony_ci "uart0" "uart" 39, 40 11662306a36Sopenharmony_ci "pcie_pereset" "pcie" 41 11762306a36Sopenharmony_ci "uart1" "uart" 42, 43, 44, 45 11862306a36Sopenharmony_ci "uart2" "uart" 46, 47, 48, 49 11962306a36Sopenharmony_ci "emmc_51" "emmc" 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 12062306a36Sopenharmony_ci 60, 61 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ci "pcm" "audio" 62, 63, 64, 65 12362306a36Sopenharmony_ci "i2s" "audio" 62, 63, 64, 65 12462306a36Sopenharmony_ci "switch_int" "eth" 66 12562306a36Sopenharmony_ci "mdc_mdio" "eth" 67 12662306a36Sopenharmony_ci "wf_2g" "wifi" 74, 75, 76, 77, 78, 79, 80, 81, 82, 83 12762306a36Sopenharmony_ci "wf_5g" "wifi" 91, 92, 93, 94, 95, 96, 97, 98, 99, 100 12862306a36Sopenharmony_ci "wf_dbdc" "wifi" 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 12962306a36Sopenharmony_ci 84, 85 13062306a36Sopenharmony_ci 13162306a36Sopenharmony_ci $ref: /schemas/pinctrl/pinmux-node.yaml 13262306a36Sopenharmony_ci properties: 13362306a36Sopenharmony_ci function: 13462306a36Sopenharmony_ci description: 13562306a36Sopenharmony_ci A string containing the name of the function to mux to the group. 13662306a36Sopenharmony_ci There is no "audio", "pcie" functions on mt7986b, you can only use 13762306a36Sopenharmony_ci those functions on mt7986a. 13862306a36Sopenharmony_ci enum: [audio, emmc, eth, i2c, led, flash, pcie, pwm, spi, uart, 13962306a36Sopenharmony_ci watchdog, wifi] 14062306a36Sopenharmony_ci groups: 14162306a36Sopenharmony_ci description: 14262306a36Sopenharmony_ci An array of strings. Each string contains the name of a group. 14362306a36Sopenharmony_ci There is no "pcie_pereset", "uart1", "uart2" "emmc_51", "pcm", and 14462306a36Sopenharmony_ci "i2s" groups on mt7986b, you can only use those groups on mt7986a. 14562306a36Sopenharmony_ci required: 14662306a36Sopenharmony_ci - function 14762306a36Sopenharmony_ci - groups 14862306a36Sopenharmony_ci 14962306a36Sopenharmony_ci allOf: 15062306a36Sopenharmony_ci - if: 15162306a36Sopenharmony_ci properties: 15262306a36Sopenharmony_ci function: 15362306a36Sopenharmony_ci const: audio 15462306a36Sopenharmony_ci then: 15562306a36Sopenharmony_ci properties: 15662306a36Sopenharmony_ci groups: 15762306a36Sopenharmony_ci enum: [pcm, i2s] 15862306a36Sopenharmony_ci - if: 15962306a36Sopenharmony_ci properties: 16062306a36Sopenharmony_ci function: 16162306a36Sopenharmony_ci const: emmc 16262306a36Sopenharmony_ci then: 16362306a36Sopenharmony_ci properties: 16462306a36Sopenharmony_ci groups: 16562306a36Sopenharmony_ci enum: [emmc_45, emmc_51] 16662306a36Sopenharmony_ci - if: 16762306a36Sopenharmony_ci properties: 16862306a36Sopenharmony_ci function: 16962306a36Sopenharmony_ci const: eth 17062306a36Sopenharmony_ci then: 17162306a36Sopenharmony_ci properties: 17262306a36Sopenharmony_ci groups: 17362306a36Sopenharmony_ci enum: [switch_int, mdc_mdio] 17462306a36Sopenharmony_ci - if: 17562306a36Sopenharmony_ci properties: 17662306a36Sopenharmony_ci function: 17762306a36Sopenharmony_ci const: i2c 17862306a36Sopenharmony_ci then: 17962306a36Sopenharmony_ci properties: 18062306a36Sopenharmony_ci groups: 18162306a36Sopenharmony_ci enum: [i2c] 18262306a36Sopenharmony_ci - if: 18362306a36Sopenharmony_ci properties: 18462306a36Sopenharmony_ci function: 18562306a36Sopenharmony_ci const: led 18662306a36Sopenharmony_ci then: 18762306a36Sopenharmony_ci properties: 18862306a36Sopenharmony_ci groups: 18962306a36Sopenharmony_ci enum: [wifi_led] 19062306a36Sopenharmony_ci - if: 19162306a36Sopenharmony_ci properties: 19262306a36Sopenharmony_ci function: 19362306a36Sopenharmony_ci const: flash 19462306a36Sopenharmony_ci then: 19562306a36Sopenharmony_ci properties: 19662306a36Sopenharmony_ci groups: 19762306a36Sopenharmony_ci enum: [snfi] 19862306a36Sopenharmony_ci - if: 19962306a36Sopenharmony_ci properties: 20062306a36Sopenharmony_ci function: 20162306a36Sopenharmony_ci const: pcie 20262306a36Sopenharmony_ci then: 20362306a36Sopenharmony_ci properties: 20462306a36Sopenharmony_ci groups: 20562306a36Sopenharmony_ci items: 20662306a36Sopenharmony_ci enum: [pcie_clk, pcie_wake, pcie_pereset] 20762306a36Sopenharmony_ci maxItems: 3 20862306a36Sopenharmony_ci - if: 20962306a36Sopenharmony_ci properties: 21062306a36Sopenharmony_ci function: 21162306a36Sopenharmony_ci const: pwm 21262306a36Sopenharmony_ci then: 21362306a36Sopenharmony_ci properties: 21462306a36Sopenharmony_ci groups: 21562306a36Sopenharmony_ci items: 21662306a36Sopenharmony_ci enum: [pwm0, pwm1_0, pwm1_1] 21762306a36Sopenharmony_ci maxItems: 2 21862306a36Sopenharmony_ci - if: 21962306a36Sopenharmony_ci properties: 22062306a36Sopenharmony_ci function: 22162306a36Sopenharmony_ci const: spi 22262306a36Sopenharmony_ci then: 22362306a36Sopenharmony_ci properties: 22462306a36Sopenharmony_ci groups: 22562306a36Sopenharmony_ci items: 22662306a36Sopenharmony_ci enum: [spi0, spi0_wp_hold, spi1_0, spi1_1, spi1_2, spi1_3] 22762306a36Sopenharmony_ci maxItems: 2 22862306a36Sopenharmony_ci - if: 22962306a36Sopenharmony_ci properties: 23062306a36Sopenharmony_ci function: 23162306a36Sopenharmony_ci const: uart 23262306a36Sopenharmony_ci then: 23362306a36Sopenharmony_ci properties: 23462306a36Sopenharmony_ci groups: 23562306a36Sopenharmony_ci items: 23662306a36Sopenharmony_ci enum: [uart1_0, uart1_rx_tx, uart1_cts_rts, uart1_1, 23762306a36Sopenharmony_ci uart1_2_rx_tx, uart1_2_cts_rts, uart1_3_rx_tx, 23862306a36Sopenharmony_ci uart1_3_cts_rts, uart2_0_rx_tx, uart2_0_cts_rts, 23962306a36Sopenharmony_ci uart2_1, uart0, uart1, uart2] 24062306a36Sopenharmony_ci maxItems: 2 24162306a36Sopenharmony_ci - if: 24262306a36Sopenharmony_ci properties: 24362306a36Sopenharmony_ci function: 24462306a36Sopenharmony_ci const: watchdog 24562306a36Sopenharmony_ci then: 24662306a36Sopenharmony_ci properties: 24762306a36Sopenharmony_ci groups: 24862306a36Sopenharmony_ci enum: [watchdog] 24962306a36Sopenharmony_ci - if: 25062306a36Sopenharmony_ci properties: 25162306a36Sopenharmony_ci function: 25262306a36Sopenharmony_ci const: wifi 25362306a36Sopenharmony_ci then: 25462306a36Sopenharmony_ci properties: 25562306a36Sopenharmony_ci groups: 25662306a36Sopenharmony_ci items: 25762306a36Sopenharmony_ci enum: [wf_2g, wf_5g, wf_dbdc] 25862306a36Sopenharmony_ci maxItems: 3 25962306a36Sopenharmony_ci '^.*conf.*$': 26062306a36Sopenharmony_ci type: object 26162306a36Sopenharmony_ci additionalProperties: false 26262306a36Sopenharmony_ci description: 26362306a36Sopenharmony_ci pinconf configuration nodes. 26462306a36Sopenharmony_ci $ref: /schemas/pinctrl/pincfg-node.yaml 26562306a36Sopenharmony_ci 26662306a36Sopenharmony_ci properties: 26762306a36Sopenharmony_ci pins: 26862306a36Sopenharmony_ci description: 26962306a36Sopenharmony_ci An array of strings. Each string contains the name of a pin. There 27062306a36Sopenharmony_ci is no PIN 41 to PIN 65 above on mt7686b, you can only use those 27162306a36Sopenharmony_ci pins on mt7986a. 27262306a36Sopenharmony_ci items: 27362306a36Sopenharmony_ci enum: [SYS_WATCHDOG, WF2G_LED, WF5G_LED, I2C_SCL, I2C_SDA, GPIO_0, 27462306a36Sopenharmony_ci GPIO_1, GPIO_2, GPIO_3, GPIO_4, GPIO_5, GPIO_6, GPIO_7, 27562306a36Sopenharmony_ci GPIO_8, GPIO_9, GPIO_10, GPIO_11, GPIO_12, GPIO_13, 27662306a36Sopenharmony_ci GPIO_14, GPIO_15, PWM0, PWM1, SPI0_CLK, SPI0_MOSI, 27762306a36Sopenharmony_ci SPI0_MISO, SPI0_CS, SPI0_HOLD, SPI0_WP, SPI1_CLK, 27862306a36Sopenharmony_ci SPI1_MOSI, SPI1_MISO, SPI1_CS, SPI2_CLK, SPI2_MOSI, 27962306a36Sopenharmony_ci SPI2_MISO, SPI2_CS, SPI2_HOLD, SPI2_WP, UART0_RXD, 28062306a36Sopenharmony_ci UART0_TXD, PCIE_PERESET_N, UART1_RXD, UART1_TXD, UART1_CTS, 28162306a36Sopenharmony_ci UART1_RTS, UART2_RXD, UART2_TXD, UART2_CTS, UART2_RTS, 28262306a36Sopenharmony_ci EMMC_DATA_0, EMMC_DATA_1, EMMC_DATA_2, EMMC_DATA_3, 28362306a36Sopenharmony_ci EMMC_DATA_4, EMMC_DATA_5, EMMC_DATA_6, EMMC_DATA_7, 28462306a36Sopenharmony_ci EMMC_CMD, EMMC_CK, EMMC_DSL, EMMC_RSTB, PCM_DTX, PCM_DRX, 28562306a36Sopenharmony_ci PCM_CLK, PCM_FS, MT7531_INT, SMI_MDC, SMI_MDIO, 28662306a36Sopenharmony_ci WF0_DIG_RESETB, WF0_CBA_RESETB, WF0_XO_REQ, WF0_TOP_CLK, 28762306a36Sopenharmony_ci WF0_TOP_DATA, WF0_HB1, WF0_HB2, WF0_HB3, WF0_HB4, WF0_HB0, 28862306a36Sopenharmony_ci WF0_HB0_B, WF0_HB5, WF0_HB6, WF0_HB7, WF0_HB8, WF0_HB9, 28962306a36Sopenharmony_ci WF0_HB10, WF1_DIG_RESETB, WF1_CBA_RESETB, WF1_XO_REQ, 29062306a36Sopenharmony_ci WF1_TOP_CLK, WF1_TOP_DATA, WF1_HB1, WF1_HB2, WF1_HB3, 29162306a36Sopenharmony_ci WF1_HB4, WF1_HB0, WF1_HB0_B, WF1_HB5, WF1_HB6, WF1_HB7, 29262306a36Sopenharmony_ci WF1_HB8] 29362306a36Sopenharmony_ci maxItems: 101 29462306a36Sopenharmony_ci 29562306a36Sopenharmony_ci bias-disable: true 29662306a36Sopenharmony_ci 29762306a36Sopenharmony_ci bias-pull-up: 29862306a36Sopenharmony_ci oneOf: 29962306a36Sopenharmony_ci - type: boolean 30062306a36Sopenharmony_ci description: normal pull up. 30162306a36Sopenharmony_ci - enum: [100, 101, 102, 103] 30262306a36Sopenharmony_ci description: 30362306a36Sopenharmony_ci PUPD/R1/R0 pull down type. See MTK_PUPD_SET_R1R0 defines in 30462306a36Sopenharmony_ci dt-bindings/pinctrl/mt65xx.h. 30562306a36Sopenharmony_ci 30662306a36Sopenharmony_ci bias-pull-down: 30762306a36Sopenharmony_ci oneOf: 30862306a36Sopenharmony_ci - type: boolean 30962306a36Sopenharmony_ci description: normal pull down. 31062306a36Sopenharmony_ci - enum: [100, 101, 102, 103] 31162306a36Sopenharmony_ci description: 31262306a36Sopenharmony_ci PUPD/R1/R0 pull down type. See MTK_PUPD_SET_R1R0 defines in 31362306a36Sopenharmony_ci dt-bindings/pinctrl/mt65xx.h. 31462306a36Sopenharmony_ci 31562306a36Sopenharmony_ci input-enable: true 31662306a36Sopenharmony_ci 31762306a36Sopenharmony_ci input-disable: true 31862306a36Sopenharmony_ci 31962306a36Sopenharmony_ci output-enable: true 32062306a36Sopenharmony_ci 32162306a36Sopenharmony_ci output-low: true 32262306a36Sopenharmony_ci 32362306a36Sopenharmony_ci output-high: true 32462306a36Sopenharmony_ci 32562306a36Sopenharmony_ci input-schmitt-enable: true 32662306a36Sopenharmony_ci 32762306a36Sopenharmony_ci input-schmitt-disable: true 32862306a36Sopenharmony_ci 32962306a36Sopenharmony_ci drive-strength: 33062306a36Sopenharmony_ci enum: [2, 4, 6, 8, 10, 12, 14, 16] 33162306a36Sopenharmony_ci 33262306a36Sopenharmony_ci mediatek,pull-up-adv: 33362306a36Sopenharmony_ci description: | 33462306a36Sopenharmony_ci Valid arguments for 'mediatek,pull-up-adv' are '0', '1', '2', '3' 33562306a36Sopenharmony_ci Pull up settings for 2 pull resistors, R0 and R1. Valid arguments 33662306a36Sopenharmony_ci are described as below: 33762306a36Sopenharmony_ci 0: (R1, R0) = (0, 0) which means R1 disabled and R0 disabled. 33862306a36Sopenharmony_ci 1: (R1, R0) = (0, 1) which means R1 disabled and R0 enabled. 33962306a36Sopenharmony_ci 2: (R1, R0) = (1, 0) which means R1 enabled and R0 disabled. 34062306a36Sopenharmony_ci 3: (R1, R0) = (1, 1) which means R1 enabled and R0 enabled. 34162306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 34262306a36Sopenharmony_ci enum: [0, 1, 2, 3] 34362306a36Sopenharmony_ci 34462306a36Sopenharmony_ci mediatek,pull-down-adv: 34562306a36Sopenharmony_ci description: | 34662306a36Sopenharmony_ci Valid arguments for 'mediatek,pull-up-adv' are '0', '1', '2', '3' 34762306a36Sopenharmony_ci Pull down settings for 2 pull resistors, R0 and R1. Valid arguments 34862306a36Sopenharmony_ci are described as below: 34962306a36Sopenharmony_ci 0: (R1, R0) = (0, 0) which means R1 disabled and R0 disabled. 35062306a36Sopenharmony_ci 1: (R1, R0) = (0, 1) which means R1 disabled and R0 enabled. 35162306a36Sopenharmony_ci 2: (R1, R0) = (1, 0) which means R1 enabled and R0 disabled. 35262306a36Sopenharmony_ci 3: (R1, R0) = (1, 1) which means R1 enabled and R0 enabled. 35362306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 35462306a36Sopenharmony_ci enum: [0, 1, 2, 3] 35562306a36Sopenharmony_ci 35662306a36Sopenharmony_ci required: 35762306a36Sopenharmony_ci - pins 35862306a36Sopenharmony_ci 35962306a36Sopenharmony_ciadditionalProperties: false 36062306a36Sopenharmony_ci 36162306a36Sopenharmony_ciexamples: 36262306a36Sopenharmony_ci - | 36362306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/irq.h> 36462306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 36562306a36Sopenharmony_ci #include <dt-bindings/pinctrl/mt65xx.h> 36662306a36Sopenharmony_ci 36762306a36Sopenharmony_ci soc { 36862306a36Sopenharmony_ci #address-cells = <2>; 36962306a36Sopenharmony_ci #size-cells = <2>; 37062306a36Sopenharmony_ci pio: pinctrl@1001f000 { 37162306a36Sopenharmony_ci compatible = "mediatek,mt7986a-pinctrl"; 37262306a36Sopenharmony_ci reg = <0 0x1001f000 0 0x1000>, 37362306a36Sopenharmony_ci <0 0x11c30000 0 0x1000>, 37462306a36Sopenharmony_ci <0 0x11c40000 0 0x1000>, 37562306a36Sopenharmony_ci <0 0x11e20000 0 0x1000>, 37662306a36Sopenharmony_ci <0 0x11e30000 0 0x1000>, 37762306a36Sopenharmony_ci <0 0x11f00000 0 0x1000>, 37862306a36Sopenharmony_ci <0 0x11f10000 0 0x1000>, 37962306a36Sopenharmony_ci <0 0x1000b000 0 0x1000>; 38062306a36Sopenharmony_ci reg-names = "gpio", "iocfg_rt", "iocfg_rb", "iocfg_lt", 38162306a36Sopenharmony_ci "iocfg_lb", "iocfg_tr", "iocfg_tl", "eint"; 38262306a36Sopenharmony_ci gpio-controller; 38362306a36Sopenharmony_ci #gpio-cells = <2>; 38462306a36Sopenharmony_ci gpio-ranges = <&pio 0 0 100>; 38562306a36Sopenharmony_ci interrupt-controller; 38662306a36Sopenharmony_ci interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>; 38762306a36Sopenharmony_ci interrupt-parent = <&gic>; 38862306a36Sopenharmony_ci #interrupt-cells = <2>; 38962306a36Sopenharmony_ci 39062306a36Sopenharmony_ci pcie_pins: pcie-pins { 39162306a36Sopenharmony_ci mux { 39262306a36Sopenharmony_ci function = "pcie"; 39362306a36Sopenharmony_ci groups = "pcie_clk", "pcie_wake", "pcie_pereset"; 39462306a36Sopenharmony_ci }; 39562306a36Sopenharmony_ci }; 39662306a36Sopenharmony_ci 39762306a36Sopenharmony_ci pwm_pins: pwm-pins { 39862306a36Sopenharmony_ci mux { 39962306a36Sopenharmony_ci function = "pwm"; 40062306a36Sopenharmony_ci groups = "pwm0", "pwm1_0"; 40162306a36Sopenharmony_ci }; 40262306a36Sopenharmony_ci }; 40362306a36Sopenharmony_ci 40462306a36Sopenharmony_ci spi0_pins: spi0-pins { 40562306a36Sopenharmony_ci mux { 40662306a36Sopenharmony_ci function = "spi"; 40762306a36Sopenharmony_ci groups = "spi0", "spi0_wp_hold"; 40862306a36Sopenharmony_ci }; 40962306a36Sopenharmony_ci }; 41062306a36Sopenharmony_ci 41162306a36Sopenharmony_ci uart1_pins: uart1-pins { 41262306a36Sopenharmony_ci mux { 41362306a36Sopenharmony_ci function = "uart"; 41462306a36Sopenharmony_ci groups = "uart1"; 41562306a36Sopenharmony_ci }; 41662306a36Sopenharmony_ci }; 41762306a36Sopenharmony_ci 41862306a36Sopenharmony_ci uart1_3_pins: uart1-3-pins { 41962306a36Sopenharmony_ci mux { 42062306a36Sopenharmony_ci function = "uart"; 42162306a36Sopenharmony_ci groups = "uart1_3_rx_tx", "uart1_3_cts_rts"; 42262306a36Sopenharmony_ci }; 42362306a36Sopenharmony_ci }; 42462306a36Sopenharmony_ci 42562306a36Sopenharmony_ci uart2_pins: uart2-pins { 42662306a36Sopenharmony_ci mux { 42762306a36Sopenharmony_ci function = "uart"; 42862306a36Sopenharmony_ci groups = "uart2"; 42962306a36Sopenharmony_ci }; 43062306a36Sopenharmony_ci }; 43162306a36Sopenharmony_ci 43262306a36Sopenharmony_ci mmc0_pins_default: mmc0-pins { 43362306a36Sopenharmony_ci mux { 43462306a36Sopenharmony_ci function = "emmc"; 43562306a36Sopenharmony_ci groups = "emmc_51"; 43662306a36Sopenharmony_ci }; 43762306a36Sopenharmony_ci conf-cmd-dat { 43862306a36Sopenharmony_ci pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2", 43962306a36Sopenharmony_ci "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5", 44062306a36Sopenharmony_ci "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD"; 44162306a36Sopenharmony_ci input-enable; 44262306a36Sopenharmony_ci drive-strength = <4>; 44362306a36Sopenharmony_ci bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */ 44462306a36Sopenharmony_ci }; 44562306a36Sopenharmony_ci conf-clk { 44662306a36Sopenharmony_ci pins = "EMMC_CK"; 44762306a36Sopenharmony_ci drive-strength = <6>; 44862306a36Sopenharmony_ci bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */ 44962306a36Sopenharmony_ci }; 45062306a36Sopenharmony_ci conf-ds { 45162306a36Sopenharmony_ci pins = "EMMC_DSL"; 45262306a36Sopenharmony_ci bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */ 45362306a36Sopenharmony_ci }; 45462306a36Sopenharmony_ci conf-rst { 45562306a36Sopenharmony_ci pins = "EMMC_RSTB"; 45662306a36Sopenharmony_ci drive-strength = <4>; 45762306a36Sopenharmony_ci bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */ 45862306a36Sopenharmony_ci }; 45962306a36Sopenharmony_ci }; 46062306a36Sopenharmony_ci 46162306a36Sopenharmony_ci }; 46262306a36Sopenharmony_ci }; 463