ccs-reg-access.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * include/media/ccs/ccs-reg-access.h
  4. *
  5. * Generic driver for MIPI CCS/SMIA/SMIA++ compliant camera sensors
  6. *
  7. * Copyright (C) 2020 Intel Corporation
  8. * Copyright (C) 2011--2012 Nokia Corporation
  9. * Contact: Sakari Ailus <[email protected]>
  10. */
  11. #ifndef SMIAPP_REGS_H
  12. #define SMIAPP_REGS_H
  13. #include <linux/i2c.h>
  14. #include <linux/types.h>
  15. #include "ccs-regs.h"
  16. #define CCS_REG_ADDR(reg) ((u16)reg)
  17. struct ccs_sensor;
  18. int ccs_read_addr_no_quirk(struct ccs_sensor *sensor, u32 reg, u32 *val);
  19. int ccs_read_addr(struct ccs_sensor *sensor, u32 reg, u32 *val);
  20. int ccs_read_addr_8only(struct ccs_sensor *sensor, u32 reg, u32 *val);
  21. int ccs_read_addr_noconv(struct ccs_sensor *sensor, u32 reg, u32 *val);
  22. int ccs_write_addr_no_quirk(struct ccs_sensor *sensor, u32 reg, u32 val);
  23. int ccs_write_addr(struct ccs_sensor *sensor, u32 reg, u32 val);
  24. int ccs_write_data_regs(struct ccs_sensor *sensor, struct ccs_reg *regs,
  25. size_t num_regs);
  26. unsigned int ccs_reg_width(u32 reg);
  27. u32 ccs_reg_conv(struct ccs_sensor *sensor, u32 reg, u32 val);
  28. #define ccs_read(sensor, reg_name, val) \
  29. ccs_read_addr(sensor, CCS_R_##reg_name, val)
  30. #define ccs_write(sensor, reg_name, val) \
  31. ccs_write_addr(sensor, CCS_R_##reg_name, val)
  32. #endif