Skip to contentSkip to conversation

OMAPDSS: enable DSS for Panda & SDP with devtree

PATCH New Tomi Valkeinen 4 participants 17 messages Nov 5, 2012 – Nov 14, 2012

Subsystems (5)
lore
Share & tools
lore
#0 lore raw

cover OMAPDSS: enable DSS for Panda & SDP with devtree

Hi,

OMAPDSS device tree support is still some way in the future. Tony has requested to get DSS working for Panda & SDP boards with DT kernel, so that we'll have fully working boards with DT.

This series makes a few hacks to get a working display on OMAP4 Panda and SDP boards. The idea is to setup the omapdss with the non-DT method, creating the omapdss devices and passing platform data to them. This setup code is called from board-generic for Panda and SDP boards.

There was one problem with this approach: omapdss cannot get regulators using the omapdss's names fro the regulators. Thus there's a hack patch to get the regulators using the OMAP4 "native" regulator names, thus circumventing the problem.

Tony, if these look good, how do you want to merge these? There are three parts here, and I think they can be merged independently if so wished:

* .dts changes for the pinmuxing (2 patches)
* dss-common.c and board-generic.c changes (3 patches)
* DSS hack for the regulators (1 patch)

If one of those parts is missing, DSS won't start with DT kernel, but otherwise there shouldn't be any problems. So to avoid conflicts, I suggest that you take the first two parts, and I'll merge the DSS hack via omapdss tree.

Tomi

Ricardo Neri (2):
ARM/dts: omap4-panda: Add pinmux configuration for HDMI ARM/dts: omap4-sdp: Add pinmux configuration for HDMI

Tomi Valkeinen (4):
OMAPDSS: HACK: look for regulators with omap4 names
OMAP: panda: move display init from board file to dss-common.c
OMAP: omap4sdp: move display init from board file to dss-common.c
OMAP: board-generic: enable DSS for panda & sdp boards

 arch/arm/boot/dts/omap4-panda-a4.dts     |   17 ++
 arch/arm/boot/dts/omap4-panda.dts        |   18 ++
 arch/arm/boot/dts/omap4-pandaES.dts      |    9 +
 arch/arm/boot/dts/omap4-sdp-es23plus.dts |   17 ++
 arch/arm/boot/dts/omap4-sdp.dts          |   18 ++
 arch/arm/mach-omap2/Makefile             |    2 +-
 arch/arm/mach-omap2/board-4430sdp.c      |  157 +----------------
 arch/arm/mach-omap2/board-generic.c      |   10 ++
 arch/arm/mach-omap2/board-omap4panda.c   |   68 +-------
 arch/arm/mach-omap2/dss-common.c         |  276 ++++++++++++++++++++++++++++++
 arch/arm/mach-omap2/dss-common.h         |   14 ++
 drivers/video/omap2/dss/dsi.c            |    8 +
 drivers/video/omap2/dss/hdmi.c           |    4 +
 13 files changed, 394 insertions(+), 224 deletions(-)
 create mode 100644 arch/arm/boot/dts/omap4-panda-a4.dts
 create mode 100644 arch/arm/boot/dts/omap4-sdp-es23plus.dts
 create mode 100644 arch/arm/mach-omap2/dss-common.c
 create mode 100644 arch/arm/mach-omap2/dss-common.h
Signature · 1 line
1.7.10.4
#1 lore raw

PATCH 1/6 ARM/dts: omap4-panda: Add pinmux configuration for HDMI

From: Ricardo Neri <[email protected]>

Add the pinmux configuration for HDMI and TPD12S015A. Configure the gpios for the TPD12S015A and SDA, SCL and CEC for HDMI.

---
 arch/arm/boot/dts/omap4-panda-a4.dts |   17 +++++++++++++++++
 arch/arm/boot/dts/omap4-panda.dts    |   18 ++++++++++++++++++
 arch/arm/boot/dts/omap4-pandaES.dts  |    9 +++++++++
 3 files changed, 44 insertions(+)
 create mode 100644 arch/arm/boot/dts/omap4-panda-a4.dts
arch/arm/boot/dts/omap4-panda-a4.dts new file +17 -0
new file mode 100644
index 0000000..75466d2
@@ -0,0 +1,17 @@
+/*
+ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+/include/ "omap4-panda.dts"
+
+/* Pandaboard Rev A4+ have external pullups on SCL & SDA */
+&dss_hdmi_pins {
+	pinctrl-single,pins = <
+		0x5a 0x118	/* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
+		0x5c 0x100	/* hdmi_scl.hdmi_scl INPUT | MODE 0 */
+		0x5e 0x100	/* hdmi_sda.hdmi_sda INPUT | MODE 0 */
+		>;
+};
arch/arm/boot/dts/omap4-panda.dts +18 -0
index e8f927c..8060f5b 100644
@@ -65,6 +65,8 @@
 			&twl6040_pins
 			&mcpdm_pins
 			&mcbsp1_pins
+			&dss_hdmi_pins
+			&tpd12s015_pins
 	>;
 
 	twl6040_pins: pinmux_twl6040_pins {
@@ -92,6 +94,22 @@
 			0xc4 0x100	/* abe_mcbsp1_fsx.abe_mcbsp1_fsx INPUT | MODE0 */
 		>;
 	};
+
+	dss_hdmi_pins: pinmux_dss_hdmi_pins {
+		pinctrl-single,pins = <
+			0x5a 0x118	/* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
+			0x5c 0x118	/* hdmi_scl.hdmi_scl INPUT PULLUP | MODE 0 */
+			0x5e 0x118	/* hdmi_sda.hdmi_sda INPUT PULLUP | MODE 0 */
+		>;
+	};
+
+	tpd12s015_pins: pinmux_tpd12s015_pins {
+		pinctrl-single,pins = <
+			0x22 0x3	/* gpmc_a17.gpio_41 OUTPUT | MODE3 */
+			0x48 0x3	/* gpmc_nbe1.gpio_60 OUTPUT | MODE3 */
+			0x58 0x10b	/* hdmi_hpd.gpio_63 INPUT PULLDOWN | MODE3 */
+		>;
+	};
 };
 
 &i2c1 {
arch/arm/boot/dts/omap4-pandaES.dts +9 -0
index d4ba43a..73bc1a6 100644
@@ -22,3 +22,12 @@
 		"AFML", "Line In",
 		"AFMR", "Line In";
 };
+
+/* PandaboardES has external pullups on SCL & SDA */
+&dss_hdmi_pins {
+	pinctrl-single,pins = <
+		0x5a 0x118	/* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
+		0x5c 0x100	/* hdmi_scl.hdmi_scl INPUT | MODE 0 */
+		0x5e 0x100	/* hdmi_sda.hdmi_sda INPUT | MODE 0 */
+		>;
+};
Signature · 1 line
1.7.10.4
#2 lore raw

