Commit 13c12269 authored by Priit Laes's avatar Priit Laes Committed by Greg Kroah-Hartman

staging: fbtft: Use standard MIPI DCS command defines for ili9163

This patch makes use of the standard MIPI Display Command Set to remove
some of the magic constants found in source code.
Signed-off-by: default avatarPriit Laes <plaes@plaes.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 95808932
......@@ -22,6 +22,7 @@
#include <linux/init.h>
#include <linux/gpio.h>
#include <linux/delay.h>
#include <video/mipi_display.h>
#include "fbtft.h"
......@@ -38,32 +39,6 @@
#endif
/* ILI9163C commands */
#define CMD_NOP 0x00 /* Non operation*/
#define CMD_SWRESET 0x01 /* Soft Reset */
#define CMD_SLPIN 0x10 /* Sleep ON */
#define CMD_SLPOUT 0x11 /* Sleep OFF */
#define CMD_PTLON 0x12 /* Partial Mode ON */
#define CMD_NORML 0x13 /* Normal Display ON */
#define CMD_DINVOF 0x20 /* Display Inversion OFF */
#define CMD_DINVON 0x21 /* Display Inversion ON */
#define CMD_GAMMASET 0x26 /* Gamma Set (0x01[1],0x02[2],0x04[3],0x08[4]) */
#define CMD_DISPOFF 0x28 /* Display OFF */
#define CMD_DISPON 0x29 /* Display ON */
#define CMD_IDLEON 0x39 /* Idle Mode ON */
#define CMD_IDLEOF 0x38 /* Idle Mode OFF */
#define CMD_CLMADRS 0x2A /* Column Address Set */
#define CMD_PGEADRS 0x2B /* Page Address Set */
#define CMD_RAMWR 0x2C /* Memory Write */
#define CMD_RAMRD 0x2E /* Memory Read */
#define CMD_CLRSPACE 0x2D /* Color Space : 4K/65K/262K */
#define CMD_PARTAREA 0x30 /* Partial Area */
#define CMD_VSCLLDEF 0x33 /* Vertical Scroll Definition */
#define CMD_TEFXLON 0x34 /* Tearing Effect Line ON */
#define CMD_TEFXLOF 0x35 /* Tearing Effect Line OFF */
#define CMD_MADCTL 0x36 /* Memory Access Control */
#define CMD_PIXFMT 0x3A /* Interface Pixel Format */
#define CMD_FRMCTR1 0xB1 /* Frame Rate Control
(In normal mode/Full colors) */
#define CMD_FRMCTR2 0xB2 /* Frame Rate Control (In Idle mode/8-colors) */
......@@ -113,16 +88,17 @@ static int init_display(struct fbtft_par *par)
if (par->gpio.cs != -1)
gpio_set_value(par->gpio.cs, 0); /* Activate chip */
write_reg(par, CMD_SWRESET); /* software reset */
write_reg(par, MIPI_DCS_SOFT_RESET); /* software reset */
mdelay(500);
write_reg(par, CMD_SLPOUT); /* exit sleep */
write_reg(par, MIPI_DCS_EXIT_SLEEP_MODE); /* exit sleep */
mdelay(5);
write_reg(par, CMD_PIXFMT, 0x05); /* Set Color Format 16bit */
write_reg(par, CMD_GAMMASET, 0x02); /* default gamma curve 3 */
write_reg(par, MIPI_DCS_SET_PIXEL_FORMAT, MIPI_DCS_PIXEL_FMT_16BIT);
/* default gamma curve 3 */
write_reg(par, MIPI_DCS_SET_GAMMA_CURVE, 0x02);
#ifdef GAMMA_ADJ
write_reg(par, CMD_GAMRSEL, 0x01); /* Enable Gamma adj */
#endif
write_reg(par, CMD_NORML);
write_reg(par, MIPI_DCS_ENTER_NORMAL_MODE);
write_reg(par, CMD_DFUNCTR, 0xff, 0x06);
/* Frame Rate Control (In normal mode/Full colors) */
write_reg(par, CMD_FRMCTR1, 0x08, 0x02);
......@@ -135,11 +111,11 @@ static int init_display(struct fbtft_par *par)
write_reg(par, CMD_VCOMCTR1, 0x50, 0x63);
write_reg(par, CMD_VCOMOFFS, 0);
write_reg(par, CMD_CLMADRS, 0, 0, 0, WIDTH); /* Set Column Address */
write_reg(par, CMD_PGEADRS, 0, 0, 0, HEIGHT); /* Set Page Address */
write_reg(par, MIPI_DCS_SET_COLUMN_ADDRESS, 0, 0, 0, WIDTH);
write_reg(par, MIPI_DCS_SET_PAGE_ADDRESS, 0, 0, 0, HEIGHT);
write_reg(par, CMD_DISPON); /* display ON */
write_reg(par, CMD_RAMWR); /* Memory Write */
write_reg(par, MIPI_DCS_SET_DISPLAY_ON); /* display ON */
write_reg(par, MIPI_DCS_WRITE_MEMORY_START); /* Memory Write */
return 0;
}
......@@ -149,30 +125,31 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys,
{
switch (par->info->var.rotate) {
case 0:
write_reg(par, CMD_CLMADRS, xs >> 8, xs & 0xff, xe >> 8,
xe & 0xff);
write_reg(par, CMD_PGEADRS,
(ys + __OFFSET) >> 8, (ys + __OFFSET) & 0xff,
(ye + __OFFSET) >> 8, (ye + __OFFSET) & 0xff);
write_reg(par, MIPI_DCS_SET_COLUMN_ADDRESS,
xs >> 8, xs & 0xff, xe >> 8, xe & 0xff);
write_reg(par, MIPI_DCS_SET_PAGE_ADDRESS,
(ys + __OFFSET) >> 8, (ys + __OFFSET) & 0xff,
(ye + __OFFSET) >> 8, (ye + __OFFSET) & 0xff);
break;
case 90:
write_reg(par, CMD_CLMADRS,
(xs + __OFFSET) >> 8, (xs + __OFFSET) & 0xff,
(xe + __OFFSET) >> 8, (xe + __OFFSET) & 0xff);
write_reg(par, CMD_PGEADRS, ys >> 8, ys & 0xff, ye >> 8,
ye & 0xff);
write_reg(par, MIPI_DCS_SET_COLUMN_ADDRESS,
(xs + __OFFSET) >> 8, (xs + __OFFSET) & 0xff,
(xe + __OFFSET) >> 8, (xe + __OFFSET) & 0xff);
write_reg(par, MIPI_DCS_SET_PAGE_ADDRESS,
ys >> 8, ys & 0xff, ye >> 8, ye & 0xff);
break;
case 180:
case 270:
write_reg(par, CMD_CLMADRS, xs >> 8, xs & 0xff, xe >> 8,
xe & 0xff);
write_reg(par, CMD_PGEADRS, ys >> 8, ys & 0xff, ye >> 8,
ye & 0xff);
write_reg(par, MIPI_DCS_SET_COLUMN_ADDRESS,
xs >> 8, xs & 0xff, xe >> 8, xe & 0xff);
write_reg(par, MIPI_DCS_SET_PAGE_ADDRESS,
ys >> 8, ys & 0xff, ye >> 8, ye & 0xff);
break;
default:
par->info->var.rotate = 0; /* Fix incorrect setting */
/* Fix incorrect setting */
par->info->var.rotate = 0;
}
write_reg(par, CMD_RAMWR); /* Write Data to GRAM mode */
write_reg(par, MIPI_DCS_WRITE_MEMORY_START);
}
/*
......@@ -217,8 +194,8 @@ static int set_var(struct fbtft_par *par)
/* Colorspcae */
if (par->bgr)
mactrl_data |= (1 << 2);
write_reg(par, CMD_MADCTL, mactrl_data);
write_reg(par, CMD_RAMWR); /* Write Data to GRAM mode */
write_reg(par, MIPI_DCS_SET_ADDRESS_MODE, mactrl_data);
write_reg(par, MIPI_DCS_WRITE_MEMORY_START);
return 0;
}
......@@ -254,7 +231,8 @@ static int gamma_adj(struct fbtft_par *par, unsigned long *curves)
CURVE(0, 15)
);
write_reg(par, CMD_RAMWR); /* Write Data to GRAM mode */
/* Write Data to GRAM mode */
write_reg(par, MIPI_DCS_WRITE_MEMORY_START);
return 0;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment