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