Commit 0c9a5676 authored by Arınç ÜNAL's avatar Arınç ÜNAL Committed by Linus Walleij
Browse files

dt-bindings: pinctrl: mt7621: add proper function muxing binding



Not every function can be muxed to a group. Add proper binding which
documents which function can be muxed to a group or set of groups.

Signed-off-by: default avatarArınç ÜNAL <arinc.unal@arinc9.com>
Acked-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Acked-by: default avatarSergio Paracuellos <sergio.paracuellos@gmail.com>
Link: https://lore.kernel.org/r/20221231160849.40544-4-arinc.unal@arinc9.com


Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 4e541066
Loading
Loading
Loading
Loading
+198 −7
Original line number Diff line number Diff line
@@ -29,21 +29,213 @@ patternProperties:
        $ref: pinmux-node.yaml#

        properties:
          groups:
            description: The pin group to select.
            enum: [i2c, jtag, mdio, pcie, rgmii1, rgmii2, sdhci, spi, uart1,
                   uart2, uart3, wdt]

          function:
            description: The mux function to select.
            description:
              A string containing the name of the function to mux to the group.
            enum: [gpio, i2c, i2s, jtag, mdio, nand1, nand2, pcie refclk,
                   pcie rst, pcm, rgmii1, rgmii2, sdhci, spdif2, spdif3, spi,
                   uart1, uart2, uart3, wdt refclk, wdt rst]

          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, mdio, pcie, rgmii1, rgmii2, sdhci, spi,
                         uart1, uart2, uart3, wdt]

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

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

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

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

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

          - if:
              properties:
                function:
                  const: nand2
            then:
              properties:
                groups:
                  enum: [sdhci]

          - if:
              properties:
                function:
                  const: pcie refclk
            then:
              properties:
                groups:
                  enum: [pcie]

          - if:
              properties:
                function:
                  const: pcie rst
            then:
              properties:
                groups:
                  enum: [pcie]

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

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

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

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

          - if:
              properties:
                function:
                  const: spdif2
            then:
              properties:
                groups:
                  enum: [uart2]

          - if:
              properties:
                function:
                  const: spdif3
            then:
              properties:
                groups:
                  enum: [uart3]

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

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

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

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

          - if:
              properties:
                function:
                  const: wdt refclk
            then:
              properties:
                groups:
                  enum: [wdt]

          - if:
              properties:
                function:
                  const: wdt rst
            then:
              properties:
                groups:
                  enum: [wdt]

        additionalProperties: false

    additionalProperties: false
@@ -57,7 +249,6 @@ required:
additionalProperties: false

examples:
  # Pinmux controller node
  - |
    pinctrl {
      compatible = "ralink,mt7621-pinctrl";