#ifndef __CCS_H__
#define __CCS_H__
#include <linux/mutex.h>
#include <linux/regmap.h>
#include <media/v4l2-ctrls.h>
#include <media/v4l2-subdev.h>
#include "ccs-data.h"
#include "ccs-limits.h"
#include "ccs-quirk.h"
#include "ccs-regs.h"
#include "ccs-reg-access.h"
#include "../ccs-pll.h"
#include "smiapp-reg-defs.h"
#define SMIA_VERSION_1 …
#define SMIAPP_VERSION_0_8 …
#define SMIAPP_VERSION_0_9 …
#define SMIAPP_VERSION_1 …
#define SMIAPP_PROFILE_0 …
#define SMIAPP_PROFILE_1 …
#define SMIAPP_PROFILE_2 …
#define SMIAPP_NVM_PAGE_SIZE …
#define SMIAPP_RESET_DELAY_CLOCKS …
#define SMIAPP_RESET_DELAY(clk) …
#define CCS_COLOUR_COMPONENTS …
#define SMIAPP_NAME …
#define CCS_NAME …
#define CCS_DFL_I2C_ADDR …
#define CCS_ALT_I2C_ADDR …
#define CCS_LIM(sensor, limit) …
#define CCS_LIM_AT(sensor, limit, offset) …
struct ccs_flash_strobe_parms { … };
struct ccs_hwconfig { … };
struct ccs_quirk;
#define CCS_MODULE_IDENT_FLAG_REV_LE …
struct ccs_module_ident { … };
struct ccs_module_info { … };
#define CCS_IDENT_FQ(manufacturer, model, rev, fl, _name, _quirk) …
#define CCS_IDENT_LQ(manufacturer, model, rev, _name, _quirk) …
#define CCS_IDENT_L(manufacturer, model, rev, _name) …
#define CCS_IDENT_Q(manufacturer, model, rev, _name, _quirk) …
#define CCS_IDENT(manufacturer, model, rev, _name) …
struct ccs_csi_data_format { … };
#define CCS_SUBDEVS …
#define CCS_PA_PAD_SRC …
#define CCS_PAD_SINK …
#define CCS_PAD_SRC …
#define CCS_PADS …
struct ccs_binning_subtype { … } __packed;
struct ccs_subdev { … };
struct ccs_sensor { … };
#define to_ccs_subdev(_sd) …
#define to_ccs_sensor(_sd) …
void ccs_replace_limit(struct ccs_sensor *sensor,
unsigned int limit, unsigned int offset, u32 val);
u32 ccs_get_limit(struct ccs_sensor *sensor, unsigned int limit,
unsigned int offset);
#endif