113 lines
2.5 KiB
Plaintext
113 lines
2.5 KiB
Plaintext
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.
|
|
|
|
Example:
|
|
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>;
|
|
};
|
|
};
|
|
};
|
|
};
|