Skip to contentSkip to conversation

Add support for FIMD and DP on SMDK5250

PATCH Superseded Ajay Kumar 5 participants 14 messages Dec 21, 2012 – Jan 8, 2013

Subsystems (3)

v4 of 6 Superseded Latest is v6 →

lore
Share & tools
lore

Ajay Kumar

author
#0 lore raw

v4 cover Add support for FIMD and DP on SMDK5250

Changes since V3:
-- Make the dummy definition for "exynos_mipi_dsi_init" static and inline. -- Remove #ifdef, instead use logo_on field to add LCD console support.

[PATCH V2 RESEND 1/4] EXYNOS5: Change parent clock of FIMD to MPLL [PATCH V2 2/4] EXYNOS: Add dummy definition to fix compilation dependency on
CONFIG_EXYNOS_MIPI_DSIM
[PATCH V4 3/4] video: Modify exynos_fimd driver to support LCD console [PATCH V4 4/4] EXYNOS5: Add support for FIMD and DP

 arch/arm/cpu/armv7/exynos/clock.c            |    2 +-
 arch/arm/include/asm/arch-exynos/mipi_dsim.h |    7 ++
 board/samsung/smdk5250/smdk5250.c            |   97 ++++++++++++++++++++++++++
 drivers/video/exynos_fb.c                    |    7 ++
 drivers/video/exynos_fimd.c                  |   12 ++-
 include/configs/smdk5250.h                   |    8 ++
 6 files changed, 128 insertions(+), 5 deletions(-)
author
#1 lore raw

PATCH RESEND v2 1/4 EXYNOS5: Change parent clock of FIMD to MPLL

With VPLL as source clock to FIMD,
Exynos DP Initializaton was failing sometimes with unstable clock. Changing FIMD source to MPLL resolves this issue.

---
 arch/arm/cpu/armv7/exynos/clock.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
arch/arm/cpu/armv7/exynos/clock.c +1 -1
index fe61f88..bfcd5f7 100644
@@ -603,7 +603,7 @@ void exynos5_set_lcd_clk(void)
 	 */
 	cfg = readl(&clk->src_disp1_0);
 	cfg &= ~(0xf);
-	cfg |= 0x8;
+	cfg |= 0x6;
 	writel(cfg, &clk->src_disp1_0);
 
 	/*
Signature · 1 line
1.7.1
author
#2 lore raw

PATCH v2 2/4 EXYNOS: Add dummy definition to fix compilation dependency on CONFIG_EXYNOS_MIPI_DSIM

In reply to Ajay Kumar

When only DP is used, we need not enable CONFIG_EXYNOS_MIPI_DSIM. But if we do not select CONFIG_EXYNOS_MIPI_DSIM, exynos_fb.c throws error saying exynos_mipi_dsi_init() not defined. So, we add dummy definition for exynos_mipi_dsi_init when CONFIG_EXYNOS_MIPI_DSIM is not defined.

---
 arch/arm/include/asm/arch-exynos/mipi_dsim.h |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
arch/arm/include/asm/arch-exynos/mipi_dsim.h +7 -0
index 9a7cbeb..c1c9a35 100644
@@ -358,7 +358,14 @@ struct mipi_dsim_lcd_driver {
 	void	(*mipi_display_on)(struct mipi_dsim_device *dsim_dev);
 };
 
+#ifdef CONFIG_EXYNOS_MIPI_DSIM
 int exynos_mipi_dsi_init(void);
+#else
+static inline int exynos_mipi_dsi_init(void)
+{
+	return 0;
+}
+#endif
 
 /*
  * register mipi_dsim_lcd_driver object defined by lcd panel driver
Signature · 1 line
1.7.1
author
#3 lore raw

PATCH v4 3/4 video: Modify exynos_fimd driver to support LCD console

In reply to Ajay Kumar

Currently, exynos FIMD driver is being used to support only TIZEN LOGOs. In order to get LCD console, we need to enable half word swap feature of FIMD and use 16 BPP.
LCD console and proprietary Logo cannot be used simultaneously. We use logo_on field inside vidinfo_t structure to decide whether user wants Logo or Console.

---
 drivers/video/exynos_fb.c   |    7 +++++++
 drivers/video/exynos_fimd.c |   12 ++++++++----
 2 files changed, 15 insertions(+), 4 deletions(-)
drivers/video/exynos_fb.c +7 -0
index d9a3f9a..ee916be 100644
@@ -45,6 +45,13 @@ short console_row;
 
 static unsigned int panel_width, panel_height;
 
+#ifndef CONFIG_CMD_BMP
+int bmp_display(ulong addr, int x, int y)
+{
+	return 0;
+}
+#endif
+
 static void exynos_lcd_init_mem(void *lcdbase, vidinfo_t *vid)
 {
 	unsigned long palette_size;
drivers/video/exynos_fimd.c +8 -4
index 06eae2e..f957dc8 100644
@@ -88,14 +88,18 @@ static void exynos_fimd_set_par(unsigned int win_id)
 	/* DATAPATH is DMA */
 	cfg |= EXYNOS_WINCON_DATAPATH_DMA;
 
