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