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

dt-bindings: pinctrl: rt2880: 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-5-arinc.unal@arinc9.com


Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 0c9a5676
Loading
Loading
Loading
Loading
+80 −6
Original line number Diff line number Diff line
@@ -29,18 +29,93 @@ patternProperties:
        $ref: pinmux-node.yaml#

        properties:
          groups:
            description: The pin group to select.
            enum: [i2c, spi, uartlite, jtag, mdio, sdram, pci]

          function:
            description: The mux function to select.
            description:
              A string containing the name of the function to mux to the group.
            enum: [gpio, i2c, spi, uartlite, jtag, mdio, sdram, pci]

          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, spi, uartlite, jtag, mdio, sdram, pci]

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

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

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

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

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

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

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

        additionalProperties: false

    additionalProperties: false
@@ -54,7 +129,6 @@ required:
additionalProperties: false

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