-	/* bpp is 32 */
-	cfg |= EXYNOS_WINCON_WSWP_ENABLE;
+	if (pvid->logo_on) /* To get proprietary LOGO */
+		cfg |= EXYNOS_WINCON_WSWP_ENABLE;
+	else /* To get output console on LCD */
+		cfg |= EXYNOS_WINCON_HAWSWP_ENABLE;
 
 	/* dma burst is 16 */
 	cfg |= EXYNOS_WINCON_BURSTLEN_16WORD;
 
-	/* pixel format is unpacked RGB888 */
-	cfg |= EXYNOS_WINCON_BPPMODE_24BPP_888;
+	if (pvid->logo_on) /* To get proprietary LOGO */
+		cfg |= EXYNOS_WINCON_BPPMODE_24BPP_888;
+	else /* To get output console on LCD */
+		cfg |= EXYNOS_WINCON_BPPMODE_16BPP_565;
 
 	writel(cfg, (unsigned int)&fimd_ctrl->wincon0 +
 			EXYNOS_WINCON(win_id));
Signature · 1 line
1.7.1
#4 lore raw

PATCH v4 3/4 video: Modify exynos_fimd driver to support LCD console

Dear Ajay Kumar,

Quoted 9 lines · Ajay Kumar

Currently, exynos FIMD driver is being used to support only TIZEN LOGOs. In order to get LCD console, we need to enable half word swap feature of FIMD and use 16 BPP.
LCD console and proprietary Logo cannot be used simultaneously. We use logo_on field inside vidinfo_t structure to decide whether user wants Logo or Console.

---

Please add changelog here about what you changed since last version.

Quoted 9 lines
 drivers/video/exynos_fb.c   |    7 +++++++
 drivers/video/exynos_fimd.c |   12 ++++++++----
 2 files changed, 15 insertions(+), 4 deletions(-)
drivers/video/exynos_fb.c +0 -0
index d9a3f9a..ee916be 100644

drivers/video/exynos_fb.c short console_row; · line 53

Quoted 9 lines
drivers/video/exynos_fb.c +6 -0
@@ -45,6 +45,13 @@ short console_row;
 
 static unsigned int panel_width, panel_height;
 
+#ifndef CONFIG_CMD_BMP
+int bmp_display(ulong addr, int x, int y)
+{
+	return 0;
+}
+#endif

It's a common function of bmp command.
Please do not redefine such a function.

---
Thanks,
Minkyu Kang.

#5 lore raw

PATCH v4 3/4 video: Modify exynos_fimd driver to support LCD console

Hi Minkyu,

Quoted 10 lines · Minkyu Kang

Dear Ajay Kumar,

Quoted 7 lines · Ajay Kumar

Currently, exynos FIMD driver is being used to support only TIZEN LOGOs. In order to get LCD console, we need to enable half word swap feature of FIMD and use 16 BPP.
LCD console and proprietary Logo cannot be used simultaneously. We use logo_on field inside vidinfo_t structure to decide whether user wants Logo or Console.

Quoted 4 lines
Quoted 2 lines

---

Please add changelog here about what you changed since last version.

I will send V5 soon. Please see my explanation below.

Quoted 12 lines
Quoted 12 lines
 drivers/video/exynos_fb.c   |    7 +++++++
 drivers/video/exynos_fimd.c |   12 ++++++++----
 2 files changed, 15 insertions(+), 4 deletions(-)
drivers/video/exynos_fb.c +0 -0
index d9a3f9a..ee916be 100644
@@ -45,6 +45,13 @@ short console_row;
 
 static unsigned int panel_width, panel_height;
 
Quoted 10 lines

drivers/video/exynos_fb.c short console_row; · line 53

Quoted 6 lines
drivers/video/exynos_fb.c +6 -0
+#ifndef CONFIG_CMD_BMP
+int bmp_display(ulong addr, int x, int y)
+{
+     return 0;
+}
+#endif

It's a common function of bmp command.
Please do not redefine such a function.

