File Index
Files and directories
Sign in
FILE

et8ek8_reg.h

File preview with syntax highlighting.

linux-6.19.14/drivers/media/i2c/et8ek8/et8ek8_reg.h C
 1/* SPDX-License-Identifier: GPL-2.0-only */
 2/*
 3 * et8ek8_reg.h
 4 *
 5 * Copyright (C) 2008 Nokia Corporation
 6 *
 7 * Contact: Sakari Ailus <sakari.ailus@iki.fi>
 8 *          Tuukka Toivonen <tuukkat76@gmail.com>
 9 */
10
11#ifndef ET8EK8REGS_H
12#define ET8EK8REGS_H
13
14#include <linux/i2c.h>
15#include <linux/types.h>
16#include <linux/videodev2.h>
17#include <linux/v4l2-subdev.h>
18
19struct v4l2_mbus_framefmt;
20struct v4l2_subdev_pad_mbus_code_enum;
21
22struct et8ek8_mode {
23	/* Physical sensor resolution and current image window */
24	u16 sensor_width;
25	u16 sensor_height;
26	u16 sensor_window_origin_x;
27	u16 sensor_window_origin_y;
28	u16 sensor_window_width;
29	u16 sensor_window_height;
30
31	/* Image data coming from sensor (after scaling) */
32	u16 width;
33	u16 height;
34	u16 window_origin_x;
35	u16 window_origin_y;
36	u16 window_width;
37	u16 window_height;
38
39	u32 pixel_clock;		/* in Hz */
40	struct v4l2_fract timeperframe;
41	u32 max_exp;			/* Maximum exposure value */
42	u32 bus_format;			/* MEDIA_BUS_FMT_ */
43	u32 sensitivity;		/* 16.16 fixed point */
44};
45
46#define ET8EK8_REG_8BIT			1
47#define ET8EK8_REG_16BIT		2
48#define ET8EK8_REG_DELAY		100
49#define ET8EK8_REG_TERM			0xff
50struct et8ek8_reg {
51	u16 type;
52	u16 reg;			/* 16-bit offset */
53	u32 val;			/* 8/16/32-bit value */
54};
55
56/* Possible struct smia_reglist types. */
57#define ET8EK8_REGLIST_STANDBY		0
58#define ET8EK8_REGLIST_POWERON		1
59#define ET8EK8_REGLIST_RESUME		2
60#define ET8EK8_REGLIST_STREAMON		3
61#define ET8EK8_REGLIST_STREAMOFF	4
62#define ET8EK8_REGLIST_DISABLED		5
63
64#define ET8EK8_REGLIST_MODE		10
65
66#define ET8EK8_REGLIST_LSC_ENABLE	100
67#define ET8EK8_REGLIST_LSC_DISABLE	101
68#define ET8EK8_REGLIST_ANR_ENABLE	102
69#define ET8EK8_REGLIST_ANR_DISABLE	103
70
71struct et8ek8_reglist {
72	u32 type;
73	struct et8ek8_mode mode;
74	struct et8ek8_reg regs[];
75};
76
77#define ET8EK8_MAX_LEN			32
78struct et8ek8_meta_reglist {
79	char version[ET8EK8_MAX_LEN];
80	union {
81		struct et8ek8_reglist *ptr;
82	} reglist[];
83};
84
85extern struct et8ek8_meta_reglist meta_reglist;
86
87#endif /* ET8EK8REGS */
~/ Read-only file preview.