PATCH 1/6 ARM/dts: omap4-panda: Add pinmux configuration for HDMI

Hi Ricardo,

Quoted 5 lines · Tomi Valkeinen

From: Ricardo Neri <[email protected]>

Add the pinmux configuration for HDMI and TPD12S015A. Configure the gpios for the TPD12S015A and SDA, SCL and CEC for HDMI.

Quoted 8 lines
---
 arch/arm/boot/dts/omap4-panda-a4.dts |   17 +++++++++++++++++
 arch/arm/boot/dts/omap4-panda.dts    |   18 ++++++++++++++++++
 arch/arm/boot/dts/omap4-pandaES.dts  |    9 +++++++++
 3 files changed, 44 insertions(+)
 create mode 100644 arch/arm/boot/dts/omap4-panda-a4.dts

Ricardo, I modified this and the other dts patch to add new .dts files for the board revisions with external pull on the SCL/SDA lines. Can you verify that these are correct?

Tomi

Quoted 67 lines
arch/arm/boot/dts/omap4-panda-a4.dts new file +17 -0
new file mode 100644
index 0000000..75466d2
@@ -0,0 +1,17 @@
+/*
+ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+/include/ "omap4-panda.dts"
+
+/* Pandaboard Rev A4+ have external pullups on SCL & SDA */
+&dss_hdmi_pins {
+	pinctrl-single,pins = <
+		0x5a 0x118	/* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
+		0x5c 0x100	/* hdmi_scl.hdmi_scl INPUT | MODE 0 */
+		0x5e 0x100	/* hdmi_sda.hdmi_sda INPUT | MODE 0 */
+		>;
+};
arch/arm/boot/dts/omap4-panda.dts +18 -0
index e8f927c..8060f5b 100644
@@ -65,6 +65,8 @@
 			&twl6040_pins
 			&mcpdm_pins
 			&mcbsp1_pins
+			&dss_hdmi_pins
+			&tpd12s015_pins
 	>;
 
 	twl6040_pins: pinmux_twl6040_pins {
@@ -92,6 +94,22 @@
 			0xc4 0x100	/* abe_mcbsp1_fsx.abe_mcbsp1_fsx INPUT | MODE0 */
 		>;
 	};
+
+	dss_hdmi_pins: pinmux_dss_hdmi_pins {
+		pinctrl-single,pins = <
+			0x5a 0x118	/* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
+			0x5c 0x118	/* hdmi_scl.hdmi_scl INPUT PULLUP | MODE 0 */
+			0x5e 0x118	/* hdmi_sda.hdmi_sda INPUT PULLUP | MODE 0 */
+		>;
+	};
+
+	tpd12s015_pins: pinmux_tpd12s015_pins {
+		pinctrl-single,pins = <
+			0x22 0x3	/* gpmc_a17.gpio_41 OUTPUT | MODE3 */
+			0x48 0x3	/* gpmc_nbe1.gpio_60 OUTPUT | MODE3 */
+			0x58 0x10b	/* hdmi_hpd.gpio_63 INPUT PULLDOWN | MODE3 */
+		>;
+	};
 };
 
 &i2c1 {
arch/arm/boot/dts/omap4-pandaES.dts +0 -0
index d4ba43a..73bc1a6 100644
@@ -22,3 +22,12 @@
 		"AFML", "Line In",
 		"AFMR", "Line In";

arch/arm/boot/dts/omap4-pandaES.dts line 33

Quoted 10 lines
arch/arm/boot/dts/omap4-pandaES.dts +9 -0
 };
+
+/* PandaboardES has external pullups on SCL & SDA */
+&dss_hdmi_pins {
+	pinctrl-single,pins = <
+		0x5a 0x118	/* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
+		0x5c 0x100	/* hdmi_scl.hdmi_scl INPUT | MODE 0 */
+		0x5e 0x100	/* hdmi_sda.hdmi_sda INPUT | MODE 0 */
+		>;
+};

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 897 bytes
Desc: OpenPGP digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20121105/2b492b2e/attachment.sig>

#3 lore raw

PATCH 1/6 ARM/dts: omap4-panda: Add pinmux configuration for HDMI

Hi Tomi,

Quoted 17 lines · Tomi Valkeinen

Hi Ricardo,

Quoted 5 lines · Tomi Valkeinen

From: Ricardo Neri <[email protected]>

Add the pinmux configuration for HDMI and TPD12S015A. Configure the gpios for the TPD12S015A and SDA, SCL and CEC for HDMI.

Quoted 8 lines
---
  arch/arm/boot/dts/omap4-panda-a4.dts |   17 +++++++++++++++++
  arch/arm/boot/dts/omap4-panda.dts    |   18 ++++++++++++++++++
  arch/arm/boot/dts/omap4-pandaES.dts  |    9 +++++++++
  3 files changed, 44 insertions(+)

create mode 100644 arch/arm/boot/dts/omap4-panda-a4.dts

Quoted 3 lines

Ricardo, I modified this and the other dts patch to add new .dts files for the board revisions with external pull on the SCL/SDA lines. Can you verify that these are correct?

I verified the pinmux values to make sure that the OMAP internal pull is not enabled in Pandaboard A4/4430 ES2.3+. It looks correct to me.

I also tested it on 4430 ES2.1 and 4430 ES2.3 SDPs and works fine.

BR,

Ricardo

Quoted 82 lines

Tomi

Quoted 77 lines
arch/arm/boot/dts/omap4-panda-a4.dts new file +17 -0
new file mode 100644
index 0000000..75466d2
@@ -0,0 +1,17 @@
+/*
+ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+/include/ "omap4-panda.dts"
+
+/* Pandaboard Rev A4+ have external pullups on SCL & SDA */
+&dss_hdmi_pins {
+	pinctrl-single,pins = <
+		0x5a 0x118	/* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
+		0x5c 0x100	/* hdmi_scl.hdmi_scl INPUT | MODE 0 */
+		0x5e 0x100	/* hdmi_sda.hdmi_sda INPUT | MODE 0 */
+		>;
+};
arch/arm/boot/dts/omap4-panda.dts +18 -0
index e8f927c..8060f5b 100644
@@ -65,6 +65,8 @@
  			&twl6040_pins
  			&mcpdm_pins
  			&mcbsp1_pins
+			&dss_hdmi_pins
+			&tpd12s015_pins
  	>;
 
  	twl6040_pins: pinmux_twl6040_pins {
@@ -92,6 +94,22 @@
  			0xc4 0x100	/* abe_mcbsp1_fsx.abe_mcbsp1_fsx INPUT | MODE0 */
  		>;
  	};
