[media] media: ti-vpe: Add CAL v4l2 camera capture driver
The Camera Adaptation Layer (CAL) is a block which consists of a dual port CSI2/MIPI camera capture engine. Port #0 can handle CSI2 camera connected to up to 4 data lanes. Port #1 can handle CSI2 camera connected to up to 2 data lanes. The driver implements the required API/ioctls to be V4L2 compliant. Driver supports the following: - V4L2 API using DMABUF/MMAP buffer access based on videobuf2 api - Asynchronous sensor sub device registration - DT support Signed-off-by: Benoit Parrot <bparrot@ti.com> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
parent
ccf963d327
commit
343e89a792
|
@ -120,6 +120,18 @@ source "drivers/media/platform/s5p-tv/Kconfig"
|
|||
source "drivers/media/platform/am437x/Kconfig"
|
||||
source "drivers/media/platform/xilinx/Kconfig"
|
||||
|
||||
config VIDEO_TI_CAL
|
||||
tristate "TI CAL (Camera Adaptation Layer) driver"
|
||||
depends on VIDEO_DEV && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API
|
||||
depends on SOC_DRA7XX || COMPILE_TEST
|
||||
select VIDEOBUF2_DMA_CONTIG
|
||||
default n
|
||||
---help---
|
||||
Support for the TI CAL (Camera Adaptation Layer) block
|
||||
found on DRA72X SoC.
|
||||
In TI Technical Reference Manual this module is referred as
|
||||
Camera Interface Subsystem (CAMSS).
|
||||
|
||||
endif # V4L_PLATFORM_DRIVERS
|
||||
|
||||
menuconfig V4L_MEM2MEM_DRIVERS
|
||||
|
|
|
@ -18,6 +18,8 @@ obj-$(CONFIG_VIDEO_VIM2M) += vim2m.o
|
|||
|
||||
obj-$(CONFIG_VIDEO_TI_VPE) += ti-vpe/
|
||||
|
||||
obj-$(CONFIG_VIDEO_TI_CAL) += ti-vpe/
|
||||
|
||||
obj-$(CONFIG_VIDEO_MX2_EMMAPRP) += mx2_emmaprp.o
|
||||
obj-$(CONFIG_VIDEO_CODA) += coda/
|
||||
|
||||
|
|
|
@ -3,3 +3,7 @@ obj-$(CONFIG_VIDEO_TI_VPE) += ti-vpe.o
|
|||
ti-vpe-y := vpe.o sc.o csc.o vpdma.o
|
||||
|
||||
ccflags-$(CONFIG_VIDEO_TI_VPE_DEBUG) += -DDEBUG
|
||||
|
||||
obj-$(CONFIG_VIDEO_TI_CAL) += ti-cal.o
|
||||
|
||||
ti-cal-y := cal.o
|
||||
|
|
1970
drivers/media/platform/ti-vpe/cal.c
Normal file
1970
drivers/media/platform/ti-vpe/cal.c
Normal file
File diff suppressed because it is too large
Load diff
479
drivers/media/platform/ti-vpe/cal_regs.h
Normal file
479
drivers/media/platform/ti-vpe/cal_regs.h
Normal file
|
@ -0,0 +1,479 @@
|
|||
/*
|
||||
* TI CAL camera interface driver
|
||||
*
|
||||
* Copyright (c) 2015 Texas Instruments Inc.
|
||||
*
|
||||
* Benoit Parrot, <bparrot@ti.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 as published by
|
||||
* the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#ifndef __TI_CAL_REGS_H
|
||||
#define __TI_CAL_REGS_H
|
||||
|
||||
#define CAL_NUM_CSI2_PORTS 2
|
||||
|
||||
/* CAL register offsets */
|
||||
|
||||
#define CAL_HL_REVISION 0x0000
|
||||
#define CAL_HL_HWINFO 0x0004
|
||||
#define CAL_HL_SYSCONFIG 0x0010
|
||||
#define CAL_HL_IRQ_EOI 0x001c
|
||||
#define CAL_HL_IRQSTATUS_RAW(m) (0x20U + ((m-1) * 0x10U))
|
||||
#define CAL_HL_IRQSTATUS(m) (0x24U + ((m-1) * 0x10U))
|
||||
#define CAL_HL_IRQENABLE_SET(m) (0x28U + ((m-1) * 0x10U))
|
||||
#define CAL_HL_IRQENABLE_CLR(m) (0x2cU + ((m-1) * 0x10U))
|
||||
#define CAL_PIX_PROC(m) (0xc0U + ((m-1) * 0x4U))
|
||||
#define CAL_CTRL 0x100
|
||||
#define CAL_CTRL1 0x104
|
||||
#define CAL_LINE_NUMBER_EVT 0x108
|
||||
#define CAL_VPORT_CTRL1 0x120
|
||||
#define CAL_VPORT_CTRL2 0x124
|
||||
#define CAL_BYS_CTRL1 0x130
|
||||
#define CAL_BYS_CTRL2 0x134
|
||||
#define CAL_RD_DMA_CTRL 0x140
|
||||
#define CAL_RD_DMA_PIX_ADDR 0x144
|
||||
#define CAL_RD_DMA_PIX_OFST 0x148
|
||||
#define CAL_RD_DMA_XSIZE 0x14c
|
||||
#define CAL_RD_DMA_YSIZE 0x150
|
||||
#define CAL_RD_DMA_INIT_ADDR 0x154
|
||||
#define CAL_RD_DMA_INIT_OFST 0x168
|
||||
#define CAL_RD_DMA_CTRL2 0x16c
|
||||
#define CAL_WR_DMA_CTRL(m) (0x200U + ((m-1) * 0x10U))
|
||||
#define CAL_WR_DMA_ADDR(m) (0x204U + ((m-1) * 0x10U))
|
||||
#define CAL_WR_DMA_OFST(m) (0x208U + ((m-1) * 0x10U))
|
||||
#define CAL_WR_DMA_XSIZE(m) (0x20cU + ((m-1) * 0x10U))
|
||||
#define CAL_CSI2_PPI_CTRL(m) (0x300U + ((m-1) * 0x80U))
|
||||
#define CAL_CSI2_COMPLEXIO_CFG(m) (0x304U + ((m-1) * 0x80U))
|
||||
#define CAL_CSI2_COMPLEXIO_IRQSTATUS(m) (0x308U + ((m-1) * 0x80U))
|
||||
#define CAL_CSI2_SHORT_PACKET(m) (0x30cU + ((m-1) * 0x80U))
|
||||
#define CAL_CSI2_COMPLEXIO_IRQENABLE(m) (0x310U + ((m-1) * 0x80U))
|
||||
#define CAL_CSI2_TIMING(m) (0x314U + ((m-1) * 0x80U))
|
||||
#define CAL_CSI2_VC_IRQENABLE(m) (0x318U + ((m-1) * 0x80U))
|
||||
#define CAL_CSI2_VC_IRQSTATUS(m) (0x328U + ((m-1) * 0x80U))
|
||||
#define CAL_CSI2_CTX0(m) (0x330U + ((m-1) * 0x80U))
|
||||
#define CAL_CSI2_CTX1(m) (0x334U + ((m-1) * 0x80U))
|
||||
#define CAL_CSI2_CTX2(m) (0x338U + ((m-1) * 0x80U))
|
||||
#define CAL_CSI2_CTX3(m) (0x33cU + ((m-1) * 0x80U))
|
||||
#define CAL_CSI2_CTX4(m) (0x340U + ((m-1) * 0x80U))
|
||||
#define CAL_CSI2_CTX5(m) (0x344U + ((m-1) * 0x80U))
|
||||
#define CAL_CSI2_CTX6(m) (0x348U + ((m-1) * 0x80U))
|
||||
#define CAL_CSI2_CTX7(m) (0x34cU + ((m-1) * 0x80U))
|
||||
#define CAL_CSI2_STATUS0(m) (0x350U + ((m-1) * 0x80U))
|
||||
#define CAL_CSI2_STATUS1(m) (0x354U + ((m-1) * 0x80U))
|
||||
#define CAL_CSI2_STATUS2(m) (0x358U + ((m-1) * 0x80U))
|
||||
#define CAL_CSI2_STATUS3(m) (0x35cU + ((m-1) * 0x80U))
|
||||
#define CAL_CSI2_STATUS4(m) (0x360U + ((m-1) * 0x80U))
|
||||
#define CAL_CSI2_STATUS5(m) (0x364U + ((m-1) * 0x80U))
|
||||
#define CAL_CSI2_STATUS6(m) (0x368U + ((m-1) * 0x80U))
|
||||
#define CAL_CSI2_STATUS7(m) (0x36cU + ((m-1) * 0x80U))
|
||||
|
||||
/* CAL CSI2 PHY register offsets */
|
||||
#define CAL_CSI2_PHY_REG0 0x000
|
||||
#define CAL_CSI2_PHY_REG1 0x004
|
||||
#define CAL_CSI2_PHY_REG2 0x008
|
||||
|
||||
/* CAL Control Module Core Camerrx Control register offsets */
|
||||
#define CM_CTRL_CORE_CAMERRX_CONTROL 0x000
|
||||
|
||||
/*********************************************************************
|
||||
* Generic value used in various field below
|
||||
*********************************************************************/
|
||||
|
||||
#define CAL_GEN_DISABLE 0
|
||||
#define CAL_GEN_ENABLE 1
|
||||
#define CAL_GEN_FALSE 0
|
||||
#define CAL_GEN_TRUE 1
|
||||
|
||||
/*********************************************************************
|
||||
* Field Definition Macros
|
||||
*********************************************************************/
|
||||
|
||||
#define CAL_HL_REVISION_MINOR_MASK GENMASK(5, 0)
|
||||
#define CAL_HL_REVISION_CUSTOM_MASK GENMASK(7, 6)
|
||||
#define CAL_HL_REVISION_MAJOR_MASK GENMASK(10, 8)
|
||||
#define CAL_HL_REVISION_RTL_MASK GENMASK(15, 11)
|
||||
#define CAL_HL_REVISION_FUNC_MASK GENMASK(27, 16)
|
||||
#define CAL_HL_REVISION_SCHEME_MASK GENMASK(31, 30)
|
||||
#define CAL_HL_REVISION_SCHEME_H08 1
|
||||
#define CAL_HL_REVISION_SCHEME_LEGACY 0
|
||||
|
||||
#define CAL_HL_HWINFO_WFIFO_MASK GENMASK(3, 0)
|
||||
#define CAL_HL_HWINFO_RFIFO_MASK GENMASK(7, 4)
|
||||
#define CAL_HL_HWINFO_PCTX_MASK GENMASK(12, 8)
|
||||
#define CAL_HL_HWINFO_WCTX_MASK GENMASK(18, 13)
|
||||
#define CAL_HL_HWINFO_VFIFO_MASK GENMASK(22, 19)
|
||||
#define CAL_HL_HWINFO_NCPORT_MASK GENMASK(27, 23)
|
||||
#define CAL_HL_HWINFO_NPPI_CTXS0_MASK GENMASK(29, 28)
|
||||
#define CAL_HL_HWINFO_NPPI_CTXS1_MASK GENMASK(31, 30)
|
||||
#define CAL_HL_HWINFO_NPPI_CONTEXTS_ZERO 0
|
||||
#define CAL_HL_HWINFO_NPPI_CONTEXTS_FOUR 1
|
||||
#define CAL_HL_HWINFO_NPPI_CONTEXTS_EIGHT 2
|
||||
#define CAL_HL_HWINFO_NPPI_CONTEXTS_RESERVED 3
|
||||
|
||||
#define CAL_HL_SYSCONFIG_SOFTRESET_MASK BIT_MASK(0)
|
||||
#define CAL_HL_SYSCONFIG_SOFTRESET_DONE 0x0
|
||||
#define CAL_HL_SYSCONFIG_SOFTRESET_PENDING 0x1
|
||||
#define CAL_HL_SYSCONFIG_SOFTRESET_NOACTION 0x0
|
||||
#define CAL_HL_SYSCONFIG_SOFTRESET_RESET 0x1
|
||||
#define CAL_HL_SYSCONFIG_IDLE_MASK GENMASK(3, 2)
|
||||
#define CAL_HL_SYSCONFIG_IDLEMODE_FORCE 0
|
||||
#define CAL_HL_SYSCONFIG_IDLEMODE_NO 1
|
||||
#define CAL_HL_SYSCONFIG_IDLEMODE_SMART1 2
|
||||
#define CAL_HL_SYSCONFIG_IDLEMODE_SMART2 3
|
||||
|
||||
#define CAL_HL_IRQ_EOI_LINE_NUMBER_MASK BIT_MASK(0)
|
||||
#define CAL_HL_IRQ_EOI_LINE_NUMBER_READ0 0
|
||||
#define CAL_HL_IRQ_EOI_LINE_NUMBER_EOI0 0
|
||||
|
||||
#define CAL_HL_IRQ_MASK(m) BIT_MASK(m-1)
|
||||
#define CAL_HL_IRQ_NOACTION 0x0
|
||||
#define CAL_HL_IRQ_ENABLE 0x1
|
||||
#define CAL_HL_IRQ_CLEAR 0x1
|
||||
#define CAL_HL_IRQ_DISABLED 0x0
|
||||
#define CAL_HL_IRQ_ENABLED 0x1
|
||||
#define CAL_HL_IRQ_PENDING 0x1
|
||||
|
||||
#define CAL_PIX_PROC_EN_MASK BIT_MASK(0)
|
||||
#define CAL_PIX_PROC_EXTRACT_MASK GENMASK(4, 1)
|
||||
#define CAL_PIX_PROC_EXTRACT_B6 0x0
|
||||
#define CAL_PIX_PROC_EXTRACT_B7 0x1
|
||||
#define CAL_PIX_PROC_EXTRACT_B8 0x2
|
||||
#define CAL_PIX_PROC_EXTRACT_B10 0x3
|
||||
#define CAL_PIX_PROC_EXTRACT_B10_MIPI 0x4
|
||||
#define CAL_PIX_PROC_EXTRACT_B12 0x5
|
||||
#define CAL_PIX_PROC_EXTRACT_B12_MIPI 0x6
|
||||
#define CAL_PIX_PROC_EXTRACT_B14 0x7
|
||||
#define CAL_PIX_PROC_EXTRACT_B14_MIPI 0x8
|
||||
#define CAL_PIX_PROC_EXTRACT_B16_BE 0x9
|
||||
#define CAL_PIX_PROC_EXTRACT_B16_LE 0xa
|
||||
#define CAL_PIX_PROC_DPCMD_MASK GENMASK(9, 5)
|
||||
#define CAL_PIX_PROC_DPCMD_BYPASS 0x0
|
||||
#define CAL_PIX_PROC_DPCMD_DPCM_10_8_1 0x2
|
||||
#define CAL_PIX_PROC_DPCMD_DPCM_12_8_1 0x8
|
||||
#define CAL_PIX_PROC_DPCMD_DPCM_10_7_1 0x4
|
||||
#define CAL_PIX_PROC_DPCMD_DPCM_10_7_2 0x5
|
||||
#define CAL_PIX_PROC_DPCMD_DPCM_10_6_1 0x6
|
||||
#define CAL_PIX_PROC_DPCMD_DPCM_10_6_2 0x7
|
||||
#define CAL_PIX_PROC_DPCMD_DPCM_12_7_1 0xa
|
||||
#define CAL_PIX_PROC_DPCMD_DPCM_12_6_1 0xc
|
||||
#define CAL_PIX_PROC_DPCMD_DPCM_14_10 0xe
|
||||
#define CAL_PIX_PROC_DPCMD_DPCM_14_8_1 0x10
|
||||
#define CAL_PIX_PROC_DPCMD_DPCM_16_12_1 0x12
|
||||
#define CAL_PIX_PROC_DPCMD_DPCM_16_10_1 0x14
|
||||
#define CAL_PIX_PROC_DPCMD_DPCM_16_8_1 0x16
|
||||
#define CAL_PIX_PROC_DPCME_MASK GENMASK(15, 11)
|
||||
#define CAL_PIX_PROC_DPCME_BYPASS 0x0
|
||||
#define CAL_PIX_PROC_DPCME_DPCM_10_8_1 0x2
|
||||
#define CAL_PIX_PROC_DPCME_DPCM_12_8_1 0x8
|
||||
#define CAL_PIX_PROC_DPCME_DPCM_14_10 0xe
|
||||
#define CAL_PIX_PROC_DPCME_DPCM_14_8_1 0x10
|
||||
#define CAL_PIX_PROC_DPCME_DPCM_16_12_1 0x12
|
||||
#define CAL_PIX_PROC_DPCME_DPCM_16_10_1 0x14
|
||||
#define CAL_PIX_PROC_DPCME_DPCM_16_8_1 0x16
|
||||
#define CAL_PIX_PROC_PACK_MASK GENMASK(18, 16)
|
||||
#define CAL_PIX_PROC_PACK_B8 0x0
|
||||
#define CAL_PIX_PROC_PACK_B10_MIPI 0x2
|
||||
#define CAL_PIX_PROC_PACK_B12 0x3
|
||||
#define CAL_PIX_PROC_PACK_B12_MIPI 0x4
|
||||
#define CAL_PIX_PROC_PACK_B16 0x5
|
||||
#define CAL_PIX_PROC_PACK_ARGB 0x6
|
||||
#define CAL_PIX_PROC_CPORT_MASK GENMASK(23, 19)
|
||||
|
||||
#define CAL_CTRL_POSTED_WRITES_MASK BIT_MASK(0)
|
||||
#define CAL_CTRL_POSTED_WRITES_NONPOSTED 0
|
||||
#define CAL_CTRL_POSTED_WRITES 1
|
||||
#define CAL_CTRL_TAGCNT_MASK GENMASK(4, 1)
|
||||
#define CAL_CTRL_BURSTSIZE_MASK GENMASK(6, 5)
|
||||
#define CAL_CTRL_BURSTSIZE_BURST16 0x0
|
||||
#define CAL_CTRL_BURSTSIZE_BURST32 0x1
|
||||
#define CAL_CTRL_BURSTSIZE_BURST64 0x2
|
||||
#define CAL_CTRL_BURSTSIZE_BURST128 0x3
|
||||
#define CAL_CTRL_LL_FORCE_STATE_MASK GENMASK(12, 7)
|
||||
#define CAL_CTRL_MFLAGL_MASK GENMASK(20, 13)
|
||||
#define CAL_CTRL_PWRSCPCLK_MASK BIT_MASK(21)
|
||||
#define CAL_CTRL_PWRSCPCLK_AUTO 0
|
||||
#define CAL_CTRL_PWRSCPCLK_FORCE 1
|
||||
#define CAL_CTRL_RD_DMA_STALL_MASK BIT_MASK(22)
|
||||
#define CAL_CTRL_MFLAGH_MASK GENMASK(31, 24)
|
||||
|
||||
#define CAL_CTRL1_PPI_GROUPING_MASK GENMASK(1, 0)
|
||||
#define CAL_CTRL1_PPI_GROUPING_DISABLED 0
|
||||
#define CAL_CTRL1_PPI_GROUPING_RESERVED 1
|
||||
#define CAL_CTRL1_PPI_GROUPING_0 2
|
||||
#define CAL_CTRL1_PPI_GROUPING_1 3
|
||||
#define CAL_CTRL1_INTERLEAVE01_MASK GENMASK(3, 2)
|
||||
#define CAL_CTRL1_INTERLEAVE01_DISABLED 0
|
||||
#define CAL_CTRL1_INTERLEAVE01_PIX1 1
|
||||
#define CAL_CTRL1_INTERLEAVE01_PIX4 2
|
||||
#define CAL_CTRL1_INTERLEAVE01_RESERVED 3
|
||||
#define CAL_CTRL1_INTERLEAVE23_MASK GENMASK(5, 4)
|
||||
#define CAL_CTRL1_INTERLEAVE23_DISABLED 0
|
||||
#define CAL_CTRL1_INTERLEAVE23_PIX1 1
|
||||
#define CAL_CTRL1_INTERLEAVE23_PIX4 2
|
||||
#define CAL_CTRL1_INTERLEAVE23_RESERVED 3
|
||||
|
||||
#define CAL_LINE_NUMBER_EVT_CPORT_MASK GENMASK(4, 0)
|
||||
#define CAL_LINE_NUMBER_EVT_MASK GENMASK(29, 16)
|
||||
|
||||
#define CAL_VPORT_CTRL1_PCLK_MASK GENMASK(16, 0)
|
||||
#define CAL_VPORT_CTRL1_XBLK_MASK GENMASK(24, 17)
|
||||
#define CAL_VPORT_CTRL1_YBLK_MASK GENMASK(30, 25)
|
||||
#define CAL_VPORT_CTRL1_WIDTH_MASK BIT_MASK(31)
|
||||
#define CAL_VPORT_CTRL1_WIDTH_ONE 0
|
||||
#define CAL_VPORT_CTRL1_WIDTH_TWO 1
|
||||
|
||||
#define CAL_VPORT_CTRL2_CPORT_MASK GENMASK(4, 0)
|
||||
#define CAL_VPORT_CTRL2_FREERUNNING_MASK BIT_MASK(15)
|
||||
#define CAL_VPORT_CTRL2_FREERUNNING_GATED 0
|
||||
#define CAL_VPORT_CTRL2_FREERUNNING_FREE 1
|
||||
#define CAL_VPORT_CTRL2_FS_RESETS_MASK BIT_MASK(16)
|
||||
#define CAL_VPORT_CTRL2_FS_RESETS_NO 0
|
||||
#define CAL_VPORT_CTRL2_FS_RESETS_YES 1
|
||||
#define CAL_VPORT_CTRL2_FSM_RESET_MASK BIT_MASK(17)
|
||||
#define CAL_VPORT_CTRL2_FSM_RESET_NOEFFECT 0
|
||||
#define CAL_VPORT_CTRL2_FSM_RESET 1
|
||||
#define CAL_VPORT_CTRL2_RDY_THR_MASK GENMASK(31, 18)
|
||||
|
||||
#define CAL_BYS_CTRL1_PCLK_MASK GENMASK(16, 0)
|
||||
#define CAL_BYS_CTRL1_XBLK_MASK GENMASK(24, 17)
|
||||
#define CAL_BYS_CTRL1_YBLK_MASK GENMASK(30, 25)
|
||||
#define CAL_BYS_CTRL1_BYSINEN_MASK BIT_MASK(31)
|
||||
|
||||
#define CAL_BYS_CTRL2_CPORTIN_MASK GENMASK(4, 0)
|
||||
#define CAL_BYS_CTRL2_CPORTOUT_MASK GENMASK(9, 5)
|
||||
#define CAL_BYS_CTRL2_DUPLICATEDDATA_MASK BIT_MASK(10)
|
||||
#define CAL_BYS_CTRL2_DUPLICATEDDATA_NO 0
|
||||
#define CAL_BYS_CTRL2_DUPLICATEDDATA_YES 1
|
||||
#define CAL_BYS_CTRL2_FREERUNNING_MASK BIT_MASK(11)
|
||||
#define CAL_BYS_CTRL2_FREERUNNING_NO 0
|
||||
#define CAL_BYS_CTRL2_FREERUNNING_YES 1
|
||||
|
||||
#define CAL_RD_DMA_CTRL_GO_MASK BIT_MASK(0)
|
||||
#define CAL_RD_DMA_CTRL_GO_DIS 0
|
||||
#define CAL_RD_DMA_CTRL_GO_EN 1
|
||||
#define CAL_RD_DMA_CTRL_GO_IDLE 0
|
||||
#define CAL_RD_DMA_CTRL_GO_BUSY 1
|
||||
#define CAL_RD_DMA_CTRL_INIT_MASK BIT_MASK(1)
|
||||
#define CAL_RD_DMA_CTRL_BW_LIMITER_MASK GENMASK(10, 2)
|
||||
#define CAL_RD_DMA_CTRL_OCP_TAG_CNT_MASK GENMASK(14, 11)
|
||||
#define CAL_RD_DMA_CTRL_PCLK_MASK GENMASK(31, 15)
|
||||
|
||||
#define CAL_RD_DMA_PIX_ADDR_MASK GENMASK(31, 3)
|
||||
|
||||
#define CAL_RD_DMA_PIX_OFST_MASK GENMASK(31, 4)
|
||||
|
||||
#define CAL_RD_DMA_XSIZE_MASK GENMASK(31, 19)
|
||||
|
||||
#define CAL_RD_DMA_YSIZE_MASK GENMASK(29, 16)
|
||||
|
||||
#define CAL_RD_DMA_INIT_ADDR_MASK GENMASK(31, 3)
|
||||
|
||||
#define CAL_RD_DMA_INIT_OFST_MASK GENMASK(31, 3)
|
||||
|
||||
#define CAL_RD_DMA_CTRL2_CIRC_MODE_MASK GENMASK(2, 0)
|
||||
#define CAL_RD_DMA_CTRL2_CIRC_MODE_DIS 0
|
||||
#define CAL_RD_DMA_CTRL2_CIRC_MODE_ONE 1
|
||||
#define CAL_RD_DMA_CTRL2_CIRC_MODE_FOUR 2
|
||||
#define CAL_RD_DMA_CTRL2_CIRC_MODE_SIXTEEN 3
|
||||
#define CAL_RD_DMA_CTRL2_CIRC_MODE_SIXTYFOUR 4
|
||||
#define CAL_RD_DMA_CTRL2_CIRC_MODE_RESERVED 5
|
||||
#define CAL_RD_DMA_CTRL2_ICM_CSTART_MASK BIT_MASK(3)
|
||||
#define CAL_RD_DMA_CTRL2_PATTERN_MASK GENMASK(5, 4)
|
||||
#define CAL_RD_DMA_CTRL2_PATTERN_LINEAR 0
|
||||
#define CAL_RD_DMA_CTRL2_PATTERN_YUV420 1
|
||||
#define CAL_RD_DMA_CTRL2_PATTERN_RD2SKIP2 2
|
||||
#define CAL_RD_DMA_CTRL2_PATTERN_RD2SKIP4 3
|
||||
#define CAL_RD_DMA_CTRL2_BYSOUT_LE_WAIT_MASK BIT_MASK(6)
|
||||
#define CAL_RD_DMA_CTRL2_BYSOUT_LE_WAIT_FREERUNNING 0
|
||||
#define CAL_RD_DMA_CTRL2_BYSOUT_LE_WAIT_WAITFORBYSOUT 1
|
||||
#define CAL_RD_DMA_CTRL2_CIRC_SIZE_MASK GENMASK(29, 16)
|
||||
|
||||
#define CAL_WR_DMA_CTRL_MODE_MASK GENMASK(2, 0)
|
||||
#define CAL_WR_DMA_CTRL_MODE_DIS 0
|
||||
#define CAL_WR_DMA_CTRL_MODE_SHD 1
|
||||
#define CAL_WR_DMA_CTRL_MODE_CNT 2
|
||||
#define CAL_WR_DMA_CTRL_MODE_CNT_INIT 3
|
||||
#define CAL_WR_DMA_CTRL_MODE_CONST 4
|
||||
#define CAL_WR_DMA_CTRL_MODE_RESERVED 5
|
||||
#define CAL_WR_DMA_CTRL_PATTERN_MASK GENMASK(4, 3)
|
||||
#define CAL_WR_DMA_CTRL_PATTERN_LINEAR 0
|
||||
#define CAL_WR_DMA_CTRL_PATTERN_WR2SKIP2 2
|
||||
#define CAL_WR_DMA_CTRL_PATTERN_WR2SKIP4 3
|
||||
#define CAL_WR_DMA_CTRL_PATTERN_RESERVED 1
|
||||
#define CAL_WR_DMA_CTRL_ICM_PSTART_MASK BIT_MASK(5)
|
||||
#define CAL_WR_DMA_CTRL_DTAG_MASK GENMASK(8, 6)
|
||||
#define CAL_WR_DMA_CTRL_DTAG_ATT_HDR 0
|
||||
#define CAL_WR_DMA_CTRL_DTAG_ATT_DAT 1
|
||||
#define CAL_WR_DMA_CTRL_DTAG 2
|
||||
#define CAL_WR_DMA_CTRL_DTAG_PIX_HDR 3
|
||||
#define CAL_WR_DMA_CTRL_DTAG_PIX_DAT 4
|
||||
#define CAL_WR_DMA_CTRL_DTAG_D5 5
|
||||
#define CAL_WR_DMA_CTRL_DTAG_D6 6
|
||||
#define CAL_WR_DMA_CTRL_DTAG_D7 7
|
||||
#define CAL_WR_DMA_CTRL_CPORT_MASK GENMASK(13, 9)
|
||||
#define CAL_WR_DMA_CTRL_STALL_RD_MASK BIT_MASK(14)
|
||||
#define CAL_WR_DMA_CTRL_YSIZE_MASK GENMASK(31, 18)
|
||||
|
||||
#define CAL_WR_DMA_ADDR_MASK GENMASK(31, 4)
|
||||
|
||||
#define CAL_WR_DMA_OFST_MASK GENMASK(18, 4)
|
||||
#define CAL_WR_DMA_OFST_CIRC_MODE_MASK GENMASK(23, 22)
|
||||
#define CAL_WR_DMA_OFST_CIRC_MODE_ONE 1
|
||||
#define CAL_WR_DMA_OFST_CIRC_MODE_FOUR 2
|
||||
#define CAL_WR_DMA_OFST_CIRC_MODE_SIXTYFOUR 3
|
||||
#define CAL_WR_DMA_OFST_CIRC_MODE_DISABLED 0
|
||||
#define CAL_WR_DMA_OFST_CIRC_SIZE_MASK GENMASK(31, 24)
|
||||
|
||||
#define CAL_WR_DMA_XSIZE_XSKIP_MASK GENMASK(15, 3)
|
||||
#define CAL_WR_DMA_XSIZE_MASK GENMASK(31, 19)
|
||||
|
||||
#define CAL_CSI2_PPI_CTRL_IF_EN_MASK BIT_MASK(0)
|
||||
#define CAL_CSI2_PPI_CTRL_ECC_EN_MASK BIT_MASK(2)
|
||||
#define CAL_CSI2_PPI_CTRL_FRAME_MASK BIT_MASK(3)
|
||||
#define CAL_CSI2_PPI_CTRL_FRAME_IMMEDIATE 0
|
||||
#define CAL_CSI2_PPI_CTRL_FRAME 1
|
||||
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_CLOCK_POSITION_MASK GENMASK(2, 0)
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_POSITION_5 5
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_POSITION_4 4
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_POSITION_3 3
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_POSITION_2 2
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_POSITION_1 1
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_POSITION_NOT_USED 0
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_CLOCK_POL_MASK BIT_MASK(3)
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_POL_PLUSMINUS 0
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_POL_MINUSPLUS 1
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_DATA1_POSITION_MASK GENMASK(6, 4)
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_DATA1_POL_MASK BIT_MASK(7)
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_DATA2_POSITION_MASK GENMASK(10, 8)
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_DATA2_POL_MASK BIT_MASK(11)
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_DATA3_POSITION_MASK GENMASK(14, 12)
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_DATA3_POL_MASK BIT_MASK(15)
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_DATA4_POSITION_MASK GENMASK(18, 16)
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_DATA4_POL_MASK BIT_MASK(19)
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_PWR_AUTO_MASK BIT_MASK(24)
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_PWR_STATUS_MASK GENMASK(26, 25)
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_PWR_STATUS_STATE_OFF 0
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_PWR_STATUS_STATE_ON 1
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_PWR_STATUS_STATE_ULP 2
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_PWR_CMD_MASK GENMASK(28, 27)
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_PWR_CMD_STATE_OFF 0
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_PWR_CMD_STATE_ON 1
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_PWR_CMD_STATE_ULP 2
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_RESET_DONE_MASK BIT_MASK(29)
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_RESET_DONE_RESETCOMPLETED 1
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_RESET_DONE_RESETONGOING 0
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_RESET_CTRL_MASK BIT_MASK(30)
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_RESET_CTRL 0
|
||||
#define CAL_CSI2_COMPLEXIO_CFG_RESET_CTRL_OPERATIONAL 1
|
||||
|
||||
#define CAL_CSI2_SHORT_PACKET_MASK GENMASK(23, 0)
|
||||
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_ERRSOTHS1_MASK BIT_MASK(0)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_ERRSOTHS2_MASK BIT_MASK(1)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_ERRSOTHS3_MASK BIT_MASK(2)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_ERRSOTHS4_MASK BIT_MASK(3)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_ERRSOTHS5_MASK BIT_MASK(4)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_ERRSOTSYNCHS1_MASK BIT_MASK(5)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_ERRSOTSYNCHS2_MASK BIT_MASK(6)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_ERRSOTSYNCHS3_MASK BIT_MASK(7)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_ERRSOTSYNCHS4_MASK BIT_MASK(8)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_ERRSOTSYNCHS5_MASK BIT_MASK(9)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_ERRESC1_MASK BIT_MASK(10)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_ERRESC2_MASK BIT_MASK(11)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_ERRESC3_MASK BIT_MASK(12)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_ERRESC4_MASK BIT_MASK(13)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_ERRESC5_MASK BIT_MASK(14)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_ERRCONTROL1_MASK BIT_MASK(15)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_ERRCONTROL2_MASK BIT_MASK(16)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_ERRCONTROL3_MASK BIT_MASK(17)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_ERRCONTROL4_MASK BIT_MASK(18)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_ERRCONTROL5_MASK BIT_MASK(19)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_STATEULPM1_MASK BIT_MASK(20)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_STATEULPM2_MASK BIT_MASK(21)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_STATEULPM3_MASK BIT_MASK(22)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_STATEULPM4_MASK BIT_MASK(23)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_STATEULPM5_MASK BIT_MASK(24)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_STATEALLULPMENTER_MASK BIT_MASK(25)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_STATEALLULPMEXIT_MASK BIT_MASK(26)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_FIFO_OVR_MASK BIT_MASK(27)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_SHORT_PACKET_MASK BIT_MASK(28)
|
||||
#define CAL_CSI2_COMPLEXIO_IRQ_ECC_NO_CORRECTION_MASK BIT_MASK(30)
|
||||
|
||||
#define CAL_CSI2_TIMING_STOP_STATE_COUNTER_IO1_MASK GENMASK(12, 0)
|
||||
#define CAL_CSI2_TIMING_STOP_STATE_X4_IO1_MASK BIT_MASK(13)
|
||||
#define CAL_CSI2_TIMING_STOP_STATE_X16_IO1_MASK BIT_MASK(14)
|
||||
#define CAL_CSI2_TIMING_FORCE_RX_MODE_IO1_MASK BIT_MASK(15)
|
||||
|
||||
#define CAL_CSI2_VC_IRQ_FS_IRQ_0_MASK BIT_MASK(0)
|
||||
#define CAL_CSI2_VC_IRQ_FE_IRQ_0_MASK BIT_MASK(1)
|
||||
#define CAL_CSI2_VC_IRQ_LS_IRQ_0_MASK BIT_MASK(2)
|
||||
#define CAL_CSI2_VC_IRQ_LE_IRQ_0_MASK BIT_MASK(3)
|
||||
#define CAL_CSI2_VC_IRQ_CS_IRQ_0_MASK BIT_MASK(4)
|
||||
#define CAL_CSI2_VC_IRQ_ECC_CORRECTION0_IRQ_0_MASK BIT_MASK(5)
|
||||
#define CAL_CSI2_VC_IRQ_FS_IRQ_1_MASK BIT_MASK(8)
|
||||
#define CAL_CSI2_VC_IRQ_FE_IRQ_1_MASK BIT_MASK(9)
|
||||
#define CAL_CSI2_VC_IRQ_LS_IRQ_1_MASK BIT_MASK(10)
|
||||
#define CAL_CSI2_VC_IRQ_LE_IRQ_1_MASK BIT_MASK(11)
|
||||
#define CAL_CSI2_VC_IRQ_CS_IRQ_1_MASK BIT_MASK(12)
|
||||
#define CAL_CSI2_VC_IRQ_ECC_CORRECTION0_IRQ_1_MASK BIT_MASK(13)
|
||||
#define CAL_CSI2_VC_IRQ_FS_IRQ_2_MASK BIT_MASK(16)
|
||||
#define CAL_CSI2_VC_IRQ_FE_IRQ_2_MASK BIT_MASK(17)
|
||||
#define CAL_CSI2_VC_IRQ_LS_IRQ_2_MASK BIT_MASK(18)
|
||||
#define CAL_CSI2_VC_IRQ_LE_IRQ_2_MASK BIT_MASK(19)
|
||||
#define CAL_CSI2_VC_IRQ_CS_IRQ_2_MASK BIT_MASK(20)
|
||||
#define CAL_CSI2_VC_IRQ_ECC_CORRECTION0_IRQ_2_MASK BIT_MASK(21)
|
||||
#define CAL_CSI2_VC_IRQ_FS_IRQ_3_MASK BIT_MASK(24)
|
||||
#define CAL_CSI2_VC_IRQ_FE_IRQ_3_MASK BIT_MASK(25)
|
||||
#define CAL_CSI2_VC_IRQ_LS_IRQ_3_MASK BIT_MASK(26)
|
||||
#define CAL_CSI2_VC_IRQ_LE_IRQ_3_MASK BIT_MASK(27)
|
||||
#define CAL_CSI2_VC_IRQ_CS_IRQ_3_MASK BIT_MASK(28)
|
||||
#define CAL_CSI2_VC_IRQ_ECC_CORRECTION0_IRQ_3_MASK BIT_MASK(29)
|
||||
|
||||
#define CAL_CSI2_CTX_DT_MASK GENMASK(5, 0)
|
||||
#define CAL_CSI2_CTX_VC_MASK GENMASK(7, 6)
|
||||
#define CAL_CSI2_CTX_CPORT_MASK GENMASK(12, 8)
|
||||
#define CAL_CSI2_CTX_ATT_MASK BIT_MASK(13)
|
||||
#define CAL_CSI2_CTX_ATT_PIX 0
|
||||
#define CAL_CSI2_CTX_ATT 1
|
||||
#define CAL_CSI2_CTX_PACK_MODE_MASK BIT_MASK(14)
|
||||
#define CAL_CSI2_CTX_PACK_MODE_LINE 0
|
||||
#define CAL_CSI2_CTX_PACK_MODE_FRAME 1
|
||||
#define CAL_CSI2_CTX_LINES_MASK GENMASK(29, 16)
|
||||
|
||||
#define CAL_CSI2_STATUS_FRAME_MASK GENMASK(15, 0)
|
||||
|
||||
#define CAL_CSI2_PHY_REG0_THS_SETTLE_MASK GENMASK(7, 0)
|
||||
#define CAL_CSI2_PHY_REG0_THS_TERM_MASK GENMASK(15, 8)
|
||||
#define CAL_CSI2_PHY_REG0_HSCLOCKCONFIG_MASK BIT_MASK(24)
|
||||
#define CAL_CSI2_PHY_REG0_HSCLOCKCONFIG_DISABLE 1
|
||||
#define CAL_CSI2_PHY_REG0_HSCLOCKCONFIG_ENABLE 0
|
||||
|
||||
#define CAL_CSI2_PHY_REG1_TCLK_SETTLE_MASK GENMASK(7, 0)
|
||||
#define CAL_CSI2_PHY_REG1_CTRLCLK_DIV_FACTOR_MASK GENMASK(9, 8)
|
||||
#define CAL_CSI2_PHY_REG1_DPHY_HS_SYNC_PATTERN_MASK GENMASK(17, 10)
|
||||
#define CAL_CSI2_PHY_REG1_TCLK_TERM_MASK GENMASK(24, 18)
|
||||
#define CAL_CSI2_PHY_REG1_CLOCK_MISS_DETECTOR_STATUS_MASK BIT_MASK(25)
|
||||
#define CAL_CSI2_PHY_REG1_CLOCK_MISS_DETECTOR_STATUS_ERROR 1
|
||||
#define CAL_CSI2_PHY_REG1_CLOCK_MISS_DETECTOR_STATUS_SUCCESS 0
|
||||
#define CAL_CSI2_PHY_REG1_RESET_DONE_STATUS_MASK GENMASK(29, 28)
|
||||
|
||||
#define CAL_CSI2_PHY_REG2_CCP2_SYNC_PATTERN_MASK GENMASK(23, 0)
|
||||
#define CAL_CSI2_PHY_REG2_TRIGGER_CMD_RXTRIGESC3_MASK GENMASK(25, 24)
|
||||
#define CAL_CSI2_PHY_REG2_TRIGGER_CMD_RXTRIGESC2_MASK GENMASK(27, 26)
|
||||
#define CAL_CSI2_PHY_REG2_TRIGGER_CMD_RXTRIGESC1_MASK GENMASK(29, 28)
|
||||
#define CAL_CSI2_PHY_REG2_TRIGGER_CMD_RXTRIGESC0_MASK GENMASK(31, 30)
|
||||
|
||||
#define CM_CAMERRX_CTRL_CSI1_CTRLCLKEN_MASK BIT_MASK(0)
|
||||
#define CM_CAMERRX_CTRL_CSI1_CAMMODE_MASK GENMASK(2, 1)
|
||||
#define CM_CAMERRX_CTRL_CSI1_LANEENABLE_MASK GENMASK(4, 3)
|
||||
#define CM_CAMERRX_CTRL_CSI1_MODE_MASK BIT_MASK(5)
|
||||
#define CM_CAMERRX_CTRL_CSI0_CTRLCLKEN_MASK BIT_MASK(10)
|
||||
#define CM_CAMERRX_CTRL_CSI0_CAMMODE_MASK GENMASK(12, 11)
|
||||
#define CM_CAMERRX_CTRL_CSI0_LANEENABLE_MASK GENMASK(16, 13)
|
||||
#define CM_CAMERRX_CTRL_CSI0_MODE_MASK BIT_MASK(17)
|
||||
|
||||
#endif
|
Loading…
Reference in a new issue