linux/drivers/video/backlight/ili9320.h
<<
>>
Prefs
   1/* drivers/video/backlight/ili9320.h
   2 *
   3 * ILI9320 LCD controller driver core.
   4 *
   5 * Copyright 2007 Simtec Electronics
   6 *      Ben Dooks <ben@simtec.co.uk>
   7 *
   8 * http://armlinux.simtec.co.uk/
   9 *
  10 * This program is free software; you can redistribute it and/or modify
  11 * it under the terms of the GNU General Public License version 2 as
  12 * published by the Free Software Foundation.
  13*/
  14
  15/* Holder for register and value pairs. */
  16struct ili9320_reg {
  17        unsigned short          address;
  18        unsigned short          value;
  19};
  20
  21struct ili9320;
  22
  23struct ili9320_client {
  24        const char      *name;
  25        int     (*init)(struct ili9320 *ili, struct ili9320_platdata *cfg);
  26
  27};
  28/* Device attached via an SPI bus. */
  29struct  ili9320_spi {
  30        struct spi_device       *dev;
  31        struct spi_message      message;
  32        struct spi_transfer     xfer[2];
  33
  34        unsigned char           id;
  35        unsigned char           buffer_addr[4];
  36        unsigned char           buffer_data[4];
  37};
  38
  39/* ILI9320 device state. */
  40struct ili9320 {
  41        union {
  42                struct ili9320_spi      spi;    /* SPI attachged device. */
  43        } access;                               /* Register access method. */
  44
  45        struct device                   *dev;
  46        struct lcd_device               *lcd;   /* LCD device we created. */
  47        struct ili9320_client           *client;
  48        struct ili9320_platdata         *platdata;
  49
  50        int                              power; /* current power state. */
  51        int                              initialised;
  52
  53        unsigned short                   display1;
  54        unsigned short                   power1;
  55
  56        int (*write)(struct ili9320 *ili, unsigned int reg, unsigned int val);
  57};
  58
  59
  60/* ILI9320 register access routines */
  61
  62extern int ili9320_write(struct ili9320 *ili,
  63                         unsigned int reg, unsigned int value);
  64
  65extern int ili9320_write_regs(struct ili9320 *ili,
  66                              const struct ili9320_reg *values,
  67                              int nr_values);
  68
  69/* Device probe */
  70
  71extern int ili9320_probe_spi(struct spi_device *spi,
  72                             struct ili9320_client *cli);
  73
  74extern int ili9320_remove(struct ili9320 *lcd);
  75extern void ili9320_shutdown(struct ili9320 *lcd);
  76
  77/* PM */
  78
  79extern int ili9320_suspend(struct ili9320 *lcd);
  80extern int ili9320_resume(struct ili9320 *lcd);
  81