I am using CONFIG_CMD_BMP to differentiate between LCD Logo and LCD console. I select CONFIG_CMD_BMP only when I need Logo, and
I will not select CONFIG_CMD_BMP when I need console.
Lets consider that we want console. So we don't define CONFIG_CMD_BMP now. And, exynos_fb.c has linking time dependency on "bmp_display", which is not defined!
In such a case, I am left with 2 options:
1) Place an #ifdef CONFIG_CMD_BMP inside exynos_fb, where it makes a call to "bmp_display".
2) Redefine "bmp_display" to do nothing inside a header file(That's how it is done in this patch!)
Kindly let me know if you have a better way to do this.

Quoted 4 lines

---
Thanks,
Minkyu Kang.
___________

Regards,
Ajay Kumar
____________________________________

Quoted 3 lines

U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

#6 lore raw

PATCH v4 3/4 video: Modify exynos_fimd driver to support LCD console

Quoted 41 lines · Ajay kumar

Hi Minkyu,

Quoted 10 lines · Minkyu Kang

Dear Ajay Kumar,

Quoted 7 lines · Ajay Kumar

Currently, exynos FIMD driver is being used to support only TIZEN LOGOs. In order to get LCD console, we need to enable half word swap feature of FIMD and use 16 BPP.
LCD console and proprietary Logo cannot be used simultaneously. We use logo_on field inside vidinfo_t structure to decide whether user wants Logo or Console.

Quoted 4 lines
Quoted 2 lines

---

Please add changelog here about what you changed since last version.

I will send V5 soon. Please see my explanation below.

Quoted 12 lines
Quoted 12 lines
 drivers/video/exynos_fb.c   |    7 +++++++
 drivers/video/exynos_fimd.c |   12 ++++++++----
 2 files changed, 15 insertions(+), 4 deletions(-)
drivers/video/exynos_fb.c +0 -0
index d9a3f9a..ee916be 100644
@@ -45,6 +45,13 @@ short console_row;
 
 static unsigned int panel_width, panel_height;
 
Quoted 10 lines

drivers/video/exynos_fb.c short console_row; · line 53

Quoted 6 lines
drivers/video/exynos_fb.c +6 -0
+#ifndef CONFIG_CMD_BMP
+int bmp_display(ulong addr, int x, int y)
+{
+     return 0;
+}
+#endif

It's a common function of bmp command.
Please do not redefine such a function.

Quoted 13 lines

I am using CONFIG_CMD_BMP to differentiate between LCD Logo and LCD console. I select CONFIG_CMD_BMP only when I need Logo, and
I will not select CONFIG_CMD_BMP when I need console.
Lets consider that we want console. So we don't define CONFIG_CMD_BMP now. And, exynos_fb.c has linking time dependency on "bmp_display", which is not defined!
In such a case, I am left with 2 options:
1) Place an #ifdef CONFIG_CMD_BMP inside exynos_fb, where it makes a call to "bmp_display".
2) Redefine "bmp_display" to do nothing inside a header file(That's how it is done in this patch!)
Kindly let me know if you have a better way to do this.

I think, 1) is better.

Thanks.
Minkyu Kang.

author
#7 lore raw

PATCH v4 4/4 EXYNOS5: Add support for FIMD and DP

In reply to Ajay Kumar

Add panel_info structure required by LCD driver
and DP panel platdata for SMDK5250.
Add GPIO configuration for LCD.
Enable FIMD and DP support on SMDK5250.
DP Panel size: 2560x1600.
We use 16BPP resolution to get LCD console.

---
 board/samsung/smdk5250/smdk5250.c |   97 +++++++++++++++++++++++++++++++++++++
 include/configs/smdk5250.h        |    8 +++
 2 files changed, 105 insertions(+), 0 deletions(-)
board/samsung/smdk5250/smdk5250.c +97 -0
index 4c50342..46fd2a5 100644
@@ -24,12 +24,15 @@
 #include <asm/io.h>
 #include <i2c.h>
 #include <netdev.h>
+#include <lcd.h>
 #include <spi.h>
 #include <asm/arch/cpu.h>
 #include <asm/arch/gpio.h>
 #include <asm/arch/mmc.h>
+#include <asm/arch/power.h>
 #include <asm/arch/pinmux.h>
 #include <asm/arch/sromc.h>
+#include <asm/arch/dp_info.h>
 #include <pmic.h>
 
 DECLARE_GLOBAL_DATA_PTR;
@@ -181,6 +184,100 @@ static int board_uart_init(void)
 	return 0;
 }
 
