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

title: MediaTek MT7986 Pin Controller

maintainers:
  - Sean Wang <sean.wang@kernel.org>

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

properties:
  compatible:
    enum:
      - mediatek,mt7986a-pinctrl
      - mediatek,mt7986b-pinctrl

  reg:
    minItems: 8
    maxItems: 8

  reg-names:
    items:
      - const: gpio
      - const: iocfg_rt
      - const: iocfg_rb
      - const: iocfg_lt
      - const: iocfg_lb
      - const: iocfg_tr
      - 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#)
          ---------------------------------------------------------------------
          "watchdog"        "watchdog"  0
          "wifi_led"        "led"       1, 2
          "i2c"             "i2c"       3, 4
          "uart1_0"         "uart"      7, 8, 9, 10
          "uart1_rx_tx"     "uart"      42, 43
          "uart1_cts_rts"   "uart"      44, 45
          "pcie_clk"        "pcie"      9
          "pcie_wake"       "pcie"      10
          "spi1_0"          "spi"       11, 12, 13, 14
          "pwm1_1"          "pwm"       20,
          "pwm0"            "pwm"       21,
          "pwm1_0"          "pwm"       22,
          "snfi"            "flash"     23, 24, 25, 26, 27, 28
          "spi1_2"          "spi"       29, 30, 31, 32
          "emmc_45"         "emmc"      22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
                                        32

          "spi1_1"          "spi"       23, 24, 25, 26
          "uart1_2_rx_tx"   "uart"      29, 30
          "uart1_2_cts_rts" "uart"      31, 32
          "uart1_1"         "uart"      23, 24, 25, 26
          "uart2_0_rx_tx"   "uart"      29, 30
          "uart2_0_cts_rts" "uart"      31, 32
          "spi0"            "spi"       33, 34, 35, 36
          "spi0_wp_hold"    "spi"       37, 38
          "uart1_3_rx_tx"   "uart"      35, 36
          "uart1_3_cts_rts" "uart"      37, 38
          "uart2_1"         "uart"      33, 34, 35, 36
          "spi1_3"          "spi"       33, 34, 35, 36
          "uart0"           "uart"      39, 40
          "pcie_pereset"    "pcie"      41
          "uart1"           "uart"      42, 43, 44, 45
          "uart2"           "uart"      46, 47, 48, 49
          "emmc_51"         "emmc"      50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
                                        60, 61

          "pcm"             "audio"     62, 63, 64, 65
          "i2s"             "audio"     62, 63, 64, 65
          "switch_int"      "eth"       66
          "mdc_mdio"        "eth"       67
          "wf_2g"           "wifi"      74, 75, 76, 77, 78, 79, 80, 81, 82, 83
          "wf_5g"           "wifi"      91, 92, 93, 94, 95, 96, 97, 98, 99, 100
          "wf_dbdc"         "wifi"      74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
                                        84, 85

        $ref: /schemas/pinctrl/pinmux-node.yaml
        properties:
          function:
            description:
              A string containing the name of the function to mux to the group.
              There is no "audio", "pcie" functions on mt7986b, you can only use
              those functions on mt7986a.
            enum: [audio, emmc, eth, i2c, led, flash, pcie, pwm, spi, uart,
                   watchdog, wifi]
          groups:
            description:
              An array of strings. Each string contains the name of a group.
              There is no "pcie_pereset", "uart1", "uart2" "emmc_51", "pcm", and
              "i2s" groups on mt7986b, you can only use those groups on mt7986a.
        required:
          - function
          - groups

        allOf:
          - if:
              properties:
                function:
                  const: audio
            then:
              properties:
                groups:
                  enum: [pcm, i2s]
          - if:
              properties:
                function:
                  const: emmc
            then:
              properties:
                groups:
                  enum: [emmc_45, emmc_51]
          - if:
              properties:
                function:
                  const: eth
            then:
              properties:
                groups:
                  enum: [switch_int, mdc_mdio]
          - if:
              properties:
                function:
                  const: i2c
            then:
              properties:
                groups:
                  enum: [i2c]
          - if:
              properties:
                function:
                  const: led
            then:
              properties:
                groups:
                  enum: [wifi_led]
          - if:
              properties:
                function:
                  const: flash
            then:
              properties:
                groups:
                  enum: [snfi]
          - if:
              properties:
                function:
                  const: pcie
            then:
              properties:
                groups:
                  items:
                    enum: [pcie_clk, pcie_wake, pcie_pereset]
                  maxItems: 3
          - if:
              properties:
                function:
                  const: pwm
            then:
              properties:
                groups:
                  items:
                    enum: [pwm0, pwm1_0, pwm1_1]
                  maxItems: 2
          - if:
              properties:
                function:
                  const: spi
            then:
              properties:
                groups:
                  items:
                    enum: [spi0, spi0_wp_hold, spi1_0, spi1_1, spi1_2, spi1_3]
                  maxItems: 2
          - if:
              properties:
                function:
                  const: uart
            then:
              properties:
                groups:
                  items:
                    enum: [uart1_0, uart1_rx_tx, uart1_cts_rts, uart1_1,
                           uart1_2_rx_tx, uart1_2_cts_rts, uart1_3_rx_tx,
                           uart1_3_cts_rts, uart2_0_rx_tx, uart2_0_cts_rts,
                           uart2_1, uart0, uart1, uart2]
                  maxItems: 2
          - if:
              properties:
                function:
                  const: watchdog
            then:
              properties:
                groups:
                  enum: [watchdog]
          - if:
              properties:
                function:
                  const: wifi
            then:
              properties:
                groups:
                  items:
                    enum: [wf_2g, wf_5g, wf_dbdc]
                  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. There
              is no PIN 41 to PIN 65 above on mt7686b, you can only use those
              pins on mt7986a.
            items:
              enum: [SYS_WATCHDOG, WF2G_LED, WF5G_LED, I2C_SCL, I2C_SDA, GPIO_0,
                     GPIO_1, GPIO_2, GPIO_3, GPIO_4, GPIO_5, GPIO_6, GPIO_7,
                     GPIO_8, GPIO_9, GPIO_10, GPIO_11, GPIO_12, GPIO_13,
                     GPIO_14, GPIO_15, PWM0, PWM1, 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_PERESET_N, UART1_RXD, UART1_TXD, UART1_CTS,
                     UART1_RTS, UART2_RXD, UART2_TXD, UART2_CTS, UART2_RTS,
                     EMMC_DATA_0, EMMC_DATA_1, EMMC_DATA_2, EMMC_DATA_3,
                     EMMC_DATA_4, EMMC_DATA_5, EMMC_DATA_6, EMMC_DATA_7,
                     EMMC_CMD, EMMC_CK, EMMC_DSL, EMMC_RSTB, PCM_DTX, PCM_DRX,
                     PCM_CLK, PCM_FS, MT7531_INT, SMI_MDC, SMI_MDIO,
                     WF0_DIG_RESETB, WF0_CBA_RESETB, WF0_XO_REQ, WF0_TOP_CLK,
                     WF0_TOP_DATA, WF0_HB1, WF0_HB2, WF0_HB3, WF0_HB4, WF0_HB0,
                     WF0_HB0_B, WF0_HB5, WF0_HB6, WF0_HB7, WF0_HB8, WF0_HB9,
                     WF0_HB10, WF1_DIG_RESETB, WF1_CBA_RESETB, WF1_XO_REQ,
                     WF1_TOP_CLK, WF1_TOP_DATA, WF1_HB1, WF1_HB2, WF1_HB3,
                     WF1_HB4, WF1_HB0, WF1_HB0_B, WF1_HB5, WF1_HB6, WF1_HB7,
                     WF1_HB8]
            maxItems: 101

          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@1001f000 {
        compatible = "mediatek,mt7986a-pinctrl";
        reg = <0 0x1001f000 0 0x1000>,
              <0 0x11c30000 0 0x1000>,
              <0 0x11c40000 0 0x1000>,
              <0 0x11e20000 0 0x1000>,
              <0 0x11e30000 0 0x1000>,
              <0 0x11f00000 0 0x1000>,
              <0 0x11f10000 0 0x1000>,
              <0 0x1000b000 0 0x1000>;
        reg-names = "gpio", "iocfg_rt", "iocfg_rb", "iocfg_lt",
                    "iocfg_lb", "iocfg_tr", "iocfg_tl", "eint";
        gpio-controller;
        #gpio-cells = <2>;
        gpio-ranges = <&pio 0 0 100>;
        interrupt-controller;
        interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
        interrupt-parent = <&gic>;
        #interrupt-cells = <2>;

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

        pwm_pins: pwm-pins {
          mux {
            function = "pwm";
            groups = "pwm0", "pwm1_0";
          };
        };

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

        uart1_pins: uart1-pins {
          mux {
            function = "uart";
            groups = "uart1";
          };
        };

        uart1_3_pins: uart1-3-pins {
          mux {
            function = "uart";
            groups = "uart1_3_rx_tx", "uart1_3_cts_rts";
          };
        };

        uart2_pins: uart2-pins {
          mux {
            function = "uart";
            groups = "uart2";
          };
        };

        mmc0_pins_default: mmc0-pins {
          mux {
            function = "emmc";
            groups = "emmc_51";
          };
          conf-cmd-dat {
            pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
                   "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
                   "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
            input-enable;
            drive-strength = <4>;
            bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
          };
          conf-clk {
            pins = "EMMC_CK";
            drive-strength = <6>;
            bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
          };
          conf-ds {
            pins = "EMMC_DSL";
            bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
          };
          conf-rst {
            pins = "EMMC_RSTB";
            drive-strength = <4>;
            bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
          };
        };

      };
    };
