Skip to content

Commit

Permalink
Merge tag 'fbdev-omap-3.15' of git://git.kernel.org/pub/scm/linux/ker…
Browse files Browse the repository at this point in the history
…nel/git/tomba/linux

Pull OMAP fbdev changes from Tomi Valkeinen:
 "This is based on the already pulled fbdev-main changes, and this also
  merges .dts branch from Tony Lindgren (which has also been pulled), so
  that I was able to add the display related .dts changes.

  This contains OMAP related fbdev changes for 3.15.  The bulk of the
  patches are for adding Device Tree support for OMAP Display Subsystem:

   - SoCs: OMAP2/3/4

   - Boards: OMAP4 Panda, OMAP4 SDP, OMAP3 Beagle, OMAP3 Beagle-xM,
     OMAP3 IGEP0020, OMAP3 N900

   - Devices: TFP410 Encoder, tpd12s015 HDMI companion chip, Sony
     acx565akm panel, MIPI DSI Command mode panel and HDMI, DVI and
     Analog TV connectors"

* tag 'fbdev-omap-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (45 commits)
  OMAPDSS: HDMI: fix interlace output
  OMAPDSS: add missing __init for dss_init_ports
  ARM: OMAP2+: remove pdata quirks for displays
  OMAPDSS: remove DT hacks for regulators
  Doc/DT: Add DT binding documentation for tpd12s015 encoder
  Doc/DT: Add DT binding documentation for TFP410 encoder
  Doc/DT: Add DT binding documentation for Sony acx565akm panel
  Doc/DT: Add DT binding documentation for MIPI DSI CM Panel
  Doc/DT: Add DT binding documentation for HDMI Connector
  Doc/DT: Add DT binding documentation for DVI Connector
  Doc/DT: Add DT binding documentation for Analog TV Connector
  ARM: omap3-n900.dts: add display information
  ARM: omap3-igep0020.dts: add display information
  ARM: omap3-beagle-xm.dts: add display information
  ARM: omap3-beagle.dts: add display information
  ARM: omap4-sdp.dts: add display information
  Doc/DT: Add DT binding documentation for OMAP DSS
  OMAPDSS: acx565akm: Add DT support
  OMAPDSS: connector-analog-tv: Add DT support
  OMAPDSS: hdmi-connector: Add DT support
  ...
  • Loading branch information
torvalds committed Apr 7, 2014
2 parents e5744ab + 0f5d9d2 commit 0af9fb6
Show file tree
Hide file tree
Showing 52 changed files with 2,625 additions and 294 deletions.
25 changes: 25 additions & 0 deletions Documentation/devicetree/bindings/video/analog-tv-connector.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
Analog TV Connector
===================

Required properties:
- compatible: "composite-connector" or "svideo-connector"

Optional properties:
- label: a symbolic name for the connector

Required nodes:
- Video port for TV input

Example
-------

tv: connector {
compatible = "composite-connector";
label = "tv";

port {
tv_connector_in: endpoint {
remote-endpoint = <&venc_out>;
};
};
};
35 changes: 35 additions & 0 deletions Documentation/devicetree/bindings/video/dvi-connector.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
DVI Connector
==============

Required properties:
- compatible: "dvi-connector"

Optional properties:
- label: a symbolic name for the connector
- ddc-i2c-bus: phandle to the i2c bus that is connected to DVI DDC
- analog: the connector has DVI analog pins
- digital: the connector has DVI digital pins
- dual-link: the connector has pins for DVI dual-link

Required nodes:
- Video port for DVI input

Note: One (or both) of 'analog' or 'digital' must be set.

Example
-------

dvi0: connector@0 {
compatible = "dvi-connector";
label = "dvi";

digital;

ddc-i2c-bus = <&i2c3>;

port {
dvi_connector_in: endpoint {
remote-endpoint = <&tfp410_out>;
};
};
};
28 changes: 28 additions & 0 deletions Documentation/devicetree/bindings/video/hdmi-connector.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
HDMI Connector
==============

Required properties:
- compatible: "hdmi-connector"
- type: the HDMI connector type: "a", "b", "c", "d" or "e"

Optional properties:
- label: a symbolic name for the connector

Required nodes:
- Video port for HDMI input

Example
-------

hdmi0: connector@1 {
compatible = "hdmi-connector";
label = "hdmi";

type = "a";

port {
hdmi_connector_in: endpoint {
remote-endpoint = <&tpd12s015_out>;
};
};
};
29 changes: 29 additions & 0 deletions Documentation/devicetree/bindings/video/panel-dsi-cm.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
Generic MIPI DSI Command Mode Panel
===================================

Required properties:
- compatible: "panel-dsi-cm"

Optional properties:
- label: a symbolic name for the panel
- reset-gpios: panel reset gpio
- te-gpios: panel TE gpio

Required nodes:
- Video port for DSI input

Example
-------

lcd0: display {
compatible = "tpo,taal", "panel-dsi-cm";
label = "lcd0";

reset-gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>;

port {
lcd0_in: endpoint {
remote-endpoint = <&dsi1_out_ep>;
};
};
};
30 changes: 30 additions & 0 deletions Documentation/devicetree/bindings/video/sony,acx565akm.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
Sony ACX565AKM SDI Panel
========================

Required properties:
- compatible: "sony,acx565akm"

Optional properties:
- label: a symbolic name for the panel
- reset-gpios: panel reset gpio

Required nodes:
- Video port for SDI input

Example
-------

acx565akm@2 {
compatible = "sony,acx565akm";
spi-max-frequency = <6000000>;
reg = <2>;

label = "lcd";
reset-gpios = <&gpio3 26 GPIO_ACTIVE_HIGH>; /* 90 */

port {
lcd_in: endpoint {
remote-endpoint = <&sdi_out>;
};
};
};
211 changes: 211 additions & 0 deletions Documentation/devicetree/bindings/video/ti,omap-dss.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,211 @@
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/video/video-
ports.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>;
};
};
};
Loading

0 comments on commit 0af9fb6

Please sign in to comment.