~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/mux/reg-mux.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: GPL-2.0
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/mux/reg-mux.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: Generic register bitfield-based multiplexer controller
  8 
  9 maintainers:
 10   - Peter Rosin <peda@axentia.se>
 11 
 12 description: |+
 13   Define register bitfields to be used to control multiplexers. The parent
 14   device tree node must be a device node to provide register r/w access.
 15 
 16 properties:
 17   compatible:
 18     enum:
 19       - reg-mux   # parent device of mux controller is not syscon device
 20       - mmio-mux  # parent device of mux controller is syscon device
 21 
 22   reg: true
 23 
 24   '#mux-control-cells':
 25     const: 1
 26 
 27   mux-reg-masks:
 28     $ref: /schemas/types.yaml#/definitions/uint32-matrix
 29     items:
 30       items:
 31         - description: register offset
 32         - description: pre-shifted bitfield mask
 33     description: Each entry pair describes a single mux control.
 34 
 35   idle-states: true
 36 
 37 required:
 38   - compatible
 39   - mux-reg-masks
 40   - '#mux-control-cells'
 41 
 42 additionalProperties: false
 43 
 44 examples:
 45   - |
 46     /* The parent device of mux controller is not a syscon device. */
 47 
 48     #include <dt-bindings/mux/mux.h>
 49 
 50     mux-controller {
 51         compatible = "reg-mux";
 52         #mux-control-cells = <1>;
 53         mux-reg-masks =
 54             <0x54 0xf8>, /* 0: reg 0x54, bits 7:3 */
 55             <0x54 0x07>; /* 1: reg 0x54, bits 2:0 */
 56     };
 57 
 58     mdio-mux-1 {
 59         compatible = "mdio-mux-multiplexer";
 60         mux-controls = <&mux1 0>;
 61         mdio-parent-bus = <&emdio1>;
 62         #address-cells = <1>;
 63         #size-cells = <0>;
 64 
 65         mdio@0 {
 66             reg = <0x0>;
 67             #address-cells = <1>;
 68             #size-cells = <0>;
 69         };
 70 
 71         mdio@8 {
 72             reg = <0x8>;
 73             #address-cells = <1>;
 74             #size-cells = <0>;
 75         };
 76     };
 77 
 78     mdio-mux-2 {
 79         compatible = "mdio-mux-multiplexer";
 80         mux-controls = <&mux1 1>;
 81         mdio-parent-bus = <&emdio2>;
 82         #address-cells = <1>;
 83         #size-cells = <0>;
 84 
 85         mdio@0 {
 86             reg = <0x0>;
 87             #address-cells = <1>;
 88             #size-cells = <0>;
 89         };
 90 
 91         mdio@1 {
 92             reg = <0x1>;
 93             #address-cells = <1>;
 94             #size-cells = <0>;
 95         };
 96     };
 97 
 98   - |
 99     /* The parent device of mux controller is syscon device. */
100 
101     #include <dt-bindings/mux/mux.h>
102     syscon@1000 {
103         reg = <0x1000 0x100>;
104 
105         mux2: mux-controller {
106             compatible = "mmio-mux";
107             #mux-control-cells = <1>;
108 
109             mux-reg-masks =
110                 <0x3 0x30>, /* 0: reg 0x3, bits 5:4 */
111                 <0x3 0x40>; /* 1: reg 0x3, bit 6 */
112             idle-states = <MUX_IDLE_AS_IS>, <0>;
113         };
114     };
115 
116     video-mux {
117         compatible = "video-mux";
118         mux-controls = <&mux2 0>;
119         #address-cells = <1>;
120         #size-cells = <0>;
121 
122         ports {
123             #address-cells = <1>;
124             #size-cells = <0>;
125 
126             /* inputs 0..3 */
127             port@0 {
128                 reg = <0>;
129             };
130             port@1 {
131                 reg = <1>;
132             };
133             port@2 {
134                 reg = <2>;
135             };
136             port@3 {
137                 reg = <3>;
138             };
139 
140             /* output */
141             port@4 {
142                 reg = <4>;
143             };
144         };
145     };
146 ...

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php