Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/include/media/i2c/ov772x.h
26285 views
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
/*
3
* ov772x Camera
4
*
5
* Copyright (C) 2008 Renesas Solutions Corp.
6
* Kuninori Morimoto <[email protected]>
7
*/
8
9
#ifndef __OV772X_H__
10
#define __OV772X_H__
11
12
/* for flags */
13
#define OV772X_FLAG_VFLIP (1 << 0) /* Vertical flip image */
14
#define OV772X_FLAG_HFLIP (1 << 1) /* Horizontal flip image */
15
16
/*
17
* for Edge ctrl
18
*
19
* strength also control Auto or Manual Edge Control Mode
20
* see also OV772X_MANUAL_EDGE_CTRL
21
*/
22
struct ov772x_edge_ctrl {
23
unsigned char strength;
24
unsigned char threshold;
25
unsigned char upper;
26
unsigned char lower;
27
};
28
29
#define OV772X_MANUAL_EDGE_CTRL 0x80 /* un-used bit of strength */
30
#define OV772X_EDGE_STRENGTH_MASK 0x1F
31
#define OV772X_EDGE_THRESHOLD_MASK 0x0F
32
#define OV772X_EDGE_UPPER_MASK 0xFF
33
#define OV772X_EDGE_LOWER_MASK 0xFF
34
35
#define OV772X_AUTO_EDGECTRL(u, l) \
36
{ \
37
.upper = (u & OV772X_EDGE_UPPER_MASK), \
38
.lower = (l & OV772X_EDGE_LOWER_MASK), \
39
}
40
41
#define OV772X_MANUAL_EDGECTRL(s, t) \
42
{ \
43
.strength = (s & OV772X_EDGE_STRENGTH_MASK) | \
44
OV772X_MANUAL_EDGE_CTRL, \
45
.threshold = (t & OV772X_EDGE_THRESHOLD_MASK), \
46
}
47
48
/**
49
* struct ov772x_camera_info - ov772x driver interface structure
50
* @flags: Sensor configuration flags
51
* @edgectrl: Sensor edge control
52
*/
53
struct ov772x_camera_info {
54
unsigned long flags;
55
struct ov772x_edge_ctrl edgectrl;
56
};
57
58
#endif /* __OV772X_H__ */
59
60