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

title: Ralink RT5350 Pin Controller

maintainers:
  - Arınç ÜNAL <arinc.unal@arinc9.com>
  - Sergio Paracuellos <sergio.paracuellos@gmail.com>

description: |
  Ralink RT5350 pin controller for RT5350 SoC.
  The pin controller can only set the muxing of pin groups. Muxing individual
  pins is not supported. There is no pinconf support.

properties:
  compatible:
    const: ralink,rt5350-pinctrl

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

    patternProperties:
      '^(.*-)?pinmux$':
        type: object
        description: node for pinctrl.
        $ref: pinmux-node.yaml#
        additionalProperties: false

        properties:
          function:
            description:
              A string containing the name of the function to mux to the group.
            enum: [gpio, gpio i2s, gpio uartf, i2c, i2s uartf, jtag, led,
                   pcm gpio, pcm i2s, pcm uartf, spi, spi_cs1, uartf, uartlite,
                   wdg_cs1]

          groups:
            description:
              An array of strings. Each string contains the name of a group.
            maxItems: 1

        required:
          - groups
          - function

        allOf:
          - if:
              properties:
                function:
                  const: gpio
            then:
              properties:
                groups:
                  enum: [i2c, jtag, led, spi, spi_cs1, uartf, uartlite]

          - if:
              properties:
                function:
                  const: gpio i2s
            then:
              properties:
                groups:
                  enum: [uartf]

          - if:
              properties:
                function:
                  const: gpio uartf
            then:
              properties:
                groups:
                  enum: [uartf]

          - if:
              properties:
                function:
                  const: i2c
            then:
              properties:
                groups:
                  enum: [i2c]

          - if:
              properties:
                function:
                  const: i2s uartf
            then:
              properties:
                groups:
                  enum: [uartf]

          - if:
              properties:
                function:
                  const: jtag
            then:
              properties:
                groups:
                  enum: [jtag]

          - if:
              properties:
                function:
                  const: led
            then:
              properties:
                groups:
                  enum: [led]

          - if:
              properties:
                function:
                  const: pcm gpio
            then:
              properties:
                groups:
                  enum: [uartf]

          - if:
              properties:
                function:
                  const: pcm i2s
            then:
              properties:
                groups:
                  enum: [uartf]

          - if:
              properties:
                function:
                  const: pcm uartf
            then:
              properties:
                groups:
                  enum: [uartf]

          - if:
              properties:
                function:
                  const: spi
            then:
              properties:
                groups:
                  enum: [spi]

          - if:
              properties:
                function:
                  const: spi_cs1
            then:
              properties:
                groups:
                  enum: [spi_cs1]

          - if:
              properties:
                function:
                  const: uartf
            then:
              properties:
                groups:
                  enum: [uartf]

          - if:
              properties:
                function:
                  const: uartlite
            then:
              properties:
                groups:
                  enum: [uartlite]

          - if:
              properties:
                function:
                  const: wdg_cs1
            then:
              properties:
                groups:
                  enum: [spi_cs1]

allOf:
  - $ref: pinctrl.yaml#

required:
  - compatible

additionalProperties: false

examples:
  - |
    pinctrl {
      compatible = "ralink,rt5350-pinctrl";

      i2c_pins: i2c0-pins {
        pinmux {
          groups = "i2c";
          function = "i2c";
        };
      };
    };
