summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArınç ÜNAL <arinc.unal@arinc9.com>2023-03-18 00:30:10 +0300
committerLinus Walleij <linus.walleij@linaro.org>2023-03-19 23:47:26 +0300
commit565afac7a37ab861f62edcb0683bc8d67949fc92 (patch)
tree8f4b522954f3f65063b1152458cd032ebb1a3a9d
parent5c7daf4a06065de15e29a9a14dc22acd4b0062f2 (diff)
downloadlinux-565afac7a37ab861f62edcb0683bc8d67949fc92.tar.xz
dt-bindings: pinctrl: mediatek: mt7620: split binding
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. Remove mediatek,mt76x8-pinctrl from mt7620. Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com> Reviewed-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/20230317213011.13656-21-arinc.unal@arinc9.com Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r--Documentation/devicetree/bindings/pinctrl/mediatek,mt7620-pinctrl.yaml379
-rw-r--r--Documentation/devicetree/bindings/pinctrl/mediatek,mt76x8-pinctrl.yaml450
2 files changed, 459 insertions, 370 deletions
diff --git a/Documentation/devicetree/bindings/pinctrl/mediatek,mt7620-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/mediatek,mt7620-pinctrl.yaml
index 808dd8bd276f..591bc0664ec6 100644
--- a/Documentation/devicetree/bindings/pinctrl/mediatek,mt7620-pinctrl.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/mediatek,mt7620-pinctrl.yaml
@@ -11,15 +11,13 @@ 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.
properties:
compatible:
- enum:
- - ralink,mt7620-pinctrl
- - ralink,mt76x8-pinctrl
+ const: ralink,mt7620-pinctrl
patternProperties:
'-pins$':
@@ -37,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:
@@ -64,24 +53,6 @@ patternProperties:
- if:
properties:
function:
- const: antenna
- then:
- properties:
- groups:
- enum: [i2s]
-
- - if:
- properties:
- function:
- const: debug
- then:
- properties:
- groups:
- enum: [i2c]
-
- - if:
- properties:
- function:
const: ephy
then:
properties:
@@ -95,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:
@@ -137,15 +99,6 @@ patternProperties:
- if:
properties:
function:
- const: i2s
- then:
- properties:
- groups:
- enum: [i2s]
-
- - if:
- properties:
- function:
const: i2s uartf
then:
properties:
@@ -155,17 +108,6 @@ patternProperties:
- 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: mdio
then:
properties:
@@ -184,96 +126,6 @@ patternProperties:
- 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: pa
then:
properties:
@@ -283,15 +135,6 @@ patternProperties:
- if:
properties:
function:
- const: pcie
- then:
- properties:
- groups:
- enum: [gpio]
-
- - if:
- properties:
- function:
const: pcie refclk
then:
properties:
@@ -310,15 +153,6 @@ patternProperties:
- if:
properties:
function:
- const: pcm
- then:
- properties:
- groups:
- enum: [i2s]
-
- - if:
- properties:
- function:
const: pcm gpio
then:
properties:
@@ -346,61 +180,11 @@ patternProperties:
- 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:
- anyOf:
- - description: For MT7620 SoC
- enum: [mdio]
-
- - description: For MT7628 and MT7688 SoCs
- enum: [gpio, refclk, spi cs1]
+ enum: [mdio]
- if:
properties:
@@ -423,15 +207,6 @@ patternProperties:
- if:
properties:
function:
- const: rsvd
- then:
- properties:
- groups:
- enum: [p0led_an, p0led_kn, wled_an, wled_kn]
-
- - if:
- properties:
- function:
const: sd
then:
properties:
@@ -441,42 +216,6 @@ patternProperties:
- 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:
@@ -486,15 +225,6 @@ patternProperties:
- if:
properties:
function:
- const: spi cs1
- then:
- properties:
- groups:
- enum: [spi cs1]
-
- - if:
- properties:
- function:
const: spi refclk
then:
properties:
@@ -504,51 +234,6 @@ patternProperties:
- 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: uartf
then:
properties:
@@ -567,25 +252,6 @@ patternProperties:
- 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: wdt refclk
then:
properties:
@@ -610,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]
-
allOf:
- $ref: pinctrl.yaml#
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..31849dd5940b
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/mediatek,mt76x8-pinctrl.yaml
@@ -0,0 +1,450 @@
+# 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:
+ const: ralink,mt76x8-pinctrl
+
+patternProperties:
+ '-pins$':
+ type: object
+ additionalProperties: false
+
+ patternProperties:
+ '^(.*-)?pinmux$':
+ type: object
+ description: node for pinctrl.
+ $ref: pinmux-node.yaml#
+ additionalProperties: false
+
+ 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]
+
+allOf:
+ - $ref: pinctrl.yaml#
+
+required:
+ - compatible
+
+additionalProperties: false
+
+examples:
+ - |
+ pinctrl {
+ compatible = "ralink,mt76x8-pinctrl";
+
+ i2c_pins: i2c0-pins {
+ pinmux {
+ groups = "i2c";
+ function = "i2c";
+ };
+ };
+ };