Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: pinctrl: document polarfire soc iomux0 pinmux

On Polarfire SoC, iomux0 is responsible for routing functions to either
Multiprocessor Subsystem (MSS) IOs or to the FPGA fabric, where they
can either interface with custom RTL or be routed to the FPGA fabric's
IOs. Document it.

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

authored by

Conor Dooley and committed by
Linus Walleij
2f0073af 38cf9d64

+101 -1
+89
Documentation/devicetree/bindings/pinctrl/microchip,mpfs-pinctrl-iomux0.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/pinctrl/microchip,mpfs-pinctrl-iomux0.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Microchip PolarFire SoC iomux0 8 + 9 + maintainers: 10 + - Conor Dooley <conor.dooley@microchip.com> 11 + 12 + description: 13 + iomux0 is responsible for routing some functions to either the FPGA fabric, 14 + or to MSSIOs. It only performs muxing, and has no IO configuration role, as 15 + fabric IOs are configured separately and just routing a function to MSSIOs is 16 + not sufficient for it to actually get mapped to an MSSIO, just makes it 17 + possible. 18 + 19 + properties: 20 + compatible: 21 + oneOf: 22 + - const: microchip,mpfs-pinctrl-iomux0 23 + - items: 24 + - const: microchip,pic64gx-pinctrl-iomux0 25 + - const: microchip,mpfs-pinctrl-iomux0 26 + 27 + reg: 28 + maxItems: 1 29 + 30 + pinctrl-use-default: true 31 + 32 + patternProperties: 33 + '^mux-': 34 + type: object 35 + $ref: pinmux-node.yaml 36 + additionalProperties: false 37 + 38 + properties: 39 + function: 40 + description: 41 + A string containing the name of the function to mux to the group. 42 + enum: [ spi0, spi1, i2c0, i2c1, can0, can1, qspi, uart0, uart1, uart2, 43 + uart3, uart4, mdio0, mdio1 ] 44 + 45 + groups: 46 + description: 47 + An array of strings. Each string contains the name of a group. 48 + items: 49 + enum: [ spi0_fabric, spi0_mssio, spi1_fabric, spi1_mssio, i2c0_fabric, 50 + i2c0_mssio, i2c1_fabric, i2c1_mssio, can0_fabric, can0_mssio, 51 + can1_fabric, can1_mssio, qspi_fabric, qspi_mssio, 52 + uart0_fabric, uart0_mssio, uart1_fabric, uart1_mssio, 53 + uart2_fabric, uart2_mssio, uart3_fabric, uart3_mssio, 54 + uart4_fabric, uart4_mssio, mdio0_fabric, mdio0_mssio, 55 + mdio1_fabric, mdio1_mssio ] 56 + 57 + required: 58 + - function 59 + - groups 60 + 61 + required: 62 + - compatible 63 + - reg 64 + 65 + additionalProperties: false 66 + 67 + examples: 68 + - | 69 + soc { 70 + #size-cells = <1>; 71 + #address-cells = <1>; 72 + 73 + pinctrl@200 { 74 + compatible = "microchip,mpfs-pinctrl-iomux0"; 75 + reg = <0x200 0x4>; 76 + 77 + mux-spi0-fabric { 78 + function = "spi0"; 79 + groups = "spi0_fabric"; 80 + }; 81 + 82 + mux-spi1-mssio { 83 + function = "spi1"; 84 + groups = "spi1_mssio"; 85 + }; 86 + }; 87 + }; 88 + 89 + ...
+12 -1
Documentation/devicetree/bindings/soc/microchip/microchip,mpfs-mss-top-sysreg.yaml
··· 18 18 items: 19 19 - const: microchip,mpfs-mss-top-sysreg 20 20 - const: syscon 21 + - const: simple-mfd 21 22 22 23 reg: 23 24 maxItems: 1 25 + 26 + '#address-cells': 27 + const: 1 28 + 29 + '#size-cells': 30 + const: 1 24 31 25 32 '#reset-cells': 26 33 description: ··· 38 31 of PolarFire clock/reset IDs. 39 32 const: 1 40 33 34 + pinctrl@200: 35 + type: object 36 + $ref: /schemas/pinctrl/microchip,mpfs-pinctrl-iomux0.yaml 37 + 41 38 required: 42 39 - compatible 43 40 - reg ··· 51 40 examples: 52 41 - | 53 42 syscon@20002000 { 54 - compatible = "microchip,mpfs-mss-top-sysreg", "syscon"; 43 + compatible = "microchip,mpfs-mss-top-sysreg", "syscon", "simple-mfd"; 55 44 reg = <0x20002000 0x1000>; 56 45 #reset-cells = <1>; 57 46 };