EXYNOS: support TRATS board display function
PATCH v2 7/7 EXYNOS: support TRATS board display function
This patch support TRATS board configuration and display function.
Signed-off-by Donghwa Lee <[email protected]>
Signed-off-by Kyungmin Park <[email protected]>
Signed-off-by Inki Dae <[email protected]>
--- board/samsung/trats/trats.c | 147 +++++++++++++++++++++++++++++++++++++++++++ include/configs/trats.h | 8 +++ 2 files changed, 155 insertions(+), 0 deletions(-)
board/samsung/trats/trats.c +147 -0
@@ -2,6 +2,7 @@* Copyright (C) 2011 Samsung Electronics * Heungjun Kim <[email protected]> * Kyungmin Park <[email protected]> +* Donghwa Lee <[email protected]> * * 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" ); +} +
include/configs/trats.h +8 -0
@@ -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 */
Signature · 1 line
1.7.4.1
PATCH v2 7/7 EXYNOS: support TRATS board display function
Quoted 9 lines · On Fri, 06 Apr 2012 14:36:27 +0900 Donghwa Lee <[email protected]> wrote:
This patch support TRATS board configuration and display function.
Signed-off-by Donghwa Lee <[email protected]>Signed-off-by Kyungmin Park <[email protected]>Signed-off-by Inki Dae <[email protected]>--- board/samsung/trats/trats.c | 147 +++++++++++++++++++++++++++++++++++++++++++ include/configs/trats.h | 8 +++ 2 files changed, 155 insertions(+), 0 deletions(-)
Looks good. When applying, please use '--whitespace=fix' option to fix an empty line at the end of trats.c file.
Thanks,
Anatolij