Staging
v0.8.1
https://github.com/torvalds/linux
Raw File
Tip revision: 50c4c4e268a2d7a3e58ebb698ac74da0de40ae36 authored by Linus Torvalds on 11 December 2017, 01:56:26 UTC
Linux 4.15-rc3
Tip revision: 50c4c4e
mmio-mux.txt
MMIO register bitfield-based multiplexer controller bindings

Define register bitfields to be used to control multiplexers. The parent
device tree node must be a syscon node to provide register access.

Required properties:
- compatible : "mmio-mux"
- #mux-control-cells : <1>
- mux-reg-masks : an array of register offset and pre-shifted bitfield mask
                  pairs, each describing a single mux control.
* Standard mux-controller bindings as decribed in mux-controller.txt

Optional properties:
- idle-states : if present, the state the muxes will have when idle. The
		special state MUX_IDLE_AS_IS is the default.

The multiplexer state of each multiplexer is defined as the value of the
bitfield described by the corresponding register offset and bitfield mask pair
in the mux-reg-masks array, accessed through the parent syscon.

Example:

	syscon {
		compatible = "syscon";

		mux: mux-controller {
			compatible = "mmio-mux";
			#mux-control-cells = <1>;

			mux-reg-masks = <0x3 0x30>, /* 0: reg 0x3, bits 5:4 */
					<0x3 0x40>, /* 1: reg 0x3, bit 6 */
			idle-states = <MUX_IDLE_AS_IS>, <0>;
		};
	};

	video-mux {
		compatible = "video-mux";
		mux-controls = <&mux 0>;

		ports {
			/* inputs 0..3 */
			port@0 {
				reg = <0>;
			};
			port@1 {
				reg = <1>;
			};
			port@2 {
				reg = <2>;
			};
			port@3 {
				reg = <3>;
			};

			/* output */
			port@4 {
				reg = <4>;
			};
		};
	};
back to top