From ec890fc2a96279b6f8245c8fc89efc97b892ca63 Mon Sep 17 00:00:00 2001 From: Suguru Saito Date: Sun, 21 Mar 2021 23:17:19 +0900 Subject: [PATCH 1/7] pwg5300: WIP LCD support --- board/sharp/common/lcd.c | 33 ++++++++++++++++ board/sharp/common/lcd.h | 72 ++++++++++++++++++++++++++++++++++- board/sharp/pwg5300/pwg5300.c | 19 +++++++++ configs/pwg5300_defconfig | 1 + include/configs/pwg5300.h | 21 +++++++++- 5 files changed, 142 insertions(+), 4 deletions(-) diff --git a/board/sharp/common/lcd.c b/board/sharp/common/lcd.c index 8a5df11988..c36a8fe258 100644 --- a/board/sharp/common/lcd.c +++ b/board/sharp/common/lcd.c @@ -79,12 +79,23 @@ void mxsfb_system_setup(void) gpio_direction_output(MX28_PAD_ENET_CLK__GPIO_4_16, 1); mdelay(20); +#ifdef CONFIG_BRAIN_2G + /* Reset LCD Controller */ + writel(LCDIF_CTRL1_RESET, &lcdif->hw_lcdif_ctrl1_set); + mdelay(30); + writel(LCDIF_CTRL1_RESET, &lcdif->hw_lcdif_ctrl1_clr); + mdelay(30); + writel(LCDIF_CTRL1_RESET, &lcdif->hw_lcdif_ctrl1_set); + mdelay(30); +#endif + for (i = 0; i < ARRAY_SIZE(regs_early); i++) { mxsfb_write_byte(regs_early[i].payload, regs_early[i].data); if (regs_early[i].delay) mdelay(regs_early[i].delay); } +#ifndef CONFIG_BRAIN_2G if (config.flip_x) { ili9805_mac |= 1 << ILI9805_MAC_MX_OFFSET; } @@ -111,10 +122,16 @@ void mxsfb_system_setup(void) if (config.inversion) { mxsfb_write_byte(0x21, 0); /* Display Inversion On */ } +#endif mxsfb_write_byte(0x11, 0); /* Sleep Out */ mdelay(120); +#ifdef CONFIG_BRAIN_2G + mxsfb_write_byte(0x34, 0); + mdelay(30); +#endif + mxsfb_write_byte(0x29, 0); /* Display On */ mdelay(20); @@ -123,27 +140,43 @@ void mxsfb_system_setup(void) mxsfb_write_byte(0x00, 1); /* Start Column in 2 Bytes */ mxsfb_write_byte(0x00, 1); +#ifndef CONFIG_BRAIN_2G mxsfb_write_byte((config.width & 0xff00) >> 8, 1); /* End Column in 2 Bytes */ mxsfb_write_byte((config.width & 0x00ff) >> 0, 1); +#else + mxsfb_write_byte((config.height & 0xff00) >> 8, 1); /* End Column in 2 Bytes */ + mxsfb_write_byte((config.height & 0x00ff) >> 0, 1); +#endif mxsfb_write_byte(0x2b, 0); /* Page Address Set */ mxsfb_write_byte(0x00, 1); /* Start Page in 2 Bytes */ mxsfb_write_byte(0x00, 1); +#ifndef CONFIG_BRAIN_2G mxsfb_write_byte((config.height & 0xff00) >> 8, 1); /* End Page in 2 Bytes */ mxsfb_write_byte((config.height & 0x00ff) >> 0, 1); +#else + mxsfb_write_byte((config.width & 0xff00) >> 8, 1); /* End Page in 2 Bytes */ + mxsfb_write_byte((config.width & 0x00ff) >> 0, 1); +#endif mxsfb_write_byte(0x2c, 0); /* Memory Write */ +#ifndef CONFIG_BRAIN_2G /* Fill black */ for (i = 0; i < config.height; i++) { for (j = 0; j < config.width; j++) { mxsfb_write_byte(0, 1); } } +#endif +#ifndef CONFIG_BRAIN_2G writel(valid_data, &lcdif->hw_lcdif_ctrl1); +#else + writel(valid_data | LCDIF_CTRL1_RESET, &lcdif->hw_lcdif_ctrl1); +#endif writel(LCDIF_CTRL_LCDIF_MASTER | LCDIF_CTRL_DATA_SELECT, &lcdif->hw_lcdif_ctrl_set); diff --git a/board/sharp/common/lcd.h b/board/sharp/common/lcd.h index 4e99a5fc2a..da84d7af2e 100644 --- a/board/sharp/common/lcd.h +++ b/board/sharp/common/lcd.h @@ -35,7 +35,7 @@ typedef struct { } lcd_regs_t; /* clang-format off */ - +#ifndef CONFIG_BRAIN_2G const static lcd_regs_t regs_early[] = { { 0xff, 0, 0 }, /* EXTC Command Set Enable */ { 0xff, 1, 0 }, { 0x98, 1, 0 }, { 0x05, 1, 0 }, @@ -85,7 +85,75 @@ const static lcd_regs_t regs_early[] = { { 0x35, 0, 0 }, /* Tearing Effect Line On */ { 0x00, 1, 0 }, }; - +#else +const static lcd_regs_t regs_early[] = { + { 0x3a, 0, 0 }, + { 0x55, 1, 0 }, + { 0xb2, 0, 0 }, + { 0x45, 1, 0 }, { 0x00, 1, 0 }, { 0xd9, 1, 0 }, { 0x00, 1, 0 }, + { 0x00, 1, 0 }, + { 0xb3, 0, 0 }, + { 0x81, 1, 0 }, { 0x00, 1, 0 }, { 0x01, 1, 0 }, + { 0xb4, 0, 0 }, + { 0x00, 1, 0 }, + { 0xb5, 0, 0 }, + { 0x02, 1, 0 }, { 0x11, 1, 0 }, { 0x50, 1, 0 }, { 0x00, 1, 0 }, + { 0x80, 1, 0 }, { 0x45, 1, 0 }, { 0x45, 1, 0 }, { 0x00, 1, 0 }, + { 0xb6, 0, 0 }, + { 0x1e, 1, 0 }, { 0x01, 1, 0 }, { 0x90, 1, 0 }, { 0x0a, 1, 0 }, + { 0x02, 1, 0 }, { 0x58, 1, 0 }, + { 0xb7, 0, 0 }, + { 0x2a, 1, 0 }, { 0x91, 1, 0 }, { 0x5c, 1, 0 }, { 0x06, 1, 0 }, + { 0x08, 1, 0 }, { 0x0c, 1, 0 }, { 0x00, 1, 0 }, { 0x1c, 1, 0 }, + { 0x06, 1, 0 }, { 0x02, 1, 0 }, { 0x09, 1, 0 }, + { 0xb9, 0, 0 }, + { 0x00, 1, 0 }, { 0x32, 1, 0 }, { 0x01, 1, 0 }, { 0x40, 1, 0 }, + { 0x00, 1, 0 }, + { 0xc0, 0, 0 }, + { 0xb7, 1, 0 }, { 0x03, 1, 0 }, + { 0xc1, 0, 0 }, + { 0x72, 1, 0 }, { 0x01, 1, 0 }, + { 0xc2, 0, 0 }, + { 0x37, 1, 0 }, { 0x2f, 1, 0 }, { 0x0c, 1, 0 }, + { 0xc3, 0, 0 }, + { 0x37, 1, 0 }, { 0x03, 1, 0 }, + { 0xc7, 0, 0 }, + { 0x01, 1, 0 }, { 0x33, 1, 0 }, { 0x03, 1, 0 }, + { 0xca, 0, 0 }, + { 0xbd, 1, 0 }, { 0x17, 1, 0 }, { 0x5b, 1, 0 }, { 0x5b, 1, 0 }, + { 0x64, 1, 0 }, { 0x11, 1, 0 }, { 0x66, 1, 0 }, + { 0xde, 0, 0 }, + { 0x11, 1, 0 }, { 0x00, 1, 0 }, + { 0xe0, 0, 0 }, + { 0x24, 1, 0 }, { 0x3f, 1, 0 }, { 0x0e, 1, 0 }, { 0x0e, 1, 0 }, + { 0x67, 1, 0 }, { 0xee, 1, 0 }, { 0xee, 1, 0 }, { 0xa3, 1, 0 }, + { 0x04, 1, 0 }, + { 0xe1, 0, 0 }, + { 0x24, 1, 0 }, { 0x3f, 1, 0 }, { 0x0f, 1, 0 }, { 0x0e, 1, 0 }, + { 0x78, 1, 0 }, { 0xee, 1, 0 }, { 0xed, 1, 0 }, { 0x93, 1, 0 }, + { 0x04, 1, 0 }, + { 0xe2, 0, 0 }, + { 0x24, 1, 0 }, { 0x29, 1, 0 }, { 0x14, 1, 0 }, { 0x1c, 1, 0 }, + { 0x67, 1, 0 }, { 0xdd, 1, 0 }, { 0xdd, 1, 0 }, { 0x97, 1, 0 }, + { 0x0b, 1, 0 }, + { 0xe3, 0, 0 }, + { 0x24, 1, 0 }, { 0x29, 1, 0 }, { 0x14, 1, 0 }, { 0x1c, 1, 0 }, + { 0x67, 1, 0 }, { 0xdd, 1, 0 }, { 0xdd, 1, 0 }, { 0x97, 1, 0 }, + { 0x0a, 1, 0 }, + { 0xe4, 0, 0 }, + { 0x24, 1, 0 }, { 0x2a, 1, 0 }, { 0x15, 1, 0 }, { 0x1a, 1, 0 }, + { 0x99, 1, 0 }, { 0xdd, 1, 0 }, { 0xed, 1, 0 }, { 0xa6, 1, 0 }, + { 0x09, 1, 0 }, + { 0xe5, 0, 0 }, + { 0x24, 1, 0 }, { 0x2a, 1, 0 }, { 0x15, 1, 0 }, { 0x1a, 1, 0 }, + { 0x88, 1, 0 }, { 0xdd, 1, 0 }, { 0xdd, 1, 0 }, { 0x97, 1, 0 }, + { 0x0c, 1, 0 }, + { 0x36, 0, 0 }, /* Memory Acess Control */ + { 0x28, 1, 0 }, + { 0x2c, 0, 0 }, /* Display On */ + { 0x00, 1, 0 }, +}; +#endif /* clang-format on */ #endif diff --git a/board/sharp/pwg5300/pwg5300.c b/board/sharp/pwg5300/pwg5300.c index 80e2b5b86c..df86e3ea6f 100644 --- a/board/sharp/pwg5300/pwg5300.c +++ b/board/sharp/pwg5300/pwg5300.c @@ -28,6 +28,8 @@ #include #include +#include "../common/lcd.h" + DECLARE_GLOBAL_DATA_PTR; /* @@ -94,3 +96,20 @@ int board_mmc_init(bd_t *bis) return 0; } #endif + +#ifdef CONFIG_VIDEO_MXS +static const lcd_config_t lcd_config = { + .width = 480, + .height = 320, + .flip_x = ILI9805_DISABLE, /* not used */ + .flip_y = ILI9805_DISABLE, /* not used */ + .transpose = ILI9805_DISABLE, /* not used */ + .inversion = ILI9805_DISABLE, /* not used */ + .bgr = ILI9805_DISABLE, /* not used */ +}; + +lcd_config_t get_lcd_config() +{ + return lcd_config; +} +#endif diff --git a/configs/pwg5300_defconfig b/configs/pwg5300_defconfig index 967467a24f..f82e855743 100644 --- a/configs/pwg5300_defconfig +++ b/configs/pwg5300_defconfig @@ -26,4 +26,5 @@ CONFIG_ENV_IS_IN_MMC=y # CONFIG_NET is not set CONFIG_MMC_MXS=y CONFIG_CONS_INDEX=0 +CONFIG_VIDEO=y CONFIG_OF_LIBFDT=y diff --git a/include/configs/pwg5300.h b/include/configs/pwg5300.h index dd408f7699..ab11080f1c 100644 --- a/include/configs/pwg5300.h +++ b/include/configs/pwg5300.h @@ -34,6 +34,22 @@ #define CONFIG_SYS_MMC_ENV_DEV 0 #endif +/* Framebuffer support */ +#ifdef CONFIG_VIDEO +#define CONFIG_VIDEO_MXS +#define CONFIG_VIDEO_MXS_MODE_SYSTEM +#define CONFIG_VIDEO_LOGO +#define CONFIG_VIDEO_BMP_LOGO +#define CONFIG_HIDE_LOGO_VERSION +#define CONFIG_SPLASH_SCREEN +#define CONFIG_BMP_16BPP +#define CONFIG_VIDEO_BMP_RLE8 +#define CONFIG_VIDEO_BMP_GZIP +#define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE (512 << 10) +#define CONFIG_VIDEO_FONT_6X11 +#define LCD_BPP LCD_COLOR16 +#endif + /* USB */ #ifdef CONFIG_CMD_USB #define CONFIG_EHCI_MXS_PORT1 @@ -48,8 +64,9 @@ /* Extra Environment */ #define CONFIG_EXTRA_ENV_SETTINGS \ "stdin=serial\0" \ - "stdout=serial\0" \ - "stderr=serial\0" \ + "stdout=serial,vga\0" \ + "stderr=serial,vga\0" \ + "videomode=video=ctfb:x:480,y:320,depth:16,pclk:180000,le:0,ri:0,up:0,lo:0,hs:0,vs:0,sync:0,vmode:0\0" \ "bootdelay=0\0" \ "image=zImage\0" \ "console_mainline=ttyAMA0\0" \ From 74849ca4fe07fc4ac315f904f8ce063a27bd5c50 Mon Sep 17 00:00:00 2001 From: Suguru Saito Date: Sat, 27 Mar 2021 18:32:24 +0900 Subject: [PATCH 2/7] pwg5300: add boot logo --- tools/logos/pwg5300.bmp | Bin 0 -> 87478 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 tools/logos/pwg5300.bmp diff --git a/tools/logos/pwg5300.bmp b/tools/logos/pwg5300.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d02c443c54f2e06dd57f0ecd4504b2186f5241f0 GIT binary patch literal 87478 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 literal 0 HcmV?d00001 From 027096d163f63b391b9ed2982259627da2bedd0c Mon Sep 17 00:00:00 2001 From: Suguru Saito Date: Sun, 28 Mar 2021 02:42:34 +0900 Subject: [PATCH 3/7] sharp: take care of warning --- board/sharp/common/lcd.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/board/sharp/common/lcd.c b/board/sharp/common/lcd.c index c36a8fe258..d5abe637aa 100644 --- a/board/sharp/common/lcd.c +++ b/board/sharp/common/lcd.c @@ -49,10 +49,15 @@ void mxsfb_system_setup(void) struct mxs_clkctrl_regs *xtal = (struct mxs_clkctrl_regs *)MXS_CLKCTRL_BASE; struct mxs_pwm_regs *pwm = (struct mxs_pwm_regs *)MXS_PWM_BASE; + +#ifndef CONFIG_BRAIN_2G int i, j; + uint8_t ili9805_mac = 0; +#else + int i; +#endif uint32_t valid_data; - uint8_t ili9805_mac = 0; lcd_config_t config = get_lcd_config(); valid_data = readl(&lcdif->hw_lcdif_ctrl1) & From 0a93e86b3b06733fb78f4c90878cdafc8abdcd76 Mon Sep 17 00:00:00 2001 From: Suguru Saito Date: Sun, 28 Mar 2021 02:47:19 +0900 Subject: [PATCH 4/7] pwg5300: change pclk --- include/configs/pwg5300.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/configs/pwg5300.h b/include/configs/pwg5300.h index ab11080f1c..b48f59e25a 100644 --- a/include/configs/pwg5300.h +++ b/include/configs/pwg5300.h @@ -66,7 +66,7 @@ "stdin=serial\0" \ "stdout=serial,vga\0" \ "stderr=serial,vga\0" \ - "videomode=video=ctfb:x:480,y:320,depth:16,pclk:180000,le:0,ri:0,up:0,lo:0,hs:0,vs:0,sync:0,vmode:0\0" \ + "videomode=video=ctfb:x:480,y:320,depth:16,pclk:160000,le:0,ri:0,up:0,lo:0,hs:0,vs:0,sync:0,vmode:0\0" \ "bootdelay=0\0" \ "image=zImage\0" \ "console_mainline=ttyAMA0\0" \ From 4201036a2a47f933367826776ececd8f15fd9f8c Mon Sep 17 00:00:00 2001 From: Suguru Saito Date: Sun, 28 Mar 2021 23:42:30 +0900 Subject: [PATCH 5/7] pwg5300: remove unused struct initialization --- board/sharp/pwg5300/pwg5300.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/board/sharp/pwg5300/pwg5300.c b/board/sharp/pwg5300/pwg5300.c index df86e3ea6f..7e3214d723 100644 --- a/board/sharp/pwg5300/pwg5300.c +++ b/board/sharp/pwg5300/pwg5300.c @@ -101,11 +101,6 @@ int board_mmc_init(bd_t *bis) static const lcd_config_t lcd_config = { .width = 480, .height = 320, - .flip_x = ILI9805_DISABLE, /* not used */ - .flip_y = ILI9805_DISABLE, /* not used */ - .transpose = ILI9805_DISABLE, /* not used */ - .inversion = ILI9805_DISABLE, /* not used */ - .bgr = ILI9805_DISABLE, /* not used */ }; lcd_config_t get_lcd_config() From 079c491063d5c6c58a6b8f4c77ba22b8d7d581ce Mon Sep 17 00:00:00 2001 From: Suguru Saito Date: Sun, 28 Mar 2021 23:48:58 +0900 Subject: [PATCH 6/7] sharp: change #ifndef for #ifdef --- board/sharp/common/lcd.c | 12 ++++++------ board/sharp/common/lcd.h | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/board/sharp/common/lcd.c b/board/sharp/common/lcd.c index d5abe637aa..536928ab7d 100644 --- a/board/sharp/common/lcd.c +++ b/board/sharp/common/lcd.c @@ -50,7 +50,7 @@ void mxsfb_system_setup(void) (struct mxs_clkctrl_regs *)MXS_CLKCTRL_BASE; struct mxs_pwm_regs *pwm = (struct mxs_pwm_regs *)MXS_PWM_BASE; -#ifndef CONFIG_BRAIN_2G +#ifdef CONFIG_BRAIN_3G_4G int i, j; uint8_t ili9805_mac = 0; #else @@ -100,7 +100,7 @@ void mxsfb_system_setup(void) mdelay(regs_early[i].delay); } -#ifndef CONFIG_BRAIN_2G +#ifdef CONFIG_BRAIN_3G_4G if (config.flip_x) { ili9805_mac |= 1 << ILI9805_MAC_MX_OFFSET; } @@ -145,7 +145,7 @@ void mxsfb_system_setup(void) mxsfb_write_byte(0x00, 1); /* Start Column in 2 Bytes */ mxsfb_write_byte(0x00, 1); -#ifndef CONFIG_BRAIN_2G +#ifdef CONFIG_BRAIN_3G_4G mxsfb_write_byte((config.width & 0xff00) >> 8, 1); /* End Column in 2 Bytes */ mxsfb_write_byte((config.width & 0x00ff) >> 0, 1); #else @@ -158,7 +158,7 @@ void mxsfb_system_setup(void) mxsfb_write_byte(0x00, 1); /* Start Page in 2 Bytes */ mxsfb_write_byte(0x00, 1); -#ifndef CONFIG_BRAIN_2G +#ifdef CONFIG_BRAIN_3G_4G mxsfb_write_byte((config.height & 0xff00) >> 8, 1); /* End Page in 2 Bytes */ mxsfb_write_byte((config.height & 0x00ff) >> 0, 1); #else @@ -168,7 +168,7 @@ void mxsfb_system_setup(void) mxsfb_write_byte(0x2c, 0); /* Memory Write */ -#ifndef CONFIG_BRAIN_2G +#ifdef CONFIG_BRAIN_3G_4G /* Fill black */ for (i = 0; i < config.height; i++) { for (j = 0; j < config.width; j++) { @@ -177,7 +177,7 @@ void mxsfb_system_setup(void) } #endif -#ifndef CONFIG_BRAIN_2G +#ifdef CONFIG_BRAIN_3G_4G writel(valid_data, &lcdif->hw_lcdif_ctrl1); #else writel(valid_data | LCDIF_CTRL1_RESET, &lcdif->hw_lcdif_ctrl1); diff --git a/board/sharp/common/lcd.h b/board/sharp/common/lcd.h index da84d7af2e..0e45cd6c8b 100644 --- a/board/sharp/common/lcd.h +++ b/board/sharp/common/lcd.h @@ -35,7 +35,7 @@ typedef struct { } lcd_regs_t; /* clang-format off */ -#ifndef CONFIG_BRAIN_2G +#ifdef CONFIG_BRAIN_3G_4G const static lcd_regs_t regs_early[] = { { 0xff, 0, 0 }, /* EXTC Command Set Enable */ { 0xff, 1, 0 }, { 0x98, 1, 0 }, { 0x05, 1, 0 }, From 816ea165944fe3f7141d0d2cb6d1e1d2294d81f4 Mon Sep 17 00:00:00 2001 From: Suguru Saito Date: Sun, 28 Mar 2021 23:58:14 +0900 Subject: [PATCH 7/7] sharp: fix indent --- board/sharp/common/lcd.c | 88 ++++++++++++++++++++-------------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/board/sharp/common/lcd.c b/board/sharp/common/lcd.c index 536928ab7d..cc423d2b61 100644 --- a/board/sharp/common/lcd.c +++ b/board/sharp/common/lcd.c @@ -20,15 +20,15 @@ static int mxsfb_write_byte(uint32_t payload, const unsigned int data) const unsigned int timeout = 0x10000; if (mxs_wait_mask_clr(®s->hw_lcdif_ctrl_reg, LCDIF_CTRL_RUN, - timeout)) + timeout)) return -ETIMEDOUT; writel((1 << LCDIF_TRANSFER_COUNT_V_COUNT_OFFSET) | - (1 << LCDIF_TRANSFER_COUNT_H_COUNT_OFFSET), - ®s->hw_lcdif_transfer_count); + (1 << LCDIF_TRANSFER_COUNT_H_COUNT_OFFSET), + ®s->hw_lcdif_transfer_count); writel(LCDIF_CTRL_DATA_SELECT | LCDIF_CTRL_RUN, - ®s->hw_lcdif_ctrl_clr); + ®s->hw_lcdif_ctrl_clr); if (data) writel(LCDIF_CTRL_DATA_SELECT, ®s->hw_lcdif_ctrl_set); @@ -40,7 +40,7 @@ static int mxsfb_write_byte(uint32_t payload, const unsigned int data) writel(payload, ®s->hw_lcdif_data); return mxs_wait_mask_clr(®s->hw_lcdif_ctrl_reg, LCDIF_CTRL_RUN, - timeout); + timeout); } void mxsfb_system_setup(void) @@ -61,22 +61,22 @@ void mxsfb_system_setup(void) lcd_config_t config = get_lcd_config(); valid_data = readl(&lcdif->hw_lcdif_ctrl1) & - LCDIF_CTRL1_BYTE_PACKING_FORMAT_MASK; + LCDIF_CTRL1_BYTE_PACKING_FORMAT_MASK; writel(0x3 << LCDIF_CTRL1_BYTE_PACKING_FORMAT_OFFSET, - &lcdif->hw_lcdif_ctrl1); + &lcdif->hw_lcdif_ctrl1); /* Switch the LCDIF into System-Mode */ writel(LCDIF_CTRL_LCDIF_MASTER | LCDIF_CTRL_DOTCLK_MODE | - LCDIF_CTRL_BYPASS_COUNT, - &lcdif->hw_lcdif_ctrl_clr); + LCDIF_CTRL_BYPASS_COUNT, + &lcdif->hw_lcdif_ctrl_clr); writel(LCDIF_CTRL_VSYNC_MODE, &lcdif->hw_lcdif_ctrl_set); writel(LCDIF_VDCTRL3_VSYNC_ONLY, &lcdif->hw_lcdif_vdctrl3_set); writel((0x01 << LCDIF_TIMING_CMD_HOLD_OFFSET) | - (0x01 << LCDIF_TIMING_CMD_SETUP_OFFSET) | - (0x01 << LCDIF_TIMING_DATA_HOLD_OFFSET) | - (0x01 << LCDIF_TIMING_DATA_SETUP_OFFSET), - &lcdif->hw_lcdif_timing); + (0x01 << LCDIF_TIMING_CMD_SETUP_OFFSET) | + (0x01 << LCDIF_TIMING_DATA_HOLD_OFFSET) | + (0x01 << LCDIF_TIMING_DATA_SETUP_OFFSET), + &lcdif->hw_lcdif_timing); /* Enable LCD Controller */ gpio_direction_output(MX28_PAD_GPMI_ALE__GPIO_0_26, 1); @@ -129,44 +129,44 @@ void mxsfb_system_setup(void) } #endif - mxsfb_write_byte(0x11, 0); /* Sleep Out */ - mdelay(120); + mxsfb_write_byte(0x11, 0); /* Sleep Out */ + mdelay(120); #ifdef CONFIG_BRAIN_2G mxsfb_write_byte(0x34, 0); mdelay(30); #endif - mxsfb_write_byte(0x29, 0); /* Display On */ - mdelay(20); + mxsfb_write_byte(0x29, 0); /* Display On */ + mdelay(20); - mxsfb_write_byte(0x2a, 0); /* Column Address Set */ + mxsfb_write_byte(0x2a, 0); /* Column Address Set */ - mxsfb_write_byte(0x00, 1); /* Start Column in 2 Bytes */ - mxsfb_write_byte(0x00, 1); + mxsfb_write_byte(0x00, 1); /* Start Column in 2 Bytes */ + mxsfb_write_byte(0x00, 1); #ifdef CONFIG_BRAIN_3G_4G - mxsfb_write_byte((config.width & 0xff00) >> 8, 1); /* End Column in 2 Bytes */ - mxsfb_write_byte((config.width & 0x00ff) >> 0, 1); + mxsfb_write_byte((config.width & 0xff00) >> 8, 1); /* End Column in 2 Bytes */ + mxsfb_write_byte((config.width & 0x00ff) >> 0, 1); #else mxsfb_write_byte((config.height & 0xff00) >> 8, 1); /* End Column in 2 Bytes */ mxsfb_write_byte((config.height & 0x00ff) >> 0, 1); #endif - mxsfb_write_byte(0x2b, 0); /* Page Address Set */ + mxsfb_write_byte(0x2b, 0); /* Page Address Set */ - mxsfb_write_byte(0x00, 1); /* Start Page in 2 Bytes */ - mxsfb_write_byte(0x00, 1); + mxsfb_write_byte(0x00, 1); /* Start Page in 2 Bytes */ + mxsfb_write_byte(0x00, 1); #ifdef CONFIG_BRAIN_3G_4G - mxsfb_write_byte((config.height & 0xff00) >> 8, 1); /* End Page in 2 Bytes */ - mxsfb_write_byte((config.height & 0x00ff) >> 0, 1); + mxsfb_write_byte((config.height & 0xff00) >> 8, 1); /* End Page in 2 Bytes */ + mxsfb_write_byte((config.height & 0x00ff) >> 0, 1); #else mxsfb_write_byte((config.width & 0xff00) >> 8, 1); /* End Page in 2 Bytes */ - mxsfb_write_byte((config.width & 0x00ff) >> 0, 1); + mxsfb_write_byte((config.width & 0x00ff) >> 0, 1); #endif - mxsfb_write_byte(0x2c, 0); /* Memory Write */ + mxsfb_write_byte(0x2c, 0); /* Memory Write */ #ifdef CONFIG_BRAIN_3G_4G /* Fill black */ @@ -184,7 +184,7 @@ void mxsfb_system_setup(void) #endif writel(LCDIF_CTRL_LCDIF_MASTER | LCDIF_CTRL_DATA_SELECT, - &lcdif->hw_lcdif_ctrl_set); + &lcdif->hw_lcdif_ctrl_set); /* Turn on backlight */ writel(CLKCTRL_XTAL_PWM_CLK24M_GATE, &xtal->hw_clkctrl_xtal_clr); @@ -193,29 +193,29 @@ void mxsfb_system_setup(void) writel(PWM_CTRL_CLKGATE, &pwm->hw_pwm_ctrl_clr); writel(PWM_CTRL_PWM0_ENABLE | PWM_CTRL_PWM1_ENABLE, - &pwm->hw_pwm_ctrl_clr); + &pwm->hw_pwm_ctrl_clr); writel((0x005a << PWM_ACTIVE0_INACTIVE_OFFSET) | - (0x0000 << PWM_ACTIVE0_ACTIVE_OFFSET), - &pwm->hw_pwm_active0_set); + (0x0000 << PWM_ACTIVE0_ACTIVE_OFFSET), + &pwm->hw_pwm_active0_set); writel((0x00f0 << PWM_ACTIVE1_INACTIVE_OFFSET) | - (0x0000 << PWM_ACTIVE1_ACTIVE_OFFSET), - &pwm->hw_pwm_active1_set); + (0x0000 << PWM_ACTIVE1_ACTIVE_OFFSET), + &pwm->hw_pwm_active1_set); writel((0x1 << PWM_PERIOD0_CDIV_OFFSET) | - (0x2 << PWM_PERIOD0_INACTIVE_STATE_OFFSET) | - (0x3 << PWM_PERIOD0_ACTIVE_STATE_OFFSET) | - (0x01f3 << PWM_PERIOD0_PERIOD_OFFSET), - &pwm->hw_pwm_period0_set); + (0x2 << PWM_PERIOD0_INACTIVE_STATE_OFFSET) | + (0x3 << PWM_PERIOD0_ACTIVE_STATE_OFFSET) | + (0x01f3 << PWM_PERIOD0_PERIOD_OFFSET), + &pwm->hw_pwm_period0_set); writel((0x0 << PWM_PERIOD1_CDIV_OFFSET) | - (0x3 << PWM_PERIOD1_INACTIVE_STATE_OFFSET) | - (0x3 << PWM_PERIOD1_ACTIVE_STATE_OFFSET) | - (0x07cf << PWM_PERIOD1_PERIOD_OFFSET), - &pwm->hw_pwm_period1_set); + (0x3 << PWM_PERIOD1_INACTIVE_STATE_OFFSET) | + (0x3 << PWM_PERIOD1_ACTIVE_STATE_OFFSET) | + (0x07cf << PWM_PERIOD1_PERIOD_OFFSET), + &pwm->hw_pwm_period1_set); writel(PWM_CTRL_PWM0_ENABLE | PWM_CTRL_PWM1_ENABLE, - &pwm->hw_pwm_ctrl_set); + &pwm->hw_pwm_ctrl_set); } #endif