+void cfg_lcd_gpio(void)
+{
+	struct exynos5_gpio_part1 *gpio1 =
+		(struct exynos5_gpio_part1 *) samsung_get_base_gpio_part1();
+
+	/* For Backlight */
+	s5p_gpio_cfg_pin(&gpio1->b2, 0, GPIO_OUTPUT);
+	s5p_gpio_set_value(&gpio1->b2, 0, 1);
+
+	/* LCD power on */
+	s5p_gpio_cfg_pin(&gpio1->x1, 5, GPIO_OUTPUT);
+	s5p_gpio_set_value(&gpio1->x1, 5, 1);
+
+	/* Set Hotplug detect for DP */
+	s5p_gpio_cfg_pin(&gpio1->x0, 7, GPIO_FUNC(0x3));
+}
+
+vidinfo_t panel_info = {
+	.vl_freq	= 60,
+	.vl_col		= 2560,
+	.vl_row		= 1600,
+	.vl_width	= 2560,
+	.vl_height	= 1600,
+	.vl_clkp	= CONFIG_SYS_LOW,
+	.vl_hsp		= CONFIG_SYS_LOW,
+	.vl_vsp		= CONFIG_SYS_LOW,
+	.vl_dp		= CONFIG_SYS_LOW,
+	.vl_bpix	= 4,	/* LCD_BPP = 2^4, for output conosle on LCD */
+
+	/* wDP panel timing infomation */
+	.vl_hspw	= 32,
+	.vl_hbpd	= 80,
+	.vl_hfpd	= 48,
+
+	.vl_vspw	= 6,
+	.vl_vbpd	= 37,
+	.vl_vfpd	= 3,
+	.vl_cmd_allow_len = 0xf,
+
+	.win_id		= 3,
+	.cfg_gpio	= cfg_lcd_gpio,
+	.backlight_on	= NULL,
+	.lcd_power_on	= NULL,
+	.reset_lcd	= NULL,
+	.dual_lcd_enabled = 0,
+
+	.init_delay	= 0,
+	.power_on_delay = 0,
+	.reset_delay	= 0,
+	.interface_mode = FIMD_RGB_INTERFACE,
+	.dp_enabled	= 1,
+};
+
+static struct edp_device_info edp_info = {
+	.disp_info = {
+		.h_res = 2560,
+		.h_sync_width = 32,
+		.h_back_porch = 80,
+		.h_front_porch = 48,
+		.v_res = 1600,
+		.v_sync_width  = 6,
+		.v_back_porch = 37,
+		.v_front_porch = 3,
+		.v_sync_rate = 60,
+	},
+	.lt_info = {
+		.lt_status = DP_LT_NONE,
+	},
+	.video_info = {
+		.master_mode = 0,
+		.bist_mode = DP_DISABLE,
+		.bist_pattern = NO_PATTERN,
+		.h_sync_polarity = 0,
+		.v_sync_polarity = 0,
+		.interlaced = 0,
+		.color_space = COLOR_RGB,
+		.dynamic_range = VESA,
+		.ycbcr_coeff = COLOR_YCBCR601,
+		.color_depth = COLOR_8,
+	},
+};
+
+static struct exynos_dp_platform_data dp_platform_data = {
+	.phy_enable	= set_dp_phy_ctrl,
+	.edp_dev_info	= &edp_info,
+};
+
+void init_panel_info(vidinfo_t *vid)
+{
+	vid->rgb_mode   = MODE_RGB_P,
+
+	exynos_set_dp_platform_data(&dp_platform_data);
+}
+
 #ifdef CONFIG_SYS_I2C_INIT_BOARD
 static int board_i2c_init(void)
 {
include/configs/smdk5250.h +8 -0
index e412da8..a9b3b8b 100644
@@ -256,6 +256,14 @@
 #define CONFIG_SOUND_WM8994
 #endif
 
+/* Display */
+#define CONFIG_LCD
+#define CONFIG_EXYNOS_FB
+#define CONFIG_EXYNOS_DP
+#define LCD_XRES			2560
+#define LCD_YRES			1600
+#define LCD_BPP			LCD_COLOR16
+
 /* Enable devicetree support */
 #define CONFIG_OF_LIBFDT
 
Signature · 1 line
1.7.1
#8 lore raw

PATCH v4 4/4 EXYNOS5: Add support for FIMD and DP

Hi Ajay

Quoted 48 lines · Ajay Kumar

Add panel_info structure required by LCD driver
and DP panel platdata for SMDK5250.
Add GPIO configuration for LCD.
Enable FIMD and DP support on SMDK5250.
DP Panel size: 2560x1600.
We use 16BPP resolution to get LCD console.

---
 board/samsung/smdk5250/smdk5250.c |   97
+++++++++++++++++++++++++++++++++++++
 include/configs/smdk5250.h        |    8 +++
 2 files changed, 105 insertions(+), 0 deletions(-)
board/samsung/smdk5250/smdk5250.c +10 -0
index 4c50342..46fd2a5 100644
@@ -24,12 +24,15 @@
 #include <asm/io.h>
 #include <i2c.h>
 #include <netdev.h>
+#include <lcd.h>
 #include <spi.h>
 #include <asm/arch/cpu.h>
 #include <asm/arch/gpio.h>
 #include <asm/arch/mmc.h>
+#include <asm/arch/power.h>
 #include <asm/arch/pinmux.h>
 #include <asm/arch/sromc.h>
+#include <asm/arch/dp_info.h>
 #include <pmic.h>
 
 DECLARE_GLOBAL_DATA_PTR;
@@ -181,6 +184,100 @@ static int board_uart_init(void)
        return 0;
 }
 
+void cfg_lcd_gpio(void)
+{
+       struct exynos5_gpio_part1 *gpio1 =
+               (struct exynos5_gpio_part1 *)
 samsung_get_base_gpio_part1();
+
+       /* For Backlight */
+       s5p_gpio_cfg_pin(&gpio1->b2, 0, GPIO_OUTPUT);

board/samsung/smdk5250/smdk5250.c static int board_uart_init(void) · line 204

Quoted 10 lines
board/samsung/smdk5250/smdk5250.c +9 -0
+       s5p_gpio_set_value(&gpio1->b2, 0, 1);
+
+       /* LCD power on */
+       s5p_gpio_cfg_pin(&gpio1->x1, 5, GPIO_OUTPUT);
+       s5p_gpio_set_value(&gpio1->x1, 5, 1);
+
+       /* Set Hotplug detect for DP */
+       s5p_gpio_cfg_pin(&gpio1->x0, 7, GPIO_FUNC(0x3));
+}
 

Cant this GPIO changes go to pinmux file?

Quoted 109 lines
board/samsung/smdk5250/smdk5250.c +12 -0
+
+vidinfo_t panel_info = {
+       .vl_freq        = 60,
+       .vl_col         = 2560,
+       .vl_row         = 1600,
+       .vl_width       = 2560,
+       .vl_height      = 1600,
+       .vl_clkp        = CONFIG_SYS_LOW,
+       .vl_hsp         = CONFIG_SYS_LOW,
+       .vl_vsp         = CONFIG_SYS_LOW,
+       .vl_dp          = CONFIG_SYS_LOW,
+       .vl_bpix        = 4,    /* LCD_BPP = 2^4, for output conosle on

LCD */

board/samsung/smdk5250/smdk5250.c +66 -0
+
+       /* wDP panel timing infomation */
+       .vl_hspw        = 32,
+       .vl_hbpd        = 80,
+       .vl_hfpd        = 48,
+
+       .vl_vspw        = 6,
+       .vl_vbpd        = 37,
+       .vl_vfpd        = 3,
+       .vl_cmd_allow_len = 0xf,
+
+       .win_id         = 3,
+       .cfg_gpio       = cfg_lcd_gpio,
+       .backlight_on   = NULL,
+       .lcd_power_on   = NULL,
+       .reset_lcd      = NULL,
+       .dual_lcd_enabled = 0,
+
+       .init_delay     = 0,
+       .power_on_delay = 0,
+       .reset_delay    = 0,
+       .interface_mode = FIMD_RGB_INTERFACE,
+       .dp_enabled     = 1,
+};
+
+static struct edp_device_info edp_info = {
+       .disp_info = {
+               .h_res = 2560,
+               .h_sync_width = 32,
+               .h_back_porch = 80,
+               .h_front_porch = 48,
+               .v_res = 1600,
+               .v_sync_width  = 6,
+               .v_back_porch = 37,
+               .v_front_porch = 3,
+               .v_sync_rate = 60,
+       },
+       .lt_info = {
+               .lt_status = DP_LT_NONE,
+       },
+       .video_info = {
+               .master_mode = 0,
+               .bist_mode = DP_DISABLE,
+               .bist_pattern = NO_PATTERN,
+               .h_sync_polarity = 0,
+               .v_sync_polarity = 0,
+               .interlaced = 0,
+               .color_space = COLOR_RGB,
+               .dynamic_range = VESA,
+               .ycbcr_coeff = COLOR_YCBCR601,
+               .color_depth = COLOR_8,
+       },
+};
+
+static struct exynos_dp_platform_data dp_platform_data = {
+       .phy_enable     = set_dp_phy_ctrl,
+       .edp_dev_info   = &edp_info,
+};
+
+void init_panel_info(vidinfo_t *vid)
+{
+       vid->rgb_mode   = MODE_RGB_P,
+
+       exynos_set_dp_platform_data(&dp_platform_data);
+}
+
 #ifdef CONFIG_SYS_I2C_INIT_BOARD
 static int board_i2c_init(void)
 {
include/configs/smdk5250.h +8 -1
index e412da8..a9b3b8b 100644
@@ -256,6 +256,14 @@
 #define CONFIG_SOUND_WM8994
 #endif
 
+/* Display */
+#define CONFIG_LCD
+#define CONFIG_EXYNOS_FB
+#define CONFIG_EXYNOS_DP
+#define LCD_XRES                       2560
+#define LCD_YRES                       1600
+#define LCD_BPP                        LCD_COLOR16
+
 /* Enable devicetree support */
 #define CONFIG_OF_LIBFDT
 
--

1.7.1

_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Signature · 2 lines
Regards,
Rajeshwari Shinde
#9 lore raw

PATCH v4 4/4 EXYNOS5: Add support for FIMD and DP

Quoted 66 lines · Rajeshwari Birje

Hi Ajay

On Fri, Dec 21, 2012 at 4:05 PM, Ajay Kumar <[email protected]<javascript:;>

Quoted 50 lines

wrote:

Add panel_info structure required by LCD driver
and DP panel platdata for SMDK5250.
Add GPIO configuration for LCD.
Enable FIMD and DP support on SMDK5250.
DP Panel size: 2560x1600.
We use 16BPP resolution to get LCD console.

Signed-off-by Ajay Kumar <[email protected] <javascript:;>>
Acked-by Simon Glass <[email protected] <javascript:;>>
---
 board/samsung/smdk5250/smdk5250.c |   97
+++++++++++++++++++++++++++++++++++++
 include/configs/smdk5250.h        |    8 +++
 2 files changed, 105 insertions(+), 0 deletions(-)
board/samsung/smdk5250/smdk5250.c +10 -0
index 4c50342..46fd2a5 100644
@@ -24,12 +24,15 @@
 #include <asm/io.h>
 #include <i2c.h>
 #include <netdev.h>
+#include <lcd.h>
 #include <spi.h>
 #include <asm/arch/cpu.h>
 #include <asm/arch/gpio.h>
 #include <asm/arch/mmc.h>
+#include <asm/arch/power.h>
 #include <asm/arch/pinmux.h>
 #include <asm/arch/sromc.h>
+#include <asm/arch/dp_info.h>
 #include <pmic.h>
 
 DECLARE_GLOBAL_DATA_PTR;
@@ -181,6 +184,100 @@ static int board_uart_init(void)
        return 0;
 }
 
