Blame view

kernel/linux-imx6_3.14.28/drivers/video/backlight/ili9320.h 1.89 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
  /* drivers/video/backlight/ili9320.h
   *
   * ILI9320 LCD controller driver core.
   *
   * Copyright 2007 Simtec Electronics
   *	Ben Dooks <ben@simtec.co.uk>
   *
   * http://armlinux.simtec.co.uk/
   *
   * This program is free software; you can redistribute it and/or modify
   * it under the terms of the GNU General Public License version 2 as
   * published by the Free Software Foundation.
  */
  
  /* 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);