Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/firmware/target/arm/rk27xx/lcd-hifiman.c b/firmware/target/arm/rk27xx/lcd-hifiman.c
- index 21ca321..b2e1347 100644
- --- a/firmware/target/arm/rk27xx/lcd-hifiman.c
- +++ b/firmware/target/arm/rk27xx/lcd-hifiman.c
- @@ -29,7 +29,7 @@
- static bool display_on = false;
- -void lcd_display_init()
- +static void lcd_display_init(void)
- {
- unsigned int x, y;
- @@ -108,6 +108,12 @@ void lcd_display_init()
- display_on = true;
- }
- +void lcd_init_device(void)
- +{
- + lcdif_init(LCDIF_16BIT);
- + lcd_display_init();
- +}
- +
- void lcd_enable (bool on)
- {
- if (on)
- diff --git a/firmware/target/arm/rk27xx/lcdif-rk27xx.c b/firmware/target/arm/rk27xx/lcdif-rk27xx.c
- index ff60279..affc49b 100644
- --- a/firmware/target/arm/rk27xx/lcdif-rk27xx.c
- +++ b/firmware/target/arm/rk27xx/lcdif-rk27xx.c
- @@ -123,27 +123,26 @@ static void lcdctrl_init(void)
- }
- /* configure pins to drive lcd in 18bit mode (16bit mode for HiFiMAN's) */
- -static void iomux_lcd(void)
- +static void iomux_lcd(enum lcdif_mode_t mode)
- {
- unsigned long muxa;
- muxa = SCU_IOMUXA_CON & ~(IOMUX_LCD_VSYNC|IOMUX_LCD_DEN|0xff);
- -#if !defined(HM801) && !defined(HM60x)
- - muxa |= IOMUX_LCD_D18|IOMUX_LCD_D20|IOMUX_LCD_D22|IOMUX_LCD_D17|IOMUX_LCD_D16;
- -#endif
- + if (mode == LCDIF_18BIT)
- + {
- + muxa |= IOMUX_LCD_D18|IOMUX_LCD_D20|IOMUX_LCD_D22|IOMUX_LCD_D17|IOMUX_LCD_D16;
- + }
- SCU_IOMUXA_CON = muxa;
- SCU_IOMUXB_CON |= IOMUX_LCD_D815;
- }
- -void lcd_init_device()
- +void lcdif_init(enum lcdif_mode_t mode)
- {
- - iomux_lcd(); /* setup pins for 16bit lcd interface */
- + iomux_lcd(mode); /* setup pins for lcd interface */
- lcdctrl_init(); /* basic lcdc module configuration */
- -
- lcdctrl_bypass(1); /* run in bypass mode - all writes goes directly to lcd controller */
- - lcd_display_init();
- }
- /* This is ugly hack. We drive lcd in bypass mode
- diff --git a/firmware/target/arm/rk27xx/lcdif-rk27xx.h b/firmware/target/arm/rk27xx/lcdif-rk27xx.h
- index caf97c8..1d7b810 100644
- --- a/firmware/target/arm/rk27xx/lcdif-rk27xx.h
- +++ b/firmware/target/arm/rk27xx/lcdif-rk27xx.h
- @@ -1,11 +1,16 @@
- #ifndef _LCDIF_RK27XX_H
- #define _LCDIF_RK27XX_H
- +enum lcdif_mode_t {
- + LCDIF_16BIT,
- + LCDIF_18BIT
- +};
- +
- unsigned int lcd_data_transform(unsigned int data);
- void lcd_cmd(unsigned int cmd);
- void lcd_data(unsigned int data);
- void lcd_write_reg(unsigned int reg, unsigned int val);
- -void lcd_display_init(void);
- +void lcdif_init(enum lcdif_mode_t mode);
- #endif /* _LCDIF_RK27XX_H */
- diff --git a/firmware/target/arm/rk27xx/rk27generic/lcd-rk27generic.c b/firmware/target/arm/rk27xx/rk27generic/lcd-rk27generic.c
- index 6b989a6..044ab9b 100644
- --- a/firmware/target/arm/rk27xx/rk27generic/lcd-rk27generic.c
- +++ b/firmware/target/arm/rk27xx/rk27generic/lcd-rk27generic.c
- @@ -71,7 +71,7 @@ static void lcd_sleep(bool sleep)
- lcd_cmd(GRAM_WRITE);
- }
- -void lcd_display_init()
- +static void lcd_display_init(void)
- {
- unsigned int x, y;
- @@ -173,6 +173,12 @@ void lcd_display_init()
- lcd_sleep(false);
- }
- +void lcd_init_device(void)
- +{
- + lcdif_init(LCDIF_18BIT);
- + lcd_display_init();
- +}
- +
- void lcd_update_rect(int x, int y, int width, int height)
- {
- int px = x, py = y;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement