18c2ecf20Sopenharmony_ciCadence DSI bridge
28c2ecf20Sopenharmony_ci==================
38c2ecf20Sopenharmony_ci
48c2ecf20Sopenharmony_ciThe Cadence DSI bridge is a DPI to DSI bridge supporting up to 4 DSI lanes.
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ciRequired properties:
78c2ecf20Sopenharmony_ci- compatible: should be set to "cdns,dsi".
88c2ecf20Sopenharmony_ci- reg: physical base address and length of the controller's registers.
98c2ecf20Sopenharmony_ci- interrupts: interrupt line connected to the DSI bridge.
108c2ecf20Sopenharmony_ci- clocks: DSI bridge clocks.
118c2ecf20Sopenharmony_ci- clock-names: must contain "dsi_p_clk" and "dsi_sys_clk".
128c2ecf20Sopenharmony_ci- phys: phandle link to the MIPI D-PHY controller.
138c2ecf20Sopenharmony_ci- phy-names: must contain "dphy".
148c2ecf20Sopenharmony_ci- #address-cells: must be set to 1.
158c2ecf20Sopenharmony_ci- #size-cells: must be set to 0.
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ciOptional properties:
188c2ecf20Sopenharmony_ci- resets: DSI reset lines.
198c2ecf20Sopenharmony_ci- reset-names: can contain "dsi_p_rst".
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ciRequired subnodes:
228c2ecf20Sopenharmony_ci- ports: Ports as described in Documentation/devicetree/bindings/graph.txt.
238c2ecf20Sopenharmony_ci  2 ports are available:
248c2ecf20Sopenharmony_ci  * port 0: this port is only needed if some of your DSI devices are
258c2ecf20Sopenharmony_ci	    controlled through  an external bus like I2C or SPI. Can have at
268c2ecf20Sopenharmony_ci	    most 4 endpoints. The endpoint number is directly encoding the
278c2ecf20Sopenharmony_ci	    DSI virtual channel used by this device.
288c2ecf20Sopenharmony_ci  * port 1: represents the DPI input.
298c2ecf20Sopenharmony_ci  Other ports will be added later to support the new kind of inputs.
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci- one subnode per DSI device connected on the DSI bus. Each DSI device should
328c2ecf20Sopenharmony_ci  contain a reg property encoding its virtual channel.
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ciExample:
358c2ecf20Sopenharmony_ci	dsi0: dsi@fd0c0000 {
368c2ecf20Sopenharmony_ci		compatible = "cdns,dsi";
378c2ecf20Sopenharmony_ci		reg = <0x0 0xfd0c0000 0x0 0x1000>;
388c2ecf20Sopenharmony_ci		clocks = <&pclk>, <&sysclk>;
398c2ecf20Sopenharmony_ci		clock-names = "dsi_p_clk", "dsi_sys_clk";
408c2ecf20Sopenharmony_ci		interrupts = <1>;
418c2ecf20Sopenharmony_ci		phys = <&dphy0>;
428c2ecf20Sopenharmony_ci		phy-names = "dphy";
438c2ecf20Sopenharmony_ci		#address-cells = <1>;
448c2ecf20Sopenharmony_ci		#size-cells = <0>;
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ci		ports {
478c2ecf20Sopenharmony_ci			#address-cells = <1>;
488c2ecf20Sopenharmony_ci			#size-cells = <0>;
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci			port@1 {
518c2ecf20Sopenharmony_ci				reg = <1>;
528c2ecf20Sopenharmony_ci				dsi0_dpi_input: endpoint {
538c2ecf20Sopenharmony_ci					remote-endpoint = <&xxx_dpi_output>;
548c2ecf20Sopenharmony_ci				};
558c2ecf20Sopenharmony_ci			};
568c2ecf20Sopenharmony_ci		};
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ci		panel: dsi-dev@0 {
598c2ecf20Sopenharmony_ci			compatible = "<vendor,panel>";
608c2ecf20Sopenharmony_ci			reg = <0>;
618c2ecf20Sopenharmony_ci		};
628c2ecf20Sopenharmony_ci	};
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_cior
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ci	dsi0: dsi@fd0c0000 {
678c2ecf20Sopenharmony_ci		compatible = "cdns,dsi";
688c2ecf20Sopenharmony_ci		reg = <0x0 0xfd0c0000 0x0 0x1000>;
698c2ecf20Sopenharmony_ci		clocks = <&pclk>, <&sysclk>;
708c2ecf20Sopenharmony_ci		clock-names = "dsi_p_clk", "dsi_sys_clk";
718c2ecf20Sopenharmony_ci		interrupts = <1>;
728c2ecf20Sopenharmony_ci		phys = <&dphy1>;
738c2ecf20Sopenharmony_ci		phy-names = "dphy";
748c2ecf20Sopenharmony_ci		#address-cells = <1>;
758c2ecf20Sopenharmony_ci		#size-cells = <0>;
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_ci		ports {
788c2ecf20Sopenharmony_ci			#address-cells = <1>;
798c2ecf20Sopenharmony_ci			#size-cells = <0>;
808c2ecf20Sopenharmony_ci
818c2ecf20Sopenharmony_ci			port@0 {
828c2ecf20Sopenharmony_ci				reg = <0>;
838c2ecf20Sopenharmony_ci				#address-cells = <1>;
848c2ecf20Sopenharmony_ci				#size-cells = <0>;
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ci				dsi0_output: endpoint@0 {
878c2ecf20Sopenharmony_ci					reg = <0>;
888c2ecf20Sopenharmony_ci					remote-endpoint = <&dsi_panel_input>;
898c2ecf20Sopenharmony_ci				};
908c2ecf20Sopenharmony_ci			};
918c2ecf20Sopenharmony_ci
928c2ecf20Sopenharmony_ci			port@1 {
938c2ecf20Sopenharmony_ci				reg = <1>;
948c2ecf20Sopenharmony_ci				dsi0_dpi_input: endpoint {
958c2ecf20Sopenharmony_ci					remote-endpoint = <&xxx_dpi_output>;
968c2ecf20Sopenharmony_ci				};
978c2ecf20Sopenharmony_ci			};
988c2ecf20Sopenharmony_ci		};
998c2ecf20Sopenharmony_ci	};
1008c2ecf20Sopenharmony_ci
1018c2ecf20Sopenharmony_ci	i2c@xxx {
1028c2ecf20Sopenharmony_ci		panel: panel@59 {
1038c2ecf20Sopenharmony_ci			compatible = "<vendor,panel>";
1048c2ecf20Sopenharmony_ci			reg = <0x59>;
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_ci			port {
1078c2ecf20Sopenharmony_ci				dsi_panel_input: endpoint {
1088c2ecf20Sopenharmony_ci					remote-endpoint = <&dsi0_output>;
1098c2ecf20Sopenharmony_ci				};
1108c2ecf20Sopenharmony_ci			};
1118c2ecf20Sopenharmony_ci		};
1128c2ecf20Sopenharmony_ci	};
113