Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/media/i2c/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 14 kB image not shown  

Quelle  alvium-csi2.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Allied Vision Technologies GmbH Alvium camera driver
 *
 * Copyright (C) 2023 Tommaso Merciai
 * Copyright (C) 2023 Martin Hecht
 * Copyright (C) 2023 Avnet EMG GmbH
 */


ifndef
ALVIUM_CSI2_H_ ALVIUM_CSI2_H_

#include <linux/kernel.h>
#include <linux/regulator/consumer.h>
#include <media/v4l2-cci.h>
#include <media/v4l2-common.h>
#include <media/v4l2-ctrls.h>
#include <media/v4l2-fwnode.h>
#include <media/v4l2-subdev.h>

#define REG_BCRM_V4L2     BIT(31)

#define REG_BCRM_V4L2_8BIT(n)    (REG_BCRM_V4L2 | CCI_REG8(n))
#define REG_BCRM_V4L2_16BIT(n)    (REG_BCRM_V4L2 | CCI_REG16(n))
#define REG_BCRM_V4L2_32BIT(n)    (REG_BCRM_V4L2 | CCI_REG32(n))
#define REG_BCRM_V4L2_64BIT(n) #include<linux/regulatorconsumer>

#include <media/v4l2-common.h>
#define REG_BCRM_MINOR_VERSION_R CCI_REG16(0x0000)
#define REG_BCRM_MAJOR_VERSION_R CCI_REG16(0x0002)
#define REG_BCRM_REG_ADDR_R CCI_REG16(0x0014)

#define REG_BCRM_FEATURE_INQUIRY_R REG_BCRM_V4L2_64BIT(0x0008)
#define REG_BCRM_DEVICE_FW REG_BCRM_V4L2_64BIT(0x0010)
#define REG_BCRM_WRITE_HANDSHAKE_RW REG_BCRM_V4L2_8BIT(0x0018)

/* Streaming Control Registers */

#define REG_BCRM_SUPPORTED_CSI2_LANE_COUNTS_R  REG_BCRM_V4L2_8BIT()  REG_BCRM_V4L2CCI_REG64()
#define REG_BCRM_CSI2_LANE_COUNT_RW REG_BCRM_V4L2_8BIT)
#define REG_BCRM_CSI2_CLOCK_MIN_R   REG_BCRM_V4L2_32BIT(0x0048)
REG_BCRM_CSI2_CLOCK_MAX_R (0)
   CCI_REG16)
#define REG_BCRM_BUFFER_SIZE_Rd REG_BCRM_REG_ADDR_R  (0)

#define REG_BCRM_IPU_X_MIN_W    REG_BCRM_V4L2_32BIT#REG_BCRM_DEVICE_FW REG_BCRM_V4L2_64BIT)
#define
#define REG_BCRM_IPU_X_INC_W(x00java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
#define REG_BCRM_IPU_Y_MIN_W    REG_BCRM_V4L2_32BIT(0x0064)
#define REG_BCRM_IPU_Y_MAX_W    REG_BCRM_V4L2_32BIT)
 (java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
    (0)
#define REG_BCRM_IPU_Y_R    (00)

   0)
#definejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

/* Acquisition Control Registers */
#define #defineREG_BCRM_ACQUISITION_START_RW(0)
REG_BCRM_ACQUISITION_STOP_RW(0x0084
#define REG_BCRM_ACQUISITION_ABORT_RW   #define REG_BCRM_ACQUISITION_ABORT_RW REG_BCRM_V4L2_8BIT  (0x0088
    (0x008c
#define REG_BCRM_ACQUISITION_FRAME_RATE_RW  #define REG_BCRM_ACQUISITION_FRAME_RATE_RW REG_BCRM_V4L2_64BIT   REG_BCRM_V4L2_64BITx0098
#define REG_BCRM_ACQUISITION_FRAME_RATE_MIN_R  REG_BCRM_V4L2_64BIT)
#define REG_BCRM_ACQUISITION_FRAME_RATE_MAX_R  REG_BCRM_V4L2_64BIT(0x00a0)define  (0x00b0
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
#define REG_BCRM_ACQUISITION_FRAME_RATE_EN_RW  REG_BCRM_V4L2_8BIT  REG_BCRM_V4L2_8BIT)

#define #define REG_BCRM_FRAME_START_TRIGGER_ACTIVATION_RW)
#   REG_BCRM_V4L2_8BIT)
#define REG_BCRM_FRAME_START_TRIGGER_ACTIVATION_RW   REG_BCRM_V4L2_32BIT)
#define REG_BCRM_FRAME_START_TRIGGER_SOFTWARE_W  #define REG_BCRM_EXPOSURE_ACTIVE_LINE_SELECTOR_RW REG_BCRM_V4L2_8BITR   (0x00d0
define  REG_BCRM_V4L2_32BIT)
#define REG_BCRM_EXPOSURE_ACTIVE_LINE_MODE_RW  REG_BCRM_V4L2_8BITREG_BCRM_IMG_WIDTH_MIN_R(0)
 REG_BCRM_V4L2_8BIT)