+void cfg_lcd_gpio(void)
+{
+       struct exynos5_gpio_part1 *gpio1 =
+               (struct exynos5_gpio_part1 *)
 samsung_get_base_gpio_part1();
+
+       /* For Backlight */
+       s5p_gpio_cfg_pin(&gpio1->b2, 0, GPIO_OUTPUT);

board/samsung/smdk5250/smdk5250.c static int board_uart_init(void) · line 204

Quoted 10 lines
board/samsung/smdk5250/smdk5250.c +9 -0
+       s5p_gpio_set_value(&gpio1->b2, 0, 1);
+
+       /* LCD power on */
+       s5p_gpio_cfg_pin(&gpio1->x1, 5, GPIO_OUTPUT);
+       s5p_gpio_set_value(&gpio1->x1, 5, 1);
+
+       /* Set Hotplug detect for DP */
+       s5p_gpio_cfg_pin(&gpio1->x0, 7, GPIO_FUNC(0x3));
+}
 

Cant this GPIO changes go to pinmux file?

Quoted 1 line

No it's smdk5250 specific. Other board has different GPIOs.

Thank you,

Kyungmin Park

Quoted 88 lines
Quoted 84 lines
board/samsung/smdk5250/smdk5250.c +12 -0
+
+vidinfo_t panel_info = {
+       .vl_freq        = 60,
+       .vl_col         = 2560,
+       .vl_row         = 1600,
+       .vl_width       = 2560,
+       .vl_height      = 1600,
+       .vl_clkp        = CONFIG_SYS_LOW,
+       .vl_hsp         = CONFIG_SYS_LOW,
+       .vl_vsp         = CONFIG_SYS_LOW,
+       .vl_dp          = CONFIG_SYS_LOW,
+       .vl_bpix        = 4,    /* LCD_BPP = 2^4, for output conosle on

LCD */

board/samsung/smdk5250/smdk5250.c +66 -0
+
+       /* wDP panel timing infomation */
+       .vl_hspw        = 32,
+       .vl_hbpd        = 80,
+       .vl_hfpd        = 48,
+
+       .vl_vspw        = 6,
+       .vl_vbpd        = 37,
+       .vl_vfpd        = 3,
+       .vl_cmd_allow_len = 0xf,
+
+       .win_id         = 3,
+       .cfg_gpio       = cfg_lcd_gpio,
+       .backlight_on   = NULL,
+       .lcd_power_on   = NULL,
+       .reset_lcd      = NULL,
+       .dual_lcd_enabled = 0,
+
+       .init_delay     = 0,
+       .power_on_delay = 0,
+       .reset_delay    = 0,
+       .interface_mode = FIMD_RGB_INTERFACE,
+       .dp_enabled     = 1,
+};
+
+static struct edp_device_info edp_info = {
+       .disp_info = {
+               .h_res = 2560,
+               .h_sync_width = 32,
+               .h_back_porch = 80,
+               .h_front_porch = 48,
+               .v_res = 1600,
+               .v_sync_width  = 6,
+               .v_back_porch = 37,
+               .v_front_porch = 3,
+               .v_sync_rate = 60,
+       },
+       .lt_info = {
+               .lt_status = DP_LT_NONE,
+       },
+       .video_info = {
+               .master_mode = 0,
+               .bist_mode = DP_DISABLE,
+               .bist_pattern = NO_PATTERN,
+               .h_sync_polarity = 0,
+               .v_sync_polarity = 0,
+               .interlaced = 0,
+               .color_space = COLOR_RGB,
+               .dynamic_range = VESA,
+               .ycbcr_coeff = COLOR_YCBCR601,
+               .color_depth = COLOR_8,
+       },
+};
+
+static struct exynos_dp_platform_data dp_platform_data = {
+       .phy_enable     = set_dp_phy_ctrl,
+       .edp_dev_info   = &edp_info,
+};
+
+void init_panel_info(vidinfo_t *vid)
+{
+       vid->rgb_mode   = MODE_RGB_P,
+
+       exynos_set_dp_platform_data(&dp_platform_data);
+}
+
 #ifdef CONFIG_SYS_I2C_INIT_BOARD
 static int board_i2c_init(void)
 {
include/configs/smdk5250.h +0 -0
index e412da8..a9b3b8b 100644

include/configs/smdk5250.h

Quoted 1 line
include/configs/smdk5250.h +0 -1
--- a/inc--

Regards,
Rajeshwari Shinde

#10 lore raw

PATCH v4 4/4 EXYNOS5: Add support for FIMD and DP

In reply to Rajeshwari Birje

Dear Rajeshwari,

Quoted 55 lines · Rajeshwari Birje

Hi Ajay

Quoted 51 lines · Ajay Kumar

Add panel_info structure required by LCD driver
and DP panel platdata for SMDK5250.
Add GPIO configuration for LCD.
Enable FIMD and DP support on SMDK5250.
DP Panel size: 2560x1600.
We use 16BPP resolution to get LCD console.

---
 board/samsung/smdk5250/smdk5250.c |   97
+++++++++++++++++++++++++++++++++++++
 include/configs/smdk5250.h        |    8 +++
 2 files changed, 105 insertions(+), 0 deletions(-)
board/samsung/smdk5250/smdk5250.c +13 -0
index 4c50342..46fd2a5 100644
@@ -24,12 +24,15 @@
 #include <asm/io.h>
 #include <i2c.h>
 #include <netdev.h>
+#include <lcd.h>
 #include <spi.h>
 #include <asm/arch/cpu.h>
 #include <asm/arch/gpio.h>
 #include <asm/arch/mmc.h>
+#include <asm/arch/power.h>
 #include <asm/arch/pinmux.h>
 #include <asm/arch/sromc.h>
+#include <asm/arch/dp_info.h>
 #include <pmic.h>
 
 DECLARE_GLOBAL_DATA_PTR;
@@ -181,6 +184,100 @@ static int board_uart_init(void)
        return 0;
 }
 
