# 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"; }; }; };