The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/mux/reg-mux.yaml

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    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 bindings
    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 ...

Cache object: 18bb789c3121b9de12f92d9e2b4cb0ed


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.