+
+	dss_hdmi_pins: pinmux_dss_hdmi_pins {
+		pinctrl-single,pins = <
+			0x5a 0x118	/* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
+			0x5c 0x118	/* hdmi_scl.hdmi_scl INPUT PULLUP | MODE 0 */
+			0x5e 0x118	/* hdmi_sda.hdmi_sda INPUT PULLUP | MODE 0 */
+		>;
+	};
+
+	tpd12s015_pins: pinmux_tpd12s015_pins {
+		pinctrl-single,pins = <
+			0x22 0x3	/* gpmc_a17.gpio_41 OUTPUT | MODE3 */
+			0x48 0x3	/* gpmc_nbe1.gpio_60 OUTPUT | MODE3 */
+			0x58 0x10b	/* hdmi_hpd.gpio_63 INPUT PULLDOWN | MODE3 */
+		>;
+	};
  };
 
  &i2c1 {
arch/arm/boot/dts/omap4-pandaES.dts +9 -0
index d4ba43a..73bc1a6 100644
@@ -22,3 +22,12 @@
  		"AFML", "Line In",
  		"AFMR", "Line In";
  };
+
+/* PandaboardES has external pullups on SCL & SDA */
+&dss_hdmi_pins {
+	pinctrl-single,pins = <
+		0x5a 0x118	/* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
+		0x5c 0x100	/* hdmi_scl.hdmi_scl INPUT | MODE 0 */
+		0x5e 0x100	/* hdmi_sda.hdmi_sda INPUT | MODE 0 */
+		>;
+};
#4 lore raw

PATCH 1/6 ARM/dts: omap4-panda: Add pinmux configuration for HDMI

In reply to Tomi Valkeinen

Hi Tomi,

Quoted 11 lines · Tomi Valkeinen

From: Ricardo Neri <[email protected]>

Add the pinmux configuration for HDMI and TPD12S015A. Configure the gpios for the TPD12S015A and SDA, SCL and CEC for HDMI.

---
 arch/arm/boot/dts/omap4-panda-a4.dts |   17 +++++++++++++++++
 arch/arm/boot/dts/omap4-panda.dts    |   18 ++++++++++++++++++
 arch/arm/boot/dts/omap4-pandaES.dts  |    9 +++++++++

I've just renamed that file omap4-panda-es.dts for consistency, so you'd better rebase this series on top on my for_3.8/dts branch that I've just sent to Tony.

Otherwise, this looks good to me.

Regards,
Benoit

Quoted 80 lines
 3 files changed, 44 insertions(+)
 create mode 100644 arch/arm/boot/dts/omap4-panda-a4.dts
arch/arm/boot/dts/omap4-panda-a4.dts new file +17 -0
new file mode 100644
index 0000000..75466d2
@@ -0,0 +1,17 @@
+/*
+ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+/include/ "omap4-panda.dts"
+
+/* Pandaboard Rev A4+ have external pullups on SCL & SDA */
+&dss_hdmi_pins {
+	pinctrl-single,pins = <
+		0x5a 0x118	/* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
+		0x5c 0x100	/* hdmi_scl.hdmi_scl INPUT | MODE 0 */
+		0x5e 0x100	/* hdmi_sda.hdmi_sda INPUT | MODE 0 */
+		>;
+};
arch/arm/boot/dts/omap4-panda.dts +18 -0
index e8f927c..8060f5b 100644
@@ -65,6 +65,8 @@
 			&twl6040_pins
 			&mcpdm_pins
 			&mcbsp1_pins
+			&dss_hdmi_pins
+			&tpd12s015_pins
 	>;
 
 	twl6040_pins: pinmux_twl6040_pins {
@@ -92,6 +94,22 @@
 			0xc4 0x100	/* abe_mcbsp1_fsx.abe_mcbsp1_fsx INPUT | MODE0 */
 		>;
 	};
+
+	dss_hdmi_pins: pinmux_dss_hdmi_pins {
+		pinctrl-single,pins = <
+			0x5a 0x118	/* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
+			0x5c 0x118	/* hdmi_scl.hdmi_scl INPUT PULLUP | MODE 0 */
+			0x5e 0x118	/* hdmi_sda.hdmi_sda INPUT PULLUP | MODE 0 */
+		>;
+	};
+
+	tpd12s015_pins: pinmux_tpd12s015_pins {
+		pinctrl-single,pins = <
+			0x22 0x3	/* gpmc_a17.gpio_41 OUTPUT | MODE3 */
+			0x48 0x3	/* gpmc_nbe1.gpio_60 OUTPUT | MODE3 */
+			0x58 0x10b	/* hdmi_hpd.gpio_63 INPUT PULLDOWN | MODE3 */
+		>;
+	};
 };
 
 &i2c1 {
arch/arm/boot/dts/omap4-pandaES.dts +9 -0
index d4ba43a..73bc1a6 100644
@@ -22,3 +22,12 @@
 		"AFML", "Line In",
 		"AFMR", "Line In";
 };
+
+/* PandaboardES has external pullups on SCL & SDA */
+&dss_hdmi_pins {
+	pinctrl-single,pins = <
+		0x5a 0x118	/* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
+		0x5c 0x100	/* hdmi_scl.hdmi_scl INPUT | MODE 0 */
+		0x5e 0x100	/* hdmi_sda.hdmi_sda INPUT | MODE 0 */
+		>;
+};
#5 lore raw

PATCH 1/6 ARM/dts: omap4-panda: Add pinmux configuration for HDMI

In reply to Tomi Valkeinen

Hi Tomi,

Quoted 11 lines · Tomi Valkeinen

From: Ricardo Neri <[email protected]>

Add the pinmux configuration for HDMI and TPD12S015A. Configure the gpios for the TPD12S015A and SDA, SCL and CEC for HDMI.

---
 arch/arm/boot/dts/omap4-panda-a4.dts |   17 +++++++++++++++++
 arch/arm/boot/dts/omap4-panda.dts    |   18 ++++++++++++++++++
 arch/arm/boot/dts/omap4-pandaES.dts  |    9 +++++++++

I've just changed the subject, file name and applied it in the for_3.8/dts_part2 branch.

Please find below the updated version.

Regards,
Benoit

---

Quoted 1 line

From 0d9250c4cb2387436c0ccc7a580f6cb4f3544e40 Mon Sep 17 00:00:00 2001

From: Ricardo Neri <[email protected]>
Date: Mon, 5 Nov 2012 15:14:14 +0200
Subject: [PATCH 1/2] ARM: dts: omap4-panda: Add pinmux configuration for HDMI

Add the pinmux configuration for HDMI and TPD12S015A. Configure the gpios for the TPD12S015A and SDA, SCL and CEC for HDMI.

---
 arch/arm/boot/dts/omap4-panda-a4.dts |   17 +++++++++++++++++
 arch/arm/boot/dts/omap4-panda-es.dts |    9 +++++++++
 arch/arm/boot/dts/omap4-panda.dts    |   18 ++++++++++++++++++
 3 files changed, 44 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/boot/dts/omap4-panda-a4.dts
