/* Copyright (c) 2017 dXplore
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include "display_ili9340.h"

void ili9340_lcd_init(struct ili9340_data *data)
{
	u8_t tx_data[15];

	tx_data[0] = 0x23;
	ili9340_transmit(data, ILI9340_CMD_POWER_CTRL_1, tx_data, 1);

	tx_data[0] = 0x10;
	ili9340_transmit(data, ILI9340_CMD_POWER_CTRL_2, tx_data, 1);

	tx_data[0] = 0x3e;
	tx_data[1] = 0x28;
	ili9340_transmit(data, ILI9340_CMD_VCOM_CTRL_1, tx_data, 2);

	tx_data[0] = 0x86;
	ili9340_transmit(data, ILI9340_CMD_VCOM_CTRL_2, tx_data, 1);

	tx_data[0] =
	    ILI9340_DATA_MEM_ACCESS_CTRL_MV | ILI9340_DATA_MEM_ACCESS_CTRL_BGR;
	ili9340_transmit(data, ILI9340_CMD_MEM_ACCESS_CTRL, tx_data, 1);

	tx_data[0] = ILI9340_DATA_PIXEL_FORMAT_MCU_18_BIT |
		     ILI9340_DATA_PIXEL_FORMAT_RGB_18_BIT;
	ili9340_transmit(data, ILI9340_CMD_PIXEL_FORMAT_SET, tx_data, 1);

	tx_data[0] = 0x00;
	tx_data[1] = 0x18;
	ili9340_transmit(data, ILI9340_CMD_FRAME_CTRL_NORMAL_MODE, tx_data, 2);

	tx_data[0] = 0x08;
	tx_data[1] = 0x82;
	tx_data[2] = 0x27;
	ili9340_transmit(data, ILI9340_CMD_DISPLAY_FUNCTION_CTRL, tx_data, 3);

	tx_data[0] = 0x01;
	ili9340_transmit(data, ILI9340_CMD_GAMMA_SET, tx_data, 1);

	tx_data[0] = 0x0F;
	tx_data[1] = 0x31;
	tx_data[2] = 0x2B;
	tx_data[3] = 0x0C;
	tx_data[4] = 0x0E;
	tx_data[5] = 0x08;
	tx_data[6] = 0x4E;
	tx_data[7] = 0xF1;
	tx_data[8] = 0x37;
	tx_data[9] = 0x07;
	tx_data[10] = 0x10;
	tx_data[11] = 0x03;
	tx_data[12] = 0x0E;
	tx_data[13] = 0x09;
	tx_data[14] = 0x00;
	ili9340_transmit(data, ILI9340_CMD_POSITVE_GAMMA_CORRECTION, tx_data,
			 15);

	tx_data[0] = 0x00;
	tx_data[1] = 0x0E;
	tx_data[2] = 0x14;
	tx_data[3] = 0x03;
	tx_data[4] = 0x11;
	tx_data[5] = 0x07;
	tx_data[6] = 0x31;
	tx_data[7] = 0xC1;
	tx_data[8] = 0x48;
	tx_data[9] = 0x08;
	tx_data[10] = 0x0F;
	tx_data[11] = 0x0C;
	tx_data[12] = 0x31;
	tx_data[13] = 0x36;
	tx_data[14] = 0x0F;
	ili9340_transmit(data, ILI9340_CMD_NEGATIVE_GAMMA_CORRECTION, tx_data,
			 15);
}
