public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 7/7] EXYNOS: support TRATS board display function
@ 2012-04-05  6:29 Donghwa Lee
  2012-04-05 23:44 ` Anatolij Gustschin
  0 siblings, 1 reply; 3+ messages in thread
From: Donghwa Lee @ 2012-04-05  6:29 UTC (permalink / raw)
  To: u-boot

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..a6861e1 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.
@@ -22,12 +23,15 @@
  * MA 02111-1307 USA
  */
 
+#include <lcd.h>
 #include <common.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 -1;
+
+	/* 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 -1;
+
+	/* 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

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [U-Boot] [PATCH 7/7] EXYNOS: support TRATS board display function
  2012-04-05  6:29 [U-Boot] [PATCH 7/7] EXYNOS: support TRATS board display function Donghwa Lee
@ 2012-04-05 23:44 ` Anatolij Gustschin
  2012-04-06  4:09   ` Donghwa Lee
  0 siblings, 1 reply; 3+ messages in thread
From: Anatolij Gustschin @ 2012-04-05 23:44 UTC (permalink / raw)
  To: u-boot

Hi,

On Thu, 05 Apr 2012 15:29:34 +0900
Donghwa Lee <dh09.lee@samsung.com> wrote:

> 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..a6861e1 100644
> --- a/board/samsung/trats/trats.c
> +++ b/board/samsung/trats/trats.c
...
> @@ -22,12 +23,15 @@
>   * MA 02111-1307 USA
>   */
>  
> +#include <lcd.h>

Please put this lcd.h include after '#include <common.h>'. Otherwise the
code is broken. lcd.h expects some macros defined elsewhere and these
definitions will be included in common.h.

>  #include <common.h>

Thanks,
Anatolij

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [U-Boot] [PATCH 7/7] EXYNOS: support TRATS board display function
  2012-04-05 23:44 ` Anatolij Gustschin
@ 2012-04-06  4:09   ` Donghwa Lee
  0 siblings, 0 replies; 3+ messages in thread
From: Donghwa Lee @ 2012-04-06  4:09 UTC (permalink / raw)
  To: u-boot

Thank you for your comment.
I will fix all this patch according to your comments and send version2.

Thank you,
Donghwa Lee

On Fri, 06 Apr 2012 08:44, Anatolij Gustschin wrote:

> Hi,
> 
> On Thu, 05 Apr 2012 15:29:34 +0900
> Donghwa Lee <dh09.lee@samsung.com> wrote:
> 
>> 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..a6861e1 100644
>> --- a/board/samsung/trats/trats.c
>> +++ b/board/samsung/trats/trats.c
> ...
>> @@ -22,12 +23,15 @@
>>   * MA 02111-1307 USA
>>   */
>>  
>> +#include <lcd.h>
> 
> Please put this lcd.h include after '#include <common.h>'. Otherwise the
> code is broken. lcd.h expects some macros defined elsewhere and these
> definitions will be included in common.h.
> 
>>  #include <common.h>
> 
> Thanks,
> Anatolij
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-04-06  4:09 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-05  6:29 [U-Boot] [PATCH 7/7] EXYNOS: support TRATS board display function Donghwa Lee
2012-04-05 23:44 ` Anatolij Gustschin
2012-04-06  4:09   ` Donghwa Lee

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox