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