00001
00002
00003
00004 #ifndef _313CAM_H
00005 #define _313CAM_H
00006
00007 #define MD(x)
00008
00009
00010
00011
00012 #define X313_SETFIELD(x,y) ccamCRAndOr(~(((1 << X313__##x##__WIDTH)-1) << X313__##x##__BITNM) ,\
00013 (((y) & ((1 << X313__##x##__WIDTH)-1)) << X313__##x##__BITNM) )
00014
00015
00016 #endif
00017
00018
00019 extern struct autoexp_t * autoexp_state;
00020 extern struct autoexp_t * autoexp_set;
00021 extern struct aexp_window_t * aexp_window;
00022 extern struct aexp_window_t * aexp_window_set;
00023
00024 void init_autoexp_struct(void);
00025
00026
00027
00028 int get_sensor_i2c_regs16(int n);
00029 unsigned char get_sensor_i2c_regs(int n);
00030 unsigned long get_imageParamsR (int n);
00031 unsigned long get_imageParamsW (int n);
00032 unsigned char get_sensor_i2c_addr(void);
00033 void set_sensor_i2c_regs(int n, unsigned char d);
00034 void set_imageParamsR (int n, unsigned long d);
00035 void set_imageParamsW (int n, unsigned long d);
00036 void set_sensor_i2c_addr( unsigned char d);
00037
00038 void ccamCRAnd(unsigned long d);
00039 void ccamCROr(unsigned long d);
00040 void ccamCRXor(unsigned long d);
00041 void ccamCRAndOr(unsigned long d_and, unsigned long d_or);
00042 unsigned long ccamGetCR(void);
00043
00044 void writeSensorDefaults(unsigned long * data, int count);
00045
00046
00047
00048 int writeSensorReg(unsigned int ra, unsigned char rd, int uncond);
00049 int readSensorReg(unsigned int ra, int mode);
00050 #if 0
00051 int writeSensorReg(unsigned char ra, unsigned char rd, int uncond);
00052 int readSensorReg(unsigned char ra, int mode);
00053 #endif
00054
00055
00056
00057 int readSensorReg16(unsigned char ra, int mode);
00058 int writeSensorReg16(unsigned char ra, int rd, int uncond);
00059
00060
00061 int writeSensorRegFF(unsigned char ra, int rd, int uncond);
00062
00063 void camSeqStop(void);
00064
00065
00066
00067
00068
00069
00070
00071
00072 int camSeqStartClip(int nfr, int len);
00073 int camSeqGetJPEG_wp(void);
00074 int camSeqGetJPEG_rp(void);
00075 void camSeqSetJPEG_rp(int p);
00076
00077 int program_sensor_exposition(void);
00078 int program_sensor_exposition_just(void);
00079 void program_trigger(void);
00080 void program_i2c(void);
00081 void program_smart_irq(void);
00082 void program_early_timestamp(void);
00083
00084 void exposition_unlock(void);
00085 void dumpFrameParams(struct frame_params_t * fp, const char * title);
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095 #ifdef CONFIG_ETRAX_ELPHEL353
00096 #define X313_MARGINS 4
00097 #define X313_TILEHOR 16
00098 #define X313_TILEVERT 16
00099 #endif
00100
00101 #ifdef CONFIG_ETRAX_333
00102 #define X313_MARGINS 4
00103 #define X313_TILEHOR 16
00104 #define X313_TILEVERT 16
00105 #endif
00106 #ifdef CONFIG_ETRAX_323
00107 #define X313_MARGINS 2
00108 #define X313_TILEHOR 16
00109 #define X313_TILEVERT 16
00110 #endif
00111 #ifdef CONFIG_ETRAX_313
00112 #define X313_MARGINS 2
00113 #define X313_TILEHOR 16
00114 #define X313_TILEVERT 16
00115 #endif
00116 #define X313_TIMESTAMPLEN 28
00117
00118