Home | History | Annotate | Download | only in media
      1 /****************************************************************************
      2  ****************************************************************************
      3  ***
      4  ***   This header was automatically generated from a Linux kernel header
      5  ***   of the same name, to make information necessary for userspace to
      6  ***   call into the kernel available to libc.  It contains only constants,
      7  ***   structures, and macros generated from the original header, and thus,
      8  ***   contains no copyrightable information.
      9  ***
     10  ****************************************************************************
     11  ****************************************************************************/
     12 #ifndef __SOC2030_H__
     13 #define __SOC2030_H__
     14 
     15 #include <linux/ioctl.h>
     16 
     17 #define SOC2030_IOCTL_SET_MODE _IOWR('o', 1, struct soc2030_mode)
     18 #define SOC2030_IOCTL_GET_STATUS _IOC(_IOC_READ, 'o', 2, 10)
     19 #define SOC2030_IOCTL_SET_PRIVATE _IOWR('o', 3, struct soc2030_regs)
     20 #define SOC2030_IOCTL_GET_MODES _IO('o', 4)
     21 #define SOC2030_IOCTL_GET_NUM_MODES _IOR('o', 5, unsigned int)
     22 #define SOC2030_IOCTL_SET_EFFECT _IOWR('o', 6, unsigned int)
     23 #define SOC2030_IOCTL_SET_WHITEBALANCE _IOWR('o', 7, unsigned int)
     24 #define SOC2030_IOCTL_SET_EXP_COMP _IOWR('o', 8, int)
     25 #define SOC2030_IOCTL_SET_LOCK _IOWR('o', 9, struct soc2030_lock)
     26 
     27 #define SOC2030_POLL_WAITMS 50
     28 #define SOC2030_MAX_RETRIES 3
     29 #define SOC2030_POLL_RETRIES 7
     30 
     31 #define SOC2030_MAX_PRIVATE_SIZE 1024
     32 #define SOC2030_MAX_NUM_MODES 6
     33 
     34 #define SOC_EV_MAX 2
     35 #define SOC_EV_MIN -2
     36 #define EXP_TARGET 0x32
     37 
     38 enum {
     39  REG_TABLE_END,
     40  WRITE_REG_DATA,
     41  WRITE_REG_BIT_H,
     42  WRITE_REG_BIT_L,
     43  POLL_REG_DATA,
     44  POLL_REG_BIT_H,
     45  POLL_REG_BIT_L,
     46  WRITE_VAR_DATA,
     47  POLL_VAR_DATA,
     48  DELAY_MS,
     49  WRITE_REG_VAR1,
     50  WRITE_REG_VAR2,
     51  WRITE_REG_VAR3,
     52  WRITE_REG_VAR4,
     53  READ_REG_VAR1,
     54  READ_REG_VAR2,
     55  READ_REG_VAR3,
     56  READ_REG_VAR4,
     57 };
     58 
     59 #define REG_VAR1 (READ_REG_VAR1 - READ_REG_VAR1)
     60 #define REG_VAR2 (READ_REG_VAR2 - READ_REG_VAR1)
     61 #define REG_VAR3 (READ_REG_VAR3 - READ_REG_VAR1)
     62 #define REG_VAR4 (READ_REG_VAR4 - READ_REG_VAR1)
     63 
     64 enum {
     65  EFFECT_NONE,
     66  EFFECT_BW,
     67  EFFECT_NEGATIVE,
     68  EFFECT_POSTERIZE,
     69  EFFECT_SEPIA,
     70  EFFECT_SOLARIZE,
     71  EFFECT_AQUA,
     72  EFFECT_MAX,
     73 };
     74 
     75 enum {
     76  WB_AUTO,
     77  WB_INCANDESCENT,
     78  WB_FLUORESCENT,
     79  WB_DAYLIGHT,
     80  WB_CLOUDYDAYLIGHT,
     81  WB_NIGHT,
     82  WB_MAX,
     83 };
     84 
     85 struct soc2030_regs {
     86  __u8 op;
     87  __u16 addr;
     88  __u16 val;
     89 };
     90 
     91 struct soc2030_lock {
     92         __u8 aelock;
     93         __u8 aerelock;
     94         __u8 awblock;
     95         __u8 awbrelock;
     96         __u8 previewactive;
     97 };
     98 
     99 struct soc2030_mode {
    100  int xres;
    101  int yres;
    102  int fps;
    103  struct soc2030_regs *regset;
    104 };
    105 
    106 #endif
    107