// SPDX-License-Identifier: GPL-2.0-only/* * et8ek8_driver.c * * Copyright (C) 2008 Nokia Corporation * * Contact: Sakari Ailus <sakari.ailus@iki.fi> * Tuukka Toivonen <tuukkat76@gmail.com> * Pavel Machek <pavel@ucw.cz> * * Based on code from Toni Leinonen <toni.leinonen@offcode.fi>. * * This driver is based on the Micron MT9T012 camera imager driver * (C) Texas Instruments. */#include<linux/clk.h>#include<linux/delay.h>#include<linux/gpio/consumer.h>#include<linux/i2c.h>#include<linux/kernel.h>#include<linux/module.h>#include<linux/mutex.h>#include<linux/regulator/consumer.h>#include<linux/slab.h>#include<linux/sort.h>#include<linux/v4l2-mediabus.h>#include<media/media-entity.h>#include<media/v4l2-ctrls.h>#include<media/v4l2-device.h>#include<media/v4l2-subdev.h>#include"et8ek8_reg.h"#define ET8EK8_NAME "et8ek8"#define ET8EK8_PRIV_MEM_SIZE 128#define ET8EK8_MAX_MSG 8structet8ek8_sensor{structv4l2_subdevsubdev;structmedia_padpad;structv4l2_mbus_framefmtformat;structgpio_desc*reset;structregulator*vana;structclk*ext_clk;u32xclk_freq;u16