ODROID-N2: fbtft_device new fast spi lcd(ili9486) driver added.

Change-Id: Iaa24ea37679637729b0ca7b773b9c89e6a0167f5
This commit is contained in:
charles.park
2019-04-09 11:51:27 +09:00
committed by Dongjin Kim
parent 98e5a336a5
commit cc13c90649
2 changed files with 73 additions and 18 deletions

View File

@@ -67,6 +67,29 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye)
static int set_var(struct fbtft_par *par)
{
#if defined(CONFIG_ARCH_MESON64_ODROID_COMMON)
#define ILI9486_MADCTL_MV 0x20
#define ILI9486_MADCTL_MX 0x40
#define ILI9486_MADCTL_MY 0x80
u8 val = 0;
switch (par->info->var.rotate) {
case 270:
val = ILI9486_MADCTL_MV | ILI9486_MADCTL_MX;
break;
case 180:
val = ILI9486_MADCTL_MY | ILI9486_MADCTL_MX;
break;
case 90:
val = ILI9486_MADCTL_MV | ILI9486_MADCTL_MY;
break;
default:
break;
}
/* Memory Access Control */
write_reg(par, MIPI_DCS_SET_ADDRESS_MODE, val | (par->bgr << 3));
#else
switch (par->info->var.rotate) {
case 0:
write_reg(par, MIPI_DCS_SET_ADDRESS_MODE,
@@ -87,7 +110,7 @@ static int set_var(struct fbtft_par *par)
default:
break;
}
#endif
return 0;
}

View File

@@ -133,23 +133,55 @@ static void adafruit18_green_tab_set_addr_win(struct fbtft_par *par,
#if defined(CONFIG_ARCH_MESON64_ODROID_COMMON)
static int odroid35_init_sequence[] = {
/* Fast SPI-LCD Init */
-1, 0xf1, 0x36, 0x04, 0x00, 0x3c, 0x0f, 0x8f,
-1, 0xf2, 0x18, 0xa3, 0x12, 0x02, 0xb2, 0x12, 0xff, 0x10, 0x00,
-1, 0xf8, 0x21, 0x04,
-1, 0xf9, 0x00, 0x08,
-1, 0x36, 0x08,
-1, 0xb4, 0x00,
-1, 0xc1, 0x41,
-1, 0xc5, 0x00, 0x91, 0x80, 0x00,
-1, 0xe0, 0x0f, 0x1f, 0x1c, 0x0c, 0x0f, 0x08, 0x48,
0x98, 0x37, 0x0a, 0x13, 0x04, 0x11, 0x0d, 0x00,
-1, 0xe1, 0x0f, 0x32, 0x2e, 0x0b, 0x0d, 0x05, 0x47,
0x75, 0x37, 0x06, 0x10, 0x03, 0x24, 0x20, 0x00,
-1, 0x3a, 0x55,
/* Fast SPI-LCD Init : IPS(New Version LCD) */
/* Passwd 1 */
-1, 0xF0, 0x5A, 0x5A,
/* Passwd 2 */
-1, 0xF1, 0x5A, 0x5A,
/* DISCTL */
-1, 0xf2, 0x3B, 0x48, 0x03, 0x08, 0x08, 0x08, 0x08, 0x00, 0x08,
0x08, 0x00, 0x00, 0x00, 0x00, 0x54, 0x08, 0x08, 0x08, 0x08,
/* PWRCTL */
-1, 0xF4, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x3F, 0x79, 0x03, 0x3F, 0x79, 0x03,
/* VCMCTL */
-1, 0xF5, 0x00, 0x5D, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
0x00, 0x5D, 0x75,
/* SRCCTL */
-1, 0xF6, 0x04, 0x00, 0x08, 0x03, 0x01, 0x00, 0x01, 0x00,
/* IFCTL */
-1, 0xF7, 0x48, 0x80, 0x10, 0x02, 0x00,
/* PANELCTL */
-1, 0xF8, 0x11, 0x00,
/* GAMMASEL : RED */
-1, 0xF9, 0x24,
/* PGAMMACTL */
-1, 0xFA, 0x0B, 0x0B, 0x05, 0x01, 0x0B, 0x20, 0x2C, 0x13,
0x21, 0x24, 0x30, 0x32, 0x24, 0x00, 0x00, 0x01,
/* GAMMASEL : GREEN */
-1, 0xF9, 0x22,
-1, 0xFA, 0x0B, 0x0B, 0x10, 0x31, 0x32, 0x35, 0x36, 0x11,
0x1D, 0x23, 0x2F, 0x2F, 0x24, 0x00, 0x00, 0x01,
/* GAMMASEL : BLUE */
-1, 0xF9, 0x21,
-1, 0xFA, 0x0B, 0x0B, 0x1A, 0x3A, 0x3F, 0x3F, 0x3F, 0x07,
0x18, 0x1F, 0x28, 0x1E, 0x1A, 0x00, 0x00, 0x01,
/* COLMCD */
-1, 0x3A, 0x55, /* Base Customer Selection */
/* 0x77 = 24 bits/pixel, 0x66 = 18 bits/pixel, 0x55 = 16 bits/pixel */
/* MADCTL */
-1, 0x36, 0x00,
/* TEON */
-1, 0x35, 0x00,
/* PASET */
-1, 0x2B, 0x00, 0x00, 0x01, 0xDF,
/* CASET */
-1, 0x2A, 0x00, 0x00, 0x01, 0x3F,
/* SLPOUT */
-1, 0x11,
-1, 0x36, 0x28,
-2, 0xff,
/* 120ms Delay */
-2, 0xFF,
/* DISPON */
-1, 0x29,
/* end marker */
-3,
@@ -962,7 +994,7 @@ static struct fbtft_device_display displays[] = {
.backlight = 1,
.init_sequence = odroid35_init_sequence,
},
.bgr = true,
.bgr = false,
.gpios = (const struct fbtft_gpio []) {
{ "reset", 478 },
{ "dc", 477 },