/*
 * LCD: Formike, TFT 4.3", 480x800, RGB24, KWH043ST20-F01, DriverIC NT35510-16
 * LCD initialization via SPI
 *
 * SPDX-License-Identifier:	GPL-2.0
 * Based on:
 *
 */
#include <common.h>
#include <errno.h>
#include <spi.h>

#define TAG_READ	0x80
#define TAG_WRITE	0x00

#define TAG_DATA	0x40
#define TAG_COMMAND	0x00

#define TAG_ADDR_H	0x20
#define TAG_ADDR_L	0x00

static int spi_write_tag_val(struct spi_slave *spi, unsigned char tag,
			     unsigned char val)
{
	unsigned long flags = SPI_XFER_BEGIN;
	u8 buf[2];
	int ret;

	buf[0] = tag;
	buf[1] = val;
	flags |= SPI_XFER_END;

	ret = spi_xfer(spi, 16, buf, NULL, flags);
#ifdef KWH043ST20_F01_SPI_DEBUG
	printf("spi_write_tag_val: tag=%02X, val=%02X ret: %d\n",
	       tag, val, ret);
#endif /* KWH043ST20_F01_SPI_DEBUG */
	if (ret)
		debug("%s: Failed to send: %d\n", __func__, ret);

	return ret;
}

static void spi_write_dat(struct spi_slave *spi, unsigned int val)
{
	spi_write_tag_val(spi, TAG_WRITE|TAG_DATA, val);
}

static void spi_write_com(struct spi_slave *spi, unsigned int addr)
{
	spi_write_tag_val(spi, TAG_WRITE|TAG_COMMAND|TAG_ADDR_H,
			  (addr & 0xff00) >> 8);
	spi_write_tag_val(spi, TAG_WRITE|TAG_COMMAND|TAG_ADDR_L,
			  (addr & 0x00ff) >> 0);
}

int kwh043st20_f01_spi_startup(unsigned int bus, unsigned int cs,
	unsigned int max_hz, unsigned int spi_mode)
{
	struct spi_slave *spi;
	int ret;

	spi = spi_setup_slave(bus, cs, max_hz, spi_mode);
	if (!spi) {
		debug("%s: Failed to set up slave\n", __func__);
		return -1;
	}

	ret = spi_claim_bus(spi);
	if (ret) {
		debug("%s: Failed to claim SPI bus: %d\n", __func__, ret);
		goto err_claim_bus;
	}


	/* LV2 Page 1 enable */
	spi_write_com(spi, 0xF000);	spi_write_dat(spi, 0x55);
	spi_write_com(spi, 0xF001);	spi_write_dat(spi, 0xAA);
	spi_write_com(spi, 0xF002);	spi_write_dat(spi, 0x52);
	spi_write_com(spi, 0xF003);	spi_write_dat(spi, 0x08);
	spi_write_com(spi, 0xF004);	spi_write_dat(spi, 0x01);

	/* AVDD Set AVDD 5.2V */
	spi_write_com(spi, 0xB000);	spi_write_dat(spi, 0x0D);
	spi_write_com(spi, 0xB001);	spi_write_dat(spi, 0x0D);
	spi_write_com(spi, 0xB002);	spi_write_dat(spi, 0x0D);

	/* AVDD ratio */
	spi_write_com(spi, 0xB600);	spi_write_dat(spi, 0x34);
	spi_write_com(spi, 0xB601);	spi_write_dat(spi, 0x34);
	spi_write_com(spi, 0xB602);	spi_write_dat(spi, 0x34);

	/* AVEE  -5.2V */
	spi_write_com(spi, 0xB100);	spi_write_dat(spi, 0x0D);
	spi_write_com(spi, 0xB101);	spi_write_dat(spi, 0x0D);
	spi_write_com(spi, 0xB102);	spi_write_dat(spi, 0x0D);

	/* AVEE ratio */
	spi_write_com(spi, 0xB700);	spi_write_dat(spi, 0x35);
	spi_write_com(spi, 0xB701);	spi_write_dat(spi, 0x35);
	spi_write_com(spi, 0xB702);	spi_write_dat(spi, 0x35);

	/* VCL  -2.5V */
	spi_write_com(spi, 0xB200);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xB201);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xB202);	spi_write_dat(spi, 0x00);

	/* VCL ratio */
	spi_write_com(spi, 0xB800);	spi_write_dat(spi, 0x24);
	spi_write_com(spi, 0xB801);	spi_write_dat(spi, 0x24);
	spi_write_com(spi, 0xB802);	spi_write_dat(spi, 0x24);

	/* VGH 15V */
	spi_write_com(spi, 0xBF00);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xB300);	spi_write_dat(spi, 0x08);
	spi_write_com(spi, 0xB301);	spi_write_dat(spi, 0x08);
	spi_write_com(spi, 0xB302);	spi_write_dat(spi, 0x08);

	/* VGH ratio */
	spi_write_com(spi, 0xB900);	spi_write_dat(spi, 0x34);
	spi_write_com(spi, 0xB901);	spi_write_dat(spi, 0x34);
	spi_write_com(spi, 0xB902);	spi_write_dat(spi, 0x34);

	/* VGLX ratio */
	spi_write_com(spi, 0xBA00);	spi_write_dat(spi, 0x24);
	spi_write_com(spi, 0xBA01);	spi_write_dat(spi, 0x24);
	spi_write_com(spi, 0xBA02);	spi_write_dat(spi, 0x24);

	/* VGMP/VGSP 4.7V/0V */
	spi_write_com(spi, 0xBC00);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xBC01);	spi_write_dat(spi, 0x88);
	spi_write_com(spi, 0xBC02);	spi_write_dat(spi, 0x00);

	/* VGMN/VGSN -4.7V/0V */
	spi_write_com(spi, 0xBD00);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xBD01);	spi_write_dat(spi, 0x88);
	spi_write_com(spi, 0xBD02);	spi_write_dat(spi, 0x00);

	/* VCOM 1.525V */
	spi_write_com(spi, 0xBE00);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xBE01);	spi_write_dat(spi, 0x7A);

	/* Gamma Setting */
	spi_write_com(spi, 0xD100);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD101);	spi_write_dat(spi, 0x05);
	spi_write_com(spi, 0xD102);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD103);	spi_write_dat(spi, 0x15);
	spi_write_com(spi, 0xD104);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD105);	spi_write_dat(spi, 0x30);
	spi_write_com(spi, 0xD106);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD107);	spi_write_dat(spi, 0x47);
	spi_write_com(spi, 0xD108);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD109);	spi_write_dat(spi, 0x5B);
	spi_write_com(spi, 0xD10A);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD10B);	spi_write_dat(spi, 0x7D);
	spi_write_com(spi, 0xD10C);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD10D);	spi_write_dat(spi, 0x9D);
	spi_write_com(spi, 0xD10E);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD10F);	spi_write_dat(spi, 0xCC);
	spi_write_com(spi, 0xD110);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD111);	spi_write_dat(spi, 0xF3);
	spi_write_com(spi, 0xD112);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD113);	spi_write_dat(spi, 0x32);
	spi_write_com(spi, 0xD114);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD115);	spi_write_dat(spi, 0x63);
	spi_write_com(spi, 0xD116);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD117);	spi_write_dat(spi, 0xB1);
	spi_write_com(spi, 0xD118);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD119);	spi_write_dat(spi, 0xF0);
	spi_write_com(spi, 0xD11A);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD11B);	spi_write_dat(spi, 0xF2);
	spi_write_com(spi, 0xD11C);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD11D);	spi_write_dat(spi, 0x2A);
	spi_write_com(spi, 0xD11E);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD11F);	spi_write_dat(spi, 0x67);
	spi_write_com(spi, 0xD120);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD121);	spi_write_dat(spi, 0x90);
	spi_write_com(spi, 0xD122);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD123);	spi_write_dat(spi, 0xCB);
	spi_write_com(spi, 0xD124);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD125);	spi_write_dat(spi, 0xF2);
	spi_write_com(spi, 0xD126);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD127);	spi_write_dat(spi, 0x2A);
	spi_write_com(spi, 0xD128);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD129);	spi_write_dat(spi, 0x51);
	spi_write_com(spi, 0xD12A);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD12B);	spi_write_dat(spi, 0x80);
	spi_write_com(spi, 0xD12C);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD12D);	spi_write_dat(spi, 0x9F);
	spi_write_com(spi, 0xD12E);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD12F);	spi_write_dat(spi, 0xBE);
	spi_write_com(spi, 0xD130);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD131);	spi_write_dat(spi, 0xF9);
	spi_write_com(spi, 0xD132);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD133);	spi_write_dat(spi, 0xFF);

	spi_write_com(spi, 0xD200);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD201);	spi_write_dat(spi, 0x05);
	spi_write_com(spi, 0xD202);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD203);	spi_write_dat(spi, 0x15);
	spi_write_com(spi, 0xD204);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD205);	spi_write_dat(spi, 0x30);
	spi_write_com(spi, 0xD206);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD207);	spi_write_dat(spi, 0x47);
	spi_write_com(spi, 0xD208);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD209);	spi_write_dat(spi, 0x5B);
	spi_write_com(spi, 0xD20A);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD20B);	spi_write_dat(spi, 0x7D);
	spi_write_com(spi, 0xD20C);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD20D);	spi_write_dat(spi, 0x9D);
	spi_write_com(spi, 0xD20E);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD20F);	spi_write_dat(spi, 0xCC);
	spi_write_com(spi, 0xD210);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD211);	spi_write_dat(spi, 0xF3);
	spi_write_com(spi, 0xD212);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD213);	spi_write_dat(spi, 0x32);
	spi_write_com(spi, 0xD214);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD215);	spi_write_dat(spi, 0x63);
	spi_write_com(spi, 0xD216);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD217);	spi_write_dat(spi, 0xB1);
	spi_write_com(spi, 0xD218);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD219);	spi_write_dat(spi, 0xF0);
	spi_write_com(spi, 0xD21A);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD21B);	spi_write_dat(spi, 0xF2);
	spi_write_com(spi, 0xD21C);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD21D);	spi_write_dat(spi, 0x2A);
	spi_write_com(spi, 0xD21E);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD21F);	spi_write_dat(spi, 0x67);
	spi_write_com(spi, 0xD220);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD221);	spi_write_dat(spi, 0x90);
	spi_write_com(spi, 0xD222);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD223);	spi_write_dat(spi, 0xCB);
	spi_write_com(spi, 0xD224);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD225);	spi_write_dat(spi, 0xF2);
	spi_write_com(spi, 0xD226);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD227);	spi_write_dat(spi, 0x2A);
	spi_write_com(spi, 0xD228);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD229);	spi_write_dat(spi, 0x51);
	spi_write_com(spi, 0xD22A);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD22B);	spi_write_dat(spi, 0x80);
	spi_write_com(spi, 0xD22C);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD22D);	spi_write_dat(spi, 0x9F);
	spi_write_com(spi, 0xD22E);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD22F);	spi_write_dat(spi, 0xBE);
	spi_write_com(spi, 0xD230);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD231);	spi_write_dat(spi, 0xF9);
	spi_write_com(spi, 0xD232);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD233);	spi_write_dat(spi, 0xFF);

	spi_write_com(spi, 0xD300);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD301);	spi_write_dat(spi, 0x05);
	spi_write_com(spi, 0xD302);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD303);	spi_write_dat(spi, 0x15);
	spi_write_com(spi, 0xD304);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD305);	spi_write_dat(spi, 0x30);
	spi_write_com(spi, 0xD306);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD307);	spi_write_dat(spi, 0x47);
	spi_write_com(spi, 0xD308);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD309);	spi_write_dat(spi, 0x5B);
	spi_write_com(spi, 0xD30A);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD30B);	spi_write_dat(spi, 0x7D);
	spi_write_com(spi, 0xD30C);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD30D);	spi_write_dat(spi, 0x9D);
	spi_write_com(spi, 0xD30E);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD30F);	spi_write_dat(spi, 0xCC);
	spi_write_com(spi, 0xD310);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD311);	spi_write_dat(spi, 0xF3);
	spi_write_com(spi, 0xD312);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD313);	spi_write_dat(spi, 0x32);
	spi_write_com(spi, 0xD314);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD315);	spi_write_dat(spi, 0x63);
	spi_write_com(spi, 0xD316);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD317);	spi_write_dat(spi, 0xB1);
	spi_write_com(spi, 0xD318);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD319);	spi_write_dat(spi, 0xF0);
	spi_write_com(spi, 0xD31A);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD31B);	spi_write_dat(spi, 0xF2);
	spi_write_com(spi, 0xD31C);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD31D);	spi_write_dat(spi, 0x2A);
	spi_write_com(spi, 0xD31E);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD31F);	spi_write_dat(spi, 0x67);
	spi_write_com(spi, 0xD320);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD321);	spi_write_dat(spi, 0x90);
	spi_write_com(spi, 0xD322);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD323);	spi_write_dat(spi, 0xCB);
	spi_write_com(spi, 0xD324);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD325);	spi_write_dat(spi, 0xF2);
	spi_write_com(spi, 0xD326);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD327);	spi_write_dat(spi, 0x2A);
	spi_write_com(spi, 0xD328);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD329);	spi_write_dat(spi, 0x51);
	spi_write_com(spi, 0xD32A);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD32B);	spi_write_dat(spi, 0x80);
	spi_write_com(spi, 0xD32C);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD32D);	spi_write_dat(spi, 0x9F);
	spi_write_com(spi, 0xD32E);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD32F);	spi_write_dat(spi, 0xBE);
	spi_write_com(spi, 0xD330);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD331);	spi_write_dat(spi, 0xF9);
	spi_write_com(spi, 0xD332);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD333);	spi_write_dat(spi, 0xFF);

	spi_write_com(spi, 0xD400);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD401);	spi_write_dat(spi, 0x05);
	spi_write_com(spi, 0xD402);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD403);	spi_write_dat(spi, 0x15);
	spi_write_com(spi, 0xD404);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD405);	spi_write_dat(spi, 0x30);
	spi_write_com(spi, 0xD406);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD407);	spi_write_dat(spi, 0x47);
	spi_write_com(spi, 0xD408);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD409);	spi_write_dat(spi, 0x5B);
	spi_write_com(spi, 0xD40A);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD40B);	spi_write_dat(spi, 0x7D);
	spi_write_com(spi, 0xD40C);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD40D);	spi_write_dat(spi, 0x9D);
	spi_write_com(spi, 0xD40E);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD40F);	spi_write_dat(spi, 0xCC);
	spi_write_com(spi, 0xD410);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD411);	spi_write_dat(spi, 0xF3);
	spi_write_com(spi, 0xD412);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD413);	spi_write_dat(spi, 0x32);
	spi_write_com(spi, 0xD414);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD415);	spi_write_dat(spi, 0x63);
	spi_write_com(spi, 0xD416);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD417);	spi_write_dat(spi, 0xB1);
	spi_write_com(spi, 0xD418);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD419);	spi_write_dat(spi, 0xF0);
	spi_write_com(spi, 0xD41A);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD41B);	spi_write_dat(spi, 0xF2);
	spi_write_com(spi, 0xD41C);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD41D);	spi_write_dat(spi, 0x2A);
	spi_write_com(spi, 0xD41E);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD41F);	spi_write_dat(spi, 0x67);
	spi_write_com(spi, 0xD420);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD421);	spi_write_dat(spi, 0x90);
	spi_write_com(spi, 0xD422);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD423);	spi_write_dat(spi, 0xCB);
	spi_write_com(spi, 0xD424);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD425);	spi_write_dat(spi, 0xF2);
	spi_write_com(spi, 0xD426);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD427);	spi_write_dat(spi, 0x2A);
	spi_write_com(spi, 0xD428);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD429);	spi_write_dat(spi, 0x51);
	spi_write_com(spi, 0xD42A);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD42B);	spi_write_dat(spi, 0x80);
	spi_write_com(spi, 0xD42C);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD42D);	spi_write_dat(spi, 0x9F);
	spi_write_com(spi, 0xD42E);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD42F);	spi_write_dat(spi, 0xBE);
	spi_write_com(spi, 0xD430);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD431);	spi_write_dat(spi, 0xF9);
	spi_write_com(spi, 0xD432);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD433);	spi_write_dat(spi, 0xFF);

	spi_write_com(spi, 0xD500);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD501);	spi_write_dat(spi, 0x05);
	spi_write_com(spi, 0xD502);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD503);	spi_write_dat(spi, 0x15);
	spi_write_com(spi, 0xD504);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD505);	spi_write_dat(spi, 0x30);
	spi_write_com(spi, 0xD506);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD507);	spi_write_dat(spi, 0x47);
	spi_write_com(spi, 0xD508);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD509);	spi_write_dat(spi, 0x5B);
	spi_write_com(spi, 0xD50A);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD50B);	spi_write_dat(spi, 0x7D);
	spi_write_com(spi, 0xD50C);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD50D);	spi_write_dat(spi, 0x9D);
	spi_write_com(spi, 0xD50E);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD50F);	spi_write_dat(spi, 0xCC);
	spi_write_com(spi, 0xD510);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD511);	spi_write_dat(spi, 0xF3);
	spi_write_com(spi, 0xD512);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD513);	spi_write_dat(spi, 0x32);
	spi_write_com(spi, 0xD514);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD515);	spi_write_dat(spi, 0x63);
	spi_write_com(spi, 0xD516);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD517);	spi_write_dat(spi, 0xB1);
	spi_write_com(spi, 0xD518);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD519);	spi_write_dat(spi, 0xF0);
	spi_write_com(spi, 0xD51A);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD51B);	spi_write_dat(spi, 0xF2);
	spi_write_com(spi, 0xD51C);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD51D);	spi_write_dat(spi, 0x2A);
	spi_write_com(spi, 0xD51E);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD51F);	spi_write_dat(spi, 0x67);
	spi_write_com(spi, 0xD520);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD521);	spi_write_dat(spi, 0x90);
	spi_write_com(spi, 0xD522);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD523);	spi_write_dat(spi, 0xCB);
	spi_write_com(spi, 0xD524);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD525);	spi_write_dat(spi, 0xF2);
	spi_write_com(spi, 0xD526);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD527);	spi_write_dat(spi, 0x2A);
	spi_write_com(spi, 0xD528);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD529);	spi_write_dat(spi, 0x51);
	spi_write_com(spi, 0xD52A);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD52B);	spi_write_dat(spi, 0x80);
	spi_write_com(spi, 0xD52C);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD52D);	spi_write_dat(spi, 0x9F);
	spi_write_com(spi, 0xD52E);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD52F);	spi_write_dat(spi, 0xBE);
	spi_write_com(spi, 0xD530);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD531);	spi_write_dat(spi, 0xF9);
	spi_write_com(spi, 0xD532);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD533);	spi_write_dat(spi, 0xFF);

	spi_write_com(spi, 0xD600);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD601);	spi_write_dat(spi, 0x05);
	spi_write_com(spi, 0xD602);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD603);	spi_write_dat(spi, 0x15);
	spi_write_com(spi, 0xD604);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD605);	spi_write_dat(spi, 0x30);
	spi_write_com(spi, 0xD606);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD607);	spi_write_dat(spi, 0x47);
	spi_write_com(spi, 0xD608);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD609);	spi_write_dat(spi, 0x5B);
	spi_write_com(spi, 0xD60A);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD60B);	spi_write_dat(spi, 0x7D);
	spi_write_com(spi, 0xD60C);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD60D);	spi_write_dat(spi, 0x9D);
	spi_write_com(spi, 0xD60E);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD60F);	spi_write_dat(spi, 0xCC);
	spi_write_com(spi, 0xD610);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xD611);	spi_write_dat(spi, 0xF3);
	spi_write_com(spi, 0xD612);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD613);	spi_write_dat(spi, 0x32);
	spi_write_com(spi, 0xD614);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD615);	spi_write_dat(spi, 0x63);
	spi_write_com(spi, 0xD616);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD617);	spi_write_dat(spi, 0xB1);
	spi_write_com(spi, 0xD618);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD619);	spi_write_dat(spi, 0xF0);
	spi_write_com(spi, 0xD61A);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xD61B);	spi_write_dat(spi, 0xF2);
	spi_write_com(spi, 0xD61C);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD61D);	spi_write_dat(spi, 0x2A);
	spi_write_com(spi, 0xD61E);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD61F);	spi_write_dat(spi, 0x67);
	spi_write_com(spi, 0xD620);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD621);	spi_write_dat(spi, 0x90);
	spi_write_com(spi, 0xD622);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD623);	spi_write_dat(spi, 0xCB);
	spi_write_com(spi, 0xD624);	spi_write_dat(spi, 0x02);
	spi_write_com(spi, 0xD625);	spi_write_dat(spi, 0xF2);
	spi_write_com(spi, 0xD626);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD627);	spi_write_dat(spi, 0x2A);
	spi_write_com(spi, 0xD628);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD629);	spi_write_dat(spi, 0x51);
	spi_write_com(spi, 0xD62A);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD62B);	spi_write_dat(spi, 0x80);
	spi_write_com(spi, 0xD62C);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD62D);	spi_write_dat(spi, 0x9F);
	spi_write_com(spi, 0xD62E);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD62F);	spi_write_dat(spi, 0xBE);
	spi_write_com(spi, 0xD630);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD631);	spi_write_dat(spi, 0xF9);
	spi_write_com(spi, 0xD632);	spi_write_dat(spi, 0x03);
	spi_write_com(spi, 0xD633);	spi_write_dat(spi, 0xFF);

	/* LV2 Page 0 enable */
	spi_write_com(spi, 0xF000);	spi_write_dat(spi, 0x55);
	spi_write_com(spi, 0xF001);	spi_write_dat(spi, 0xAA);
	spi_write_com(spi, 0xF002);	spi_write_dat(spi, 0x52);
	spi_write_com(spi, 0xF003);	spi_write_dat(spi, 0x08);
	spi_write_com(spi, 0xF004);	spi_write_dat(spi, 0x00);

	/* Display control */
	spi_write_com(spi, 0xB100);	spi_write_dat(spi, 0xFC);
	spi_write_com(spi, 0xB101);	spi_write_dat(spi, 0x00);

	/* Source hold time */
	spi_write_com(spi, 0xB600);	spi_write_dat(spi, 0x05);

	/* Gate EQ control */
	spi_write_com(spi, 0xB700);	spi_write_dat(spi, 0x70);
	spi_write_com(spi, 0xB701);	spi_write_dat(spi, 0x70);

	/* Source EQ control (Mode 2) */
	spi_write_com(spi, 0xB800);	spi_write_dat(spi, 0x01);
	spi_write_com(spi, 0xB801);	spi_write_dat(spi, 0x05);
	spi_write_com(spi, 0xB802);	spi_write_dat(spi, 0x05);
	spi_write_com(spi, 0xB803);	spi_write_dat(spi, 0x05);

	/* Inversion mode  (Column) */
	spi_write_com(spi, 0xBC00);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xBC01);	spi_write_dat(spi, 0x00);
	spi_write_com(spi, 0xBC02);	spi_write_dat(spi, 0x00);

	/* Timing control 8phase dual side/4H/4delay/RST_EN */
	spi_write_com(spi, 0xC900);	spi_write_dat(spi, 0xD0);
	spi_write_com(spi, 0xC901);	spi_write_dat(spi, 0x82);
	spi_write_com(spi, 0xC902);	spi_write_dat(spi, 0x50);
	spi_write_com(spi, 0xC903);	spi_write_dat(spi, 0x50);
	spi_write_com(spi, 0xC904);	spi_write_dat(spi, 0x50);

	spi_write_com(spi, 0x3A00);	spi_write_dat(spi, 0x55);
	mdelay(120);
	spi_write_com(spi, 0x1100);
	mdelay(120);
	spi_write_com(spi, 0x2900);
	mdelay(120);
	/* spi_write_com(spi, 0x2100);	spi_write_dat(spi, 0x00); */
	spi_write_com(spi, 0x2C00);

	return 0;
err_claim_bus:
	spi_free_slave(spi);
	return -1;
}
