forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
1.7 KiB
77 lines
1.7 KiB
/* SPDX-License-Identifier: GPL-2.0-only */ |
|
/* drivers/video/backlight/ili9320.h |
|
* |
|
* ILI9320 LCD controller driver core. |
|
* |
|
* Copyright 2007 Simtec Electronics |
|
* Ben Dooks <[email protected]> |
|
* |
|
* http://armlinux.simtec.co.uk/ |
|
*/ |
|
|
|
/* Holder for register and value pairs. */ |
|
struct ili9320_reg { |
|
unsigned short address; |
|
unsigned short value; |
|
}; |
|
|
|
struct ili9320; |
|
|
|
struct ili9320_client { |
|
const char *name; |
|
int (*init)(struct ili9320 *ili, struct ili9320_platdata *cfg); |
|
|
|
}; |
|
/* Device attached via an SPI bus. */ |
|
struct ili9320_spi { |
|
struct spi_device *dev; |
|
struct spi_message message; |
|
struct spi_transfer xfer[2]; |
|
|
|
unsigned char id; |
|
unsigned char buffer_addr[4]; |
|
unsigned char buffer_data[4]; |
|
}; |
|
|
|
/* ILI9320 device state. */ |
|
struct ili9320 { |
|
union { |
|
struct ili9320_spi spi; /* SPI attachged device. */ |
|
} access; /* Register access method. */ |
|
|
|
struct device *dev; |
|
struct lcd_device *lcd; /* LCD device we created. */ |
|
struct ili9320_client *client; |
|
struct ili9320_platdata *platdata; |
|
|
|
int power; /* current power state. */ |
|
int initialised; |
|
|
|
unsigned short display1; |
|
unsigned short power1; |
|
|
|
int (*write)(struct ili9320 *ili, unsigned int reg, unsigned int val); |
|
}; |
|
|
|
|
|
/* ILI9320 register access routines */ |
|
|
|
extern int ili9320_write(struct ili9320 *ili, |
|
unsigned int reg, unsigned int value); |
|
|
|
extern int ili9320_write_regs(struct ili9320 *ili, |
|
const struct ili9320_reg *values, |
|
int nr_values); |
|
|
|
/* Device probe */ |
|
|
|
extern int ili9320_probe_spi(struct spi_device *spi, |
|
struct ili9320_client *cli); |
|
|
|
extern int ili9320_remove(struct ili9320 *lcd); |
|
extern void ili9320_shutdown(struct ili9320 *lcd); |
|
|
|
/* PM */ |
|
|
|
extern int ili9320_suspend(struct ili9320 *lcd); |
|
extern int ili9320_resume(struct ili9320 *lcd);
|
|
|