smiapp-regs.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*
  2. * include/media/smiapp/smiapp-regs.h
  3. *
  4. * Generic driver for SMIA/SMIA++ compliant camera modules
  5. *
  6. * Copyright (C) 2011--2012 Nokia Corporation
  7. * Contact: Sakari Ailus <sakari.ailus@iki.fi>
  8. *
  9. * This program is free software; you can redistribute it and/or
  10. * modify it under the terms of the GNU General Public License
  11. * version 2 as published by the Free Software Foundation.
  12. *
  13. * This program is distributed in the hope that it will be useful, but
  14. * WITHOUT ANY WARRANTY; without even the implied warranty of
  15. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  16. * General Public License for more details.
  17. *
  18. * You should have received a copy of the GNU General Public License
  19. * along with this program; if not, write to the Free Software
  20. * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  21. * 02110-1301 USA
  22. *
  23. */
  24. #ifndef SMIAPP_REGS_H
  25. #define SMIAPP_REGS_H
  26. #include <linux/i2c.h>
  27. #include <linux/types.h>
  28. /* Use upper 8 bits of the type field for flags */
  29. #define SMIA_REG_FLAG_FLOAT (1 << 24)
  30. #define SMIA_REG_8BIT 1
  31. #define SMIA_REG_16BIT 2
  32. #define SMIA_REG_32BIT 4
  33. struct smia_reg {
  34. u16 type;
  35. u16 reg; /* 16-bit offset */
  36. u32 val; /* 8/16/32-bit value */
  37. };
  38. struct smiapp_sensor;
  39. int smiapp_read(struct smiapp_sensor *sensor, u32 reg, u32 *val);
  40. int smiapp_read_8only(struct smiapp_sensor *sensor, u32 reg, u32 *val);
  41. int smiapp_write(struct smiapp_sensor *sensor, u32 reg, u32 val);
  42. #endif