brintos

brintos / linux-shallow public Read only

0
0
Text · 5.7 KiB · 62f424f Raw
199 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/* include/video/ili9320.c3 *4 * ILI9320 LCD controller configuration control.5 *6 * Copyright 2007 Simtec Electronics7 *	Ben Dooks <ben@simtec.co.uk>8 *9 * http://armlinux.simtec.co.uk/10*/11 12#define ILI9320_REG(x)	(x)13 14#define ILI9320_INDEX			ILI9320_REG(0x00)15 16#define ILI9320_OSCILATION		ILI9320_REG(0x00)17#define ILI9320_DRIVER			ILI9320_REG(0x01)18#define ILI9320_DRIVEWAVE		ILI9320_REG(0x02)19#define ILI9320_ENTRYMODE		ILI9320_REG(0x03)20#define ILI9320_RESIZING		ILI9320_REG(0x04)21#define ILI9320_DISPLAY1		ILI9320_REG(0x07)22#define ILI9320_DISPLAY2		ILI9320_REG(0x08)23#define ILI9320_DISPLAY3		ILI9320_REG(0x09)24#define ILI9320_DISPLAY4		ILI9320_REG(0x0A)25#define ILI9320_RGB_IF1			ILI9320_REG(0x0C)26#define ILI9320_FRAMEMAKER		ILI9320_REG(0x0D)27#define ILI9320_RGB_IF2			ILI9320_REG(0x0F)28 29#define ILI9320_POWER1			ILI9320_REG(0x10)30#define ILI9320_POWER2			ILI9320_REG(0x11)31#define ILI9320_POWER3			ILI9320_REG(0x12)32#define ILI9320_POWER4			ILI9320_REG(0x13)33#define ILI9320_GRAM_HORIZ_ADDR		ILI9320_REG(0x20)34#define ILI9320_GRAM_VERT_ADD		ILI9320_REG(0x21)35#define ILI9320_POWER7			ILI9320_REG(0x29)36#define ILI9320_FRAME_RATE_COLOUR	ILI9320_REG(0x2B)37 38#define ILI9320_GAMMA1			ILI9320_REG(0x30)39#define ILI9320_GAMMA2			ILI9320_REG(0x31)40#define ILI9320_GAMMA3			ILI9320_REG(0x32)41#define ILI9320_GAMMA4			ILI9320_REG(0x35)42#define ILI9320_GAMMA5			ILI9320_REG(0x36)43#define ILI9320_GAMMA6			ILI9320_REG(0x37)44#define ILI9320_GAMMA7			ILI9320_REG(0x38)45#define ILI9320_GAMMA8			ILI9320_REG(0x39)46#define ILI9320_GAMMA9			ILI9320_REG(0x3C)47#define ILI9320_GAMMA10			ILI9320_REG(0x3D)48 49#define ILI9320_HORIZ_START		ILI9320_REG(0x50)50#define ILI9320_HORIZ_END		ILI9320_REG(0x51)51#define ILI9320_VERT_START		ILI9320_REG(0x52)52#define ILI9320_VERT_END		ILI9320_REG(0x53)53 54#define ILI9320_DRIVER2			ILI9320_REG(0x60)55#define ILI9320_BASE_IMAGE		ILI9320_REG(0x61)56#define ILI9320_VERT_SCROLL		ILI9320_REG(0x6a)57 58#define ILI9320_PARTIAL1_POSITION	ILI9320_REG(0x80)59#define ILI9320_PARTIAL1_START		ILI9320_REG(0x81)60#define ILI9320_PARTIAL1_END		ILI9320_REG(0x82)61#define ILI9320_PARTIAL2_POSITION	ILI9320_REG(0x83)62#define ILI9320_PARTIAL2_START		ILI9320_REG(0x84)63#define ILI9320_PARTIAL2_END		ILI9320_REG(0x85)64 65#define ILI9320_INTERFACE1		ILI9320_REG(0x90)66#define ILI9320_INTERFACE2		ILI9320_REG(0x92)67#define ILI9320_INTERFACE3		ILI9320_REG(0x93)68#define ILI9320_INTERFACE4		ILI9320_REG(0x95)69#define ILI9320_INTERFACE5		ILI9320_REG(0x97)70#define ILI9320_INTERFACE6		ILI9320_REG(0x98)71 72/* Register contents definitions. */73 74#define ILI9320_OSCILATION_OSC		(1 << 0)75 76#define ILI9320_DRIVER_SS		(1 << 8)77#define ILI9320_DRIVER_SM		(1 << 10)78 79#define ILI9320_DRIVEWAVE_EOR		(1 << 8)80#define ILI9320_DRIVEWAVE_BC		(1 << 9)81#define ILI9320_DRIVEWAVE_MUSTSET	(1 << 10)82 83#define ILI9320_ENTRYMODE_AM		(1 << 3)84#define ILI9320_ENTRYMODE_ID(x)		((x) << 4)85#define ILI9320_ENTRYMODE_ORG		(1 << 7)86#define ILI9320_ENTRYMODE_HWM		(1 << 8)87#define ILI9320_ENTRYMODE_BGR		(1 << 12)88#define ILI9320_ENTRYMODE_DFM		(1 << 14)89#define ILI9320_ENTRYMODE_TRI		(1 << 15)90 91 92#define ILI9320_RESIZING_RSZ(x)		((x) << 0)93#define ILI9320_RESIZING_RCH(x)		((x) << 4)94#define ILI9320_RESIZING_RCV(x)		((x) << 8)95 96 97#define ILI9320_DISPLAY1_D(x)		((x) << 0)98#define ILI9320_DISPLAY1_CL		(1 << 3)99#define ILI9320_DISPLAY1_DTE		(1 << 4)100#define ILI9320_DISPLAY1_GON		(1 << 5)101#define ILI9320_DISPLAY1_BASEE		(1 << 8)102#define ILI9320_DISPLAY1_PTDE(x)	((x) << 12)103 104 105#define ILI9320_DISPLAY2_BP(x)		((x) << 0)106#define ILI9320_DISPLAY2_FP(x)		((x) << 8)107 108 109#define ILI9320_RGBIF1_RIM_RGB18	(0 << 0)110#define ILI9320_RGBIF1_RIM_RGB16	(1 << 0)111#define ILI9320_RGBIF1_RIM_RGB6		(2 << 0)112 113#define ILI9320_RGBIF1_CLK_INT		(0 << 4)114#define ILI9320_RGBIF1_CLK_RGBIF	(1 << 4)115#define ILI9320_RGBIF1_CLK_VSYNC	(2 << 4)116 117#define ILI9320_RGBIF1_RM		(1 << 8)118 119#define ILI9320_RGBIF1_ENC_FRAMES(x)	(((x) - 1)<< 13)120 121#define ILI9320_RGBIF2_DPL		(1 << 0)122#define ILI9320_RGBIF2_EPL		(1 << 1)123#define ILI9320_RGBIF2_HSPL		(1 << 3)124#define ILI9320_RGBIF2_VSPL		(1 << 4)125 126 127#define ILI9320_POWER1_SLP		(1 << 1)128#define ILI9320_POWER1_DSTB		(1 << 2)129#define ILI9320_POWER1_AP(x)		((x) << 4)130#define ILI9320_POWER1_APE		(1 << 7)131#define ILI9320_POWER1_BT(x)		((x) << 8)132#define ILI9320_POWER1_SAP		(1 << 12)133 134 135#define ILI9320_POWER2_VC(x)		((x) << 0)136#define ILI9320_POWER2_DC0(x)		((x) << 4)137#define ILI9320_POWER2_DC1(x)		((x) << 8)138 139 140#define ILI9320_POWER3_VRH(x)		((x) << 0)141#define ILI9320_POWER3_PON		(1 << 4)142#define ILI9320_POWER3_VCMR		(1 << 8)143 144 145#define ILI9320_POWER4_VREOUT(x)	((x) << 8)146 147 148#define ILI9320_DRIVER2_SCNL(x)		((x) << 0)149#define ILI9320_DRIVER2_NL(x)		((x) << 8)150#define ILI9320_DRIVER2_GS		(1 << 15)151 152 153#define ILI9320_BASEIMAGE_REV		(1 << 0)154#define ILI9320_BASEIMAGE_VLE		(1 << 1)155#define ILI9320_BASEIMAGE_NDL		(1 << 2)156 157 158#define ILI9320_INTERFACE4_RTNE(x)	(x)159#define ILI9320_INTERFACE4_DIVE(x)	((x) << 8)160 161/* SPI interface definitions */162 163#define ILI9320_SPI_IDCODE		(0x70)164#define ILI9320_SPI_ID(x)		((x) << 2)165#define ILI9320_SPI_READ		(0x01)166#define ILI9320_SPI_WRITE		(0x00)167#define ILI9320_SPI_DATA		(0x02)168#define ILI9320_SPI_INDEX		(0x00)169 170/* platform data to pass configuration from lcd */171 172enum ili9320_suspend {173	ILI9320_SUSPEND_OFF,174	ILI9320_SUSPEND_DEEP,175};176 177struct ili9320_platdata {178	unsigned short	hsize;179	unsigned short	vsize;180 181	enum ili9320_suspend suspend;182 183	/* set the reset line, 0 = reset asserted, 1 = normal */184	void		(*reset)(unsigned int val);185 186	unsigned short	entry_mode;187	unsigned short	display2;188	unsigned short	display3;189	unsigned short	display4;190	unsigned short	rgb_if1;191	unsigned short	rgb_if2;192	unsigned short	interface2;193	unsigned short	interface3;194	unsigned short	interface4;195	unsigned short	interface5;196	unsigned short	interface6;197};198 199