#include <linux/init.h>
 #include <linux/gpio.h>
 #include <linux/delay.h>
+#include <video/mipi_display.h>
 
 #include "fbtft.h"
 
 #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) */
        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);
        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;
 }
 {
        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);
 }
 
 /*
        /* 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;
 }
 
                                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;
 }