# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/pinctrl/mediatek,mt7981-pinctrl.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MediaTek MT7981 Pin Controller

maintainers:
  - Daniel Golle <daniel@makrotopia.org>

description:
  The MediaTek's MT7981 Pin controller is used to control SoC pins.

properties:
  compatible:
    enum:
      - mediatek,mt7981-pinctrl

  reg:
    minItems: 9
    maxItems: 9

  reg-names:
    items:
      - const: gpio
      - const: iocfg_rt
      - const: iocfg_rm
      - const: iocfg_rb
      - const: iocfg_lb
      - const: iocfg_bl
      - const: iocfg_tm
      - const: iocfg_tl
      - const: eint

  gpio-controller: true

  "#gpio-cells":
    const: 2
    description:
      Number of cells in GPIO specifier. Since the generic GPIO binding is used,
      the amount of cells must be specified as 2. See the below mentioned gpio
      binding representation for description of particular cells.

  gpio-ranges:
    minItems: 1
    maxItems: 5
    description: GPIO valid number range.

  interrupt-controller: true

  interrupts:
    maxItems: 1

  "#interrupt-cells":
    const: 2

allOf:
  - $ref: pinctrl.yaml#

required:
  - compatible
  - reg
  - reg-names
  - gpio-controller
  - "#gpio-cells"

patternProperties:
  '-pins$':
    type: object
    additionalProperties: false

    patternProperties:
      '^.*mux.*$':
        type: object
        additionalProperties: false
        description: |
          pinmux configuration nodes.

          The following table shows the effective values of "group", "function"
          properties and chip pinout pins

          groups                 function    pins (in pin#)
          ---------------------------------------------------------------------
          "wa_aice1"             "wa_aice"   0, 1
          "wa_aice2"             "wa_aice"   0, 1
          "wm_uart_0"            "uart"      0, 1
          "dfd"                  "dfd"       0, 1, 4, 5
          "watchdog"             "watchdog"  2
          "pcie_pereset"         "pcie"      3
          "jtag"                 "jtag"      4, 5, 6, 7, 8
          "wm_jtag_0"            "jtag"      4, 5, 6, 7, 8
          "wo0_jtag_0"           "jtag"      9, 10, 11, 12, 13
          "uart2_0"              "uart"      4, 5, 6, 7
          "gbe_led0"             "led"       8
          "pta_ext_0"            "pta"       4, 5, 6
          "pwm2"                 "pwm"       7
          "net_wo0_uart_txd_0"   "uart"      8
          "spi1_0"               "spi"       4, 5, 6, 7
          "i2c0_0"               "i2c"       6, 7
          "dfd_ntrst"            "dfd"       8
          "wm_aice1"             "wa_aice"   9, 10
          "pwm0_0"               "pwm"       13
          "pwm0_1"               "pwm"       15
          "pwm1_0"               "pwm"       14
          "pwm1_1"               "pwm"       15
          "net_wo0_uart_txd_1"   "uart"      14
          "net_wo0_uart_txd_2"   "uart"      15
          "gbe_led1"             "led"       13
          "pcm"                  "pcm"       9, 10, 11, 12, 13, 25
          "watchdog1"            "watchdog"  13
          "udi"                  "udi"       9, 10, 11, 12, 13
          "drv_vbus"             "usb"       14
          "emmc_45"              "flash"     15, 16, 17, 18, 19, 20, 21, 22, 23,
                                             24, 25

          "snfi"                 "flash"     16, 17, 18, 19, 20, 21
          "spi0"                 "spi"       16, 17, 18, 19
          "spi0_wp_hold"         "spi"       20, 21
          "spi1_1"               "spi"       22, 23, 24, 25
          "spi2"                 "spi"       26, 27, 28, 29
          "spi2_wp_hold"         "spi"       30, 31
          "uart1_0"              "uart"      16, 17, 18, 19
          "uart1_1"              "uart"      26, 27, 28, 29
          "uart2_1"              "uart"      22, 23, 24, 25
          "pta_ext_1"            "pta"       22, 23, 24
          "wm_aurt_1"            "uart"      20, 21
          "wm_aurt_2"            "uart"      30, 31
          "wm_jtag_1"            "jtag"      20, 21, 22, 23, 24
          "wo0_jtag_1"           "jtag"      25, 26, 27, 28, 29
          "wa_aice3"             "wa_aice"   28, 20
          "wm_aice2"             "wa_aice"   30, 31
          "i2c0_1"               "i2c"       30, 31
          "u2_phy_i2c"           "i2c"       30, 31
          "uart0"                "uart"      32, 33
          "sgmii1_phy_i2c"       "i2c"       32, 33
          "u3_phy_i2c"           "i2c"       32, 33
          "sgmii0_phy_i2c"       "i2c"       32, 33
          "pcie_clk"             "pcie"      34
          "pcie_wake"            "pcie"      35
          "i2c0_2"               "i2c"       36, 37
          "smi_mdc_mdio"         "eth"       36, 37
          "gbe_ext_mdc_mdio"     "eth"       36, 37
          "wf0_mode1"            "eth"       40, 41, 42, 43, 44, 45, 46, 47, 48,
                                             49, 50, 51, 52, 53, 54, 55, 56

          "wf0_mode3"            "eth"       45, 46, 47, 48, 49, 51
          "wf2g_led0"            "led"       30
          "wf2g_led1"            "led"       34
          "wf5g_led0"            "led"       31
          "wf5g_led1"            "led"       35
          "mt7531_int"           "eth"       38
          "ant_sel"              "ant"       14, 15, 16, 17, 18, 19, 20, 21, 22,
                                             23, 24, 25, 34, 35

        $ref: /schemas/pinctrl/pinmux-node.yaml
        properties:
          function:
            description:
              A string containing the name of the function to mux to the group.
            enum: [wa_aice, dfd, jtag, pta, pcm, udi, usb, ant, eth, i2c, led,
                   pwm, spi, uart, watchdog, flash, pcie]
          groups:
            description:
              An array of strings. Each string contains the name of a group.

        required:
          - function
          - groups

        allOf:
          - if:
              properties:
                function:
                  const: wa_aice
            then:
              properties:
                groups:
                  enum: [wa_aice1, wa_aice2, wm_aice1_1, wa_aice3, wm_aice1_2]
          - if:
              properties:
                function:
                  const: dfd
            then:
              properties:
                groups:
                  enum: [dfd, dfd_ntrst]
          - if:
              properties:
                function:
                  const: jtag
            then:
              properties:
                groups:
                  enum: [jtag, wm_jtag_0, wo0_jtag_0, wo0_jtag_1, wm_jtag_1]
          - if:
              properties:
                function:
                  const: pta
            then:
              properties:
                groups:
                  enum: [pta_ext_0, pta_ext_1]
          - if:
              properties:
                function:
                  const: pcm
            then:
              properties:
                groups:
                  enum: [pcm]
          - if:
              properties:
                function:
                  const: udi
            then:
              properties:
                groups:
                  enum: [udi]
          - if:
              properties:
                function:
                  const: usb
            then:
              properties:
                groups:
                  enum: [drv_vbus]
          - if:
              properties:
                function:
                  const: ant
            then:
              properties:
                groups:
                  enum: [ant_sel]
          - if:
              properties:
                function:
                  const: eth
            then:
              properties:
                groups:
                  enum: [smi_mdc_mdio, gbe_ext_mdc_mdio, wf0_mode1, wf0_mode3,
                         mt7531_int]
          - if:
              properties:
                function:
                  const: i2c
            then:
              properties:
                groups:
                  enum: [i2c0_0, i2c0_1, u2_phy_i2c, sgmii1_phy_i2c, u3_phy_i2c,
                         sgmii0_phy_i2c, i2c0_2]
          - if:
              properties:
                function:
                  const: led
            then:
              properties:
                groups:
                  enum: [gbe_led0, gbe_led1, wf2g_led0, wf2g_led1, wf5g_led0,
                         wf5g_led1]
          - if:
              properties:
                function:
                  const: pwm
            then:
              properties:
                groups:
                  items:
                    enum: [pwm2, pwm0_0, pwm0_1, pwm1_0, pwm1_1]
                  maxItems: 3
          - if:
              properties:
                function:
                  const: spi
            then:
              properties:
                groups:
                  items:
                    enum: [spi1_0, spi0, spi0_wp_hold, spi1_1, spi2,
                           spi2_wp_hold]
                  maxItems: 4
          - if:
              properties:
                function:
                  const: uart
            then:
              properties:
                groups:
                  items:
                    enum: [wm_uart_0, uart2_0, net_wo0_uart_txd_0,
                           net_wo0_uart_txd_1, net_wo0_uart_txd_2, uart1_0,
                           uart1_1, uart2_1, wm_aurt_1, wm_aurt_2, uart0]
          - if:
              properties:
                function:
                  const: watchdog
            then:
              properties:
                groups:
                  enum: [watchdog]
          - if:
              properties:
                function:
                  const: flash
            then:
              properties:
                groups:
                  items:
                    enum: [emmc_45, snfi]
                  maxItems: 1
          - if:
              properties:
                function:
                  const: pcie
            then:
              properties:
                groups:
                  items:
                    enum: [pcie_clk, pcie_wake, pcie_pereset]
                  maxItems: 3

      '^.*conf.*$':
        type: object
        additionalProperties: false
        description: pinconf configuration nodes.
        $ref: /schemas/pinctrl/pincfg-node.yaml

        properties:
          pins:
            description:
              An array of strings. Each string contains the name of a pin.
            items:
              enum: [GPIO_WPS, GPIO_RESET, SYS_WATCHDOG, PCIE_PERESET_N,
                     JTAG_JTDO, JTAG_JTDI, JTAG_JTMS, JTAG_JTCLK, JTAG_JTRST_N,
                     WO_JTAG_JTDO, WO_JTAG_JTDI, WO_JTAG_JTMS, WO_JTAG_JTCLK,
                     WO_JTAG_JTRST_N, USB_VBUS, PWM0, SPI0_CLK, SPI0_MOSI,
                     SPI0_MISO, SPI0_CS, SPI0_HOLD, SPI0_WP, SPI1_CLK,
                     SPI1_MOSI, SPI1_MISO, SPI1_CS, SPI2_CLK, SPI2_MOSI,
                     SPI2_MISO, SPI2_CS, SPI2_HOLD, SPI2_WP, UART0_RXD,
                     UART0_TXD, PCIE_CLK_REQ, PCIE_WAKE_N, SMI_MDC, SMI_MDIO,
                     GBE_INT, GBE_RESET, WF_DIG_RESETB, WF_CBA_RESETB,
                     WF_XO_REQ, WF_TOP_CLK, WF_TOP_DATA, WF_HB1, WF_HB2, WF_HB3,
                     WF_HB4, WF_HB0, WF_HB0_B, WF_HB5, WF_HB6, WF_HB7, WF_HB8,
                     WF_HB9, WF_HB10]
            maxItems: 57

          bias-disable: true

          bias-pull-up:
            oneOf:
              - type: boolean
                description: normal pull up.
              - enum: [100, 101, 102, 103]
                description:
                  PUPD/R1/R0 pull down type. See MTK_PUPD_SET_R1R0 defines in
                  dt-bindings/pinctrl/mt65xx.h.

          bias-pull-down:
            oneOf:
              - type: boolean
                description: normal pull down.
              - enum: [100, 101, 102, 103]
                description:
                  PUPD/R1/R0 pull down type. See MTK_PUPD_SET_R1R0 defines in
                  dt-bindings/pinctrl/mt65xx.h.

          input-enable: true

          input-disable: true

          output-enable: true

          output-low: true

          output-high: true

          input-schmitt-enable: true

          input-schmitt-disable: true

          drive-strength:
            enum: [2, 4, 6, 8, 10, 12, 14, 16]

          mediatek,pull-up-adv:
            description: |
              Valid arguments for 'mediatek,pull-up-adv' are '0', '1', '2', '3'
              Pull up settings for 2 pull resistors, R0 and R1. Valid arguments
              are described as below:
              0: (R1, R0) = (0, 0) which means R1 disabled and R0 disabled.
              1: (R1, R0) = (0, 1) which means R1 disabled and R0 enabled.
              2: (R1, R0) = (1, 0) which means R1 enabled and R0 disabled.
              3: (R1, R0) = (1, 1) which means R1 enabled and R0 enabled.
            $ref: /schemas/types.yaml#/definitions/uint32
            enum: [0, 1, 2, 3]

          mediatek,pull-down-adv:
            description: |
              Valid arguments for 'mediatek,pull-up-adv' are '0', '1', '2', '3'
              Pull down settings for 2 pull resistors, R0 and R1. Valid arguments
              are described as below:
              0: (R1, R0) = (0, 0) which means R1 disabled and R0 disabled.
              1: (R1, R0) = (0, 1) which means R1 disabled and R0 enabled.
              2: (R1, R0) = (1, 0) which means R1 enabled and R0 disabled.
              3: (R1, R0) = (1, 1) which means R1 enabled and R0 enabled.
            $ref: /schemas/types.yaml#/definitions/uint32
            enum: [0, 1, 2, 3]

        required:
          - pins

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/pinctrl/mt65xx.h>

    soc {
      #address-cells = <2>;
      #size-cells = <2>;
      pio: pinctrl@11d00000 {
        compatible = "mediatek,mt7981-pinctrl";
        reg = <0 0x11d00000 0 0x1000>,
              <0 0x11c00000 0 0x1000>,
              <0 0x11c10000 0 0x1000>,
              <0 0x11d20000 0 0x1000>,
              <0 0x11e00000 0 0x1000>,
              <0 0x11e20000 0 0x1000>,
              <0 0x11f00000 0 0x1000>,
              <0 0x11f10000 0 0x1000>,
              <0 0x1000b000 0 0x1000>;
        reg-names = "gpio", "iocfg_rt", "iocfg_rm",
                    "iocfg_rb", "iocfg_lb", "iocfg_bl",
                    "iocfg_tm", "iocfg_tl", "eint";
        gpio-controller;
        #gpio-cells = <2>;
        gpio-ranges = <&pio 0 0 56>;
        interrupt-controller;
        interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
        interrupt-parent = <&gic>;
        #interrupt-cells = <2>;

        mdio_pins: mdio-pins {
          mux {
            function = "eth";
            groups = "smi_mdc_mdio";
          };
        };

        spi0_flash_pins: spi0-pins {
          mux {
            function = "spi";
            groups = "spi0", "spi0_wp_hold";
          };

          conf-pu {
            pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP";
            drive-strength = <MTK_DRIVE_8mA>;
            bias-pull-up = <MTK_PUPD_SET_R1R0_11>;
          };

          conf-pd {
            pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO";
            drive-strength = <MTK_DRIVE_8mA>;
            bias-pull-down = <MTK_PUPD_SET_R1R0_11>;
          };
        };

        pcie_pins: pcie-pins {
          mux {
            function = "pcie";
            groups = "pcie_clk", "pcie_wake", "pcie_pereset";
          };
        };

      };
    };
