xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/display/bridge/cdns,dsi.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunCadence DSI bridge
2*4882a593Smuzhiyun==================
3*4882a593Smuzhiyun
4*4882a593SmuzhiyunThe Cadence DSI bridge is a DPI to DSI bridge supporting up to 4 DSI lanes.
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunRequired properties:
7*4882a593Smuzhiyun- compatible: should be set to "cdns,dsi".
8*4882a593Smuzhiyun- reg: physical base address and length of the controller's registers.
9*4882a593Smuzhiyun- interrupts: interrupt line connected to the DSI bridge.
10*4882a593Smuzhiyun- clocks: DSI bridge clocks.
11*4882a593Smuzhiyun- clock-names: must contain "dsi_p_clk" and "dsi_sys_clk".
12*4882a593Smuzhiyun- phys: phandle link to the MIPI D-PHY controller.
13*4882a593Smuzhiyun- phy-names: must contain "dphy".
14*4882a593Smuzhiyun- #address-cells: must be set to 1.
15*4882a593Smuzhiyun- #size-cells: must be set to 0.
16*4882a593Smuzhiyun
17*4882a593SmuzhiyunOptional properties:
18*4882a593Smuzhiyun- resets: DSI reset lines.
19*4882a593Smuzhiyun- reset-names: can contain "dsi_p_rst".
20*4882a593Smuzhiyun
21*4882a593SmuzhiyunRequired subnodes:
22*4882a593Smuzhiyun- ports: Ports as described in Documentation/devicetree/bindings/graph.txt.
23*4882a593Smuzhiyun  2 ports are available:
24*4882a593Smuzhiyun  * port 0: this port is only needed if some of your DSI devices are
25*4882a593Smuzhiyun	    controlled through  an external bus like I2C or SPI. Can have at
26*4882a593Smuzhiyun	    most 4 endpoints. The endpoint number is directly encoding the
27*4882a593Smuzhiyun	    DSI virtual channel used by this device.
28*4882a593Smuzhiyun  * port 1: represents the DPI input.
29*4882a593Smuzhiyun  Other ports will be added later to support the new kind of inputs.
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun- one subnode per DSI device connected on the DSI bus. Each DSI device should
32*4882a593Smuzhiyun  contain a reg property encoding its virtual channel.
33*4882a593Smuzhiyun
34*4882a593SmuzhiyunExample:
35*4882a593Smuzhiyun	dsi0: dsi@fd0c0000 {
36*4882a593Smuzhiyun		compatible = "cdns,dsi";
37*4882a593Smuzhiyun		reg = <0x0 0xfd0c0000 0x0 0x1000>;
38*4882a593Smuzhiyun		clocks = <&pclk>, <&sysclk>;
39*4882a593Smuzhiyun		clock-names = "dsi_p_clk", "dsi_sys_clk";
40*4882a593Smuzhiyun		interrupts = <1>;
41*4882a593Smuzhiyun		phys = <&dphy0>;
42*4882a593Smuzhiyun		phy-names = "dphy";
43*4882a593Smuzhiyun		#address-cells = <1>;
44*4882a593Smuzhiyun		#size-cells = <0>;
45*4882a593Smuzhiyun
46*4882a593Smuzhiyun		ports {
47*4882a593Smuzhiyun			#address-cells = <1>;
48*4882a593Smuzhiyun			#size-cells = <0>;
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun			port@1 {
51*4882a593Smuzhiyun				reg = <1>;
52*4882a593Smuzhiyun				dsi0_dpi_input: endpoint {
53*4882a593Smuzhiyun					remote-endpoint = <&xxx_dpi_output>;
54*4882a593Smuzhiyun				};
55*4882a593Smuzhiyun			};
56*4882a593Smuzhiyun		};
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun		panel: dsi-dev@0 {
59*4882a593Smuzhiyun			compatible = "<vendor,panel>";
60*4882a593Smuzhiyun			reg = <0>;
61*4882a593Smuzhiyun		};
62*4882a593Smuzhiyun	};
63*4882a593Smuzhiyun
64*4882a593Smuzhiyunor
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun	dsi0: dsi@fd0c0000 {
67*4882a593Smuzhiyun		compatible = "cdns,dsi";
68*4882a593Smuzhiyun		reg = <0x0 0xfd0c0000 0x0 0x1000>;
69*4882a593Smuzhiyun		clocks = <&pclk>, <&sysclk>;
70*4882a593Smuzhiyun		clock-names = "dsi_p_clk", "dsi_sys_clk";
71*4882a593Smuzhiyun		interrupts = <1>;
72*4882a593Smuzhiyun		phys = <&dphy1>;
73*4882a593Smuzhiyun		phy-names = "dphy";
74*4882a593Smuzhiyun		#address-cells = <1>;
75*4882a593Smuzhiyun		#size-cells = <0>;
76*4882a593Smuzhiyun
77*4882a593Smuzhiyun		ports {
78*4882a593Smuzhiyun			#address-cells = <1>;
79*4882a593Smuzhiyun			#size-cells = <0>;
80*4882a593Smuzhiyun
81*4882a593Smuzhiyun			port@0 {
82*4882a593Smuzhiyun				reg = <0>;
83*4882a593Smuzhiyun				#address-cells = <1>;
84*4882a593Smuzhiyun				#size-cells = <0>;
85*4882a593Smuzhiyun
86*4882a593Smuzhiyun				dsi0_output: endpoint@0 {
87*4882a593Smuzhiyun					reg = <0>;
88*4882a593Smuzhiyun					remote-endpoint = <&dsi_panel_input>;
89*4882a593Smuzhiyun				};
90*4882a593Smuzhiyun			};
91*4882a593Smuzhiyun
92*4882a593Smuzhiyun			port@1 {
93*4882a593Smuzhiyun				reg = <1>;
94*4882a593Smuzhiyun				dsi0_dpi_input: endpoint {
95*4882a593Smuzhiyun					remote-endpoint = <&xxx_dpi_output>;
96*4882a593Smuzhiyun				};
97*4882a593Smuzhiyun			};
98*4882a593Smuzhiyun		};
99*4882a593Smuzhiyun	};
100*4882a593Smuzhiyun
101*4882a593Smuzhiyun	i2c@xxx {
102*4882a593Smuzhiyun		panel: panel@59 {
103*4882a593Smuzhiyun			compatible = "<vendor,panel>";
104*4882a593Smuzhiyun			reg = <0x59>;
105*4882a593Smuzhiyun
106*4882a593Smuzhiyun			port {
107*4882a593Smuzhiyun				dsi_panel_input: endpoint {
108*4882a593Smuzhiyun					remote-endpoint = <&dsi0_output>;
109*4882a593Smuzhiyun				};
110*4882a593Smuzhiyun			};
111*4882a593Smuzhiyun		};
112*4882a593Smuzhiyun	};
113