arch/arm/boot/dts/omap4-panda-a4.dts new file +17 -0
new file mode 100644
index 0000000..75466d2
@@ -0,0 +1,17 @@
+/*
+ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+/include/ "omap4-panda.dts"
+
+/* Pandaboard Rev A4+ have external pullups on SCL & SDA */
+&dss_hdmi_pins {
+	pinctrl-single,pins = <
+		0x5a 0x118	/* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
+		0x5c 0x100	/* hdmi_scl.hdmi_scl INPUT | MODE 0 */
+		0x5e 0x100	/* hdmi_sda.hdmi_sda INPUT | MODE 0 */
+		>;
+};
arch/arm/boot/dts/omap4-panda-es.dts +9 -0
index d4ba43a..73bc1a6 100644
@@ -22,3 +22,12 @@
 		"AFML", "Line In",
 		"AFMR", "Line In";
 };
+
+/* PandaboardES has external pullups on SCL & SDA */
+&dss_hdmi_pins {
+	pinctrl-single,pins = <
+		0x5a 0x118	/* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
+		0x5c 0x100	/* hdmi_scl.hdmi_scl INPUT | MODE 0 */
+		0x5e 0x100	/* hdmi_sda.hdmi_sda INPUT | MODE 0 */
+		>;
+};
arch/arm/boot/dts/omap4-panda.dts +18 -0
index 32baf65..4122efe 100644
@@ -65,6 +65,8 @@
 			&twl6040_pins
 			&mcpdm_pins
 			&mcbsp1_pins
+			&dss_hdmi_pins
+			&tpd12s015_pins
 	>;
 
 	twl6040_pins: pinmux_twl6040_pins {
@@ -92,6 +94,22 @@
 			0xc4 0x100	/* abe_mcbsp1_fsx.abe_mcbsp1_fsx INPUT | MODE0 */
 		>;
 	};
+
+	dss_hdmi_pins: pinmux_dss_hdmi_pins {
+		pinctrl-single,pins = <
+			0x5a 0x118	/* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
+			0x5c 0x118	/* hdmi_scl.hdmi_scl INPUT PULLUP | MODE 0 */
+			0x5e 0x118	/* hdmi_sda.hdmi_sda INPUT PULLUP | MODE 0 */
+		>;
+	};
+
+	tpd12s015_pins: pinmux_tpd12s015_pins {
+		pinctrl-single,pins = <
+			0x22 0x3	/* gpmc_a17.gpio_41 OUTPUT | MODE3 */
+			0x48 0x3	/* gpmc_nbe1.gpio_60 OUTPUT | MODE3 */
+			0x58 0x10b	/* hdmi_hpd.gpio_63 INPUT PULLDOWN | MODE3 */
+		>;
+	};
 };
 
 &i2c1 {
Signature · 1 line
1.7.0.4
#6 lore raw

PATCH 1/6 ARM/dts: omap4-panda: Add pinmux configuration for HDMI

In reply to Tomi Valkeinen

Hi Tomi,

Quoted 4 lines · Tomi Valkeinen

From: Ricardo Neri <[email protected]>

Add the pinmux configuration for HDMI and TPD12S015A. Configure the gpios for the TPD12S015A and SDA, SCL and CEC for HDMI.

Do you plan to upstream the complete DT-boot support for DSS (specifically, HDMI) for 3.8? I am asking so that I can upstream the audio part.

Thanks!

Ricardo

Quoted 87 lines
---
  arch/arm/boot/dts/omap4-panda-a4.dts |   17 +++++++++++++++++
  arch/arm/boot/dts/omap4-panda.dts    |   18 ++++++++++++++++++
  arch/arm/boot/dts/omap4-pandaES.dts  |    9 +++++++++
  3 files changed, 44 insertions(+)

create mode 100644 arch/arm/boot/dts/omap4-panda-a4.dts

arch/arm/boot/dts/omap4-panda-a4.dts new file +17 -0
new file mode 100644
index 0000000..75466d2
@@ -0,0 +1,17 @@
+/*
+ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+/include/ "omap4-panda.dts"
+
+/* Pandaboard Rev A4+ have external pullups on SCL & SDA */
+&dss_hdmi_pins {
+	pinctrl-single,pins = <
+		0x5a 0x118	/* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
+		0x5c 0x100	/* hdmi_scl.hdmi_scl INPUT | MODE 0 */
+		0x5e 0x100	/* hdmi_sda.hdmi_sda INPUT | MODE 0 */
+		>;
+};
arch/arm/boot/dts/omap4-panda.dts +18 -0
index e8f927c..8060f5b 100644
@@ -65,6 +65,8 @@
  			&twl6040_pins
  			&mcpdm_pins
  			&mcbsp1_pins
+			&dss_hdmi_pins
+			&tpd12s015_pins
  	>;
 
  	twl6040_pins: pinmux_twl6040_pins {
@@ -92,6 +94,22 @@
  			0xc4 0x100	/* abe_mcbsp1_fsx.abe_mcbsp1_fsx INPUT | MODE0 */
  		>;
  	};
+
+	dss_hdmi_pins: pinmux_dss_hdmi_pins {
+		pinctrl-single,pins = <
+			0x5a 0x118	/* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
+			0x5c 0x118	/* hdmi_scl.hdmi_scl INPUT PULLUP | MODE 0 */
+			0x5e 0x118	/* hdmi_sda.hdmi_sda INPUT PULLUP | MODE 0 */
+		>;
+	};
+
+	tpd12s015_pins: pinmux_tpd12s015_pins {
+		pinctrl-single,pins = <
+			0x22 0x3	/* gpmc_a17.gpio_41 OUTPUT | MODE3 */
+			0x48 0x3	/* gpmc_nbe1.gpio_60 OUTPUT | MODE3 */
+			0x58 0x10b	/* hdmi_hpd.gpio_63 INPUT PULLDOWN | MODE3 */
+		>;
+	};
  };
 
  &i2c1 {
arch/arm/boot/dts/omap4-pandaES.dts +9 -0
index d4ba43a..73bc1a6 100644
@@ -22,3 +22,12 @@
  		"AFML", "Line In",
  		"AFMR", "Line In";
  };
+
+/* PandaboardES has external pullups on SCL & SDA */
+&dss_hdmi_pins {
+	pinctrl-single,pins = <
+		0x5a 0x118	/* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
+		0x5c 0x100	/* hdmi_scl.hdmi_scl INPUT | MODE 0 */
+		0x5e 0x100	/* hdmi_sda.hdmi_sda INPUT | MODE 0 */
+		>;
+};
#7 lore raw

PATCH 1/6 ARM/dts: omap4-panda: Add pinmux configuration for HDMI

Hi,

Quoted 11 lines · Ricardo Neri

Hi Tomi,

