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

title: Mediatek MT8186 Pin Controller

maintainers:
  - Sean Wang <sean.wang@mediatek.com>

description: |
  The Mediatek's Pin controller is used to control SoC pins.

properties:
  compatible:
    const: mediatek,mt8186-pinctrl

  gpio-controller: true

  '#gpio-cells':
    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.
    const: 2

  gpio-ranges:
    maxItems: 1

  gpio-line-names: true

  reg:
    description: |
      Physical address base for gpio base registers. There are 8 different GPIO
      physical address base in mt8186.
    maxItems: 8

  reg-names:
    description: |
      Gpio base register names.
    items:
      - const: iocfg0
      - const: iocfg_bm
      - const: iocfg_bl
      - const: iocfg_br
      - const: iocfg_lm
      - const: iocfg_rb
      - const: iocfg_tl
      - const: eint

  interrupt-controller: true

  '#interrupt-cells':
    const: 2

  interrupts:
    description: The interrupt outputs to sysirq
    maxItems: 1

  mediatek,rsel-resistance-in-si-unit:
    type: boolean
    description: |
      Identifying i2c pins pull up/down type which is RSEL. It can support
      RSEL define or si unit value(ohm) to set different resistance.

# PIN CONFIGURATION NODES
patternProperties:
  '-pins$':
    type: object
    additionalProperties: false
    patternProperties:
      '^pins':
        type: object
        additionalProperties: false
        description: |
          A pinctrl node should contain at least one subnodes representing the
          pinctrl groups available on the machine. Each subnode will list the
          pins it needs, and how they should be configured, with regard to muxer
          configuration, pullups, drive strength, input enable/disable and
          input schmitt.
          An example of using macro:
          pincontroller {
            /* GPIO0 set as multifunction GPIO0 */
            gpio-pins {
              pins {
                pinmux = <PINMUX_GPIO0__FUNC_GPIO0>;
              }
            };
            /* GPIO128 set as multifunction SDA0 */
            i2c0-pins {
              pins {
                pinmux = <PINMUX_GPIO128__FUNC_SDA0>;
              }
            };
          };
        $ref: "pinmux-node.yaml"

        properties:
          pinmux:
            description: |
              Integer array, represents gpio pin number and mux setting.
              Supported pin number and mux varies for different SoCs, and are
              defined as macros in dt-bindings/pinctrl/<soc>-pinfunc.h
              directly.

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

          drive-strength-microamp:
            enum: [125, 250, 500, 1000]

          bias-pull-down:
            oneOf:
              - type: boolean
              - enum: [100, 101, 102, 103]
                description: mt8186 pull down PUPD/R0/R1 type define value.
              - enum: [200, 201, 202, 203]
                description: mt8186 pull down RSEL type define value.
              - enum: [75000, 5000]
                description: mt8186 pull down RSEL type si unit value(ohm).
            description: |
              For pull down type is normal, it don't need add RSEL & R1R0 define
              and resistance value.
              For pull down type is PUPD/R0/R1 type, it can add R1R0 define to
              set different resistance. It can support "MTK_PUPD_SET_R1R0_00" &
              "MTK_PUPD_SET_R1R0_01" & "MTK_PUPD_SET_R1R0_10" &
              "MTK_PUPD_SET_R1R0_11" define in mt8186.
              For pull down type is RSEL, it can add RSEL define & resistance
              value(ohm) to set different resistance by identifying property
              "mediatek,rsel-resistance-in-si-unit".
              It can support "MTK_PULL_SET_RSEL_000" & "MTK_PULL_SET_RSEL_001"
              & "MTK_PULL_SET_RSEL_010" & "MTK_PULL_SET_RSEL_011"
              define in mt8186. It can also support resistance value(ohm)
              "75000" & "5000" in mt8186.
              An example of using RSEL define:
              pincontroller {
                i2c0_pin {
                  pins {
                    pinmux = <PINMUX_GPIO128__FUNC_SDA0>;
                    bias-pull-down = <MTK_PULL_SET_RSEL_001>;
                  }
                };
              };
              An example of using si unit resistance value(ohm):
              &pio {
                mediatek,rsel-resistance-in-si-unit;
              }
              pincontroller {
                i2c0_pin {
                  pins {
                    pinmux = <PINMUX_GPIO128__FUNC_SDA0>;
                    bias-pull-down = <75000>;
                  }
                };
              };

          bias-pull-up:
            oneOf:
              - type: boolean
              - enum: [100, 101, 102, 103]
                description: mt8186 pull up PUPD/R0/R1 type define value.
              - enum: [200, 201, 202, 203]
                description: mt8186 pull up RSEL type define value.
              - enum: [1000, 5000, 10000, 75000]
                description: mt8186 pull up RSEL type si unit value(ohm).
            description: |
              For pull up type is normal, it don't need add RSEL & R1R0 define
              and resistance value.
              For pull up type is PUPD/R0/R1 type, it can add R1R0 define to
              set different resistance. It can support "MTK_PUPD_SET_R1R0_00" &
              "MTK_PUPD_SET_R1R0_01" & "MTK_PUPD_SET_R1R0_10" &
              "MTK_PUPD_SET_R1R0_11" define in mt8186.
              For pull up type is RSEL, it can add RSEL define & resistance
              value(ohm) to set different resistance by identifying property
              "mediatek,rsel-resistance-in-si-unit".
              It can support "MTK_PULL_SET_RSEL_000" & "MTK_PULL_SET_RSEL_001"
              & "MTK_PULL_SET_RSEL_010" & "MTK_PULL_SET_RSEL_011"
              define in mt8186. It can also support resistance value(ohm)
              "1000" & "5000" & "10000" & "75000" in mt8186.
              An example of using si unit resistance value(ohm):
              &pio {
                mediatek,rsel-resistance-in-si-unit;
              }
              pincontroller {
                i2c0-pins {
                  pins {
                    pinmux = <PINMUX_GPIO128__FUNC_SDA0>;
                    bias-pull-up = <1000>;
                  }
                };
              };

          bias-disable: true

          output-high: true

          output-low: true

          input-enable: true

          input-disable: true

          input-schmitt-enable: true

          input-schmitt-disable: true

        required:
          - pinmux

