linux/drivers/video/auo_k190x.h
<<
>>
Prefs
   1/*
   2 * Private common definitions for AUO-K190X framebuffer drivers
   3 *
   4 * Copyright (C) 2012 Heiko Stuebner <heiko@sntech.de>
   5 *
   6 * This program is free software; you can redistribute it and/or modify
   7 * it under the terms of the GNU General Public License version 2 as
   8 * published by the Free Software Foundation.
   9 */
  10
  11/*
  12 * I80 interface specific defines
  13 */
  14
  15#define AUOK190X_I80_CS                 0x01
  16#define AUOK190X_I80_DC                 0x02
  17#define AUOK190X_I80_WR                 0x03
  18#define AUOK190X_I80_OE                 0x04
  19
  20/*
  21 * AUOK190x commands, common to both controllers
  22 */
  23
  24#define AUOK190X_CMD_INIT               0x0000
  25#define AUOK190X_CMD_STANDBY            0x0001
  26#define AUOK190X_CMD_WAKEUP             0x0002
  27#define AUOK190X_CMD_TCON_RESET         0x0003
  28#define AUOK190X_CMD_DATA_STOP          0x1002
  29#define AUOK190X_CMD_LUT_START          0x1003
  30#define AUOK190X_CMD_DISP_REFRESH       0x1004
  31#define AUOK190X_CMD_DISP_RESET         0x1005
  32#define AUOK190X_CMD_PRE_DISPLAY_START  0x100D
  33#define AUOK190X_CMD_PRE_DISPLAY_STOP   0x100F
  34#define AUOK190X_CMD_FLASH_W            0x2000
  35#define AUOK190X_CMD_FLASH_E            0x2001
  36#define AUOK190X_CMD_FLASH_STS          0x2002
  37#define AUOK190X_CMD_FRAMERATE          0x3000
  38#define AUOK190X_CMD_READ_VERSION       0x4000
  39#define AUOK190X_CMD_READ_STATUS        0x4001
  40#define AUOK190X_CMD_READ_LUT           0x4003
  41#define AUOK190X_CMD_DRIVERTIMING       0x5000
  42#define AUOK190X_CMD_LBALANCE           0x5001
  43#define AUOK190X_CMD_AGINGMODE          0x6000
  44#define AUOK190X_CMD_AGINGEXIT          0x6001
  45
  46/*
  47 * Common settings for AUOK190X_CMD_INIT
  48 */
  49
  50#define AUOK190X_INIT_DATA_FILTER       (0 << 12)
  51#define AUOK190X_INIT_DATA_BYPASS       (1 << 12)
  52#define AUOK190X_INIT_INVERSE_WHITE     (0 << 9)
  53#define AUOK190X_INIT_INVERSE_BLACK     (1 << 9)
  54#define AUOK190X_INIT_SCAN_DOWN         (0 << 1)
  55#define AUOK190X_INIT_SCAN_UP           (1 << 1)
  56#define AUOK190X_INIT_SHIFT_LEFT        (0 << 0)
  57#define AUOK190X_INIT_SHIFT_RIGHT       (1 << 0)
  58
  59/* Common bits to pixels
  60 *   Mode       15-12   11-8    7-4     3-0
  61 *   format0    4       3       2       1
  62 *   format1    3       4       1       2
  63 */
  64
  65#define AUOK190X_INIT_FORMAT0           0
  66#define AUOK190X_INIT_FORMAT1           (1 << 6)
  67
  68/*
  69 * settings for AUOK190X_CMD_RESET
  70 */
  71
  72#define AUOK190X_RESET_TCON             (0 << 0)
  73#define AUOK190X_RESET_NORMAL           (1 << 0)
  74#define AUOK190X_RESET_PON              (1 << 1)
  75
  76/*
  77 * AUOK190X_CMD_VERSION
  78 */
  79
  80#define AUOK190X_VERSION_TEMP_MASK              (0x1ff)
  81#define AUOK190X_VERSION_EPD_MASK               (0xff)
  82#define AUOK190X_VERSION_SIZE_INT(_val)         ((_val & 0xfc00) >> 10)
  83#define AUOK190X_VERSION_SIZE_FLOAT(_val)       ((_val & 0x3c0) >> 6)
  84#define AUOK190X_VERSION_MODEL(_val)            (_val & 0x3f)
  85#define AUOK190X_VERSION_LUT(_val)              (_val & 0xff)
  86#define AUOK190X_VERSION_TCON(_val)             ((_val & 0xff00) >> 8)
  87
  88/*
  89 * update modes for CMD_PARTIALDISP on K1900 and CMD_DDMA on K1901
  90 */
  91
  92#define AUOK190X_UPDATE_MODE(_res)              ((_res & 0x7) << 12)
  93#define AUOK190X_UPDATE_NONFLASH                (1 << 15)
  94
  95/*
  96 * track panel specific parameters for common init
  97 */
  98
  99struct auok190x_init_data {
 100        char *id;
 101        struct auok190x_board *board;
 102
 103        void (*update_partial)(struct auok190xfb_par *par, u16 y1, u16 y2);
 104        void (*update_all)(struct auok190xfb_par *par);
 105        bool (*need_refresh)(struct auok190xfb_par *par);
 106        void (*init)(struct auok190xfb_par *par);
 107};
 108
 109
 110extern void auok190x_send_command_nowait(struct auok190xfb_par *par, u16 data);
 111extern int auok190x_send_command(struct auok190xfb_par *par, u16 data);
 112extern void auok190x_send_cmdargs_nowait(struct auok190xfb_par *par, u16 cmd,
 113                                         int argc, u16 *argv);
 114extern int auok190x_send_cmdargs(struct auok190xfb_par *par, u16 cmd,
 115                                  int argc, u16 *argv);
 116extern void auok190x_send_cmdargs_pixels_nowait(struct auok190xfb_par *par,
 117                                                u16 cmd, int argc, u16 *argv,
 118                                                int size, u16 *data);
 119extern int auok190x_send_cmdargs_pixels(struct auok190xfb_par *par, u16 cmd,
 120                                        int argc, u16 *argv, int size,
 121                                        u16 *data);
 122extern int auok190x_read_cmdargs(struct auok190xfb_par *par, u16 cmd,
 123                                  int argc, u16 *argv);
 124
 125extern int auok190x_common_probe(struct platform_device *pdev,
 126                                 struct auok190x_init_data *init);
 127extern int auok190x_common_remove(struct platform_device *pdev);
 128
 129extern const struct dev_pm_ops auok190x_pm;
 130