brintos

brintos / linux-shallow public Read only

0
0
Text · 2.0 KiB · c90e749 Raw
89 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * et8ek8_reg.h4 *5 * Copyright (C) 2008 Nokia Corporation6 *7 * Contact: Sakari Ailus <sakari.ailus@iki.fi>8 *          Tuukka Toivonen <tuukkat76@gmail.com>9 */10 11#ifndef ET8EK8REGS_H12#define ET8EK8REGS_H13 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	u32 ext_clock;			/* in Hz */41	struct v4l2_fract timeperframe;42	u32 max_exp;			/* Maximum exposure value */43	u32 bus_format;			/* MEDIA_BUS_FMT_ */44	u32 sensitivity;		/* 16.16 fixed point */45};46 47#define ET8EK8_REG_8BIT			148#define ET8EK8_REG_16BIT		249#define ET8EK8_REG_DELAY		10050#define ET8EK8_REG_TERM			0xff51struct et8ek8_reg {52	u16 type;53	u16 reg;			/* 16-bit offset */54	u32 val;			/* 8/16/32-bit value */55};56 57/* Possible struct smia_reglist types. */58#define ET8EK8_REGLIST_STANDBY		059#define ET8EK8_REGLIST_POWERON		160#define ET8EK8_REGLIST_RESUME		261#define ET8EK8_REGLIST_STREAMON		362#define ET8EK8_REGLIST_STREAMOFF	463#define ET8EK8_REGLIST_DISABLED		564 65#define ET8EK8_REGLIST_MODE		1066 67#define ET8EK8_REGLIST_LSC_ENABLE	10068#define ET8EK8_REGLIST_LSC_DISABLE	10169#define ET8EK8_REGLIST_ANR_ENABLE	10270#define ET8EK8_REGLIST_ANR_DISABLE	10371 72struct et8ek8_reglist {73	u32 type;74	struct et8ek8_mode mode;75	struct et8ek8_reg regs[];76};77 78#define ET8EK8_MAX_LEN			3279struct et8ek8_meta_reglist {80	char version[ET8EK8_MAX_LEN];81	union {82		struct et8ek8_reglist *ptr;83	} reglist[];84};85 86extern struct et8ek8_meta_reglist meta_reglist;87 88#endif /* ET8EK8REGS */89