All of lore.kernel.org
 help / color / mirror / Atom feed
From: Donghwa Lee <dh09.lee@samsung.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 7/7] EXYNOS: support TRATS board display function
Date: Fri, 06 Apr 2012 14:36:27 +0900	[thread overview]
Message-ID: <4F7E80DB.4070907@samsung.com> (raw)

This patch support TRATS board configuration and display function.

Signed-off-by: Donghwa Lee <dh09.lee@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
---
 board/samsung/trats/trats.c |  147 +++++++++++++++++++++++++++++++++++++++++++
 include/configs/trats.h     |    8 +++
 2 files changed, 155 insertions(+), 0 deletions(-)

diff --git a/board/samsung/trats/trats.c b/board/samsung/trats/trats.c
index a7b4e4a..f9894b1 100644
--- a/board/samsung/trats/trats.c
+++ b/board/samsung/trats/trats.c
@@ -2,6 +2,7 @@
  * Copyright (C) 2011 Samsung Electronics
  * Heungjun Kim <riverful.kim@samsung.com>
  * Kyungmin Park <kyungmin.park@samsung.com>
+ * Donghwa Lee <dh09.lee@samsung.com>
  *
  * See file CREDITS for list of people who contributed to this
  * project.
@@ -23,11 +24,14 @@
  */
 
 #include <common.h>
+#include <lcd.h>
 #include <asm/io.h>
 #include <asm/arch/cpu.h>
 #include <asm/arch/gpio.h>
 #include <asm/arch/mmc.h>
 #include <asm/arch/clock.h>
+#include <asm/arch/clk.h>
+#include <asm/arch/mipi_dsim.h>
 #include <asm/arch/watchdog.h>
 #include <asm/arch/power.h>
 #include <pmic.h>
@@ -357,3 +361,146 @@ int board_early_init_f(void)
 
 	return 0;
 }
