|
@@ -411,6 +411,21 @@ static void lcd_cfg_horizontal_sync(int back_porch, int pulse_width,
|
|
|
| (((front_porch-1) & 0xff) << 16)
|
|
|
| (((pulse_width-1) & 0x3f) << 10);
|
|
|
lcdc_write(reg, LCD_RASTER_TIMING_0_REG);
|
|
|
+
|
|
|
+ /*
|
|
|
+ * LCDC Version 2 adds some extra bits that increase the allowable
|
|
|
+ * size of the horizontal timing registers.
|
|
|
+ * remember that the registers use 0 to represent 1 so all values
|
|
|
+ * that get set into register need to be decremented by 1
|
|
|
+ */
|
|
|
+ if (lcd_revision == LCD_VERSION_2) {
|
|
|
+ /* Mask off the bits we want to change */
|
|
|
+ reg = lcdc_read(LCD_RASTER_TIMING_2_REG) & ~0x780000ff;
|
|
|
+ reg |= ((front_porch-1) & 0x300) >> 8;
|
|
|
+ reg |= ((back_porch-1) & 0x300) >> 4;
|
|
|
+ reg |= ((pulse_width-1) & 0x3c0) << 21;
|
|
|
+ lcdc_write(reg, LCD_RASTER_TIMING_2_REG);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
static void lcd_cfg_vertical_sync(int back_porch, int pulse_width,
|