[RFC PATCH 10/16] dt-bindings: pinctrl: mediatek: mt7620: split binding
Rob Herring
robh at kernel.org
Mon Feb 27 10:21:55 PST 2023
On Wed, Feb 22, 2023 at 09:39:26PM +0300, arinc9.unal at gmail.com wrote:
> From: Arınç ÜNAL <arinc.unal at arinc9.com>
>
> The MT7628 and MT7688 SoCs contain different pin muxing information,
> therefore, should be split. This can be done now that there are compatible
> strings to distinguish them from other SoCs.
>
> Split the schema out to mediatek,mt76x8-pinctrl.yaml.
>
> Signed-off-by: Arınç ÜNAL <arinc.unal at arinc9.com>
> ---
> .../pinctrl/mediatek,mt7620-pinctrl.yaml | 375 +--------------
> .../pinctrl/mediatek,mt76x8-pinctrl.yaml | 454 ++++++++++++++++++
> 2 files changed, 462 insertions(+), 367 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/pinctrl/mediatek,mt76x8-pinctrl.yaml
>
> diff --git a/Documentation/devicetree/bindings/pinctrl/mediatek,mt7620-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/mediatek,mt7620-pinctrl.yaml
> index 3bf58da8a394..ea4a1194fbc4 100644
> --- a/Documentation/devicetree/bindings/pinctrl/mediatek,mt7620-pinctrl.yaml
> +++ b/Documentation/devicetree/bindings/pinctrl/mediatek,mt7620-pinctrl.yaml
> @@ -11,7 +11,7 @@ maintainers:
> - Sergio Paracuellos <sergio.paracuellos at gmail.com>
>
> description:
> - MediaTek MT7620 pin controller for MT7620, MT7628 and MT7688 SoCs.
> + MediaTek MT7620 pin controller for MT7620 SoC.
> The pin controller can only set the muxing of pin groups. Muxing individual
> pins is not supported. There is no pinconf support.
>
> @@ -35,19 +35,10 @@ patternProperties:
> function:
> description:
> A string containing the name of the function to mux to the group.
> - anyOf:
> - - description: For MT7620 SoC
> - enum: [ephy, gpio, gpio i2s, gpio uartf, i2c, i2s uartf, mdio, nand, pa,
> - pcie refclk, pcie rst, pcm gpio, pcm i2s, pcm uartf, refclk,
> - rgmii1, rgmii2, sd, spi, spi refclk, uartf, uartlite, wdt refclk,
> - wdt rst, wled]
> -
> - - description: For MT7628 and MT7688 SoCs
> - enum: [antenna, debug, gpio, i2c, i2s, jtag, p0led_an, p0led_kn,
> - p1led_an, p1led_kn, p2led_an, p2led_kn, p3led_an, p3led_kn,
> - p4led_an, p4led_kn, pcie, pcm, perst, pwm, pwm0, pwm1, pwm_uart2,
> - refclk, rsvd, sdxc, sdxc d5 d4, sdxc d6, sdxc d7, spi, spi cs1,
> - spis, sw_r, uart0, uart1, uart2, utif, wdt, wled_an, wled_kn, -]
> + enum: [ephy, gpio, gpio i2s, gpio uartf, i2c, i2s uartf, mdio, nand,
> + pa, pcie refclk, pcie rst, pcm gpio, pcm i2s, pcm uartf,
> + refclk, rgmii1, rgmii2, sd, spi, spi refclk, uartf, uartlite,
> + wdt refclk, wdt rst, wled]
>
> groups:
> description:
> @@ -59,24 +50,6 @@ patternProperties:
> - function
>
> allOf:
> - - if:
> - properties:
> - function:
> - const: antenna
> - then:
> - properties:
> - groups:
> - enum: [i2s]
> -
> - - if:
> - properties:
> - function:
> - const: debug
> - then:
> - properties:
> - groups:
> - enum: [i2c]
> -
> - if:
> properties:
> function:
> @@ -93,17 +66,8 @@ patternProperties:
> then:
> properties:
> groups:
> - anyOf:
> - - description: For MT7620 SoC
> - enum: [ephy, i2c, mdio, nd_sd, pa, pcie, rgmii1, rgmii2,
> - spi, spi refclk, uartf, uartlite, wdt, wled]
> -
> - - description: For MT7628 and MT7688 SoCs
> - enum: [gpio, i2c, i2s, p0led_an, p0led_kn, p1led_an,
> - p1led_kn, p2led_an, p2led_kn, p3led_an, p3led_kn,
> - p4led_an, p4led_kn, perst, pwm0, pwm1, refclk,
> - sdmode, spi, spi cs1, spis, uart0, uart1, uart2,
> - wdt, wled_an, wled_kn]
> + enum: [ephy, i2c, mdio, nd_sd, pa, pcie, rgmii1, rgmii2, spi,
> + spi refclk, uartf, uartlite, wdt, wled]
>
> - if:
> properties:
> @@ -132,15 +96,6 @@ patternProperties:
> groups:
> enum: [i2c]
>
> - - if:
> - properties:
> - function:
> - const: i2s
> - then:
> - properties:
> - groups:
> - enum: [i2s]
> -
> - if:
> properties:
> function:
> @@ -150,17 +105,6 @@ patternProperties:
> groups:
> enum: [uartf]
>
> - - if:
> - properties:
> - function:
> - const: jtag
> - then:
> - properties:
> - groups:
> - enum: [p0led_an, p0led_kn, p1led_an, p1led_kn, p2led_an,
> - p2led_kn, p3led_an, p3led_kn, p4led_an, p4led_kn,
> - sdmode]
> -
> - if:
> properties:
> function:
> @@ -179,96 +123,6 @@ patternProperties:
> groups:
> enum: [nd_sd]
>
> - - if:
> - properties:
> - function:
> - const: p0led_an
> - then:
> - properties:
> - groups:
> - enum: [p0led_an]
> -
> - - if:
> - properties:
> - function:
> - const: p0led_kn
> - then:
> - properties:
> - groups:
> - enum: [p0led_kn]
> -
> - - if:
> - properties:
> - function:
> - const: p1led_an
> - then:
> - properties:
> - groups:
> - enum: [p1led_an]
> -
> - - if:
> - properties:
> - function:
> - const: p1led_kn
> - then:
> - properties:
> - groups:
> - enum: [p1led_kn]
> -
> - - if:
> - properties:
> - function:
> - const: p2led_an
> - then:
> - properties:
> - groups:
> - enum: [p2led_an]
> -
> - - if:
> - properties:
> - function:
> - const: p2led_kn
> - then:
> - properties:
> - groups:
> - enum: [p2led_kn]
> -
> - - if:
> - properties:
> - function:
> - const: p3led_an
> - then:
> - properties:
> - groups:
> - enum: [p3led_an]
> -
> - - if:
> - properties:
> - function:
> - const: p3led_kn
> - then:
> - properties:
> - groups:
> - enum: [p3led_kn]
> -
> - - if:
> - properties:
> - function:
> - const: p4led_an
> - then:
> - properties:
> - groups:
> - enum: [p4led_an]
> -
> - - if:
> - properties:
> - function:
> - const: p4led_kn
> - then:
> - properties:
> - groups:
> - enum: [p4led_kn]
> -
> - if:
> properties:
> function:
> @@ -278,15 +132,6 @@ patternProperties:
> groups:
> enum: [pa]
>
> - - if:
> - properties:
> - function:
> - const: pcie
> - then:
> - properties:
> - groups:
> - enum: [gpio]
> -
> - if:
> properties:
> function:
> @@ -305,15 +150,6 @@ patternProperties:
> groups:
> enum: [pcie]
>
> - - if:
> - properties:
> - function:
> - const: pcm
> - then:
> - properties:
> - groups:
> - enum: [i2s]
> -
> - if:
> properties:
> function:
> @@ -341,51 +177,6 @@ patternProperties:
> groups:
> enum: [uartf]
>
> - - if:
> - properties:
> - function:
> - const: perst
> - then:
> - properties:
> - groups:
> - enum: [perst]
> -
> - - if:
> - properties:
> - function:
> - const: pwm
> - then:
> - properties:
> - groups:
> - enum: [uart1, uart2]
> -
> - - if:
> - properties:
> - function:
> - const: pwm0
> - then:
> - properties:
> - groups:
> - enum: [pwm0]
> -
> - - if:
> - properties:
> - function:
> - const: pwm1
> - then:
> - properties:
> - groups:
> - enum: [pwm1]
> -
> - - if:
> - properties:
> - function:
> - const: pwm_uart2
> - then:
> - properties:
> - groups:
> - enum: [spis]
> -
> - if:
> properties:
> function:
> @@ -393,12 +184,7 @@ patternProperties:
> then:
> properties:
> groups:
> - anyOf:
> - - description: For MT7620 SoC
> - enum: [mdio]
> -
> - - description: For MT7628 and MT7688 SoCs
> - enum: [gpio, refclk, spi cs1]
> + enum: [mdio]
>
> - if:
> properties:
> @@ -418,15 +204,6 @@ patternProperties:
> groups:
> enum: [rgmii2]
>
> - - if:
> - properties:
> - function:
> - const: rsvd
> - then:
> - properties:
> - groups:
> - enum: [p0led_an, p0led_kn, wled_an, wled_kn]
> -
> - if:
> properties:
> function:
> @@ -436,42 +213,6 @@ patternProperties:
> groups:
> enum: [nd_sd]
>
> - - if:
> - properties:
> - function:
> - const: sdxc
> - then:
> - properties:
> - groups:
> - enum: [sdmode]
> -
> - - if:
> - properties:
> - function:
> - const: sdxc d5 d4
> - then:
> - properties:
> - groups:
> - enum: [uart2]
> -
> - - if:
> - properties:
> - function:
> - const: sdxc d6
> - then:
> - properties:
> - groups:
> - enum: [pwm1]
> -
> - - if:
> - properties:
> - function:
> - const: sdxc d7
> - then:
> - properties:
> - groups:
> - enum: [pwm0]
> -
> - if:
> properties:
> function:
> @@ -481,15 +222,6 @@ patternProperties:
> groups:
> enum: [spi]
>
> - - if:
> - properties:
> - function:
> - const: spi cs1
> - then:
> - properties:
> - groups:
> - enum: [spi cs1]
> -
> - if:
> properties:
> function:
> @@ -499,51 +231,6 @@ patternProperties:
> groups:
> enum: [spi refclk]
>
> - - if:
> - properties:
> - function:
> - const: spis
> - then:
> - properties:
> - groups:
> - enum: [spis]
> -
> - - if:
> - properties:
> - function:
> - const: sw_r
> - then:
> - properties:
> - groups:
> - enum: [uart1]
> -
> - - if:
> - properties:
> - function:
> - const: uart0
> - then:
> - properties:
> - groups:
> - enum: [uart0]
> -
> - - if:
> - properties:
> - function:
> - const: uart1
> - then:
> - properties:
> - groups:
> - enum: [uart1]
> -
> - - if:
> - properties:
> - function:
> - const: uart2
> - then:
> - properties:
> - groups:
> - enum: [uart2]
> -
> - if:
> properties:
> function:
> @@ -562,25 +249,6 @@ patternProperties:
> groups:
> enum: [uartlite]
>
> - - if:
> - properties:
> - function:
> - const: utif
> - then:
> - properties:
> - groups:
> - enum: [p1led_an, p1led_kn, p2led_an, p2led_kn, p3led_an,
> - p3led_kn, p4led_an, p4led_kn, pwm0, pwm1, sdmode, spis]
> -
> - - if:
> - properties:
> - function:
> - const: wdt
> - then:
> - properties:
> - groups:
> - enum: [wdt]
> -
> - if:
> properties:
> function:
> @@ -608,33 +276,6 @@ patternProperties:
> groups:
> enum: [wled]
>
> - - if:
> - properties:
> - function:
> - const: wled_an
> - then:
> - properties:
> - groups:
> - enum: [wled_an]
> -
> - - if:
> - properties:
> - function:
> - const: wled_kn
> - then:
> - properties:
> - groups:
> - enum: [wled_kn]
> -
> - - if:
> - properties:
> - function:
> - const: "-"
> - then:
> - properties:
> - groups:
> - enum: [i2c, spi cs1, uart0]
> -
> additionalProperties: false
>
> additionalProperties: false
> diff --git a/Documentation/devicetree/bindings/pinctrl/mediatek,mt76x8-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/mediatek,mt76x8-pinctrl.yaml
> new file mode 100644
> index 000000000000..c818c8947866
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/pinctrl/mediatek,mt76x8-pinctrl.yaml
> @@ -0,0 +1,454 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/pinctrl/mediatek,mt76x8-pinctrl.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: MediaTek MT76X8 Pin Controller
> +
> +maintainers:
> + - Arınç ÜNAL <arinc.unal at arinc9.com>
> + - Sergio Paracuellos <sergio.paracuellos at gmail.com>
> +
> +description:
> + MediaTek MT76X8 pin controller for MT7628 and MT7688 SoCs.
> + The pin controller can only set the muxing of pin groups. Muxing individual
> + pins is not supported. There is no pinconf support.
> +
> +properties:
> + compatible:
> + enum:
> + - mediatek,mt76x8-pinctrl
We generally don't do wildcards in compatible strings. Are these 2 SoCs
really 'the same'?
> + - ralink,mt7620-pinctrl
Huh? Doesn't this conflict with the mt7620 schema?
> + - ralink,rt2880-pinmux
> +
> +patternProperties:
> + '-pins$':
> + type: object
> + patternProperties:
> + '^(.*-)?pinmux$':
> + type: object
> + description: node for pinctrl.
> + $ref: pinmux-node.yaml#
> +
> + properties:
> + function:
> + description:
> + A string containing the name of the function to mux to the group.
> + enum: [antenna, debug, gpio, i2c, i2s, jtag, p0led_an, p0led_kn,
> + p1led_an, p1led_kn, p2led_an, p2led_kn, p3led_an, p3led_kn,
> + p4led_an, p4led_kn, pcie, pcm, perst, pwm, pwm0, pwm1,
> + pwm_uart2, refclk, rsvd, sdxc, sdxc d5 d4, sdxc d6, sdxc d7,
> + spi, spi cs1, spis, sw_r, uart0, uart1, uart2, utif, wdt,
> + wled_an, wled_kn, -]
> +
> + groups:
> + description:
> + An array of strings. Each string contains the name of a group.
> + maxItems: 1
> +
> + required:
> + - groups
> + - function
> +
> + allOf:
> + - if:
> + properties:
> + function:
> + const: antenna
> + then:
> + properties:
> + groups:
> + enum: [i2s]
> +
> + - if:
> + properties:
> + function:
> + const: debug
> + then:
> + properties:
> + groups:
> + enum: [i2c]
> +
> + - if:
> + properties:
> + function:
> + const: gpio
> + then:
> + properties:
> + groups:
> + enum: [gpio, i2c, i2s, p0led_an, p0led_kn, p1led_an, p1led_kn,
> + p2led_an, p2led_kn, p3led_an, p3led_kn, p4led_an,
> + p4led_kn, perst, pwm0, pwm1, refclk, sdmode, spi,
> + spi cs1, spis, uart0, uart1, uart2, wdt, wled_an,
> + wled_kn]
> +
> + - if:
> + properties:
> + function:
> + const: i2c
> + then:
> + properties:
> + groups:
> + enum: [i2c]
> +
> + - if:
> + properties:
> + function:
> + const: i2s
> + then:
> + properties:
> + groups:
> + enum: [i2s]
> +
> + - if:
> + properties:
> + function:
> + const: jtag
> + then:
> + properties:
> + groups:
> + enum: [p0led_an, p0led_kn, p1led_an, p1led_kn, p2led_an,
> + p2led_kn, p3led_an, p3led_kn, p4led_an, p4led_kn,
> + sdmode]
> +
> + - if:
> + properties:
> + function:
> + const: p0led_an
> + then:
> + properties:
> + groups:
> + enum: [p0led_an]
> +
> + - if:
> + properties:
> + function:
> + const: p0led_kn
> + then:
> + properties:
> + groups:
> + enum: [p0led_kn]
> +
> + - if:
> + properties:
> + function:
> + const: p1led_an
> + then:
> + properties:
> + groups:
> + enum: [p1led_an]
> +
> + - if:
> + properties:
> + function:
> + const: p1led_kn
> + then:
> + properties:
> + groups:
> + enum: [p1led_kn]
> +
> + - if:
> + properties:
> + function:
> + const: p2led_an
> + then:
> + properties:
> + groups:
> + enum: [p2led_an]
> +
> + - if:
> + properties:
> + function:
> + const: p2led_kn
> + then:
> + properties:
> + groups:
> + enum: [p2led_kn]
> +
> + - if:
> + properties:
> + function:
> + const: p3led_an
> + then:
> + properties:
> + groups:
> + enum: [p3led_an]
> +
> + - if:
> + properties:
> + function:
> + const: p3led_kn
> + then:
> + properties:
> + groups:
> + enum: [p3led_kn]
> +
> + - if:
> + properties:
> + function:
> + const: p4led_an
> + then:
> + properties:
> + groups:
> + enum: [p4led_an]
> +
> + - if:
> + properties:
> + function:
> + const: p4led_kn
> + then:
> + properties:
> + groups:
> + enum: [p4led_kn]
> +
> + - if:
> + properties:
> + function:
> + const: pcie
> + then:
> + properties:
> + groups:
> + enum: [gpio]
> +
> + - if:
> + properties:
> + function:
> + const: pcm
> + then:
> + properties:
> + groups:
> + enum: [i2s]
> +
> + - if:
> + properties:
> + function:
> + const: perst
> + then:
> + properties:
> + groups:
> + enum: [perst]
> +
> + - if:
> + properties:
> + function:
> + const: pwm
> + then:
> + properties:
> + groups:
> + enum: [uart1, uart2]
> +
> + - if:
> + properties:
> + function:
> + const: pwm0
> + then:
> + properties:
> + groups:
> + enum: [pwm0]
> +
> + - if:
> + properties:
> + function:
> + const: pwm1
> + then:
> + properties:
> + groups:
> + enum: [pwm1]
> +
> + - if:
> + properties:
> + function:
> + const: pwm_uart2
> + then:
> + properties:
> + groups:
> + enum: [spis]
> +
> + - if:
> + properties:
> + function:
> + const: refclk
> + then:
> + properties:
> + groups:
> + enum: [gpio, refclk, spi cs1]
> +
> + - if:
> + properties:
> + function:
> + const: rsvd
> + then:
> + properties:
> + groups:
> + enum: [p0led_an, p0led_kn, wled_an, wled_kn]
> +
> + - if:
> + properties:
> + function:
> + const: sdxc
> + then:
> + properties:
> + groups:
> + enum: [sdmode]
> +
> + - if:
> + properties:
> + function:
> + const: sdxc d5 d4
> + then:
> + properties:
> + groups:
> + enum: [uart2]
> +
> + - if:
> + properties:
> + function:
> + const: sdxc d6
> + then:
> + properties:
> + groups:
> + enum: [pwm1]
> +
> + - if:
> + properties:
> + function:
> + const: sdxc d7
> + then:
> + properties:
> + groups:
> + enum: [pwm0]
> +
> + - 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: spis
> + then:
> + properties:
> + groups:
> + enum: [spis]
> +
> + - if:
> + properties:
> + function:
> + const: sw_r
> + then:
> + properties:
> + groups:
> + enum: [uart1]
> +
> + - if:
> + properties:
> + function:
> + const: uart0
> + then:
> + properties:
> + groups:
> + enum: [uart0]
> +
> + - if:
> + properties:
> + function:
> + const: uart1
> + then:
> + properties:
> + groups:
> + enum: [uart1]
> +
> + - if:
> + properties:
> + function:
> + const: uart2
> + then:
> + properties:
> + groups:
> + enum: [uart2]
> +
> + - if:
> + properties:
> + function:
> + const: utif
> + then:
> + properties:
> + groups:
> + enum: [p1led_an, p1led_kn, p2led_an, p2led_kn, p3led_an,
> + p3led_kn, p4led_an, p4led_kn, pwm0, pwm1, sdmode, spis]
> +
> + - if:
> + properties:
> + function:
> + const: wdt
> + then:
> + properties:
> + groups:
> + enum: [wdt]
> +
> + - if:
> + properties:
> + function:
> + const: wled_an
> + then:
> + properties:
> + groups:
> + enum: [wled_an]
> +
> + - if:
> + properties:
> + function:
> + const: wled_kn
> + then:
> + properties:
> + groups:
> + enum: [wled_kn]
> +
> + - if:
> + properties:
> + function:
> + const: "-"
> + then:
> + properties:
> + groups:
> + enum: [i2c, spi cs1, uart0]
> +
> + additionalProperties: false
> +
> + additionalProperties: false
Move these above 'properties'. It's easier to read than after a long
indented section.
> +
> +allOf:
> + - $ref: "pinctrl.yaml#"
Drop quotes.
Rob
More information about the Linux-mediatek
mailing list