+void cfg_lcd_gpio(void)
+{
+       struct exynos5_gpio_part1 *gpio1 =
+               (struct exynos5_gpio_part1 *)
 samsung_get_base_gpio_part1();
+
+       /* For Backlight */
+       s5p_gpio_cfg_pin(&gpio1->b2, 0, GPIO_OUTPUT);
+       s5p_gpio_set_value(&gpio1->b2, 0, 1);
+
+       /* LCD power on */
Quoted 9 lines

board/samsung/smdk5250/smdk5250.c static int board_uart_init(void)

Quoted 7 lines
board/samsung/smdk5250/smdk5250.c +6 -0
+       s5p_gpio_cfg_pin(&gpio1->x1, 5, GPIO_OUTPUT);
+       s5p_gpio_set_value(&gpio1->x1, 5, 1);
+
+       /* Set Hotplug detect for DP */
+       s5p_gpio_cfg_pin(&gpio1->x0, 7, GPIO_FUNC(0x3));
+}
 

Cant this GPIO changes go to pinmux file?

No. It is a board specific feature.
So, can't be located in pinmux file.

Thanks.
Minkyu Kang.

#11 lore raw

PATCH v4 4/4 EXYNOS5: Add support for FIMD and DP

Hi Minkyu,

Thank you for clarification.