+
+static void lcd_reset(void)
+{
+	struct exynos4_gpio_part2 *gpio2 =
+		(struct exynos4_gpio_part2 *)samsung_get_base_gpio_part2();
+
+	s5p_gpio_direction_output(&gpio2->y4, 5, 1);
+	udelay(10000);
+	s5p_gpio_direction_output(&gpio2->y4, 5, 0);
+	udelay(10000);
+	s5p_gpio_direction_output(&gpio2->y4, 5, 1);
+}
+
+static int lcd_power(void)
+{
+	int ret = 0;
+	struct pmic *p = get_pmic();
+
+	if (pmic_probe(p))
+		return 0;
+
+	/* LDO15 voltage: 2.2v */
+	ret |= pmic_reg_write(p, MAX8997_REG_LDO15CTRL, 0x1c | EN_LDO);
+	/* LDO13 voltage: 3.0v */
+	ret |= pmic_reg_write(p, MAX8997_REG_LDO13CTRL, 0x2c | EN_LDO);
+
+	if (ret) {
+		puts("MAX8997 LDO setting error!\n");
+		return -1;
+	}
+
+	return 0;
+}
+
+static struct mipi_dsim_config dsim_config = {
+	.e_interface		= DSIM_VIDEO,
+	.e_virtual_ch		= DSIM_VIRTUAL_CH_0,
+	.e_pixel_format		= DSIM_24BPP_888,
+	.e_burst_mode		= DSIM_BURST_SYNC_EVENT,
+	.e_no_data_lane		= DSIM_DATA_LANE_4,
+	.e_byte_clk		= DSIM_PLL_OUT_DIV8,
+	.hfp			= 1,
+
+	.p			= 3,
+	.m			= 120,
+	.s			= 1,
+
+	/* D-PHY PLL stable time spec :min = 200usec ~ max 400usec */
+	.pll_stable_time	= 500,
+
+	/* escape clk : 10MHz */
+	.esc_clk		= 20 * 1000000,
+
+	/* stop state holding counter after bta change count 0 ~ 0xfff */
+	.stop_holding_cnt	= 0x7ff,
+	/* bta timeout 0 ~ 0xff */
+	.bta_timeout		= 0xff,
+	/* lp rx timeout 0 ~ 0xffff */
+	.rx_timeout		= 0xffff,
+};
+
+static struct exynos_platform_mipi_dsim s6e8ax0_platform_data = {
+	.lcd_panel_info = NULL,
+	.dsim_config = &dsim_config,
+};
+
+static struct mipi_dsim_lcd_device mipi_lcd_device = {
+	.name	= "s6e8ax0",
+	.id	= -1,
+	.bus_id	= 0,
+	.platform_data	= (void *)&s6e8ax0_platform_data,
+};
+
+static int mipi_power(void)
+{
+	int ret = 0;
+	struct pmic *p = get_pmic();
+
+	if (pmic_probe(p))
+		return 0;
+
+	/* LDO3 voltage: 1.1v */
+	ret |= pmic_reg_write(p, MAX8997_REG_LDO3CTRL, 0x6 | EN_LDO);
+	/* LDO4 voltage: 1.8v */
+	ret |= pmic_reg_write(p, MAX8997_REG_LDO4CTRL, 0x14 | EN_LDO);
+
+	if (ret) {
+		puts("MAX8997 LDO setting error!\n");
+		return -1;
+	}
+
+	return 0;
+}
+
+void init_panel_info(vidinfo_t *vid)
+{
+	vid->vl_freq	= 60;
+	vid->vl_col	= 720;
+	vid->vl_row	= 1280;
+	vid->vl_width	= 720;
+	vid->vl_height	= 1280;
+	vid->vl_clkp	= CONFIG_SYS_HIGH;
+	vid->vl_hsp	= CONFIG_SYS_LOW;
+	vid->vl_vsp	= CONFIG_SYS_LOW;
+	vid->vl_dp	= CONFIG_SYS_LOW;
+
+	vid->vl_bpix	= 32;
+	vid->dual_lcd_enabled = 0;
+
+	/* s6e8ax0 Panel */
+	vid->vl_hspw	= 5;
+	vid->vl_hbpd	= 10;
+	vid->vl_hfpd	= 10;
+
+	vid->vl_vspw	= 2;
+	vid->vl_vbpd	= 1;
+	vid->vl_vfpd	= 13;
+	vid->vl_cmd_allow_len = 0xf;
+
+	vid->win_id = 3;
+	vid->cfg_gpio = NULL;
+	vid->backlight_on = NULL;
+	vid->lcd_power_on = NULL;	/* lcd_power_on in mipi dsi driver */
+	vid->reset_lcd = lcd_reset;
+
+	vid->init_delay = 0;
+	vid->power_on_delay = 0;
+	vid->reset_delay = 0;
+	vid->interface_mode = FIMD_RGB_INTERFACE;
+	vid->mipi_enabled = 1;
+
+	strcpy(s6e8ax0_platform_data.lcd_panel_name, mipi_lcd_device.name);
+	s6e8ax0_platform_data.lcd_power = lcd_power;
+	s6e8ax0_platform_data.mipi_power = mipi_power;
+	s6e8ax0_platform_data.phy_enable = set_mipi_phy_ctrl;
+	s6e8ax0_platform_data.lcd_panel_info = (void *)vid;
+	exynos_mipi_dsi_register_lcd_device(&mipi_lcd_device);
+	s6e8ax0_init();
+	exynos_set_dsim_platform_data(&s6e8ax0_platform_data);
+
+	setenv("lcdinfo", "lcd=s6e8ax0");
+}
+
diff --git a/include/configs/trats.h b/include/configs/trats.h
index 1bc2bb2..5f913ca 100644
--- a/include/configs/trats.h
+++ b/include/configs/trats.h
@@ -213,4 +213,12 @@
 #define CONFIG_USB_GADGET_S3C_UDC_OTG
 #define CONFIG_USB_GADGET_DUALSPEED
 
+/* LCD */
+#define CONFIG_EXYNOS_FB
+#define CONFIG_LCD
+#define CONFIG_FB_ADDR		0x52504000
+#define CONFIG_S6E8AX0
+#define CONFIG_EXYNOS_MIPI_DSIM
+#define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE	(1280 * 720 * 4)
+
 #endif	/* __CONFIG_H */
-- 
1.7.4.1

             reply	other threads:[~2012-04-06  5:36 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-06  5:36 Donghwa Lee [this message]
2012-04-10 19:23 ` [U-Boot] [PATCH v2 7/7] EXYNOS: support TRATS board display function Anatolij Gustschin

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=4F7E80DB.4070907@samsung.com \
    --to=dh09.lee@samsung.com \
    --cc=u-boot@lists.denx.de \
    /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.