cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

et8ek8_reg.h (2016B)


      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	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			1
     48#define ET8EK8_REG_16BIT		2
     49#define ET8EK8_REG_DELAY		100
     50#define ET8EK8_REG_TERM			0xff
     51struct 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		0
     59#define ET8EK8_REGLIST_POWERON		1
     60#define ET8EK8_REGLIST_RESUME		2
     61#define ET8EK8_REGLIST_STREAMON		3
     62#define ET8EK8_REGLIST_STREAMOFF	4
     63#define ET8EK8_REGLIST_DISABLED		5
     64
     65#define ET8EK8_REGLIST_MODE		10
     66
     67#define ET8EK8_REGLIST_LSC_ENABLE	100
     68#define ET8EK8_REGLIST_LSC_DISABLE	101
     69#define ET8EK8_REGLIST_ANR_ENABLE	102
     70#define ET8EK8_REGLIST_ANR_DISABLE	103
     71
     72struct et8ek8_reglist {
     73	u32 type;
     74	struct et8ek8_mode mode;
     75	struct et8ek8_reg regs[];
     76};
     77
     78#define ET8EK8_MAX_LEN			32
     79struct 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 */