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

title: SpacemiT K1 SoC Pin Controller

maintainers:
  - Yixun Lan <dlan@gentoo.org>

properties:
  compatible:
    const: spacemit,k1-pinctrl

  reg:
    items:
      - description: pinctrl io memory base

  clocks:
    items:
      - description: Functional Clock
      - description: Bus Clock

  clock-names:
    items:
      - const: func
      - const: bus

  resets:
    maxItems: 1

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

    description:
      A pinctrl node should contain at least one subnode representing the
      pinctrl groups available on the machine.

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

        description:
          Each subnode will list the pins it needs, and how they should
          be configured, with regard to muxer configuration, bias pull,
          drive strength, input schmitt trigger, slew rate, power source.

        allOf:
          - $ref: pincfg-node.yaml#
          - $ref: pinmux-node.yaml#

        properties:
          pinmux:
            description:
              The list of GPIOs and their mux settings that properties in the
              node apply to. This should be set using the K1_PADCONF macro to
              construct the value.

          bias-disable: true

          bias-pull-down: true

          bias-pull-up:
            description: |
              typical value for selecting bias pull up or strong pull up.
              0: normal bias pull up
              1: strong bias pull up
            enum: [ 0, 1 ]

          drive-strength:
            description: |
              typical current when output high level.
              1.8V output: 11, 21, 32, 42 (mA)
              3.3V output: 7, 10, 13, 16, 19, 23, 26, 29 (mA)

          input-schmitt:
            description: |
              typical threshold for schmitt trigger.
              0: buffer mode
              1: trigger mode
              2, 3: trigger mode
            $ref: /schemas/types.yaml#/definitions/uint32
            enum: [ 0, 1, 2, 3 ]

          power-source:
            description: external power supplies at 1.8v or 3.3v.
            enum: [ 1800, 3300 ]

          slew-rate:
            description: |
              slew rate for output buffer.
              0: disable it
              1: enable it (via bundled value from drive strength)
              2: slow speed 0
              3: slow speed 1
              4: medium speed
              5: fast speed
            enum: [ 0, 1, 2, 3, 4, 5 ]

        required:
          - pinmux

required:
  - compatible
  - reg
  - clocks
  - clock-names

additionalProperties: false

examples:
  - |
    #define K1_PADCONF(pin, func) (((pin) << 16) | (func))

    soc {
        #address-cells = <2>;
        #size-cells = <2>;

        pinctrl@d401e000 {
            compatible = "spacemit,k1-pinctrl";
            reg = <0x0 0xd401e000 0x0 0x400>;
            clocks = <&syscon_apbc 42>,
                     <&syscon_apbc 94>;
            clock-names = "func", "bus";

            uart0_2_cfg: uart0-2-cfg {
                uart0-2-pins {
                    pinmux = <K1_PADCONF(68, 2)>,
                             <K1_PADCONF(69, 2)>;

                    bias-pull-up = <0>;
                    drive-strength = <32>;
                };
            };
        };
    };

...