Quoted 69 lines · Minkyu Kang

Dear Rajeshwari,

Quoted 56 lines · Rajeshwari Birje

Hi Ajay

Quoted 51 lines · On Fri, Dec 21, 2012 at 4:05 PM, Ajay Kumar <[email protected] wrote:

Add panel_info structure required by LCD driver
and DP panel platdata for SMDK5250.
Add GPIO configuration for LCD.
Enable FIMD and DP support on SMDK5250.
DP Panel size: 2560x1600.
We use 16BPP resolution to get LCD console.

---
 board/samsung/smdk5250/smdk5250.c |   97
+++++++++++++++++++++++++++++++++++++
 include/configs/smdk5250.h        |    8 +++
 2 files changed, 105 insertions(+), 0 deletions(-)
board/samsung/smdk5250/smdk5250.c +13 -0
index 4c50342..46fd2a5 100644
@@ -24,12 +24,15 @@
 #include <asm/io.h>
 #include <i2c.h>
 #include <netdev.h>
+#include <lcd.h>
 #include <spi.h>
 #include <asm/arch/cpu.h>
 #include <asm/arch/gpio.h>
 #include <asm/arch/mmc.h>
+#include <asm/arch/power.h>
 #include <asm/arch/pinmux.h>
 #include <asm/arch/sromc.h>
+#include <asm/arch/dp_info.h>
 #include <pmic.h>
 
 DECLARE_GLOBAL_DATA_PTR;
@@ -181,6 +184,100 @@ static int board_uart_init(void)
        return 0;
 }
 
+void cfg_lcd_gpio(void)
+{
+       struct exynos5_gpio_part1 *gpio1 =
+               (struct exynos5_gpio_part1 *)
 samsung_get_base_gpio_part1();
+
+       /* For Backlight */
+       s5p_gpio_cfg_pin(&gpio1->b2, 0, GPIO_OUTPUT);
+       s5p_gpio_set_value(&gpio1->b2, 0, 1);
+
+       /* LCD power on */
Quoted 9 lines

board/samsung/smdk5250/smdk5250.c static int board_uart_init(void)

Quoted 7 lines
board/samsung/smdk5250/smdk5250.c +6 -0
+       s5p_gpio_cfg_pin(&gpio1->x1, 5, GPIO_OUTPUT);
+       s5p_gpio_set_value(&gpio1->x1, 5, 1);
+
+       /* Set Hotplug detect for DP */
+       s5p_gpio_cfg_pin(&gpio1->x0, 7, GPIO_FUNC(0x3));
+}
 

Cant this GPIO changes go to pinmux file?

Quoted 3 lines

No. It is a board specific feature.
So, can't be located in pinmux file.

ok

Quoted 4 lines

Thanks.
Minkyu Kang.

Signature · 2 lines
Regards,
Rajeshwari Shinde
#12 lore raw

PATCH v4 4/4 EXYNOS5: Add support for FIMD and DP

In reply to Ajay Kumar

Dear Ajay,

Quoted 10 lines · Ajay Kumar

Add panel_info structure required by LCD driver
and DP panel platdata for SMDK5250.
Add GPIO configuration for LCD.
Enable FIMD and DP support on SMDK5250.
DP Panel size: 2560x1600.
We use 16BPP resolution to get LCD console.

---

Need changelog here.

Quoted 4 lines
 board/samsung/smdk5250/smdk5250.c |   97 +++++++++++++++++++++++++++++++++++++
 include/configs/smdk5250.h        |    8 +++
 2 files changed, 105 insertions(+), 0 deletions(-)

Please rebase this patch.

---
Thanks.
Minkyu Kang.

#13 lore raw

PATCH v4 4/4 EXYNOS5: Add support for FIMD and DP

Quoted 14 lines · Minkyu Kang

Dear Ajay,

Quoted 10 lines · Ajay Kumar

Add panel_info structure required by LCD driver
and DP panel platdata for SMDK5250.
Add GPIO configuration for LCD.
Enable FIMD and DP support on SMDK5250.
DP Panel size: 2560x1600.
We use 16BPP resolution to get LCD console.

---

Quoted 8 lines

Need changelog here.

Quoted 4 lines
 board/samsung/smdk5250/smdk5250.c |   97 +++++++++++++++++++++++++++++++++++++
 include/configs/smdk5250.h        |    8 +++
 2 files changed, 105 insertions(+), 0 deletions(-)

Please rebase this patch.

Ok. I will send V5 soon.

Quoted 3 lines

---
Thanks.
Minkyu Kang.

Ajay

Quoted 4 lines

_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot