#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <video/mipi_display.h>
#include "fbtft.h"
#define DRVNAME …
#define WIDTH …
#define HEIGHT …
#define BPP …
#define FPS …
#ifdef GAMMA_ADJ
#define GAMMA_LEN …
#define GAMMA_NUM …
#define DEFAULT_GAMMA …
#endif
#define CMD_FRMCTR1 …
#define CMD_FRMCTR2 …
#define CMD_FRMCTR3 …
#define CMD_DINVCTR …
#define CMD_RGBBLK …
#define CMD_DFUNCTR …
#define CMD_SDRVDIR …
#define CMD_GDRVDIR …
#define CMD_PWCTR1 …
#define CMD_PWCTR2 …
#define CMD_PWCTR3 …
#define CMD_PWCTR4 …
#define CMD_PWCTR5 …
#define CMD_VCOMCTR1 …
#define CMD_VCOMCTR2 …
#define CMD_VCOMOFFS …
#define CMD_PGAMMAC …
#define CMD_NGAMMAC …
#define CMD_GAMRSEL …
#ifdef RED
#define __OFFSET …
#else
#define __OFFSET …
#endif
static int init_display(struct fbtft_par *par)
{ … }
static void set_addr_win(struct fbtft_par *par, int xs, int ys,
int xe, int ye)
{ … }
static int set_var(struct fbtft_par *par)
{ … }
#ifdef GAMMA_ADJ
#define CURVE …
static int gamma_adj(struct fbtft_par *par, u32 *curves)
{
static const unsigned long mask[] = {
0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
0x1f, 0x3f, 0x0f, 0x0f, 0x7f, 0x1f,
0x3F, 0x3F, 0x3F, 0x3F, 0x3F};
int i, j;
for (i = 0; i < GAMMA_NUM; i++)
for (j = 0; j < GAMMA_LEN; j++)
CURVE(i, j) &= mask[i * par->gamma.num_values + j];
write_reg(par, CMD_PGAMMAC,
CURVE(0, 0),
CURVE(0, 1),
CURVE(0, 2),
CURVE(0, 3),
CURVE(0, 4),
CURVE(0, 5),
CURVE(0, 6),
(CURVE(0, 7) << 4) | CURVE(0, 8),
CURVE(0, 9),
CURVE(0, 10),
CURVE(0, 11),
CURVE(0, 12),
CURVE(0, 13),
CURVE(0, 14),
CURVE(0, 15));
write_reg(par, MIPI_DCS_WRITE_MEMORY_START);
return 0;
}
#undef CURVE
#endif
static struct fbtft_display display = …;
FBTFT_REGISTER_DRIVER(…);
MODULE_ALIAS(…) …;
MODULE_ALIAS(…) …;
MODULE_ALIAS(…) …;
MODULE_ALIAS(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;