1b5dcee22SMauro Carvalho Chehab /* 2b5dcee22SMauro Carvalho Chehab * ov772x Camera 3b5dcee22SMauro Carvalho Chehab * 4b5dcee22SMauro Carvalho Chehab * Copyright (C) 2008 Renesas Solutions Corp. 5b5dcee22SMauro Carvalho Chehab * Kuninori Morimoto <morimoto.kuninori@renesas.com> 6b5dcee22SMauro Carvalho Chehab * 7b5dcee22SMauro Carvalho Chehab * This program is free software; you can redistribute it and/or modify 8b5dcee22SMauro Carvalho Chehab * it under the terms of the GNU General Public License version 2 as 9b5dcee22SMauro Carvalho Chehab * published by the Free Software Foundation. 10b5dcee22SMauro Carvalho Chehab */ 11b5dcee22SMauro Carvalho Chehab 12b5dcee22SMauro Carvalho Chehab #ifndef __OV772X_H__ 13b5dcee22SMauro Carvalho Chehab #define __OV772X_H__ 14b5dcee22SMauro Carvalho Chehab 15b5dcee22SMauro Carvalho Chehab /* for flags */ 16b5dcee22SMauro Carvalho Chehab #define OV772X_FLAG_VFLIP (1 << 0) /* Vertical flip image */ 17b5dcee22SMauro Carvalho Chehab #define OV772X_FLAG_HFLIP (1 << 1) /* Horizontal flip image */ 18b5dcee22SMauro Carvalho Chehab 19b5dcee22SMauro Carvalho Chehab /* 20b5dcee22SMauro Carvalho Chehab * for Edge ctrl 21b5dcee22SMauro Carvalho Chehab * 22b5dcee22SMauro Carvalho Chehab * strength also control Auto or Manual Edge Control Mode 23b5dcee22SMauro Carvalho Chehab * see also OV772X_MANUAL_EDGE_CTRL 24b5dcee22SMauro Carvalho Chehab */ 25b5dcee22SMauro Carvalho Chehab struct ov772x_edge_ctrl { 26b5dcee22SMauro Carvalho Chehab unsigned char strength; 27b5dcee22SMauro Carvalho Chehab unsigned char threshold; 28b5dcee22SMauro Carvalho Chehab unsigned char upper; 29b5dcee22SMauro Carvalho Chehab unsigned char lower; 30b5dcee22SMauro Carvalho Chehab }; 31b5dcee22SMauro Carvalho Chehab 32b5dcee22SMauro Carvalho Chehab #define OV772X_MANUAL_EDGE_CTRL 0x80 /* un-used bit of strength */ 33b5dcee22SMauro Carvalho Chehab #define OV772X_EDGE_STRENGTH_MASK 0x1F 34b5dcee22SMauro Carvalho Chehab #define OV772X_EDGE_THRESHOLD_MASK 0x0F 35b5dcee22SMauro Carvalho Chehab #define OV772X_EDGE_UPPER_MASK 0xFF 36b5dcee22SMauro Carvalho Chehab #define OV772X_EDGE_LOWER_MASK 0xFF 37b5dcee22SMauro Carvalho Chehab 38b5dcee22SMauro Carvalho Chehab #define OV772X_AUTO_EDGECTRL(u, l) \ 39b5dcee22SMauro Carvalho Chehab { \ 40b5dcee22SMauro Carvalho Chehab .upper = (u & OV772X_EDGE_UPPER_MASK), \ 41b5dcee22SMauro Carvalho Chehab .lower = (l & OV772X_EDGE_LOWER_MASK), \ 42b5dcee22SMauro Carvalho Chehab } 43b5dcee22SMauro Carvalho Chehab 44b5dcee22SMauro Carvalho Chehab #define OV772X_MANUAL_EDGECTRL(s, t) \ 45b5dcee22SMauro Carvalho Chehab { \ 46b5dcee22SMauro Carvalho Chehab .strength = (s & OV772X_EDGE_STRENGTH_MASK) | \ 47b5dcee22SMauro Carvalho Chehab OV772X_MANUAL_EDGE_CTRL, \ 48b5dcee22SMauro Carvalho Chehab .threshold = (t & OV772X_EDGE_THRESHOLD_MASK), \ 49b5dcee22SMauro Carvalho Chehab } 50b5dcee22SMauro Carvalho Chehab 51b5dcee22SMauro Carvalho Chehab /* 52b5dcee22SMauro Carvalho Chehab * ov772x camera info 53b5dcee22SMauro Carvalho Chehab */ 54b5dcee22SMauro Carvalho Chehab struct ov772x_camera_info { 55b5dcee22SMauro Carvalho Chehab unsigned long flags; 56b5dcee22SMauro Carvalho Chehab struct ov772x_edge_ctrl edgectrl; 57b5dcee22SMauro Carvalho Chehab }; 58b5dcee22SMauro Carvalho Chehab 59b5dcee22SMauro Carvalho Chehab #endif /* __OV772X_H__ */ 60