linux/include/media/i2c/ov772x.h
<<
>>
Prefs
   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 */
  22struct 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 * ov772x_camera_info - ov772x driver interface structure
  50 * @flags:              Sensor configuration flags
  51 * @edgectrl:           Sensor edge control
  52 */
  53struct ov772x_camera_info {
  54        unsigned long           flags;
  55        struct ov772x_edge_ctrl edgectrl;
  56};
  57
  58#endif /* __OV772X_H__ */
  59