linux/drivers/media/i2c/ccs/ccs.h

/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * drivers/media/i2c/smiapp/ccs.h
 *
 * Generic driver for MIPI CCS/SMIA/SMIA++ compliant camera sensors
 *
 * Copyright (C) 2020 Intel Corporation
 * Copyright (C) 2010--2012 Nokia Corporation
 * Contact: Sakari Ailus <[email protected]>
 */

#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"

/*
 * Standard SMIA++ constants
 */
#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 - Main device structure
 */
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 /* __CCS_H__ */