15956d97fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0 25956d97fSEmmanuel Vadot%YAML 1.2 35956d97fSEmmanuel Vadot--- 45956d97fSEmmanuel Vadot$id: http://devicetree.org/schemas/mux/reg-mux.yaml# 55956d97fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 65956d97fSEmmanuel Vadot 7*8bab661aSEmmanuel Vadottitle: Generic register bitfield-based multiplexer controller 85956d97fSEmmanuel Vadot 95956d97fSEmmanuel Vadotmaintainers: 105956d97fSEmmanuel Vadot - Peter Rosin <peda@axentia.se> 115956d97fSEmmanuel Vadot 125956d97fSEmmanuel Vadotdescription: |+ 135956d97fSEmmanuel Vadot Define register bitfields to be used to control multiplexers. The parent 145956d97fSEmmanuel Vadot device tree node must be a device node to provide register r/w access. 155956d97fSEmmanuel Vadot 165956d97fSEmmanuel Vadotproperties: 175956d97fSEmmanuel Vadot compatible: 185956d97fSEmmanuel Vadot enum: 195956d97fSEmmanuel Vadot - reg-mux # parent device of mux controller is not syscon device 205956d97fSEmmanuel Vadot - mmio-mux # parent device of mux controller is syscon device 215956d97fSEmmanuel Vadot 225956d97fSEmmanuel Vadot reg: true 235956d97fSEmmanuel Vadot 245956d97fSEmmanuel Vadot '#mux-control-cells': 255956d97fSEmmanuel Vadot const: 1 265956d97fSEmmanuel Vadot 275956d97fSEmmanuel Vadot mux-reg-masks: 28d5b0e70fSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32-matrix 29d5b0e70fSEmmanuel Vadot items: 30d5b0e70fSEmmanuel Vadot items: 31d5b0e70fSEmmanuel Vadot - description: register offset 32d5b0e70fSEmmanuel Vadot - description: pre-shifted bitfield mask 33d5b0e70fSEmmanuel Vadot description: Each entry pair describes a single mux control. 345956d97fSEmmanuel Vadot 355956d97fSEmmanuel Vadot idle-states: true 365956d97fSEmmanuel Vadot 375956d97fSEmmanuel Vadotrequired: 385956d97fSEmmanuel Vadot - compatible 395956d97fSEmmanuel Vadot - mux-reg-masks 405956d97fSEmmanuel Vadot - '#mux-control-cells' 415956d97fSEmmanuel Vadot 425956d97fSEmmanuel VadotadditionalProperties: false 435956d97fSEmmanuel Vadot 445956d97fSEmmanuel Vadotexamples: 455956d97fSEmmanuel Vadot - | 465956d97fSEmmanuel Vadot /* The parent device of mux controller is not a syscon device. */ 475956d97fSEmmanuel Vadot 485956d97fSEmmanuel Vadot #include <dt-bindings/mux/mux.h> 495956d97fSEmmanuel Vadot 505956d97fSEmmanuel Vadot mux-controller { 515956d97fSEmmanuel Vadot compatible = "reg-mux"; 525956d97fSEmmanuel Vadot #mux-control-cells = <1>; 535956d97fSEmmanuel Vadot mux-reg-masks = 545956d97fSEmmanuel Vadot <0x54 0xf8>, /* 0: reg 0x54, bits 7:3 */ 555956d97fSEmmanuel Vadot <0x54 0x07>; /* 1: reg 0x54, bits 2:0 */ 565956d97fSEmmanuel Vadot }; 575956d97fSEmmanuel Vadot 585956d97fSEmmanuel Vadot mdio-mux-1 { 595956d97fSEmmanuel Vadot compatible = "mdio-mux-multiplexer"; 605956d97fSEmmanuel Vadot mux-controls = <&mux1 0>; 615956d97fSEmmanuel Vadot mdio-parent-bus = <&emdio1>; 625956d97fSEmmanuel Vadot #address-cells = <1>; 635956d97fSEmmanuel Vadot #size-cells = <0>; 645956d97fSEmmanuel Vadot 655956d97fSEmmanuel Vadot mdio@0 { 665956d97fSEmmanuel Vadot reg = <0x0>; 675956d97fSEmmanuel Vadot #address-cells = <1>; 685956d97fSEmmanuel Vadot #size-cells = <0>; 695956d97fSEmmanuel Vadot }; 705956d97fSEmmanuel Vadot 715956d97fSEmmanuel Vadot mdio@8 { 725956d97fSEmmanuel Vadot reg = <0x8>; 735956d97fSEmmanuel Vadot #address-cells = <1>; 745956d97fSEmmanuel Vadot #size-cells = <0>; 755956d97fSEmmanuel Vadot }; 765956d97fSEmmanuel Vadot }; 775956d97fSEmmanuel Vadot 785956d97fSEmmanuel Vadot mdio-mux-2 { 795956d97fSEmmanuel Vadot compatible = "mdio-mux-multiplexer"; 805956d97fSEmmanuel Vadot mux-controls = <&mux1 1>; 815956d97fSEmmanuel Vadot mdio-parent-bus = <&emdio2>; 825956d97fSEmmanuel Vadot #address-cells = <1>; 835956d97fSEmmanuel Vadot #size-cells = <0>; 845956d97fSEmmanuel Vadot 855956d97fSEmmanuel Vadot mdio@0 { 865956d97fSEmmanuel Vadot reg = <0x0>; 875956d97fSEmmanuel Vadot #address-cells = <1>; 885956d97fSEmmanuel Vadot #size-cells = <0>; 895956d97fSEmmanuel Vadot }; 905956d97fSEmmanuel Vadot 915956d97fSEmmanuel Vadot mdio@1 { 925956d97fSEmmanuel Vadot reg = <0x1>; 935956d97fSEmmanuel Vadot #address-cells = <1>; 945956d97fSEmmanuel Vadot #size-cells = <0>; 955956d97fSEmmanuel Vadot }; 965956d97fSEmmanuel Vadot }; 975956d97fSEmmanuel Vadot 985956d97fSEmmanuel Vadot - | 995956d97fSEmmanuel Vadot /* The parent device of mux controller is syscon device. */ 1005956d97fSEmmanuel Vadot 1015956d97fSEmmanuel Vadot #include <dt-bindings/mux/mux.h> 1025956d97fSEmmanuel Vadot syscon@1000 { 1035956d97fSEmmanuel Vadot reg = <0x1000 0x100>; 1045956d97fSEmmanuel Vadot 1055956d97fSEmmanuel Vadot mux2: mux-controller { 1065956d97fSEmmanuel Vadot compatible = "mmio-mux"; 1075956d97fSEmmanuel Vadot #mux-control-cells = <1>; 1085956d97fSEmmanuel Vadot 1095956d97fSEmmanuel Vadot mux-reg-masks = 1105956d97fSEmmanuel Vadot <0x3 0x30>, /* 0: reg 0x3, bits 5:4 */ 1115956d97fSEmmanuel Vadot <0x3 0x40>; /* 1: reg 0x3, bit 6 */ 1125956d97fSEmmanuel Vadot idle-states = <MUX_IDLE_AS_IS>, <0>; 1135956d97fSEmmanuel Vadot }; 1145956d97fSEmmanuel Vadot }; 1155956d97fSEmmanuel Vadot 1165956d97fSEmmanuel Vadot video-mux { 1175956d97fSEmmanuel Vadot compatible = "video-mux"; 1185956d97fSEmmanuel Vadot mux-controls = <&mux2 0>; 1195956d97fSEmmanuel Vadot #address-cells = <1>; 1205956d97fSEmmanuel Vadot #size-cells = <0>; 1215956d97fSEmmanuel Vadot 1225956d97fSEmmanuel Vadot ports { 1235956d97fSEmmanuel Vadot #address-cells = <1>; 1245956d97fSEmmanuel Vadot #size-cells = <0>; 1255956d97fSEmmanuel Vadot 1265956d97fSEmmanuel Vadot /* inputs 0..3 */ 1275956d97fSEmmanuel Vadot port@0 { 1285956d97fSEmmanuel Vadot reg = <0>; 1295956d97fSEmmanuel Vadot }; 1305956d97fSEmmanuel Vadot port@1 { 1315956d97fSEmmanuel Vadot reg = <1>; 1325956d97fSEmmanuel Vadot }; 1335956d97fSEmmanuel Vadot port@2 { 1345956d97fSEmmanuel Vadot reg = <2>; 1355956d97fSEmmanuel Vadot }; 1365956d97fSEmmanuel Vadot port@3 { 1375956d97fSEmmanuel Vadot reg = <3>; 1385956d97fSEmmanuel Vadot }; 1395956d97fSEmmanuel Vadot 1405956d97fSEmmanuel Vadot /* output */ 1415956d97fSEmmanuel Vadot port@4 { 1425956d97fSEmmanuel Vadot reg = <4>; 1435956d97fSEmmanuel Vadot }; 1445956d97fSEmmanuel Vadot }; 1455956d97fSEmmanuel Vadot }; 1465956d97fSEmmanuel Vadot... 147