mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
211 lines
4.5 KiB
211 lines
4.5 KiB
Texas Instruments OMAP Display Subsystem |
|
======================================== |
|
|
|
Generic Description |
|
------------------- |
|
|
|
This document is a generic description of the OMAP Display Subsystem bindings. |
|
Binding details for each OMAP SoC version are described in respective binding |
|
documentation. |
|
|
|
The OMAP Display Subsystem (DSS) hardware consists of DSS Core, DISPC module and |
|
a number of encoder modules. All DSS versions contain DSS Core and DISPC, but |
|
the encoder modules vary. |
|
|
|
The DSS Core is the parent of the other DSS modules, and manages clock routing, |
|
integration to the SoC, etc. |
|
|
|
DISPC is the display controller, which reads pixels from the memory and outputs |
|
a RGB pixel stream to encoders. |
|
|
|
The encoder modules encode the received RGB pixel stream to a video output like |
|
HDMI, MIPI DPI, etc. |
|
|
|
Video Ports |
|
----------- |
|
|
|
The DSS Core and the encoders have video port outputs. The structure of the |
|
video ports is described in Documentation/devicetree/bindings/graph.txt, |
|
and the properties for the ports and endpoints for each encoder are |
|
described in the SoC's DSS binding documentation. |
|
|
|
The video ports are used to describe the connections to external hardware, like |
|
panels or external encoders. |
|
|
|
Aliases |
|
------- |
|
|
|
The board dts file may define aliases for displays to assign "displayX" style |
|
name for each display. If no aliases are defined, a semi-random number is used |
|
for the display. |
|
|
|
Example |
|
------- |
|
|
|
A shortened example of the DSS description for OMAP4, with non-relevant parts |
|
removed, defined in omap4.dtsi: |
|
|
|
dss: dss@58000000 { |
|
compatible = "ti,omap4-dss"; |
|
reg = <0x58000000 0x80>; |
|
status = "disabled"; |
|
ti,hwmods = "dss_core"; |
|
clocks = <&dss_dss_clk>; |
|
clock-names = "fck"; |
|
#address-cells = <1>; |
|
#size-cells = <1>; |
|
ranges; |
|
|
|
dispc@58001000 { |
|
compatible = "ti,omap4-dispc"; |
|
reg = <0x58001000 0x1000>; |
|
interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; |
|
ti,hwmods = "dss_dispc"; |
|
clocks = <&dss_dss_clk>; |
|
clock-names = "fck"; |
|
}; |
|
|
|
hdmi: encoder@58006000 { |
|
compatible = "ti,omap4-hdmi"; |
|
reg = <0x58006000 0x200>, |
|
<0x58006200 0x100>, |
|
<0x58006300 0x100>, |
|
<0x58006400 0x1000>; |
|
reg-names = "wp", "pll", "phy", "core"; |
|
interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; |
|
status = "disabled"; |
|
ti,hwmods = "dss_hdmi"; |
|
clocks = <&dss_48mhz_clk>, <&dss_sys_clk>; |
|
clock-names = "fck", "sys_clk"; |
|
}; |
|
}; |
|
|
|
A shortened example of the board description for OMAP4 Panda board, defined in |
|
omap4-panda.dts. |
|
|
|
The Panda board has a DVI and a HDMI connector, and the board contains a TFP410 |
|
chip (MIPI DPI to DVI encoder) and a TPD12S015 chip (HDMI ESD protection & level |
|
shifter). The video pipelines for the connectors are formed as follows: |
|
|
|
DSS Core --(MIPI DPI)--> TFP410 --(DVI)--> DVI Connector |
|
OMAP HDMI --(HDMI)--> TPD12S015 --(HDMI)--> HDMI Connector |
|
|
|
/ { |
|
aliases { |
|
display0 = &dvi0; |
|
display1 = &hdmi0; |
|
}; |
|
|
|
tfp410: encoder@0 { |
|
compatible = "ti,tfp410"; |
|
gpios = <&gpio1 0 GPIO_ACTIVE_LOW>; /* 0, power-down */ |
|
|
|
pinctrl-names = "default"; |
|
pinctrl-0 = <&tfp410_pins>; |
|
|
|
ports { |
|
#address-cells = <1>; |
|
#size-cells = <0>; |
|
|
|
port@0 { |
|
reg = <0>; |
|
|
|
tfp410_in: endpoint@0 { |
|
remote-endpoint = <&dpi_out>; |
|
}; |
|
}; |
|
|
|
port@1 { |
|
reg = <1>; |
|
|
|
tfp410_out: endpoint@0 { |
|
remote-endpoint = <&dvi_connector_in>; |
|
}; |
|
}; |
|
}; |
|
}; |
|
|
|
dvi0: connector@0 { |
|
compatible = "dvi-connector"; |
|
label = "dvi"; |
|
|
|
i2c-bus = <&i2c3>; |
|
|
|
port { |
|
dvi_connector_in: endpoint { |
|
remote-endpoint = <&tfp410_out>; |
|
}; |
|
}; |
|
}; |
|
|
|
tpd12s015: encoder@1 { |
|
compatible = "ti,tpd12s015"; |
|
|
|
pinctrl-names = "default"; |
|
pinctrl-0 = <&tpd12s015_pins>; |
|
|
|
gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>, /* 60, CT CP HPD */ |
|
<&gpio2 9 GPIO_ACTIVE_HIGH>, /* 41, LS OE */ |
|
<&gpio2 31 GPIO_ACTIVE_HIGH>; /* 63, HPD */ |
|
|
|
ports { |
|
#address-cells = <1>; |
|
#size-cells = <0>; |
|
|
|
port@0 { |
|
reg = <0>; |
|
|
|
tpd12s015_in: endpoint@0 { |
|
remote-endpoint = <&hdmi_out>; |
|
}; |
|
}; |
|
|
|
port@1 { |
|
reg = <1>; |
|
|
|
tpd12s015_out: endpoint@0 { |
|
remote-endpoint = <&hdmi_connector_in>; |
|
}; |
|
}; |
|
}; |
|
}; |
|
|
|
hdmi0: connector@1 { |
|
compatible = "hdmi-connector"; |
|
label = "hdmi"; |
|
|
|
port { |
|
hdmi_connector_in: endpoint { |
|
remote-endpoint = <&tpd12s015_out>; |
|
}; |
|
}; |
|
}; |
|
}; |
|
|
|
&dss { |
|
status = "ok"; |
|
|
|
pinctrl-names = "default"; |
|
pinctrl-0 = <&dss_dpi_pins>; |
|
|
|
port { |
|
dpi_out: endpoint { |
|
remote-endpoint = <&tfp410_in>; |
|
data-lines = <24>; |
|
}; |
|
}; |
|
}; |
|
|
|
&hdmi { |
|
status = "ok"; |
|
vdda-supply = <&vdac>; |
|
|
|
pinctrl-names = "default"; |
|
pinctrl-0 = <&dss_hdmi_pins>; |
|
|
|
port { |
|
hdmi_out: endpoint { |
|
remote-endpoint = <&tpd12s015_in>; |
|
}; |
|
}; |
|
};
|
|
|