All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mayuresh Janorkar <mayur@ti.com>
To: linux-omap@vger.kernel.org
Cc: tomi.valkeinen@ti.com, Mayuresh Janorkar <mayur@ti.com>,
	Mythri P K <mythripk@ti.com>
Subject: [PATCH v3 3/4] OMAP4: DSS: Adding a picodlp in OMAP4430 SDP board file
Date: Mon,  9 May 2011 20:48:38 +0530	[thread overview]
Message-ID: <1304954319-8386-4-git-send-email-mayur@ti.com> (raw)
In-Reply-To: <1304954319-8386-1-git-send-email-mayur@ti.com>

An on-board projector named picodlp is available for OMAP4430 SDP.

Entry for this picodlp as a panel is being added in dss_devices array
to the board file.
It needs 4 GPIO pins for interfacing with host processor
and these are defined and two of them are configured in board file.
Two GPIOs power_on and display_select are configured here.
picodlp also needs an i2c client over i2c controller-2 at address 0x1b.

Signed-off-by: Mayuresh Janorkar <mayur@ti.com>
Signed-off-by: Mythri P K <mythripk@ti.com>
---
Changes since v2:
	 Changed GPIO names to power_on, emu_done and pwrgood

 arch/arm/mach-omap2/board-4430sdp.c |   58 +++++++++++++++++++++++++++++++++++
 1 files changed, 58 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
index 570e83f..060aded 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -38,6 +38,7 @@
 #include <plat/omap4-keypad.h>
 #include <plat/display.h>
 #include <plat/nokia-dsi-panel.h>
+#include <plat/panel-picodlp.h>
 
 #include "mux.h"
 #include "hsmmc.h"
@@ -52,6 +53,8 @@
 #define HDMI_GPIO_HPD 60 /* Hot plug pin for HDMI */
 #define HDMI_GPIO_LS_OE 41 /* Level shifter for HDMI */
 #define LCD_BL_GPIO		27	/* LCD Backlight GPIO */
+#define OMAP4_DLP_POWER_ON_GPIO		40
+#define OMAP4_DLP_DISPLAY_SELECT_GPIO	59
 /* PWM2 and TOGGLE3 register offsets */
 #define LED_PWM2ON		0x03
 #define LED_PWM2OFF		0x04
@@ -812,9 +815,64 @@ static struct omap_dss_device sdp4430_hdmi_device = {
 	.channel = OMAP_DSS_CHANNEL_DIGIT,
 };
 
+static struct picodlp_panel_data sdp4430_picodlp_pdata = {
+	.picodlp_adapter_id	= 2,
+	.emu_done_gpio		= 44,
+	.pwrgood_gpio		= 45,
+};
+
+static int sdp4430_panel_enable_picodlp(struct omap_dss_device *dssdev)
+{
+	int status;
+	struct gpio picodlp_gpios[] = {
+		{OMAP4_DLP_POWER_ON_GPIO, GPIOF_OUT_INIT_LOW,
+			"DLP POWER ON"},
+		{OMAP4_DLP_DISPLAY_SELECT_GPIO, GPIOF_OUT_INIT_LOW,
+			"DLP DISPLAY SELECT"},
+	};
+
+	status = gpio_request_array(picodlp_gpios, ARRAY_SIZE(picodlp_gpios));
+	if (status)
+		goto error1;
+
+	gpio_set_value(OMAP4_DLP_DISPLAY_SELECT_GPIO, 1);
+	gpio_set_value(OMAP4_DLP_POWER_ON_GPIO, 1);
+
+	return 0;
+error1:
+	pr_err("Cannot request OMAP4_DLP_GPIOs, error %d\n", status);
+	return status;
+}
+
+static void sdp4430_panel_disable_picodlp(struct omap_dss_device *dssdev)
+{
+	struct gpio picodlp_gpios[] = {
+		{OMAP4_DLP_POWER_ON_GPIO, GPIOF_OUT_INIT_LOW,
+			"DLP POWER ON"},
+		{OMAP4_DLP_DISPLAY_SELECT_GPIO, GPIOF_OUT_INIT_LOW,
+			"DLP DISPLAY SELECT"},
+	};
+	gpio_set_value(OMAP4_DLP_POWER_ON_GPIO, 0);
+	gpio_set_value(OMAP4_DLP_DISPLAY_SELECT_GPIO, 0);
+
+	gpio_free_array(picodlp_gpios, ARRAY_SIZE(picodlp_gpios));
+}
+
+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_hdmi_device,
+	&sdp4430_picodlp_device,
 };
 
 static struct omap_dss_board_info sdp4430_dss_data = {
-- 
1.7.1


  parent reply	other threads:[~2011-05-09 14:50 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-09 15:18 [PATCH v3 0/7] picodlp projector driver Mayuresh Janorkar
2011-05-09 15:18 ` [PATCH 1/4] OMAP: DSS: Adding a header file for picodlp data Mayuresh Janorkar
2011-05-09 15:18 ` [PATCH v3 2/4] OMAP: DSS: Adding a picodlp header file Mayuresh Janorkar
2011-05-09 15:18 ` Mayuresh Janorkar [this message]
2011-05-09 15:18 ` [PATCH v3 4/4] OMAP: DSS: Add picodlp panel driver Mayuresh Janorkar
2011-05-10  9:33   ` Tomi Valkeinen
2011-05-10 10:27     ` Janorkar, Mayuresh
2011-05-10 11:14       ` Tomi Valkeinen
2011-05-10 12:04         ` Janorkar, Mayuresh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1304954319-8386-4-git-send-email-mayur@ti.com \
    --to=mayur@ti.com \
    --cc=linux-omap@vger.kernel.org \
    --cc=mythripk@ti.com \
    --cc=tomi.valkeinen@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.