mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-03 21:48:15 +00:00 
			
		
		
		
	This binding documents two properties that describe the registers used to perform MUX selection. Signed-off-by: Alex Marginean <alexm.osslist@gmail.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
		
			
				
	
	
		
			83 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
Device tree structures used by register based MDIO muxes is described here.
 | 
						|
This binding is based on reg-mux.txt binding in Linux and is currently used by
 | 
						|
mdio-mux-i2creg driver in U-Boot.
 | 
						|
 | 
						|
Required properties:
 | 
						|
#mux-control-cells = <1> indicates how many registers are used for mux
 | 
						|
			selection.  mux-reg-mask property described below must
 | 
						|
			include this number of pairs.
 | 
						|
mux-reg-masks = <reg mask> describes pairs of register offset and register mask.
 | 
						|
			Register bits enabled in mask are set to the selection
 | 
						|
			value defined in reg property of child MDIOs to control
 | 
						|
			selection.
 | 
						|
Properties described in mdio-mux.txt also apply.
 | 
						|
 | 
						|
Example structure, used on Freescale LS1028A QDS board:
 | 
						|
 | 
						|
&i2c0 {
 | 
						|
	status = "okay";
 | 
						|
	u-boot,dm-pre-reloc;
 | 
						|
 | 
						|
	fpga@66 {
 | 
						|
		#address-cells = <1>;
 | 
						|
		#size-cells = <0>;
 | 
						|
		compatible = "simple-mfd";
 | 
						|
		reg = <0x66>;
 | 
						|
 | 
						|
		mux-mdio@54 {
 | 
						|
			#address-cells = <1>;
 | 
						|
			#size-cells = <0>;
 | 
						|
			compatible = "mdio-mux-i2creg";
 | 
						|
			reg = <0x54>;
 | 
						|
			#mux-control-cells = <1>;
 | 
						|
			mux-reg-masks = <0x54 0xf0>;
 | 
						|
			mdio-parent-bus = <&mdio0>;
 | 
						|
 | 
						|
			/* on-board MDIO with a single RGMII PHY */
 | 
						|
			mdio@00 {
 | 
						|
				#address-cells = <1>;
 | 
						|
				#size-cells = <0>;
 | 
						|
				reg = <0x00>;
 | 
						|
 | 
						|
				/* on-board 1G RGMII PHY */
 | 
						|
				qds_phy0: phy@5 {
 | 
						|
					reg = <5>;
 | 
						|
				};
 | 
						|
			};
 | 
						|
			/* card slot 1 */
 | 
						|
			mdio@40 {
 | 
						|
				#address-cells = <1>;
 | 
						|
				#size-cells = <0>;
 | 
						|
				reg = <0x40>;
 | 
						|
				/* VSC8234 1G SGMII card */
 | 
						|
				sgmii_port0: phy@1c {
 | 
						|
					reg = <0x1c>;
 | 
						|
				};
 | 
						|
			};
 | 
						|
			/* card slot 2 */
 | 
						|
			mdio@50 {
 | 
						|
				#address-cells = <1>;
 | 
						|
				#size-cells = <0>;
 | 
						|
				reg = <0x50>;
 | 
						|
			};
 | 
						|
			/* card slot 3 */
 | 
						|
			mdio@60 {
 | 
						|
				#address-cells = <1>;
 | 
						|
				#size-cells = <0>;
 | 
						|
				reg = <0x60>;
 | 
						|
			};
 | 
						|
			/* card slot 4 */
 | 
						|
			mdio@70 {
 | 
						|
				#address-cells = <1>;
 | 
						|
				#size-cells = <0>;
 | 
						|
				reg = <0x70>;
 | 
						|
			};
 | 
						|
		};
 | 
						|
	};
 | 
						|
};
 | 
						|
 | 
						|
/* Parent MDIO, defined in SoC .dtsi file, just enabled here */
 | 
						|
&mdio0 {
 | 
						|
	status = "okay";
 | 
						|
};
 |