123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- /**
- ******************************************************************************
- * @file stf_isp_oecf_rdma.h
- * @author StarFive Isp Team
- * @version V1.0
- * @date 12/14/2019
- * @brief
- ******************************************************************************
- * @copy
- *
- * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
- * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
- * TIME. AS A RESULT, STARFIVE SHALL NOT BE HELD LIABLE FOR ANY
- * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
- * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
- * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
- *
- * Copyright (C) 2019 - 2022 StarFive Technology Co., Ltd.
- */
- #ifndef __STF_ISP_OECF_RDMA_H__
- #define __STF_ISP_OECF_RDMA_H__
- #include "registers/stf_isp_rdma.h"
- /* add oecf registers structure */
- typedef struct _ST_OECF_INPUT_REG {
- REG_OECF_X0_CFG_0 X0_1; // 0x0100, OECF X 0 and 1 parameter[0.PW-2.0] register.
- REG_OECF_X0_CFG_1 X2_3; // 0x0104, OECF X 2 and 3 parameter[0.PW-2.0] register.
- REG_OECF_X0_CFG_2 X4_5; // 0x0108, OECF X 4 and 5 parameter[0.PW-2.0] register.
- REG_OECF_X0_CFG_3 X6_7; // 0x010C, OECF X 6 and 7 parameter[0.PW-2.0] register.
- REG_OECF_X0_CFG_4 X8_9; // 0x0110, OECF X 8 and 9 parameter[0.PW-2.0] register.
- REG_OECF_X0_CFG_5 X10_11; // 0x0114, OECF X 10 and 11 parameter[0.PW-2.0] register.
- REG_OECF_X0_CFG_6 X12_13; // 0x0118, OECF X 12 and 13 parameter[0.PW-2.0] register.
- REG_OECF_X0_CFG_7 X14_15; // 0x011C, OECF X 14 and 15 parameter[0.PW-2.0] register.
- } ST_OECF_INPUT_REG, *PST_OECF_INPUT_REG;
- #define ST_OECF_INPUT_REG_SIZE (sizeof(ST_OECF_INPUT_REG))
- #define ST_OECF_INPUT_REG_LEN (ST_OECF_INPUT_REG_SIZE / sizeof(STF_U32))
- typedef struct _ST_OECF_OUTPUT_REG {
- REG_OECF_Y0_CFG_0 Y0_1; // 0x0180, OECF Y 0 and 1 parameter[0.PW-2.0] register
- REG_OECF_Y0_CFG_1 Y2_3; // 0x0184, OECF Y 2 and 3 parameter[0.PW-2.0] register
- REG_OECF_Y0_CFG_2 Y4_5; // 0x0188, OECF Y 4 and 5 parameter[0.PW-2.0] register
- REG_OECF_Y0_CFG_3 Y6_7; // 0x018C, OECF Y 6 and 7 parameter[0.PW-2.0] register
- REG_OECF_Y0_CFG_4 Y8_9; // 0x0190, OECF Y 8 and 9 parameter[0.PW-2.0] register
- REG_OECF_Y0_CFG_5 Y10_11; // 0x0194, OECF Y 10 and 11 parameter[0.PW-2.0] register
- REG_OECF_Y0_CFG_6 Y12_13; // 0x0198, OECF Y 12 and 13 parameter[0.PW-2.0] register
- REG_OECF_Y0_CFG_7 Y14_15; // 0x019C, OECF Y 14 and 15 parameter[0.PW-2.0] register
- } ST_OECF_OUTPUT_REG, *PST_OECF_OUTPUT_REG;
- #define ST_OECF_OUTPUT_REG_SIZE (sizeof(ST_OECF_OUTPUT_REG))
- #define ST_OECF_OUTPUT_REG_LEN (ST_OECF_OUTPUT_REG_SIZE / sizeof(STF_U32))
- typedef struct _ST_OECF_SLOPE_REG {
- REG_OECF_S0_CFG_0 S0_1; // 0x0200, OECF [0.3.7] S 0 and 1 parameter register
- REG_OECF_S0_CFG_1 S2_3; // 0x0204, OECF [0.3.7] S 2 and 3 parameter register
- REG_OECF_S0_CFG_2 S4_5; // 0x0208, OECF [0.3.7] S 4 and 5 parameter register
- REG_OECF_S0_CFG_3 S6_7; // 0x020C, OECF [0.3.7] S 6 and 7 parameter register
- REG_OECF_S0_CFG_4 S8_9; // 0x0210, OECF [0.3.7] S 8 and 9 parameter register
- REG_OECF_S0_CFG_5 S10_11; // 0x0214, OECF [0.3.7] S 10 and 11 parameter register
- REG_OECF_S0_CFG_6 S12_13; // 0x0218, OECF [0.3.7] S 12 and 13 parameter register
- REG_OECF_S0_CFG_7 S14_15; // 0x021C, OECF [0.3.7] S 14 and 15 parameter register
- } ST_OECF_SLOPE_REG, *PST_OECF_SLOPE_REG;
- #define ST_OECF_SLOPE_REG_SIZE (sizeof(ST_OECF_SLOPE_REG))
- #define ST_OECF_SLOPE_REG_LEN (ST_OECF_SLOPE_REG_SIZE / sizeof(STF_U32))
- typedef struct _ST_OECF_REG {
- ST_OECF_INPUT_REG stRInput; // 0x0100 - 0x011F, OECF X parameter[0.PW-2.0] register for symbol 0.
- ST_OECF_INPUT_REG stGrInput; // 0x0120 - 0x013F, OECF X parameter[0.PW-2.0] register for symbol 1.
- ST_OECF_INPUT_REG stGbInput; // 0x0140 - 0x015F, OECF X parameter[0.PW-2.0] register for symbol 2.
- ST_OECF_INPUT_REG stBInput; // 0x0160 - 0x017F, OECF X parameter[0.PW-2.0] register for symbol 3.
- ST_OECF_OUTPUT_REG stROutput; // 0x0180 - 0x019F, OECF Y parameter[0.PW-2.0] register for symbol 0.
- ST_OECF_OUTPUT_REG stGrOutput; // 0x01A0 - 0x01BF, OECF Y parameter[0.PW-2.0] register for symbol 1.
- ST_OECF_OUTPUT_REG stGbOutput; // 0x01C0 - 0x01DF, OECF Y parameter[0.PW-2.0] register for symbol 2.
- ST_OECF_OUTPUT_REG stBOutput; // 0x01E0 - 0x01FF, OECF Y parameter[0.PW-2.0] register for symbol 3.
- ST_OECF_SLOPE_REG stRSlope; // 0x0200 - 0x021F, OECF [0.3.7] S parameter register for symbol 0.
- ST_OECF_SLOPE_REG stGrSlope; // 0x0220 - 0x023F, OECF [0.3.7] S parameter register for symbol 1.
- ST_OECF_SLOPE_REG stGbSlope; // 0x0240 - 0x025F, OECF [0.3.7] S parameter register for symbol 2.
- ST_OECF_SLOPE_REG stBSlope; // 0x0260 - 0x027F, OECF [0.3.7] S parameter register for symbol 3.
- } ST_OECF_REG, *PST_OECF_REG;
- #define ST_OECF_REG_SIZE (sizeof(ST_OECF_REG))
- #define ST_OECF_REG_LEN (ST_OECF_REG_SIZE / sizeof(STF_U32))
- #pragma pack(push, 8)
- typedef struct _ST_OECF_RDMA {
- #if defined(SUPPORT_RDMA_FEATURE)
- ST_RDMA_CMD stRdmaStartCmd __attribute__ ((aligned (8)));
- #endif //SUPPORT_RDMA_FEATURE
- ST_OECF_REG stOecfReg __attribute__ ((aligned (8)));
- #if defined(SUPPORT_RDMA_FEATURE)
- ST_RDMA_CMD stRdmaEndCmd __attribute__ ((aligned (8)));
- #endif //SUPPORT_RDMA_FEATURE
- } ST_OECF_RDMA, *PST_OECF_RDMA;
- #define ST_OECF_RDMA_SIZE (sizeof(ST_OECF_RDMA))
- #define ST_OECF_RDMA_LEN (ST_OECF_RDMA_SIZE / (sizeof(STF_U32) * 2))
- typedef struct _ST_ISP_OECF_RDMA {
- STF_U8 u8IspIdx;
- ST_OECF_RDMA stOecfRdma __attribute__ ((aligned (8)));
- } ST_ISP_OECF_RDMA, *PST_ISP_OECF_RDMA;
- #pragma pack(pop)
- ///* oecf registers interface */
- ////-----------------------------------------------------------------------------
- //extern
- //STF_VOID STFHAL_ISP_OECF_SetReg(
- // STF_U8 u8IspIdx,
- // ST_OECF_RDMA *pstOecfRdma
- // );
- ////-----------------------------------------------------------------------------
- //extern
- //STF_VOID STFHAL_ISP_OECF_SetInput(
- // STF_U8 u8IspIdx,
- // ST_OECF_RDMA *pstOecfRdma
- // );
- //extern
- //STF_VOID STFHAL_ISP_OECF_SetOutput(
- // STF_U8 u8IspIdx,
- // ST_OECF_RDMA *pstOecfRdma
- // );
- //extern
- //STF_VOID STFHAL_ISP_OECF_SetSlope(
- // STF_U8 u8IspIdx,
- // ST_OECF_RDMA *pstOecfRdma
- // );
- ////-----------------------------------------------------------------------------
- //
- //
- #endif //__STF_ISP_OECF_RDMA_H__
|