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