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