Message ID | 20230222183932.33267-11-arinc.unal@arinc9.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | pinctrl: ralink: fix ABI, improve driver, move to mediatek, improve dt-bindings | expand |
On Wed, Feb 22, 2023 at 09:39:26PM +0300, arinc9.unal@gmail.com wrote: > From: Arınç ÜNAL <arinc.unal@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@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@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@arinc9.com> > + - Sergio Paracuellos <sergio.paracuellos@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
On 27/02/2023 21:21, Rob Herring wrote: > On Wed, Feb 22, 2023 at 09:39:26PM +0300, arinc9.unal@gmail.com wrote: >> From: Arınç ÜNAL <arinc.unal@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@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@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@arinc9.com> >> + - Sergio Paracuellos <sergio.paracuellos@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ç
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@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@arinc9.com> + - Sergio Paracuellos <sergio.paracuellos@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 + - ralink,mt7620-pinctrl + - 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 + +allOf: + - $ref: "pinctrl.yaml#" + +required: + - compatible + +additionalProperties: false + +examples: + - | + pinctrl { + compatible = "mediatek,mt76x8-pinctrl"; + + i2c_pins: i2c0-pins { + pinmux { + groups = "i2c"; + function = "i2c"; + }; + }; + };