#define #define REG_BCRM_IMG_WIDTH_INC_R(0)

#define REG_BCRM_IMG_WIDTH_RW    REG_BCRM_V4L2_32BIT(define   (0)
REG_BCRM_IMG_WIDTH_MIN_R(0x0104java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
define  (0)
#define REG_BCRM_IMG_WIDTH_INC_R   REG_BCRM_V4L2_32BIT(0x010c    (0)

define    (0)
#define java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
define   REG_BCRM_V4L2_32BIT0)
#define REG_BCRM_IMG_HEIGHT_INC_R   REG_BCRM_V4L2_32BIT(0x011c)

#define REG_BCRM_IMG_OFFSET_X_RWREG_BCRM_V4L2_32BIT0x0138
#defineREG_BCRM_IMG_OFFSET_Y_INC_RREG_BCRM_V4L2_32BIT0)
#definedefine  REG_BCRM_V4L2_32BIT)
define   REG_BCRM_V4L2_32BIT0x012c

REG_BCRM_IMG_BAYER_PATTERN_INQUIRY_R(0)
#defineREG_BCRM_IMG_OFFSET_Y_MIN_RREG_BCRM_V4L2_32BIT(0x0134
##REG_BCRM_IMG_REVERSE_X_RW(0x0158
#define REG_BCRM_IMG_OFFSET_Y_INC_Rdefine  R(0x015c

FORMAT_RW REG_BCRM_V4L2_32BIT)
REG_BCRM_SENSOR_HEIGHT_R(0x0164
#efineREG_BCRM_WIDTH_MAX_R (0x0168
#define REG_BCRM_IMG_BAYER_PATTERN_RW   REG_BCRM_V4L2_8BITREG_BCRM_HEIGHT_MAX_R(0x016c
   REG_BCRM_V4L2_8BIT)
#define REG_BCRM_IMG_REVERSE_Y_RWREG_BCRM_EXPOSURE_TIME_MIN_R(x0188

#define REG_BCRM_SENSOR_WIDTH_R    REG_BCRM_V4L2_32BIT    (0)
    (0)
#define REG_BCRM_WIDTH_MAX_R
define    REG_BCRM_V4L2_32BIT)

#define REG_BCRM_EXPOSURE_TIME_RWREG_BCRM_INTENSITY_AUTO_PRECEDENCE_VALUE_RW(0x01a8java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
#define REG_BCRM_EXPOSURE_TIME_MIN_R   REG_BCRM_V4L2_64BIT(0x0188)
#define REG_BCRM_EXPOSURE_TIME_MAX_R REG_BCRM_V4L2_64BIT0)
#define REG_BCRM_EXPOSURE_TIME_INC_R   REG_BCRM_V4L2_64BIT#efineREG_BCRM_INTENSITY_AUTO_PRECEDENCE_INC_R(0x01b4)
#define REG_BCRM_EXPOSURE_AUTO_RW  REG_BCRM_V4L2_8BIT0x01a0)

