diff options
author | Sakari Ailus <sakari.ailus@linux.intel.com> | 2023-11-07 17:42:40 +0200 |
---|---|---|
committer | Hans Verkuil <hverkuil-cisco@xs4all.nl> | 2023-12-04 11:21:46 +0100 |
commit | cd93cc245dfe334c38da98c14b34f9597e1b4ea6 (patch) | |
tree | f268d74b5516dd944172b4558721d0db193eab70 /include/media | |
parent | 94ed00981b5167e22f66fd5bfedcc7cc7fd72551 (diff) | |
download | linux-cd93cc245dfe334c38da98c14b34f9597e1b4ea6.tar.gz linux-cd93cc245dfe334c38da98c14b34f9597e1b4ea6.tar.bz2 linux-cd93cc245dfe334c38da98c14b34f9597e1b4ea6.zip |
media: v4l: cci: Add macros to obtain register width and address
Add CCI_REG_WIDTH() macro to obtain register width in bits and similarly,
CCI_REG_WIDTH_BYTES() to obtain it in bytes.
Also add CCI_REG_ADDR() macro to obtain the address of a register.
Use both macros in v4l2-cci.c, too.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Diffstat (limited to 'include/media')
-rw-r--r-- | include/media/v4l2-cci.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/media/v4l2-cci.h b/include/media/v4l2-cci.h index ee469f03e440..406772a4e32e 100644 --- a/include/media/v4l2-cci.h +++ b/include/media/v4l2-cci.h @@ -7,6 +7,7 @@ #ifndef _V4L2_CCI_H #define _V4L2_CCI_H +#include <linux/bitfield.h> #include <linux/bits.h> #include <linux/types.h> @@ -39,6 +40,10 @@ struct cci_reg_sequence { #define CCI_REG_PRIVATE_SHIFT 28U #define CCI_REG_PRIVATE_MASK GENMASK(31U, CCI_REG_PRIVATE_SHIFT) +#define CCI_REG_WIDTH_BYTES(x) FIELD_GET(CCI_REG_WIDTH_MASK, x) +#define CCI_REG_WIDTH(x) (CCI_REG_WIDTH_BYTES(x) << 3) +#define CCI_REG_ADDR(x) FIELD_GET(CCI_REG_ADDR_MASK, x) + #define CCI_REG8(x) ((1 << CCI_REG_WIDTH_SHIFT) | (x)) #define CCI_REG16(x) ((2 << CCI_REG_WIDTH_SHIFT) | (x)) #define CCI_REG24(x) ((3 << CCI_REG_WIDTH_SHIFT) | (x)) |