1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
2 | /* |
3 | * ov772x Camera |
4 | * |
5 | * Copyright (C) 2008 Renesas Solutions Corp. |
6 | * Kuninori Morimoto <morimoto.kuninori@renesas.com> |
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 | |