diff options
-rw-r--r-- | drivers/staging/fbtft/fbtft-core.c | 14 | ||||
-rw-r--r-- | drivers/staging/fbtft/fbtft_device.c | 71 |
2 files changed, 54 insertions, 31 deletions
diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c index 6824d5f..3bcbabf 100644 --- a/drivers/staging/fbtft/fbtft-core.c +++ b/drivers/staging/fbtft/fbtft-core.c @@ -35,6 +35,7 @@ #include <linux/dma-mapping.h> #include <linux/of.h> #include <linux/of_gpio.h> +#include <video/mipi_display.h> #include "fbtft.h" #include "internal.h" @@ -319,16 +320,13 @@ EXPORT_SYMBOL(fbtft_unregister_backlight); static void fbtft_set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye) { - /* Column address set */ - write_reg(par, 0x2A, - (xs >> 8) & 0xFF, xs & 0xFF, (xe >> 8) & 0xFF, xe & 0xFF); + write_reg(par, MIPI_DCS_SET_COLUMN_ADDRESS, + (xs >> 8) & 0xFF, xs & 0xFF, (xe >> 8) & 0xFF, xe & 0xFF); - /* Row address set */ - write_reg(par, 0x2B, - (ys >> 8) & 0xFF, ys & 0xFF, (ye >> 8) & 0xFF, ye & 0xFF); + write_reg(par, MIPI_DCS_SET_PAGE_ADDRESS, + (ys >> 8) & 0xFF, ys & 0xFF, (ye >> 8) & 0xFF, ye & 0xFF); - /* Memory write */ - write_reg(par, 0x2C); + write_reg(par, MIPI_DCS_WRITE_MEMORY_START); } static void fbtft_reset(struct fbtft_par *par) diff --git a/drivers/staging/fbtft/fbtft_device.c b/drivers/staging/fbtft/fbtft_device.c index 071f79b..a0366e5 100644 --- a/drivers/staging/fbtft/fbtft_device.c +++ b/drivers/staging/fbtft/fbtft_device.c @@ -212,38 +212,63 @@ static int hy28b_init_sequence[] = { "0F 00 1 7 4 0 0 0 6 7" static int pitft_init_sequence[] = { - -1, 0x01, -2, 5, -1, 0x28, -1, 0xEF, - 0x03, 0x80, 0x02, -1, 0xCF, 0x00, 0xC1, 0x30, + -1, MIPI_DCS_SOFT_RESET, + -2, 5, + -1, MIPI_DCS_SET_DISPLAY_OFF, + -1, 0xEF, 0x03, 0x80, 0x02, + -1, 0xCF, 0x00, 0xC1, 0x30, -1, 0xED, 0x64, 0x03, 0x12, 0x81, -1, 0xE8, 0x85, 0x00, 0x78, -1, 0xCB, 0x39, 0x2C, 0x00, 0x34, 0x02, - -1, 0xF7, 0x20, -1, 0xEA, 0x00, 0x00, - -1, 0xC0, 0x23, -1, 0xC1, 0x10, -1, 0xC5, - 0x3e, 0x28, -1, 0xC7, 0x86, -1, 0x3A, 0x55, - -1, 0xB1, 0x00, 0x18, -1, 0xB6, 0x08, 0x82, - 0x27, -1, 0xF2, 0x00, -1, 0x26, 0x01, - -1, 0xE0, 0x0F, 0x31, 0x2B, 0x0C, 0x0E, 0x08, - 0x4E, 0xF1, 0x37, 0x07, 0x10, 0x03, - 0x0E, 0x09, 0x00, -1, 0xE1, 0x00, 0x0E, 0x14, - 0x03, 0x11, 0x07, 0x31, 0xC1, 0x48, - 0x08, 0x0F, 0x0C, 0x31, 0x36, 0x0F, -1, - 0x11, -2, 100, -1, 0x29, -2, 20, -3 }; + -1, 0xF7, 0x20, + -1, 0xEA, 0x00, 0x00, + -1, 0xC0, 0x23, + -1, 0xC1, 0x10, + -1, 0xC5, 0x3E, 0x28, + -1, 0xC7, 0x86, + -1, MIPI_DCS_SET_PIXEL_FORMAT, 0x55, + -1, 0xB1, 0x00, 0x18, + -1, 0xB6, 0x08, 0x82, 0x27, + -1, 0xF2, 0x00, + -1, MIPI_DCS_SET_GAMMA_CURVE, 0x01, + -1, 0xE0, 0x0F, 0x31, 0x2B, 0x0C, 0x0E, 0x08, 0x4E, + 0xF1, 0x37, 0x07, 0x10, 0x03, 0x0E, 0x09, 0x00, + -1, 0xE1, 0x00, 0x0E, 0x14, 0x03, 0x11, 0x07, 0x31, + 0xC1, 0x48, 0x08, 0x0F, 0x0C, 0x31, 0x36, 0x0F, + -1, MIPI_DCS_EXIT_SLEEP_MODE, + -2, 100, + -1, MIPI_DCS_SET_DISPLAY_ON, + -2, 20, + -3 +}; static int waveshare32b_init_sequence[] = { -1, 0xCB, 0x39, 0x2C, 0x00, 0x34, 0x02, -1, 0xCF, 0x00, 0xC1, 0x30, - -1, 0xE8, 0x85, 0x00, 0x78, -1, 0xEA, 0x00, - 0x00, -1, 0xED, 0x64, 0x03, 0x12, 0x81, - -1, 0xF7, 0x20, -1, 0xC0, 0x23, -1, 0xC1, - 0x10, -1, 0xC5, 0x3e, 0x28, -1, 0xC7, 0x86, - -1, 0x36, 0x28, -1, 0x3A, 0x55, -1, 0xB1, 0x00, - 0x18, -1, 0xB6, 0x08, 0x82, 0x27, - -1, 0xF2, 0x00, -1, 0x26, 0x01, + -1, 0xE8, 0x85, 0x00, 0x78, + -1, 0xEA, 0x00, 0x00, + -1, 0xED, 0x64, 0x03, 0x12, 0x81, + -1, 0xF7, 0x20, + -1, 0xC0, 0x23, + -1, 0xC1, 0x10, + -1, 0xC5, 0x3E, 0x28, + -1, 0xC7, 0x86, + -1, MIPI_DCS_SET_ADDRESS_MODE, 0x28, + -1, MIPI_DCS_SET_PIXEL_FORMAT, 0x55, + -1, 0xB1, 0x00, 0x18, + -1, 0xB6, 0x08, 0x82, 0x27, + -1, 0xF2, 0x00, + -1, MIPI_DCS_SET_GAMMA_CURVE, 0x01, -1, 0xE0, 0x0F, 0x31, 0x2B, 0x0C, 0x0E, 0x08, 0x4E, - 0xF1, 0x37, 0x07, 0x10, 0x03, 0x0E, 0x09, 0x00, + 0xF1, 0x37, 0x07, 0x10, 0x03, 0x0E, 0x09, 0x00, -1, 0xE1, 0x00, 0x0E, 0x14, 0x03, 0x11, 0x07, 0x31, - 0xC1, 0x48, 0x08, 0x0F, 0x0C, 0x31, 0x36, 0x0F, - -1, 0x11, -2, 120, -1, 0x29, -1, 0x2c, -3 }; + 0xC1, 0x48, 0x08, 0x0F, 0x0C, 0x31, 0x36, 0x0F, + -1, MIPI_DCS_EXIT_SLEEP_MODE, + -2, 120, + -1, MIPI_DCS_SET_DISPLAY_ON, + -1, MIPI_DCS_WRITE_MEMORY_START, + -3 +}; /* Supported displays in alphabetical order */ static struct fbtft_device_display displays[] = { |