required:
  - compatible
  - reg
  - interrupts
  - interrupt-controller
  - '#interrupt-cells'
  - gpio-controller
  - '#gpio-cells'
  - gpio-ranges

additionalProperties: false

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

    pio: pinctrl@10005000 {
      compatible = "mediatek,mt8186-pinctrl";
      reg = <0x10005000 0x1000>,
            <0x10002000 0x0200>,
            <0x10002200 0x0200>,
            <0x10002400 0x0200>,
            <0x10002600 0x0200>,
            <0x10002A00 0x0200>,
            <0x10002c00 0x0200>,
            <0x1000b000 0x1000>;
      reg-names = "iocfg0", "iocfg_bm", "iocfg_bl",
                  "iocfg_br", "iocfg_lm", "iocfg_rb",
                  "iocfg_tl", "eint";
      gpio-controller;
      #gpio-cells = <2>;
      gpio-ranges = <&pio 0 0 185>;
      interrupt-controller;
      interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH 0>;
      #interrupt-cells = <2>;

      pio-pins {
        pins {
          pinmux = <PINMUX_GPIO0__FUNC_GPIO0>;
          output-low;
        };
      };

      spi0-pins {
        pins-spi {
          pinmux = <PINMUX_GPIO0__FUNC_SPI0_CLK_B>,
                   <PINMUX_GPIO1__FUNC_SPI0_CSB_B>,
                   <PINMUX_GPIO2__FUNC_SPI0_MO_B>;
          bias-disable;
        };
        pins-spi-mi {
          pinmux = <PINMUX_GPIO3__FUNC_SPI0_MI_B>;
          bias-pull-down;
        };
      };

      i2c0-pins {
        pins {
          pinmux = <PINMUX_GPIO127__FUNC_SCL0>,
                   <PINMUX_GPIO128__FUNC_SDA0>;
          bias-pull-up = <MTK_PULL_SET_RSEL_001>;
          drive-strength-microamp = <1000>;
        };
      };
    };