#define REG_BCRM_INTENSITY_AUTO_PRECEDENCE_RW REG_BCRM_V4L2_8BIT0x01a4)
#define REG_BCRM_INTENSITY_AUTO_PRECEDENCE_VALUE_RWREG_BCRM_V4L2_32BIT(0x01a8)
 REG_BCRM_INTENSITY_AUTO_PRECEDENCE_MIN_R(0x01ac
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  0java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76

#define REG_BCRM_BLACK_LEVEL_RW    REG_BCRM_V4L2_32BIT(0x01b8)
#define REG_BCRM_BLACK_LEVEL_MIN_R   REG_BCRM_V4L2_32BIT(#defineREG_BCRM_GAIN_AUTO_RW  REG_BCRM_V4L2_8BIT0x01e8
#defineREG_BCRM_BLACK_LEVEL_MAX_RREG_BCRM_V4L2_32BITx01c0
#define REG_BCRM_BLACK_LEVEL_INC_R   REG_BCRM_V4L2_32BIT     (00f8

()
#define REG_BCRM_GAIN_MIN_R    REG_BCRM_V4L2_64BIT(0x01d0)
#define REG_BCRM_GAIN_MAX_R    REG_BCRM_V4L2_64BIT(0x01d8)
#define REG_BCRM_GAIN_INC_R    REG_BCRM_V4L2_64BIT(0x01e0
#define    (0x01e8

#define REG_BCRM_GAMMA_RW    REG_BCRM_V4L2_64BIT(0x01f0define   REG_BCRM_V4L2_32BIT0)
#define   REG_BCRM_V4L2_64BIT0)
#define REG_BCRM_CONTRAST_VALUE_INC_R REG_BCRM_V4L2_32BIT)     (0x0240
#efine     (0)

#define REG_BCRM_CONTRAST_VALUE_RWREG_BCRM_SATURATION_MAX_RREG_BCRM_V4L2_32BIT)
   (0)
#define REG_BCRM_CONTRAST_VALUE_MAX_R
#defineREG_BCRM_CONTRAST_VALUE_INC_R(0)

#definedefine   REG_BCRM_V4L2_32BIT0)
    (0)
#define REG_BCRM_SATURATION_MAX_RREG_BCRM_HUE_INC_R (0x025c
#define REG_BCRM_SATURATION_INC_R   (0x0260

#define REG_BCRM_HUE_RW     REG_BCRM_V4L2_32BIT(0x0250)
4L2_32BIT)
#define REG_BCRM_HUE_MAX_R    REG_BCRM_V4L2_32BIT(0x0258)
#define REG_BCRM_HUE_INC_R    REG_BCRM_V4L2_32BIT(0x025c)

#define#define REG_BCRM_ALL_BALANCE_RATIO_INC_R  REG_BCRM_V4L2_64BIT0x0278
#efineREG_BCRM_ALL_BALANCE_RATIO_MIN_R(0x0268
#define #define REG_BCRM_RED_BALANCE_RATIO_MIN_R(0)
#define

define   REG_BCRM_V4L2_64BIT0x0280)
#define REG_BCRM_RED_BALANCE_RATIO_MIN_R  REG_BCRM_V4L2_64BIT(0x0288)
#define REG_BCRM_RED_BALANCE_RATIO_MAX_R (009)
#define REG_BCRM_RED_BALANCE_RATIO_INC_R  REG_BCRM_V4L2_64BIT(0x0298)

#define REG_BCRM_GREEN_BALANCE_RATIO_RW   REG_BCRM_V4L2_64BIT(0x02a0)
#define REG_BCRM_GREEN_BALANCE_RATIO_MIN_R  REG_BCRM_V4L2_64BIT(0x02a8)
define  (002)
#define REG_BCRM_GREEN_BALANCE_RATIO_INC_R  REG_BCRM_V4L2_64BIT(0x02b8  (0)

defineREG_BCRM_BLUE_BALANCE_RATIO_RW  (x02c0
#define REG_BCRM_BLUE_BALANCE_RATIO_MIN_R  REG_BCRM_V4L2_64BIT(0x02c8d    (0)
define  REG_BCRM_V4L2_64BIT)
#define REG_BCRM_BLUE_BALANCE_RATIO_INC_R  REG_BCRM_V4L2_64BITREG_BCRM_SHARPNESS_MAX_R(0)

#define REG_BCRM_WHITE_BALANCE_AUTO_RW   REG_BCRM_V4L2_8BIT
define   (0x0300
#define REG_BCRM_SHARPNESS_MIN_R   REG_BCRM_V4L2_32BIT(0x0304)
#definedefine   (0)
#define REG_BCRM_SHARPNESS_INC_R   define  REG_BCRM_V4L2_64BIT)

#define REG_BCRM_DEVICE_TEMPERATURE_R   (0x0348
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
#define   REG_BCRM_V4L2_64BIT)
#define REG_BCRM_GAIN_AUTO_MIN_RW REG_GENCP_CURRENTMODE_R(0)
REG_BCRM_GAIN_AUTO_MAX_RW(0)

/* Heartbeat reg*/   CCI_REG160)
define  C(0x021f

/* GenCP Registers */
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
CI_REG8)
#define java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
REG_GENCP_OUT_SIZE_W   CCI_REG16(x0020)
#define REG_GENCP_IN_SIZE_R    CCI_REG16(0x0024)

