137 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			137 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
Rockchip SoC MIPI RX D-PHY
 | 
						|
-------------------------------------------------------------
 | 
						|
 | 
						|
Required properties:
 | 
						|
- compatible: value should be one of the following
 | 
						|
	"rockchip,rk1808-mipi-dphy-rx"
 | 
						|
	"rockchip,rk3288-mipi-dphy"
 | 
						|
	"rockchip,rk3326-mipi-dphy"
 | 
						|
	"rockchip,rk3368-mipi-dphy"
 | 
						|
	"rockchip,rk3399-mipi-dphy"
 | 
						|
	"rockchip,rv1126-csi-dphy"
 | 
						|
- clocks : list of clock specifiers, corresponding to entries in
 | 
						|
	clock-names property;
 | 
						|
- clock-names: required clock name.
 | 
						|
 | 
						|
MIPI RX0 D-PHY use registers in "general register files", it
 | 
						|
should be a child of the GRF.
 | 
						|
MIPI TX1RX1 D-PHY have its own registers, it must have a reg property.
 | 
						|
 | 
						|
Optional properties:
 | 
						|
- reg: offset and length of the register set for the device.
 | 
						|
- rockchip,grf: MIPI TX1RX1 D-PHY not only has its own register but also
 | 
						|
		the GRF, so it is only necessary for MIPI TX1RX1 D-PHY.
 | 
						|
 | 
						|
port node
 | 
						|
-------------------
 | 
						|
 | 
						|
The device node should contain two 'port' child nodes, according to the bindings
 | 
						|
defined in Documentation/devicetree/bindings/media/video-interfaces.txt.
 | 
						|
 | 
						|
The first port show the sensors connected in this mipi-dphy.
 | 
						|
- endpoint:
 | 
						|
	- remote-endpoint: Linked to a sensor with a MIPI CSI-2 video bus.
 | 
						|
	- data-lanes : (required) an array specifying active physical MIPI-CSI2
 | 
						|
			data input lanes and their mapping to logical lanes; the
 | 
						|
			D-PHY can't reroute lanes, so the array's content should
 | 
						|
			be consecutive and only its length is meaningful.
 | 
						|
			For CCP2, v4l2 fwnode endpoint parse this read by u32.
 | 
						|
	- bus-type: data bus type. Possible values are:
 | 
						|
			0 - autodetect based on other properties (MIPI CSI-2 D-PHY, parallel or Bt656)
 | 
						|
			1 - MIPI CSI-2 C-PHY, no support
 | 
						|
			2 - MIPI CSI1, no support
 | 
						|
			3 - CCP2, using for lvds
 | 
						|
The port node must contain at least one endpoint. It could have multiple endpoints
 | 
						|
linked to different sensors, but please note that they are not supposed to be
 | 
						|
actived at the same time.
 | 
						|
 | 
						|
The second port should be connected to isp node.
 | 
						|
- endpoint:
 | 
						|
	- remote-endpoint:  Linked to Rockchip ISP1, which is defined
 | 
						|
		in rockchip-isp1.txt.
 | 
						|
 | 
						|
Device node example
 | 
						|
-------------------
 | 
						|
 | 
						|
grf: syscon@ff770000 {
 | 
						|
	compatible = "rockchip,rk3288-grf", "syscon", "simple-mfd";
 | 
						|
 | 
						|
...
 | 
						|
 | 
						|
	mipi_dphy_rx0: mipi-dphy-rx0 {
 | 
						|
		compatible = "rockchip,rk3399-mipi-dphy";
 | 
						|
		clocks = <&cru SCLK_MIPIDPHY_REF>,
 | 
						|
			<&cru SCLK_DPHY_RX0_CFG>,
 | 
						|
			<&cru PCLK_VIO_GRF>;
 | 
						|
		clock-names = "dphy-ref", "dphy-cfg", "grf";
 | 
						|
		power-domains = <&power RK3399_PD_VIO>;
 | 
						|
 | 
						|
		ports {
 | 
						|
			#address-cells = <1>;
 | 
						|
			#size-cells = <0>;
 | 
						|
 | 
						|
			port@0 {
 | 
						|
				reg = <0>;
 | 
						|
				#address-cells = <1>;
 | 
						|
				#size-cells = <0>;
 | 
						|
 | 
						|
				mipi_in_wcam: endpoint@0 {
 | 
						|
					reg = <0>;
 | 
						|
					remote-endpoint = <&wcam_out>;
 | 
						|
					data-lanes = <1 2>;
 | 
						|
				};
 | 
						|
				mipi_in_ucam: endpoint@1 {
 | 
						|
					reg = <1>;
 | 
						|
					remote-endpoint = <&ucam_out>;
 | 
						|
					data-lanes = <1>;
 | 
						|
				};
 | 
						|
			};
 | 
						|
 | 
						|
			port@1 {
 | 
						|
				reg = <1>;
 | 
						|
 | 
						|
				dphy_rx0_out: endpoint {
 | 
						|
					remote-endpoint = <&isp0_mipi_in>;
 | 
						|
				};
 | 
						|
			};
 | 
						|
		};
 | 
						|
	};
 | 
						|
};
 | 
						|
 | 
						|
example for rv1126 node
 | 
						|
csi_dphy0 {
 | 
						|
	compatible = "rockchip,rv1126-csi-dphy";
 | 
						|
	reg = <0xff4b0000 0x8000>;
 | 
						|
	clocks = <&cru PCLK_CSIPHY0>;
 | 
						|
	clock-names = "pclk";
 | 
						|
	rockchip,grf = <&grf>;
 | 
						|
	status = "okay";
 | 
						|
	ports {
 | 
						|
		#address-cells = <1>;
 | 
						|
		#size-cells = <0>;
 | 
						|
		port@0 {
 | 
						|
			reg = <0>;
 | 
						|
			#address-cells = <1>;
 | 
						|
			#size-cells = <0>;
 | 
						|
 | 
						|
			mipi_in_ucam0: endpoint@1 {
 | 
						|
				reg = <1>;
 | 
						|
				remote-endpoint = <&ucam_out0>;
 | 
						|
				/*data-lanes = <1 2 3 4>; //for mipi*/
 | 
						|
				data-lanes = <4>; //for lvds, note: this diff to mipi
 | 
						|
				bus-type = <3>; //for lvds
 | 
						|
			};
 | 
						|
		};
 | 
						|
		port@1 {
 | 
						|
			reg = <1>;
 | 
						|
			#address-cells = <1>;
 | 
						|
			#size-cells = <0>;
 | 
						|
 | 
						|
			csidphy0_out: endpoint@0 {
 | 
						|
				reg = <0>;
 | 
						|
				remote-endpoint = <&isp_in>;
 | 
						|
			};
 | 
						|
		};
 | 
						|
	};
 | 
						|
};
 |