|
53 | 53 | #define LCDCTRL_VSPOL BIT(19) /* Polarity of VSYNC signal */ |
54 | 54 | #define LCDCTRL_VSDELAY(v) (((v) & 0xfff) << 20) /* VSYNC delay */ |
55 | 55 |
|
| 56 | +/* First parameter is in the 16bits, second is in the top 16bits */ |
| 57 | +#define LCD_HS_HBP 0x0424 |
| 58 | +#define LCD_HDISP_HFP 0x0428 |
| 59 | +#define LCD_VS_VBP 0x042c |
| 60 | +#define LCD_VDISP_VFP 0x0430 |
| 61 | + |
56 | 62 | /* SPI Master Registers */ |
57 | 63 | #define SPICMR 0x0450 |
58 | 64 | #define SPITCR 0x0454 |
@@ -139,6 +145,15 @@ static int tc358762_init(struct tc358762 *ctx) |
139 | 145 | tc358762_write(ctx, LCDCTRL, lcdctrl); |
140 | 146 |
|
141 | 147 | tc358762_write(ctx, SYSCTRL, 0x040f); |
| 148 | + |
| 149 | + tc358762_write(ctx, LCD_HS_HBP, (ctx->mode.hsync_end - ctx->mode.hsync_start) | |
| 150 | + ((ctx->mode.htotal - ctx->mode.hsync_end) << 16)); |
| 151 | + tc358762_write(ctx, LCD_HDISP_HFP, ctx->mode.hdisplay | |
| 152 | + ((ctx->mode.hsync_start - ctx->mode.hdisplay) << 16)); |
| 153 | + tc358762_write(ctx, LCD_VS_VBP, (ctx->mode.vsync_end - ctx->mode.vsync_start) | |
| 154 | + ((ctx->mode.vtotal - ctx->mode.vsync_end) << 16)); |
| 155 | + tc358762_write(ctx, LCD_VDISP_VFP, ctx->mode.vdisplay | |
| 156 | + ((ctx->mode.vsync_start - ctx->mode.vdisplay) << 16)); |
142 | 157 | msleep(100); |
143 | 158 |
|
144 | 159 | tc358762_write(ctx, PPI_STARTPPI, PPI_START_FUNCTION); |
|
0 commit comments