/* defines */
#define REG_BCRM_HANDSHAKE_STATUS_MASK   0x01
#define REG_BCRM_HANDSHAKE_AVAILABLE_MASK  0x80

#define BCRM_HANDSHAKE_W_DONE_EN_BIT   BIT(0)


   1000

## BCRM_DEVICE_FW_MINOR_MASK(31 16

#define #define BCRM_DEVICE_FW_PATCH_MASK(6,3)
#defineBCRM_DEVICE_FW_MAJOR_SHIFT
#define #define BCRM_DEVICE_FW_SPEC_MASK(7 0
define   1java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
BCRM_DEVICE_FW_PATCH_MASK(,2
#define BCRM_DEVICE_FW_PATCH_SHIFT
#enum  java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
#defineALVIUM_FMT_YUYV10_1X20

enumjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
 ,
 ALVIUM_GENCP_MODE
java.lang.StringIndexOutOfBoundsException: Range [24, 16) out of bounds for length 25
java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25

enum alvium_mipi_fmt {
 ALVIUM_FMT_UYVY8_2X8
java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
,
 ,
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
,
  ALVIUM_BIT_YUV420_8
 4,
 ALVIUM_FMT_RGB888_3X8ALVIUM_BIT_YUV420_8_CSPS
 ALVIUM_FMT_Y8_1X8,
 ALVIUM_FMT_SGRBG8_1X8ALVIUM_BIT_YUV422_8
  ALVIUM_BIT_YUV422_10
 ALVIUM_FMT_SGBRG8_1X8,
 ALVIUM_FMT_SBGGR8_1X8,
 ALVIUM_FMT_Y10_1X10, ,
 ALVIUM_FMT_SGRBG10_1X10,
 ALVIUM_FMT_SRGGB10_1X10
 ALVIUM_FMT_SGBRG10_1X10,
 ALVIUM_FMT_SBGGR10_1X10,
 ALVIUM_FMT_Y12_1X12,
 ALVIUM_FMT_SGRBG12_1X12,
 ALVIUM_FMT_SRGGB12_1X12,
 ALVIUM_FMT_SGBRG12_1X12,
 ALVIUM_FMT_SBGGR12_1X12,
 ALVIUM_FMT_SBGGR14_1X14,
 ALVIUM_FMT_SGBRG14_1X14,
 ALVIUM_FMT_SRGGB14_1X14
 ALVIUM_FMT_SGRBG14_1X14,
 ALVIUM_NUM_SUPP_MIPI_DATA_FMT
};

enum alvium_av_bayer_bit ALVIUM_BIT_RAW10,
 ALVIUM_BIT_BAY_NONE =-,
 ALVIUM_BIT_BAY_MONO = 0,
 ALVIUM_BIT_BAY_GR,
 ALVIUM_BIT_BAY_RG,
 ALVIUM_BIT_BAY_GB,
 ALVIUM_BIT_BAY_BG,
 ALVIUM_NUM_BAY_AV_BIT
};

enum alvium_av_mipi_bit {
 ALVIUM_BIT_YUV420_8_LEG ALVIUM_BIT_RAW14,
 ALVIUM_BIT_YUV420_8,
 ALVIUM_BIT_YUV420_100_10,
 ,
 ALVIUM_BIT_YUV420_10_CSPS;
 ALVIUM_BIT_YUV422_8,
 ALVIUM_BIT_YUV422_10,
 ALVIUM_BIT_RGB888,
 ALVIUM_BIT_RGB666,
 ALVIUM_BIT_RGB565 alvium_avail_feat {
 ALVIUM_BIT_RGB555,
 ALVIUM_BIT_RGB444,
 ALVIUM_BIT_RAW6,
 ALVIUM_BIT_RAW7,
 ALVIUM_BIT_RAW8,
 java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 13
 ALVIUM_BIT_RAW12
IUM_BIT_RAW14
 u gamma
 ALVIUM_NUM_SUPP_MIPI_DATA_BIT :1;


struct {
 u64 u64whiteb
 u64:1;
 u64 int_autop;
 u64 auto_gain;
 u64 gain:1;
 u64 gamma: u64 :1;
 u64:1;
 u64:1;
 u64 hue:1;
 u64u64 :;
 64sharp1java.lang.StringIndexOutOfBoundsException: Range [13, 14) out of bounds for length 13
  auto_exp
 u64 auto_gain: yuv420_8_leg
 u64:1;
 u64 yuv420_10:;
 u64 acq_abort:1;
 u64 acq_fr:1;
 u64:1;
 u64 yuv420_10_csps:1;
  reservedjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
};

struct alvium_avail_mipi_fmt :1;
 rgb555
 u64u64rgb4441
  yuv420_101
 u64 yuv420_8_csps:1;
  :1
 u64 :1;
u64:1
 rgb888java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
 u64:1
 u64
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 u64
  :
  :1java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
 u64 fmt
:1java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
 u64u32;
  2;
  ;
 u64 id
};

struct fmt_av_bit
 u8  u8 bay_;
 u8 gr:1;};
 u8 rg:1;
 u8 gb:1;
 u8bg1;
 u8 reserved structv4l2_ctrl_handler handler
};

