162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * include/media/ccs/ccs-reg-access.h 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Generic driver for MIPI CCS/SMIA/SMIA++ compliant camera sensors 662306a36Sopenharmony_ci * 762306a36Sopenharmony_ci * Copyright (C) 2020 Intel Corporation 862306a36Sopenharmony_ci * Copyright (C) 2011--2012 Nokia Corporation 962306a36Sopenharmony_ci * Contact: Sakari Ailus <sakari.ailus@linux.intel.com> 1062306a36Sopenharmony_ci */ 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci#ifndef SMIAPP_REGS_H 1362306a36Sopenharmony_ci#define SMIAPP_REGS_H 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci#include <linux/i2c.h> 1662306a36Sopenharmony_ci#include <linux/types.h> 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci#include "ccs-regs.h" 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci#define CCS_REG_ADDR(reg) ((u16)reg) 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_cistruct ccs_sensor; 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciint ccs_read_addr_no_quirk(struct ccs_sensor *sensor, u32 reg, u32 *val); 2562306a36Sopenharmony_ciint ccs_read_addr(struct ccs_sensor *sensor, u32 reg, u32 *val); 2662306a36Sopenharmony_ciint ccs_read_addr_8only(struct ccs_sensor *sensor, u32 reg, u32 *val); 2762306a36Sopenharmony_ciint ccs_read_addr_noconv(struct ccs_sensor *sensor, u32 reg, u32 *val); 2862306a36Sopenharmony_ciint ccs_write_addr_no_quirk(struct ccs_sensor *sensor, u32 reg, u32 val); 2962306a36Sopenharmony_ciint ccs_write_addr(struct ccs_sensor *sensor, u32 reg, u32 val); 3062306a36Sopenharmony_ciint ccs_write_data_regs(struct ccs_sensor *sensor, struct ccs_reg *regs, 3162306a36Sopenharmony_ci size_t num_regs); 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ciunsigned int ccs_reg_width(u32 reg); 3462306a36Sopenharmony_ciu32 ccs_reg_conv(struct ccs_sensor *sensor, u32 reg, u32 val); 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci#define ccs_read(sensor, reg_name, val) \ 3762306a36Sopenharmony_ci ccs_read_addr(sensor, CCS_R_##reg_name, val) 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci#define ccs_write(sensor, reg_name, val) \ 4062306a36Sopenharmony_ci ccs_write_addr(sensor, CCS_R_##reg_name, val) 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci#endif 43