# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause %YAML 1.2 --- $id: http://devicetree.org/schemas/pinctrl/ralink,mt7620-pinctrl.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Ralink MT7620 Pin Controller maintainers: - Arınç ÜNAL - Sergio Paracuellos description: Ralink MT7620 pin controller for MT7620, 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,mt7620-pinctrl 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. 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, -] 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: ephy then: properties: groups: enum: [ephy] - if: properties: function: const: gpio 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] - if: properties: function: const: gpio i2s then: properties: groups: enum: [uartf] - if: properties: function: const: gpio uartf then: properties: groups: enum: [uartf] - if: properties: function: const: i2c then: properties: groups: enum: [i2c] - if: properties: function: const: i2s then: properties: groups: enum: [i2s] - if: properties: function: const: i2s uartf then: properties: 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: const: mdio then: properties: groups: enum: [mdio] - if: properties: function: const: nand then: properties: 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: const: pa then: properties: groups: enum: [pa] - if: properties: function: const: pcie then: properties: groups: enum: [gpio] - if: properties: function: const: pcie refclk then: properties: groups: enum: [pcie] - if: properties: function: const: pcie rst then: properties: groups: enum: [pcie] - if: properties: function: const: pcm then: properties: groups: enum: [i2s] - if: properties: function: const: pcm gpio then: properties: groups: enum: [uartf] - if: properties: function: const: pcm i2s then: properties: groups: enum: [uartf] - if: properties: function: const: pcm uartf then: properties: 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: const: refclk then: properties: groups: anyOf: - description: For MT7620 SoC enum: [mdio] - description: For MT7628 and MT7688 SoCs enum: [gpio, refclk, spi cs1] - if: properties: function: const: rgmii1 then: properties: groups: enum: [rgmii1] - if: properties: function: const: rgmii2 then: properties: groups: enum: [rgmii2] - if: properties: function: const: rsvd then: properties: groups: enum: [p0led_an, p0led_kn, wled_an, wled_kn] - if: properties: function: const: sd then: properties: 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: const: spi then: properties: groups: enum: [spi] - if: properties: function: const: spi cs1 then: properties: groups: enum: [spi cs1] - if: properties: function: const: spi refclk then: properties: 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: const: uartf then: properties: groups: enum: [uartf] - if: properties: function: const: uartlite then: properties: 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: const: wdt refclk then: properties: groups: enum: [wdt] - if: properties: function: const: wdt rst then: properties: groups: enum: [wdt] - if: properties: function: const: wled then: properties: 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 allOf: - $ref: "pinctrl.yaml#" required: - compatible additionalProperties: false examples: - | pinctrl { compatible = "ralink,mt7620-pinctrl"; i2c_pins: i2c0-pins { pinmux { groups = "i2c"; function = "i2c"; }; }; };