Quoted 4 lines · Tomi Valkeinen

From: Ricardo Neri <[email protected]>

Add the pinmux configuration for HDMI and TPD12S015A. Configure the gpios for the TPD12S015A and SDA, SCL and CEC for HDMI.

Do you plan to upstream the complete DT-boot support for DSS (specifically, HDMI) for 3.8? I am asking so that I can upstream the audio part.

No. This series will enable DSS with DT boot on panda and sdp boards, but it's achieved by a hack, as the DSS configuration still comes from platform data.

To get full DSS DT support we need to pretty much rewrite the dss panel device handling and adapt to common panel framework (which isn't ready yet).

Tomi

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 897 bytes
Desc: OpenPGP digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20121114/4f5e5a1a/attachment.sig>

#8 lore raw

PATCH 2/6 ARM/dts: omap4-sdp: Add pinmux configuration for HDMI

In reply to Tomi Valkeinen

From: Ricardo Neri <[email protected]>

Add the pinmux configuration for HDMI and TPD12S015A. Configure the gpios for the TPD12S015A and SDA, SCL and CEC for HDMI.

---
 arch/arm/boot/dts/omap4-sdp-es23plus.dts |   17 +++++++++++++++++
 arch/arm/boot/dts/omap4-sdp.dts          |   18 ++++++++++++++++++
 2 files changed, 35 insertions(+)
 create mode 100644 arch/arm/boot/dts/omap4-sdp-es23plus.dts
arch/arm/boot/dts/omap4-sdp-es23plus.dts new file +17 -0
new file mode 100644
index 0000000..b4a40ff
@@ -0,0 +1,17 @@
+/*
+ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+/include/ "omap4-sdp.dts"
+
+/* SDP boards with 4430 ES2.3+ or 4460 have external pullups on SCL & SDA */
+&dss_hdmi_pins {
+	pinctrl-single,pins = <
+		0x5a 0x118	/* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
+		0x5c 0x100	/* hdmi_scl.hdmi_scl INPUT | MODE 0 */
+		0x5e 0x100	/* hdmi_sda.hdmi_sda INPUT | MODE 0 */
+		>;
+};
arch/arm/boot/dts/omap4-sdp.dts +18 -0
index 5b7e04f..7b14bb3 100644
@@ -124,6 +124,8 @@
 			&dmic_pins
 			&mcbsp1_pins
 			&mcbsp2_pins
+			&dss_hdmi_pins
+			&tpd12s015_pins
 	>;
 
 	uart2_pins: pinmux_uart2_pins {
@@ -194,6 +196,22 @@
 			0xbc 0x100	/* abe_mcbsp2_fsx.abe_mcbsp2_fsx INPUT | MODE0 */
 		>;
 	};
+
+	dss_hdmi_pins: pinmux_dss_hdmi_pins {
+		pinctrl-single,pins = <
+			0x5a 0x118	/* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
+			0x5c 0x118	/* hdmi_scl.hdmi_scl INPUT PULLUP | MODE 0 */
+			0x5e 0x118	/* hdmi_sda.hdmi_sda INPUT PULLUP | MODE 0 */
+		>;
+	};
+
+	tpd12s015_pins: pinmux_tpd12s015_pins {
+		pinctrl-single,pins = <
+			0x22 0x3	/* gpmc_a17.gpio_41 OUTPUT | MODE3 */
+			0x48 0x3	/* gpmc_nbe1.gpio_60 OUTPUT | MODE3 */
+			0x58 0x10b	/* hdmi_hpd.gpio_63 INPUT PULLDOWN | MODE3 */
+		>;
+	};
 };
 
 &i2c1 {
Signature · 1 line
1.7.10.4
#9 lore raw

PATCH 2/6 ARM/dts: omap4-sdp: Add pinmux configuration for HDMI

Quoted 7 lines · Tomi Valkeinen

From: Ricardo Neri <[email protected]>

Add the pinmux configuration for HDMI and TPD12S015A. Configure the gpios for the TPD12S015A and SDA, SCL and CEC for HDMI.

I've just changed the subject, and applied it in the for_3.8/dts_part2 branch.

Please find below the updated version.

Regards,
Benoit

---

Quoted 1 line

From 347bf48f2b5d2b45a4e42b89dd61b27ca8baced4 Mon Sep 17 00:00:00 2001

From: Ricardo Neri <[email protected]>
Date: Mon, 5 Nov 2012 15:14:15 +0200
Subject: [PATCH 2/2] ARM: dts: omap4-sdp: Add pinmux configuration for HDMI

Add the pinmux configuration for HDMI and TPD12S015A. Configure the gpios for the TPD12S015A and SDA, SCL and CEC for HDMI.

---
 arch/arm/boot/dts/omap4-sdp-es23plus.dts |   17 +++++++++++++++++
 arch/arm/boot/dts/omap4-sdp.dts          |   18 ++++++++++++++++++
 2 files changed, 35 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/boot/dts/omap4-sdp-es23plus.dts
arch/arm/boot/dts/omap4-sdp-es23plus.dts new file +17 -0
new file mode 100644
index 0000000..b4a40ff
@@ -0,0 +1,17 @@
+/*
+ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+/include/ "omap4-sdp.dts"
+
+/* SDP boards with 4430 ES2.3+ or 4460 have external pullups on SCL & SDA */
+&dss_hdmi_pins {
+	pinctrl-single,pins = <
+		0x5a 0x118	/* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
+		0x5c 0x100	/* hdmi_scl.hdmi_scl INPUT | MODE 0 */
+		0x5e 0x100	/* hdmi_sda.hdmi_sda INPUT | MODE 0 */
+		>;
+};
arch/arm/boot/dts/omap4-sdp.dts +18 -0
index 0f57bdf..43e5258 100644
@@ -124,6 +124,8 @@
 			&dmic_pins
 			&mcbsp1_pins
 			&mcbsp2_pins
+			&dss_hdmi_pins
+			&tpd12s015_pins
 	>;
 
 	uart2_pins: pinmux_uart2_pins {
@@ -194,6 +196,22 @@
 			0xbc 0x100	/* abe_mcbsp2_fsx.abe_mcbsp2_fsx INPUT | MODE0 */
 		>;
 	};
+
+	dss_hdmi_pins: pinmux_dss_hdmi_pins {
+		pinctrl-single,pins = <
+			0x5a 0x118	/* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
+			0x5c 0x118	/* hdmi_scl.hdmi_scl INPUT PULLUP | MODE 0 */
+			0x5e 0x118	/* hdmi_sda.hdmi_sda INPUT PULLUP | MODE 0 */
+		>;
+	};
+
+	tpd12s015_pins: pinmux_tpd12s015_pins {
+		pinctrl-single,pins = <
+			0x22 0x3	/* gpmc_a17.gpio_41 OUTPUT | MODE3 */
+			0x48 0x3	/* gpmc_nbe1.gpio_60 OUTPUT | MODE3 */
+			0x58 0x10b	/* hdmi_hpd.gpio_63 INPUT PULLDOWN | MODE3 */
+		>;
+	};
 };
 
 &i2c1 {
Signature · 1 line
1.7.0.4
#10 lore raw

PATCH 3/6 OMAPDSS: HACK: look for regulators with omap4 names

In reply to Tomi Valkeinen

Normally the omapdss driver gets the regulators using the regulator names assigned for omapdss. However, in an effort to get a minimal DSS support for DT enabled kernel on selected boards, we will add omapdss devices and platform data the old way even for DT kernel. This causes the problem that omapdss cannot find the regulators using omapdss's regulator names.

This patch creates a temporary workaround for DSI and HDMI by trying to get the regulators also using native OMAP4 regulator names.

---
 drivers/video/omap2/dss/dsi.c  |    8 ++++++++
 drivers/video/omap2/dss/hdmi.c |    4 ++++
 2 files changed, 12 insertions(+)
drivers/video/omap2/dss/dsi.c +8 -0
index d64ac38..738f3c4 100644
@@ -1753,6 +1753,10 @@ int dsi_pll_init(struct platform_device *dsidev, bool enable_hsclk,
 
 		vdds_dsi = regulator_get(&dsi->pdev->dev, "vdds_dsi");
 
+		/* DT HACK: try VCXIO to make omapdss work for o4 sdp/panda */
+		if (IS_ERR(vdds_dsi))
+			vdds_dsi = regulator_get(&dsi->pdev->dev, "VCXIO");
+
 		if (IS_ERR(vdds_dsi)) {
 			DSSERR("can't get VDDS_DSI regulator\n");
 			return PTR_ERR(vdds_dsi);
@@ -4972,6 +4976,10 @@ static int __init dsi_init_display(struct omap_dss_device *dssdev)
 
 		vdds_dsi = regulator_get(&dsi->pdev->dev, "vdds_dsi");
 
+		/* DT HACK: try VCXIO to make omapdss work for o4 sdp/panda */
+		if (IS_ERR(vdds_dsi))
+			vdds_dsi = regulator_get(&dsi->pdev->dev, "VCXIO");
+
 		if (IS_ERR(vdds_dsi)) {
 			DSSERR("can't get VDDS_DSI regulator\n");
 			return PTR_ERR(vdds_dsi);
drivers/video/omap2/dss/hdmi.c +4 -0
index a48a7dd..deaeb6c 100644
@@ -340,6 +340,10 @@ static int __init hdmi_init_display(struct omap_dss_device *dssdev)
 
 		reg = devm_regulator_get(&hdmi.pdev->dev, "vdda_hdmi_dac");
 
+		/* DT HACK: try VDAC to make omapdss work for o4 sdp/panda */
+		if (IS_ERR(reg))
+			reg = devm_regulator_get(&hdmi.pdev->dev, "VDAC");
+
 		if (IS_ERR(reg)) {
 			DSSERR("can't get VDDA_HDMI_DAC regulator\n");
 			return PTR_ERR(reg);
Signature · 1 line
1.7.10.4
#11 lore raw

PATCH 4/6 OMAP: panda: move display init from board file to dss-common.c

In reply to Tomi Valkeinen

Device tree support for omapdss is still some way in the future. In an effort to get a minimal DSS support for DT enabled kernel on selected OMAP4 boards, we'll go for a temporary solution: We will call the same non-DT omapdss setup code for OMAP4 SDP and Pandaboards from board-generic.c, thus enabling DSS for those boards.

This patch moves the display setup code from board-omap4panda.c to dss-common.c. dss-common.c will be called by the board-omap4panda.c when running on non-DT kernel, and by board-generic.c when running on DT enabled kernel.

---
 arch/arm/mach-omap2/Makefile           |    2 +-
 arch/arm/mach-omap2/board-omap4panda.c |   68 +--------------------
 arch/arm/mach-omap2/dss-common.c       |  104 ++++++++++++++++++++++++++++++++
 arch/arm/mach-omap2/dss-common.h       |   12 ++++
 4 files changed, 118 insertions(+), 68 deletions(-)
 create mode 100644 arch/arm/mach-omap2/dss-common.c
 create mode 100644 arch/arm/mach-omap2/dss-common.h
arch/arm/mach-omap2/Makefile +1 -1
index fe40d9e..fb38a9b 100644
@@ -279,4 +279,4 @@ endif
 emac-$(CONFIG_TI_DAVINCI_EMAC)		:= am35xx-emac.o
 obj-y					+= $(emac-m) $(emac-y)
 
-obj-y					+= common-board-devices.o twl-common.o
+obj-y					+= common-board-devices.o twl-common.o dss-common.o
arch/arm/mach-omap2/board-omap4panda.c +1 -67

95 lines not on this page · raw message

arch/arm/mach-omap2/dss-common.c new file +104 -0

104 lines not on this page · raw message

arch/arm/mach-omap2/dss-common.h new file +12 -0
new file mode 100644
index 0000000..6fac6a8
@@ -0,0 +1,12 @@
+#ifndef __OMAP_DSS_COMMON__
+#define __OMAP_DSS_COMMON__
+
+/*
+ * NOTE: this is a transitional file to help with DT adaptation.
+ * This file will be removed when DSS supports DT.
+ */
+
+void __init omap4_panda_display_init(void);
+void __init omap4_panda_display_init_of(void);
+
+#endif
Signature · 1 line
1.7.10.4
#12 lore raw

PATCH 5/6 OMAP: omap4sdp: move display init from board file to dss-common.c

In reply to Tomi Valkeinen

Device tree support for omapdss is still some way in the future. In an effort to get a minimal DSS support for DT enabled kernel on selected OMAP4 boards, we'll go for a temporary solution: We will call the same non-DT omapdss setup code for OMAP4 SDP and Pandaboards from board-generic.c, thus enabling DSS for those boards.

This patch moves the display setup code from board-4430sdp.c to dss-common.c. dss-common.c will be called by the board-4430sdp.c when running on non-DT kernel, and by board-generic.c when running on DT enabled kernel.

---
 arch/arm/mach-omap2/board-4430sdp.c |  157 +-------------------------------
 arch/arm/mach-omap2/dss-common.c    |  172 +++++++++++++++++++++++++++++++++++
 arch/arm/mach-omap2/dss-common.h    |    2 +
 3 files changed, 175 insertions(+), 156 deletions(-)
arch/arm/mach-omap2/board-4430sdp.c +1 -156
index 3669c12..8ce98ae 100644
@@ -37,9 +37,6 @@
 #include <plat/usb.h>
 #include <plat/mmc.h>
 #include "omap4-keypad.h"
-#include <video/omapdss.h>
-#include <video/omap-panel-nokia-dsi.h>
-#include <video/omap-panel-picodlp.h>
 #include <linux/wl12xx.h>
 #include <linux/platform_data/omap-abe-twl6040.h>
 
@@ -48,17 +45,13 @@
 #include "hsmmc.h"
 #include "control.h"
 #include "common-board-devices.h"
+#include "dss-common.h"
 
 #define ETH_KS8851_IRQ			34
 #define ETH_KS8851_POWER_ON		48
 #define ETH_KS8851_QUART		138
 #define OMAP4_SFH7741_SENSOR_OUTPUT_GPIO	184
 #define OMAP4_SFH7741_ENABLE_GPIO		188
-#define HDMI_GPIO_CT_CP_HPD 60 /* HPD mode enable/disable */
-#define HDMI_GPIO_LS_OE 41 /* Level shifter for HDMI */
-#define HDMI_GPIO_HPD  63 /* Hotplug detect */
-#define DISPLAY_SEL_GPIO	59	/* LCD2/PicoDLP switch */
-#define DLP_POWER_ON_GPIO	40
 
 #define GPIO_WIFI_PMENA		54
 #define GPIO_WIFI_IRQ		53
@@ -607,154 +600,6 @@ static void __init omap_sfh7741prox_init(void)
 			__func__, OMAP4_SFH7741_ENABLE_GPIO, error);
 }
 
-static struct nokia_dsi_panel_data dsi1_panel = {
-		.name		= "taal",
-		.reset_gpio	= 102,
-		.use_ext_te	= false,
-		.ext_te_gpio	= 101,
-		.esd_interval	= 0,
-		.pin_config = {
-			.num_pins	= 6,
-			.pins		= { 0, 1, 2, 3, 4, 5 },
-		},
-};
-
-static struct omap_dss_device sdp4430_lcd_device = {
-	.name			= "lcd",
-	.driver_name		= "taal",
-	.type			= OMAP_DISPLAY_TYPE_DSI,
-	.data			= &dsi1_panel,
-	.phy.dsi		= {
-		.module		= 0,
-	},
-	.channel		= OMAP_DSS_CHANNEL_LCD,
-};
-
-static struct nokia_dsi_panel_data dsi2_panel = {
-		.name		= "taal",
-		.reset_gpio	= 104,
-		.use_ext_te	= false,
-		.ext_te_gpio	= 103,
-		.esd_interval	= 0,
-		.pin_config = {
-			.num_pins	= 6,
-			.pins		= { 0, 1, 2, 3, 4, 5 },
-		},
-};
-
-static struct omap_dss_device sdp4430_lcd2_device = {
-	.name			= "lcd2",
-	.driver_name		= "taal",
-	.type			= OMAP_DISPLAY_TYPE_DSI,
-	.data			= &dsi2_panel,
-	.phy.dsi		= {
-
-		.module		= 1,
-	},
-	.channel		= OMAP_DSS_CHANNEL_LCD2,
-};
-
-static struct omap_dss_hdmi_data sdp4430_hdmi_data = {
-	.ct_cp_hpd_gpio = HDMI_GPIO_CT_CP_HPD,
-	.ls_oe_gpio = HDMI_GPIO_LS_OE,
-	.hpd_gpio = HDMI_GPIO_HPD,
-};
-
-static struct omap_dss_device sdp4430_hdmi_device = {
-	.name = "hdmi",
-	.driver_name = "hdmi_panel",
-	.type = OMAP_DISPLAY_TYPE_HDMI,
-	.channel = OMAP_DSS_CHANNEL_DIGIT,
-	.data = &sdp4430_hdmi_data,
-};
-
-static struct picodlp_panel_data sdp4430_picodlp_pdata = {
-	.picodlp_adapter_id	= 2,
-	.emu_done_gpio		= 44,
-	.pwrgood_gpio		= 45,
-};
-
-static void sdp4430_picodlp_init(void)
-{
-	int r;
-	const struct gpio picodlp_gpios[] = {
-		{DLP_POWER_ON_GPIO, GPIOF_OUT_INIT_LOW,
-			"DLP POWER ON"},
-		{sdp4430_picodlp_pdata.emu_done_gpio, GPIOF_IN,
-			"DLP EMU DONE"},
-		{sdp4430_picodlp_pdata.pwrgood_gpio, GPIOF_OUT_INIT_LOW,
-			"DLP PWRGOOD"},
-	};
-
-	r = gpio_request_array(picodlp_gpios, ARRAY_SIZE(picodlp_gpios));
-	if (r)
-		pr_err("Cannot request PicoDLP GPIOs, error %d\n", r);
-}
-
-static int sdp4430_panel_enable_picodlp(struct omap_dss_device *dssdev)
-{
-	gpio_set_value(DISPLAY_SEL_GPIO, 0);
-	gpio_set_value(DLP_POWER_ON_GPIO, 1);
-
-	return 0;
-}
-
-static void sdp4430_panel_disable_picodlp(struct omap_dss_device *dssdev)
-{
-	gpio_set_value(DLP_POWER_ON_GPIO, 0);
-	gpio_set_value(DISPLAY_SEL_GPIO, 1);
-}
-
-static struct omap_dss_device sdp4430_picodlp_device = {
-	.name			= "picodlp",
-	.driver_name		= "picodlp_panel",
-	.type			= OMAP_DISPLAY_TYPE_DPI,
-	.phy.dpi.data_lines	= 24,
-	.channel		= OMAP_DSS_CHANNEL_LCD2,
-	.platform_enable	= sdp4430_panel_enable_picodlp,
-	.platform_disable	= sdp4430_panel_disable_picodlp,
-	.data			= &sdp4430_picodlp_pdata,
-};
-
-static struct omap_dss_device *sdp4430_dss_devices[] = {
-	&sdp4430_lcd_device,
-	&sdp4430_lcd2_device,
-	&sdp4430_hdmi_device,
-	&sdp4430_picodlp_device,
-};
-
-static struct omap_dss_board_info sdp4430_dss_data = {
-	.num_devices	= ARRAY_SIZE(sdp4430_dss_devices),
-	.devices	= sdp4430_dss_devices,
-	.default_device	= &sdp4430_lcd_device,
-};
-
-static void __init omap_4430sdp_display_init(void)
-{
-	int r;
-
-	/* Enable LCD2 by default (instead of Pico DLP) */
-	r = gpio_request_one(DISPLAY_SEL_GPIO, GPIOF_OUT_INIT_HIGH,
-			"display_sel");
-	if (r)
-		pr_err("%s: Could not get display_sel GPIO\n", __func__);
-
-	sdp4430_picodlp_init();
-	omap_display_init(&sdp4430_dss_data);
-	/*
-	 * OMAP4460SDP/Blaze and OMAP4430 ES2.3 SDP/Blaze boards and
-	 * later have external pull up on the HDMI I2C lines
-	 */
-	if (cpu_is_omap446x() || omap_rev() > OMAP4430_REV_ES2_2)
-		omap_hdmi_init(OMAP_HDMI_SDA_SCL_EXTERNAL_PULLUP);
-	else
-		omap_hdmi_init(0);
-
-	omap_mux_init_gpio(HDMI_GPIO_LS_OE, OMAP_PIN_OUTPUT);
-	omap_mux_init_gpio(HDMI_GPIO_CT_CP_HPD, OMAP_PIN_OUTPUT);
-	omap_mux_init_gpio(HDMI_GPIO_HPD, OMAP_PIN_INPUT_PULLDOWN);
-}
-
 #ifdef CONFIG_OMAP_MUX
 static struct omap_board_mux board_mux[] __initdata = {
 	OMAP4_MUX(USBB2_ULPITLL_CLK, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
arch/arm/mach-omap2/dss-common.c +172 -0

183 lines not on this page · raw message

arch/arm/mach-omap2/dss-common.h +2 -0
index 6fac6a8..915f6ff 100644
@@ -8,5 +8,7 @@
 
 void __init omap4_panda_display_init(void);
 void __init omap4_panda_display_init_of(void);
+void __init omap_4430sdp_display_init(void);
+void __init omap_4430sdp_display_init_of(void);
 
 #endif
Signature · 1 line
1.7.10.4
#13 lore raw

PATCH 6/6 OMAP: board-generic: enable DSS for panda & sdp boards

In reply to Tomi Valkeinen

Call the non-DT omapdss setup code from board-generic if the board is omap4-panda or omap4-sdp. This will give us working omapdss for those boards when using DT kernel.

---
 arch/arm/mach-omap2/board-generic.c |   10 ++++++++++
 1 file changed, 10 insertions(+)
arch/arm/mach-omap2/board-generic.c +10 -0
index 601ecdf..8f5f21c 100644
@@ -21,6 +21,7 @@
 
 #include "common.h"
 #include "common-board-devices.h"
+#include "dss-common.h"
 
 #if !(defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3))
 #define intc_of_init	NULL
@@ -40,6 +41,15 @@ static void __init omap_generic_init(void)
 	omap_sdrc_init(NULL, NULL);
 
 	of_platform_populate(NULL, omap_dt_match_table, NULL, NULL);
+
+	/*
+	 * HACK: call display setup code for selected boards to enable omapdss.
+	 * This will be removed when omapdss supports DT.
+	 */
+	if (of_machine_is_compatible("ti,omap4-panda"))
+		omap4_panda_display_init_of();
+	else if (of_machine_is_compatible("ti,omap4-sdp"))
+		omap_4430sdp_display_init_of();
 }
 
 #ifdef CONFIG_SOC_OMAP2420
Signature · 1 line
1.7.10.4
maintainer
#14 lore raw

cover OMAPDSS: enable DSS for Panda & SDP with devtree

In reply to Tomi Valkeinen
Quoted 16 lines · Tomi Valkeinen

Hi,

OMAPDSS device tree support is still some way in the future. Tony has requested to get DSS working for Panda & SDP boards with DT kernel, so that we'll have fully working boards with DT.

This series makes a few hacks to get a working display on OMAP4 Panda and SDP boards. The idea is to setup the omapdss with the non-DT method, creating the omapdss devices and passing platform data to them. This setup code is called from board-generic for Panda and SDP boards.

There was one problem with this approach: omapdss cannot get regulators using the omapdss's names fro the regulators. Thus there's a hack patch to get the regulators using the OMAP4 "native" regulator names, thus circumventing the problem.

Quoted 4 lines

Tony, if these look good, how do you want to merge these? There are three parts here, and I think they can be merged independently if so wished:

* .dts changes for the pinmuxing (2 patches)

Let's let Benoit queue these.

Quoted 1 line

* dss-common.c and board-generic.c changes (3 patches)

And I can take these.

Quoted 1 line

* DSS hack for the regulators (1 patch)

And you can take this.

Quoted 3 lines

If one of those parts is missing, DSS won't start with DT kernel, but otherwise there shouldn't be any problems. So to avoid conflicts, I suggest that you take the first two parts, and I'll merge the DSS hack via omapdss tree.

Cool thanks for doing this. Looks OK to me until we have the DT bindings ready.

Regards,

Tony

#15 lore raw

cover OMAPDSS: enable DSS for Panda & SDP with devtree

Quoted 17 lines · Tony Lindgren
Quoted 16 lines · Tomi Valkeinen

Hi,

OMAPDSS device tree support is still some way in the future. Tony has requested to get DSS working for Panda & SDP boards with DT kernel, so that we'll have fully working boards with DT.

This series makes a few hacks to get a working display on OMAP4 Panda and SDP boards. The idea is to setup the omapdss with the non-DT method, creating the omapdss devices and passing platform data to them. This setup code is called from board-generic for Panda and SDP boards.

There was one problem with this approach: omapdss cannot get regulators using the omapdss's names fro the regulators. Thus there's a hack patch to get the regulators using the OMAP4 "native" regulator names, thus circumventing the problem.

Quoted 6 lines
Quoted 4 lines

Tony, if these look good, how do you want to merge these? There are three parts here, and I think they can be merged independently if so wished:

* .dts changes for the pinmuxing (2 patches)

Let's let Benoit queue these.

Done. I'll send you the pull-request tomorrow in case some more DTS patches are coming.

Regards,
Benoit

maintainer
#16 lore raw

cover OMAPDSS: enable DSS for Panda & SDP with devtree

Quoted 21 lines · Benoit Cousson
Quoted 20 lines · Tony Lindgren
Quoted 19 lines · Tomi Valkeinen

Hi,

OMAPDSS device tree support is still some way in the future. Tony has requested to get DSS working for Panda & SDP boards with DT kernel, so that we'll have fully working boards with DT.

This series makes a few hacks to get a working display on OMAP4 Panda and SDP boards. The idea is to setup the omapdss with the non-DT method, creating the omapdss devices and passing platform data to them. This setup code is called from board-generic for Panda and SDP boards.

There was one problem with this approach: omapdss cannot get regulators using the omapdss's names fro the regulators. Thus there's a hack patch to get the regulators using the OMAP4 "native" regulator names, thus circumventing the problem.

Tony, if these look good, how do you want to merge these? There are three parts here, and I think they can be merged independently if so wished:

Quoted 6 lines
Quoted 3 lines
Quoted 1 line

* .dts changes for the pinmuxing (2 patches)

Let's let Benoit queue these.

Done. I'll send you the pull-request tomorrow in case some more DTS patches are coming.

OK thanks, I'll apply 3-6 to omap-for-v3.8/board branch.

Regards,

Tony