[RFC PATCH 10/16] dt-bindings: pinctrl: mediatek: mt7620: split binding
Arınç ÜNAL
arinc.unal at arinc9.com
Tue Feb 28 11:38:30 PST 2023
On 27/02/2023 21:21, Rob Herring wrote:
> 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'?
They are very similar SoCs which have got the same pin configuration.
Just like the RT305X SoCs.
>
>> + - ralink,mt7620-pinctrl
>
> Huh? Doesn't this conflict with the mt7620 schema?
It does, this is what I asked to you and Krzysztof on the composed mail
for the patch series.
>
>> + - 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.
Will do.
Arınç
More information about the linux-arm-kernel
mailing list