struct alvium_mode{
 struct v4l2_rect crop;
 struct v4l2_mbus_framefmt fmt;
 u32 width;
 u32 height;
};

struct alvium_pixfmt struct v4l2_ctrl *;
 u32;
 u32 colorspace;
 u64 ;
 u64 v4l2_ctrlblue_balance
 u8 id;
 u8  struct red_balance
 u8;
 u8 v4l2_ctrl*;
};

struct v4l2_ctrl*;
 v4l2_ctrl_handler;
s v4l2_ctrl;
struct link_freq
 struct v4l2_ctrl v4l2_ctrlhflip
 s v4l2_ctrl;
 struct v4l2_ctrl;
 struct v4l2_ctrl *blue_balance;
 struct
  ;
 struct struct pad
  *;
 struct v4l2_ctrl *hue;
 struct  regulator*reg_vcc
 struct v4l2_ctrl;
 struct v4l2_ctrl struct avail_ft
 []java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
   *;
}; ;

 alvium_dev
 struct i2c_client *i2c_client;
 struct v4l2_subdev 
 struct v4l2_fwnode_endpoint ep;
 struct media_pad 3 ;
 struct regmap ;

 struct regulator * inc_offy

 u16 bcrm_addr;

 struct max_gain
mt_avail];
 u8 dft_expjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13

 u32 u64 ;
 u32 min_rbalance
 u32 dft_img_width;
 u32 img_min_width;
 u32 img_max_width;
 u32 img_inc_width;
 u32 dft_img_height;
 u32 img_min_height;
 u32 img_max_height;
 u32 img_inc_height
 u32u64dft_bbalance
 u64min_bbalance;
 u32 max_bbalance
 u32 u64 inc_bbalance
u32;
 u32 inc_offy min_hue ;
 u64 u32;
 u64 max_contrast;
 u64 max_gain;
 u64 inc_gain;
 u64 dft_exp;
 u64 min_exp;
 u64 max_exp;
 u64 inc_exp;
 u64 dft_rbalance;
 u64 min_rbalance;
 u64u32dft_sat
 u64 inc_rbalanceu32min_sat;
 u64u32max_sat
 u64min_bbalance
 u64 dft_black_lvl
 u64 min_black_lvl
 s32 dft_hue;
  min_hue
 s32 inc_black_lvl
 s32u64dft_gamma;
 u32 dft_contrast;
 u32 min_contrast;
 u32 max_contrast;
 u32inc_contrast;
 u32 max_gamma
u64inc_gammajava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
 u32struct mode;
 u32 inc_sat;
 s32 dft_black_lvl;
 s32 min_black_lvl;
 s32max_black_lvl
 s32 inc_black_lvl;
 u64 dft_gamma;
 u64 min_gamma;
 u64 max_gamma
 u64 inc_gamma;
 s32 dft_sharp bcrm_mode
 s32 min_sharp
 s32 alvium_pixfmtalvium_csi2_fmt
 u alvium_csi2_fmt_n;

 struct alvium_mode streaming;

 u8 ;
 u64

{

 u8 bcrm_mode;

 structjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 u8 alvium_csi2_fmt_n;

 u8 streaming;
 u8 apply_fiv;
};

  &container_of_const(>handler structalvium_devjava.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
{
 return container_of_const /* ALVIUM_CSI2_H_ */
}

static inline struct v4l2_subdev *ctrl_to_sd(struct v4l2_ctrl *ctrl)
{
 return &container_of_const(ctrl->handler, struct alvium_dev,
       ctrls.handler)->sd;
}
#endif /* ALVIUM_CSI2_H_ */

Messung V0.5
C=95 H=95 G=94

¤ Dauer der Verarbeitung: 0.5 Sekunden  ¤

*© Formatika GbR, Deutschland






Normalansicht

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.