123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- 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>;
- };
- };
- };
|