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,mt7981-pinctrl.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: MediaTek MT7981 Pin Controller
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Daniel Golle <daniel@makrotopia.org>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription:
1362306a36Sopenharmony_ci  The MediaTek's MT7981 Pin controller is used to control SoC pins.
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciproperties:
1662306a36Sopenharmony_ci  compatible:
1762306a36Sopenharmony_ci    enum:
1862306a36Sopenharmony_ci      - mediatek,mt7981-pinctrl
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci  reg:
2162306a36Sopenharmony_ci    minItems: 9
2262306a36Sopenharmony_ci    maxItems: 9
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci  reg-names:
2562306a36Sopenharmony_ci    items:
2662306a36Sopenharmony_ci      - const: gpio
2762306a36Sopenharmony_ci      - const: iocfg_rt
2862306a36Sopenharmony_ci      - const: iocfg_rm
2962306a36Sopenharmony_ci      - const: iocfg_rb
3062306a36Sopenharmony_ci      - const: iocfg_lb
3162306a36Sopenharmony_ci      - const: iocfg_bl
3262306a36Sopenharmony_ci      - const: iocfg_tm
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: GPIO valid number range.
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci  interrupt-controller: true
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci  interrupts:
5362306a36Sopenharmony_ci    maxItems: 1
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci  "#interrupt-cells":
5662306a36Sopenharmony_ci    const: 2
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ciallOf:
5962306a36Sopenharmony_ci  - $ref: pinctrl.yaml#
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_cirequired:
6262306a36Sopenharmony_ci  - compatible
6362306a36Sopenharmony_ci  - reg
6462306a36Sopenharmony_ci  - reg-names
6562306a36Sopenharmony_ci  - gpio-controller
6662306a36Sopenharmony_ci  - "#gpio-cells"
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_cipatternProperties:
6962306a36Sopenharmony_ci  '-pins$':
7062306a36Sopenharmony_ci    type: object
7162306a36Sopenharmony_ci    additionalProperties: false
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci    patternProperties:
7462306a36Sopenharmony_ci      '^.*mux.*$':
7562306a36Sopenharmony_ci        type: object
7662306a36Sopenharmony_ci        additionalProperties: false
7762306a36Sopenharmony_ci        description: |
7862306a36Sopenharmony_ci          pinmux configuration nodes.
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci          The following table shows the effective values of "group", "function"
8162306a36Sopenharmony_ci          properties and chip pinout pins
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci          groups                 function    pins (in pin#)
8462306a36Sopenharmony_ci          ---------------------------------------------------------------------
8562306a36Sopenharmony_ci          "wa_aice1"             "wa_aice"   0, 1
8662306a36Sopenharmony_ci          "wa_aice2"             "wa_aice"   0, 1
8762306a36Sopenharmony_ci          "wm_uart_0"            "uart"      0, 1
8862306a36Sopenharmony_ci          "dfd"                  "dfd"       0, 1, 4, 5
8962306a36Sopenharmony_ci          "watchdog"             "watchdog"  2
9062306a36Sopenharmony_ci          "pcie_pereset"         "pcie"      3
9162306a36Sopenharmony_ci          "jtag"                 "jtag"      4, 5, 6, 7, 8
9262306a36Sopenharmony_ci          "wm_jtag_0"            "jtag"      4, 5, 6, 7, 8
9362306a36Sopenharmony_ci          "wo0_jtag_0"           "jtag"      9, 10, 11, 12, 13
9462306a36Sopenharmony_ci          "uart2_0"              "uart"      4, 5, 6, 7
9562306a36Sopenharmony_ci          "gbe_led0"             "led"       8
9662306a36Sopenharmony_ci          "pta_ext_0"            "pta"       4, 5, 6
9762306a36Sopenharmony_ci          "pwm2"                 "pwm"       7
9862306a36Sopenharmony_ci          "net_wo0_uart_txd_0"   "uart"      8
9962306a36Sopenharmony_ci          "spi1_0"               "spi"       4, 5, 6, 7
10062306a36Sopenharmony_ci          "i2c0_0"               "i2c"       6, 7
10162306a36Sopenharmony_ci          "dfd_ntrst"            "dfd"       8
10262306a36Sopenharmony_ci          "wm_aice1"             "wa_aice"   9, 10
10362306a36Sopenharmony_ci          "pwm0_0"               "pwm"       13
10462306a36Sopenharmony_ci          "pwm0_1"               "pwm"       15
10562306a36Sopenharmony_ci          "pwm1_0"               "pwm"       14
10662306a36Sopenharmony_ci          "pwm1_1"               "pwm"       15
10762306a36Sopenharmony_ci          "net_wo0_uart_txd_1"   "uart"      14
10862306a36Sopenharmony_ci          "net_wo0_uart_txd_2"   "uart"      15
10962306a36Sopenharmony_ci          "gbe_led1"             "led"       13
11062306a36Sopenharmony_ci          "pcm"                  "pcm"       9, 10, 11, 12, 13, 25
11162306a36Sopenharmony_ci          "watchdog1"            "watchdog"  13
11262306a36Sopenharmony_ci          "udi"                  "udi"       9, 10, 11, 12, 13
11362306a36Sopenharmony_ci          "drv_vbus"             "usb"       14
11462306a36Sopenharmony_ci          "emmc_45"              "flash"     15, 16, 17, 18, 19, 20, 21, 22, 23,
11562306a36Sopenharmony_ci                                             24, 25
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ci          "snfi"                 "flash"     16, 17, 18, 19, 20, 21
11862306a36Sopenharmony_ci          "spi0"                 "spi"       16, 17, 18, 19
11962306a36Sopenharmony_ci          "spi0_wp_hold"         "spi"       20, 21
12062306a36Sopenharmony_ci          "spi1_1"               "spi"       22, 23, 24, 25
12162306a36Sopenharmony_ci          "spi2"                 "spi"       26, 27, 28, 29
12262306a36Sopenharmony_ci          "spi2_wp_hold"         "spi"       30, 31
12362306a36Sopenharmony_ci          "uart1_0"              "uart"      16, 17, 18, 19
12462306a36Sopenharmony_ci          "uart1_1"              "uart"      26, 27, 28, 29
12562306a36Sopenharmony_ci          "uart2_1"              "uart"      22, 23, 24, 25
12662306a36Sopenharmony_ci          "pta_ext_1"            "pta"       22, 23, 24
12762306a36Sopenharmony_ci          "wm_aurt_1"            "uart"      20, 21
12862306a36Sopenharmony_ci          "wm_aurt_2"            "uart"      30, 31
12962306a36Sopenharmony_ci          "wm_jtag_1"            "jtag"      20, 21, 22, 23, 24
13062306a36Sopenharmony_ci          "wo0_jtag_1"           "jtag"      25, 26, 27, 28, 29
13162306a36Sopenharmony_ci          "wa_aice3"             "wa_aice"   28, 20
13262306a36Sopenharmony_ci          "wm_aice2"             "wa_aice"   30, 31
13362306a36Sopenharmony_ci          "i2c0_1"               "i2c"       30, 31
13462306a36Sopenharmony_ci          "u2_phy_i2c"           "i2c"       30, 31
13562306a36Sopenharmony_ci          "uart0"                "uart"      32, 33
13662306a36Sopenharmony_ci          "sgmii1_phy_i2c"       "i2c"       32, 33
13762306a36Sopenharmony_ci          "u3_phy_i2c"           "i2c"       32, 33
13862306a36Sopenharmony_ci          "sgmii0_phy_i2c"       "i2c"       32, 33
13962306a36Sopenharmony_ci          "pcie_clk"             "pcie"      34
14062306a36Sopenharmony_ci          "pcie_wake"            "pcie"      35
14162306a36Sopenharmony_ci          "i2c0_2"               "i2c"       36, 37
14262306a36Sopenharmony_ci          "smi_mdc_mdio"         "eth"       36, 37
14362306a36Sopenharmony_ci          "gbe_ext_mdc_mdio"     "eth"       36, 37
14462306a36Sopenharmony_ci          "wf0_mode1"            "eth"       40, 41, 42, 43, 44, 45, 46, 47, 48,
14562306a36Sopenharmony_ci                                             49, 50, 51, 52, 53, 54, 55, 56
14662306a36Sopenharmony_ci
14762306a36Sopenharmony_ci          "wf0_mode3"            "eth"       45, 46, 47, 48, 49, 51
14862306a36Sopenharmony_ci          "wf2g_led0"            "led"       30
14962306a36Sopenharmony_ci          "wf2g_led1"            "led"       34
15062306a36Sopenharmony_ci          "wf5g_led0"            "led"       31
15162306a36Sopenharmony_ci          "wf5g_led1"            "led"       35
15262306a36Sopenharmony_ci          "mt7531_int"           "eth"       38
15362306a36Sopenharmony_ci          "ant_sel"              "ant"       14, 15, 16, 17, 18, 19, 20, 21, 22,
15462306a36Sopenharmony_ci                                             23, 24, 25, 34, 35
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_ci        $ref: /schemas/pinctrl/pinmux-node.yaml
15762306a36Sopenharmony_ci        properties:
15862306a36Sopenharmony_ci          function:
15962306a36Sopenharmony_ci            description:
16062306a36Sopenharmony_ci              A string containing the name of the function to mux to the group.
16162306a36Sopenharmony_ci            enum: [wa_aice, dfd, jtag, pta, pcm, udi, usb, ant, eth, i2c, led,
16262306a36Sopenharmony_ci                   pwm, spi, uart, watchdog, flash, pcie]
16362306a36Sopenharmony_ci          groups:
16462306a36Sopenharmony_ci            description:
16562306a36Sopenharmony_ci              An array of strings. Each string contains the name of a group.
16662306a36Sopenharmony_ci
16762306a36Sopenharmony_ci        required:
16862306a36Sopenharmony_ci          - function
16962306a36Sopenharmony_ci          - groups
17062306a36Sopenharmony_ci
17162306a36Sopenharmony_ci        allOf:
17262306a36Sopenharmony_ci          - if:
17362306a36Sopenharmony_ci              properties:
17462306a36Sopenharmony_ci                function:
17562306a36Sopenharmony_ci                  const: wa_aice
17662306a36Sopenharmony_ci            then:
17762306a36Sopenharmony_ci              properties:
17862306a36Sopenharmony_ci                groups:
17962306a36Sopenharmony_ci                  enum: [wa_aice1, wa_aice2, wm_aice1_1, wa_aice3, wm_aice1_2]
18062306a36Sopenharmony_ci          - if:
18162306a36Sopenharmony_ci              properties:
18262306a36Sopenharmony_ci                function:
18362306a36Sopenharmony_ci                  const: dfd
18462306a36Sopenharmony_ci            then:
18562306a36Sopenharmony_ci              properties:
18662306a36Sopenharmony_ci                groups:
18762306a36Sopenharmony_ci                  enum: [dfd, dfd_ntrst]
18862306a36Sopenharmony_ci          - if:
18962306a36Sopenharmony_ci              properties:
19062306a36Sopenharmony_ci                function:
19162306a36Sopenharmony_ci                  const: jtag
19262306a36Sopenharmony_ci            then:
19362306a36Sopenharmony_ci              properties:
19462306a36Sopenharmony_ci                groups:
19562306a36Sopenharmony_ci                  enum: [jtag, wm_jtag_0, wo0_jtag_0, wo0_jtag_1, wm_jtag_1]
19662306a36Sopenharmony_ci          - if:
19762306a36Sopenharmony_ci              properties:
19862306a36Sopenharmony_ci                function:
19962306a36Sopenharmony_ci                  const: pta
20062306a36Sopenharmony_ci            then:
20162306a36Sopenharmony_ci              properties:
20262306a36Sopenharmony_ci                groups:
20362306a36Sopenharmony_ci                  enum: [pta_ext_0, pta_ext_1]
20462306a36Sopenharmony_ci          - if:
20562306a36Sopenharmony_ci              properties:
20662306a36Sopenharmony_ci                function:
20762306a36Sopenharmony_ci                  const: pcm
20862306a36Sopenharmony_ci            then:
20962306a36Sopenharmony_ci              properties:
21062306a36Sopenharmony_ci                groups:
21162306a36Sopenharmony_ci                  enum: [pcm]
21262306a36Sopenharmony_ci          - if:
21362306a36Sopenharmony_ci              properties:
21462306a36Sopenharmony_ci                function:
21562306a36Sopenharmony_ci                  const: udi
21662306a36Sopenharmony_ci            then:
21762306a36Sopenharmony_ci              properties:
21862306a36Sopenharmony_ci                groups:
21962306a36Sopenharmony_ci                  enum: [udi]
22062306a36Sopenharmony_ci          - if:
22162306a36Sopenharmony_ci              properties:
22262306a36Sopenharmony_ci                function:
22362306a36Sopenharmony_ci                  const: usb
22462306a36Sopenharmony_ci            then:
22562306a36Sopenharmony_ci              properties:
22662306a36Sopenharmony_ci                groups:
22762306a36Sopenharmony_ci                  enum: [drv_vbus]
22862306a36Sopenharmony_ci          - if:
22962306a36Sopenharmony_ci              properties:
23062306a36Sopenharmony_ci                function:
23162306a36Sopenharmony_ci                  const: ant
23262306a36Sopenharmony_ci            then:
23362306a36Sopenharmony_ci              properties:
23462306a36Sopenharmony_ci                groups:
23562306a36Sopenharmony_ci                  enum: [ant_sel]
23662306a36Sopenharmony_ci          - if:
23762306a36Sopenharmony_ci              properties:
23862306a36Sopenharmony_ci                function:
23962306a36Sopenharmony_ci                  const: eth
24062306a36Sopenharmony_ci            then:
24162306a36Sopenharmony_ci              properties:
24262306a36Sopenharmony_ci                groups:
24362306a36Sopenharmony_ci                  enum: [smi_mdc_mdio, gbe_ext_mdc_mdio, wf0_mode1, wf0_mode3,
24462306a36Sopenharmony_ci                         mt7531_int]
24562306a36Sopenharmony_ci          - if:
24662306a36Sopenharmony_ci              properties:
24762306a36Sopenharmony_ci                function:
24862306a36Sopenharmony_ci                  const: i2c
24962306a36Sopenharmony_ci            then:
25062306a36Sopenharmony_ci              properties:
25162306a36Sopenharmony_ci                groups:
25262306a36Sopenharmony_ci                  enum: [i2c0_0, i2c0_1, u2_phy_i2c, sgmii1_phy_i2c, u3_phy_i2c,
25362306a36Sopenharmony_ci                         sgmii0_phy_i2c, i2c0_2]
25462306a36Sopenharmony_ci          - if:
25562306a36Sopenharmony_ci              properties:
25662306a36Sopenharmony_ci                function:
25762306a36Sopenharmony_ci                  const: led
25862306a36Sopenharmony_ci            then:
25962306a36Sopenharmony_ci              properties:
26062306a36Sopenharmony_ci                groups:
26162306a36Sopenharmony_ci                  enum: [gbe_led0, gbe_led1, wf2g_led0, wf2g_led1, wf5g_led0,
26262306a36Sopenharmony_ci                         wf5g_led1]
26362306a36Sopenharmony_ci          - if:
26462306a36Sopenharmony_ci              properties:
26562306a36Sopenharmony_ci                function:
26662306a36Sopenharmony_ci                  const: pwm
26762306a36Sopenharmony_ci            then:
26862306a36Sopenharmony_ci              properties:
26962306a36Sopenharmony_ci                groups:
27062306a36Sopenharmony_ci                  items:
27162306a36Sopenharmony_ci                    enum: [pwm2, pwm0_0, pwm0_1, pwm1_0, pwm1_1]
27262306a36Sopenharmony_ci                  maxItems: 3
27362306a36Sopenharmony_ci          - if:
27462306a36Sopenharmony_ci              properties:
27562306a36Sopenharmony_ci                function:
27662306a36Sopenharmony_ci                  const: spi
27762306a36Sopenharmony_ci            then:
27862306a36Sopenharmony_ci              properties:
27962306a36Sopenharmony_ci                groups:
28062306a36Sopenharmony_ci                  items:
28162306a36Sopenharmony_ci                    enum: [spi1_0, spi0, spi0_wp_hold, spi1_1, spi2,
28262306a36Sopenharmony_ci                           spi2_wp_hold]
28362306a36Sopenharmony_ci                  maxItems: 4
28462306a36Sopenharmony_ci          - if:
28562306a36Sopenharmony_ci              properties:
28662306a36Sopenharmony_ci                function:
28762306a36Sopenharmony_ci                  const: uart
28862306a36Sopenharmony_ci            then:
28962306a36Sopenharmony_ci              properties:
29062306a36Sopenharmony_ci                groups:
29162306a36Sopenharmony_ci                  items:
29262306a36Sopenharmony_ci                    enum: [wm_uart_0, uart2_0, net_wo0_uart_txd_0,
29362306a36Sopenharmony_ci                           net_wo0_uart_txd_1, net_wo0_uart_txd_2, uart1_0,
29462306a36Sopenharmony_ci                           uart1_1, uart2_1, wm_aurt_1, wm_aurt_2, uart0]
29562306a36Sopenharmony_ci          - if:
29662306a36Sopenharmony_ci              properties:
29762306a36Sopenharmony_ci                function:
29862306a36Sopenharmony_ci                  const: watchdog
29962306a36Sopenharmony_ci            then:
30062306a36Sopenharmony_ci              properties:
30162306a36Sopenharmony_ci                groups:
30262306a36Sopenharmony_ci                  enum: [watchdog]
30362306a36Sopenharmony_ci          - if:
30462306a36Sopenharmony_ci              properties:
30562306a36Sopenharmony_ci                function:
30662306a36Sopenharmony_ci                  const: flash
30762306a36Sopenharmony_ci            then:
30862306a36Sopenharmony_ci              properties:
30962306a36Sopenharmony_ci                groups:
31062306a36Sopenharmony_ci                  items:
31162306a36Sopenharmony_ci                    enum: [emmc_45, snfi]
31262306a36Sopenharmony_ci                  maxItems: 1
31362306a36Sopenharmony_ci          - if:
31462306a36Sopenharmony_ci              properties:
31562306a36Sopenharmony_ci                function:
31662306a36Sopenharmony_ci                  const: pcie
31762306a36Sopenharmony_ci            then:
31862306a36Sopenharmony_ci              properties:
31962306a36Sopenharmony_ci                groups:
32062306a36Sopenharmony_ci                  items:
32162306a36Sopenharmony_ci                    enum: [pcie_clk, pcie_wake, pcie_pereset]
32262306a36Sopenharmony_ci                  maxItems: 3
32362306a36Sopenharmony_ci
32462306a36Sopenharmony_ci      '^.*conf.*$':
32562306a36Sopenharmony_ci        type: object
32662306a36Sopenharmony_ci        additionalProperties: false
32762306a36Sopenharmony_ci        description: pinconf configuration nodes.
32862306a36Sopenharmony_ci        $ref: /schemas/pinctrl/pincfg-node.yaml
32962306a36Sopenharmony_ci
33062306a36Sopenharmony_ci        properties:
33162306a36Sopenharmony_ci          pins:
33262306a36Sopenharmony_ci            description:
33362306a36Sopenharmony_ci              An array of strings. Each string contains the name of a pin.
33462306a36Sopenharmony_ci            items:
33562306a36Sopenharmony_ci              enum: [GPIO_WPS, GPIO_RESET, SYS_WATCHDOG, PCIE_PERESET_N,
33662306a36Sopenharmony_ci                     JTAG_JTDO, JTAG_JTDI, JTAG_JTMS, JTAG_JTCLK, JTAG_JTRST_N,
33762306a36Sopenharmony_ci                     WO_JTAG_JTDO, WO_JTAG_JTDI, WO_JTAG_JTMS, WO_JTAG_JTCLK,
33862306a36Sopenharmony_ci                     WO_JTAG_JTRST_N, USB_VBUS, PWM0, SPI0_CLK, SPI0_MOSI,
33962306a36Sopenharmony_ci                     SPI0_MISO, SPI0_CS, SPI0_HOLD, SPI0_WP, SPI1_CLK,
34062306a36Sopenharmony_ci                     SPI1_MOSI, SPI1_MISO, SPI1_CS, SPI2_CLK, SPI2_MOSI,
34162306a36Sopenharmony_ci                     SPI2_MISO, SPI2_CS, SPI2_HOLD, SPI2_WP, UART0_RXD,
34262306a36Sopenharmony_ci                     UART0_TXD, PCIE_CLK_REQ, PCIE_WAKE_N, SMI_MDC, SMI_MDIO,
34362306a36Sopenharmony_ci                     GBE_INT, GBE_RESET, WF_DIG_RESETB, WF_CBA_RESETB,
34462306a36Sopenharmony_ci                     WF_XO_REQ, WF_TOP_CLK, WF_TOP_DATA, WF_HB1, WF_HB2, WF_HB3,
34562306a36Sopenharmony_ci                     WF_HB4, WF_HB0, WF_HB0_B, WF_HB5, WF_HB6, WF_HB7, WF_HB8,
34662306a36Sopenharmony_ci                     WF_HB9, WF_HB10]
34762306a36Sopenharmony_ci            maxItems: 57
34862306a36Sopenharmony_ci
34962306a36Sopenharmony_ci          bias-disable: true
35062306a36Sopenharmony_ci
35162306a36Sopenharmony_ci          bias-pull-up:
35262306a36Sopenharmony_ci            oneOf:
35362306a36Sopenharmony_ci              - type: boolean
35462306a36Sopenharmony_ci                description: normal pull up.
35562306a36Sopenharmony_ci              - enum: [100, 101, 102, 103]
35662306a36Sopenharmony_ci                description:
35762306a36Sopenharmony_ci                  PUPD/R1/R0 pull down type. See MTK_PUPD_SET_R1R0 defines in
35862306a36Sopenharmony_ci                  dt-bindings/pinctrl/mt65xx.h.
35962306a36Sopenharmony_ci
36062306a36Sopenharmony_ci          bias-pull-down:
36162306a36Sopenharmony_ci            oneOf:
36262306a36Sopenharmony_ci              - type: boolean
36362306a36Sopenharmony_ci                description: normal pull down.
36462306a36Sopenharmony_ci              - enum: [100, 101, 102, 103]
36562306a36Sopenharmony_ci                description:
36662306a36Sopenharmony_ci                  PUPD/R1/R0 pull down type. See MTK_PUPD_SET_R1R0 defines in
36762306a36Sopenharmony_ci                  dt-bindings/pinctrl/mt65xx.h.
36862306a36Sopenharmony_ci
36962306a36Sopenharmony_ci          input-enable: true
37062306a36Sopenharmony_ci
37162306a36Sopenharmony_ci          input-disable: true
37262306a36Sopenharmony_ci
37362306a36Sopenharmony_ci          output-enable: true
37462306a36Sopenharmony_ci
37562306a36Sopenharmony_ci          output-low: true
37662306a36Sopenharmony_ci
37762306a36Sopenharmony_ci          output-high: true
37862306a36Sopenharmony_ci
37962306a36Sopenharmony_ci          input-schmitt-enable: true
38062306a36Sopenharmony_ci
38162306a36Sopenharmony_ci          input-schmitt-disable: true
38262306a36Sopenharmony_ci
38362306a36Sopenharmony_ci          drive-strength:
38462306a36Sopenharmony_ci            enum: [2, 4, 6, 8, 10, 12, 14, 16]
38562306a36Sopenharmony_ci
38662306a36Sopenharmony_ci          mediatek,pull-up-adv:
38762306a36Sopenharmony_ci            description: |
38862306a36Sopenharmony_ci              Valid arguments for 'mediatek,pull-up-adv' are '0', '1', '2', '3'
38962306a36Sopenharmony_ci              Pull up settings for 2 pull resistors, R0 and R1. Valid arguments
39062306a36Sopenharmony_ci              are described as below:
39162306a36Sopenharmony_ci              0: (R1, R0) = (0, 0) which means R1 disabled and R0 disabled.
39262306a36Sopenharmony_ci              1: (R1, R0) = (0, 1) which means R1 disabled and R0 enabled.
39362306a36Sopenharmony_ci              2: (R1, R0) = (1, 0) which means R1 enabled and R0 disabled.
39462306a36Sopenharmony_ci              3: (R1, R0) = (1, 1) which means R1 enabled and R0 enabled.
39562306a36Sopenharmony_ci            $ref: /schemas/types.yaml#/definitions/uint32
39662306a36Sopenharmony_ci            enum: [0, 1, 2, 3]
39762306a36Sopenharmony_ci
39862306a36Sopenharmony_ci          mediatek,pull-down-adv:
39962306a36Sopenharmony_ci            description: |
40062306a36Sopenharmony_ci              Valid arguments for 'mediatek,pull-up-adv' are '0', '1', '2', '3'
40162306a36Sopenharmony_ci              Pull down settings for 2 pull resistors, R0 and R1. Valid arguments
40262306a36Sopenharmony_ci              are described as below:
40362306a36Sopenharmony_ci              0: (R1, R0) = (0, 0) which means R1 disabled and R0 disabled.
40462306a36Sopenharmony_ci              1: (R1, R0) = (0, 1) which means R1 disabled and R0 enabled.
40562306a36Sopenharmony_ci              2: (R1, R0) = (1, 0) which means R1 enabled and R0 disabled.
40662306a36Sopenharmony_ci              3: (R1, R0) = (1, 1) which means R1 enabled and R0 enabled.
40762306a36Sopenharmony_ci            $ref: /schemas/types.yaml#/definitions/uint32
40862306a36Sopenharmony_ci            enum: [0, 1, 2, 3]
40962306a36Sopenharmony_ci
41062306a36Sopenharmony_ci        required:
41162306a36Sopenharmony_ci          - pins
41262306a36Sopenharmony_ci
41362306a36Sopenharmony_ciadditionalProperties: false
41462306a36Sopenharmony_ci
41562306a36Sopenharmony_ciexamples:
41662306a36Sopenharmony_ci  - |
41762306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
41862306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
41962306a36Sopenharmony_ci    #include <dt-bindings/pinctrl/mt65xx.h>
42062306a36Sopenharmony_ci
42162306a36Sopenharmony_ci    soc {
42262306a36Sopenharmony_ci      #address-cells = <2>;
42362306a36Sopenharmony_ci      #size-cells = <2>;
42462306a36Sopenharmony_ci      pio: pinctrl@11d00000 {
42562306a36Sopenharmony_ci        compatible = "mediatek,mt7981-pinctrl";
42662306a36Sopenharmony_ci        reg = <0 0x11d00000 0 0x1000>,
42762306a36Sopenharmony_ci              <0 0x11c00000 0 0x1000>,
42862306a36Sopenharmony_ci              <0 0x11c10000 0 0x1000>,
42962306a36Sopenharmony_ci              <0 0x11d20000 0 0x1000>,
43062306a36Sopenharmony_ci              <0 0x11e00000 0 0x1000>,
43162306a36Sopenharmony_ci              <0 0x11e20000 0 0x1000>,
43262306a36Sopenharmony_ci              <0 0x11f00000 0 0x1000>,
43362306a36Sopenharmony_ci              <0 0x11f10000 0 0x1000>,
43462306a36Sopenharmony_ci              <0 0x1000b000 0 0x1000>;
43562306a36Sopenharmony_ci        reg-names = "gpio", "iocfg_rt", "iocfg_rm",
43662306a36Sopenharmony_ci                    "iocfg_rb", "iocfg_lb", "iocfg_bl",
43762306a36Sopenharmony_ci                    "iocfg_tm", "iocfg_tl", "eint";
43862306a36Sopenharmony_ci        gpio-controller;
43962306a36Sopenharmony_ci        #gpio-cells = <2>;
44062306a36Sopenharmony_ci        gpio-ranges = <&pio 0 0 56>;
44162306a36Sopenharmony_ci        interrupt-controller;
44262306a36Sopenharmony_ci        interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
44362306a36Sopenharmony_ci        interrupt-parent = <&gic>;
44462306a36Sopenharmony_ci        #interrupt-cells = <2>;
44562306a36Sopenharmony_ci
44662306a36Sopenharmony_ci        mdio_pins: mdio-pins {
44762306a36Sopenharmony_ci          mux {
44862306a36Sopenharmony_ci            function = "eth";
44962306a36Sopenharmony_ci            groups = "smi_mdc_mdio";
45062306a36Sopenharmony_ci          };
45162306a36Sopenharmony_ci        };
45262306a36Sopenharmony_ci
45362306a36Sopenharmony_ci        spi0_flash_pins: spi0-pins {
45462306a36Sopenharmony_ci          mux {
45562306a36Sopenharmony_ci            function = "spi";
45662306a36Sopenharmony_ci            groups = "spi0", "spi0_wp_hold";
45762306a36Sopenharmony_ci          };
45862306a36Sopenharmony_ci
45962306a36Sopenharmony_ci          conf-pu {
46062306a36Sopenharmony_ci            pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP";
46162306a36Sopenharmony_ci            drive-strength = <MTK_DRIVE_8mA>;
46262306a36Sopenharmony_ci            bias-pull-up = <MTK_PUPD_SET_R1R0_11>;
46362306a36Sopenharmony_ci          };
46462306a36Sopenharmony_ci
46562306a36Sopenharmony_ci          conf-pd {
46662306a36Sopenharmony_ci            pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO";
46762306a36Sopenharmony_ci            drive-strength = <MTK_DRIVE_8mA>;
46862306a36Sopenharmony_ci            bias-pull-down = <MTK_PUPD_SET_R1R0_11>;
46962306a36Sopenharmony_ci          };
47062306a36Sopenharmony_ci        };
47162306a36Sopenharmony_ci
47262306a36Sopenharmony_ci        pcie_pins: pcie-pins {
47362306a36Sopenharmony_ci          mux {
47462306a36Sopenharmony_ci            function = "pcie";
47562306a36Sopenharmony_ci            groups = "pcie_clk", "pcie_wake", "pcie_pereset";
47662306a36Sopenharmony_ci          };
47762306a36Sopenharmony_ci        };
47862306a36Sopenharmony_ci
47962306a36Sopenharmony_ci      };
48062306a36Sopenharmony_ci    };
481