blob: 850ab132873b280d98d58b1e61bd66fd003eb318 [file] [log] [blame]
Rebecca Schultz Zavindb21d7e2010-09-23 23:19:26 -07001/****************************************************************************
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
Eino-Ville Talvala0d9f87a2011-10-31 10:52:50 -070015#include <linux/ioctl.h>
Rebecca Schultz Zavindb21d7e2010-09-23 23:19:26 -070016
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)
Rebecca Schultz Zavin6858e652010-10-22 18:44:52 -070022#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)
Eino-Ville Talvala0d9f87a2011-10-31 10:52:50 -070025#define SOC2030_IOCTL_SET_LOCK _IOWR('o', 9, struct soc2030_lock)
Rebecca Schultz Zavindb21d7e2010-09-23 23:19:26 -070026
27#define SOC2030_POLL_WAITMS 50
28#define SOC2030_MAX_RETRIES 3
Eino-Ville Talvala0d9f87a2011-10-31 10:52:50 -070029#define SOC2030_POLL_RETRIES 7
Rebecca Schultz Zavindb21d7e2010-09-23 23:19:26 -070030
31#define SOC2030_MAX_PRIVATE_SIZE 1024
32#define SOC2030_MAX_NUM_MODES 6
33
Rebecca Schultz Zavin6858e652010-10-22 18:44:52 -070034#define SOC_EV_MAX 2
35#define SOC_EV_MIN -2
36#define EXP_TARGET 0x32
37
Rebecca Schultz Zavindb21d7e2010-09-23 23:19:26 -070038enum {
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,
Rebecca Schultz Zavin6858e652010-10-22 18:44:52 -070046 WRITE_VAR_DATA,
Rebecca Schultz Zavindb21d7e2010-09-23 23:19:26 -070047 POLL_VAR_DATA,
48 DELAY_MS,
Eino-Ville Talvala0d9f87a2011-10-31 10:52:50 -070049 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,
Rebecca Schultz Zavindb21d7e2010-09-23 23:19:26 -070057};
58
Eino-Ville Talvala0d9f87a2011-10-31 10:52:50 -070059#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
Rebecca Schultz Zavin6858e652010-10-22 18:44:52 -070064enum {
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
75enum {
76 WB_AUTO,
77 WB_INCANDESCENT,
78 WB_FLUORESCENT,
79 WB_DAYLIGHT,
80 WB_CLOUDYDAYLIGHT,
81 WB_NIGHT,
82 WB_MAX,
83};
84
Rebecca Schultz Zavindb21d7e2010-09-23 23:19:26 -070085struct soc2030_regs {
86 __u8 op;
87 __u16 addr;
88 __u16 val;
89};
90
Eino-Ville Talvala0d9f87a2011-10-31 10:52:50 -070091struct soc2030_lock {
92 __u8 aelock;
93 __u8 aerelock;
94 __u8 awblock;
95 __u8 awbrelock;
96 __u8 previewactive;
97};
98
Rebecca Schultz Zavindb21d7e2010-09-23 23:19:26 -070099struct soc2030_mode {
100 int xres;
101 int yres;
102 int fps;
103 struct soc2030_regs *regset;
104};
105
106#endif