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