Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * ov772x Camera
0004  *
0005  * Copyright (C) 2008 Renesas Solutions Corp.
0006  * Kuninori Morimoto <morimoto.kuninori@renesas.com>
0007  */
0008 
0009 #ifndef __OV772X_H__
0010 #define __OV772X_H__
0011 
0012 /* for flags */
0013 #define OV772X_FLAG_VFLIP   (1 << 0) /* Vertical flip image */
0014 #define OV772X_FLAG_HFLIP   (1 << 1) /* Horizontal flip image */
0015 
0016 /*
0017  * for Edge ctrl
0018  *
0019  * strength also control Auto or Manual Edge Control Mode
0020  * see also OV772X_MANUAL_EDGE_CTRL
0021  */
0022 struct ov772x_edge_ctrl {
0023     unsigned char strength;
0024     unsigned char threshold;
0025     unsigned char upper;
0026     unsigned char lower;
0027 };
0028 
0029 #define OV772X_MANUAL_EDGE_CTRL     0x80 /* un-used bit of strength */
0030 #define OV772X_EDGE_STRENGTH_MASK   0x1F
0031 #define OV772X_EDGE_THRESHOLD_MASK  0x0F
0032 #define OV772X_EDGE_UPPER_MASK      0xFF
0033 #define OV772X_EDGE_LOWER_MASK      0xFF
0034 
0035 #define OV772X_AUTO_EDGECTRL(u, l)  \
0036 {                   \
0037     .upper = (u & OV772X_EDGE_UPPER_MASK),  \
0038     .lower = (l & OV772X_EDGE_LOWER_MASK),  \
0039 }
0040 
0041 #define OV772X_MANUAL_EDGECTRL(s, t)            \
0042 {                           \
0043     .strength  = (s & OV772X_EDGE_STRENGTH_MASK) |  \
0044             OV772X_MANUAL_EDGE_CTRL,    \
0045     .threshold = (t & OV772X_EDGE_THRESHOLD_MASK),  \
0046 }
0047 
0048 /**
0049  * struct ov772x_camera_info -  ov772x driver interface structure
0050  * @flags:      Sensor configuration flags
0051  * @edgectrl:       Sensor edge control
0052  */
0053 struct ov772x_camera_info {
0054     unsigned long       flags;
0055     struct ov772x_edge_ctrl edgectrl;
0056 };
0057 
0058 #endif /* __OV772X_H__ */