blob: f9cee002ca3f1edd44e2368095308779863abce5 [file] [log] [blame]
/*
* drivers/amlogic/media/enhancement/amvecm/arch/cm_regs.h
*
* Copyright (C) 2017 Amlogic, Inc. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
*/
#ifndef __CM_REG_H
#define __CM_REG_H
/* ********************************************************** */
/* ******** COLOR MANAGEMENT INDIRECT REGISTERS ******** */
/* ******************************************************* */
/* #define CHROMA_GAIN_REG00 0x00 */
/* #define CHROMA_GAIN_REG01 0x06 */
/* #define CHROMA_GAIN_REG02 0x0C */
/* #define CHROMA_GAIN_REG03 0x12 */
/* #define CHROMA_GAIN_REG04 0x18 */
/* #define CHROMA_GAIN_REG05 0x1E */
/* #define CHROMA_GAIN_REG06 0x24 */
/* #define CHROMA_GAIN_REG07 0x2A */
#define SAT_EN_BIT 31
#define SAT_EN_WID 1
#define SAT_INC_BIT 27
#define SAT_INC_WID 1
#define SAT_CENTRAL_EN_BIT 25
#define SAT_CENTRAL_EN_WID 2
#define SAT_SHAPE_BIT 24
#define SAT_SHAPE_WID 1
#define SAT_GAIN_BIT 16
#define SAT_GAIN_WID 8
#define HUE_EN_BIT 15
#define HUE_EN_WID 1
#define HUE_CLOCKWISE_BIT 11
#define HUE_CLOCKWISE_WID 1
#define HUE_CENTRAL_EN_BIT 9
#define HUE_CENTRAL_EN_WID 2
#define HUE_SHAPE_BIT 8
#define HUE_SHAPE_WID 1
#define HUE_GAIN_BIT 0
#define HUE_GAIN_WID 8
/* #define HUE_HUE_RANGE_REG00 0x01 */
/* #define HUE_HUE_RANGE_REG01 0x07 */
/* #define HUE_HUE_RANGE_REG02 0x0D */
/* #define HUE_HUE_RANGE_REG03 0x13 */
/* #define HUE_HUE_RANGE_REG04 0x19 */
/* #define HUE_HUE_RANGE_REG05 0x1F */
/* #define HUE_HUE_RANGE_REG06 0x25 */
/* #define HUE_HUE_RANGE_REG07 0x2B */
#define HUE_SHF_RAN_BIT 16
#define HUE_SHF_RAN_WID 8
#define SYM_EN_BIT 15
#define SYM_EN_WID 1
#define HUE_SHF_STA_BIT 0
#define HUE_SHF_STA_WID 15
/* #define HUE_RANGE_INV_REG00 0x02 */
/* #define HUE_RANGE_INV_REG01 0x08 */
/* #define HUE_RANGE_INV_REG02 0x0E */
/* #define HUE_RANGE_INV_REG03 0x14 */
/* #define HUE_RANGE_INV_REG04 0x1A */
/* #define HUE_RANGE_INV_REG05 0x20 */
/* #define HUE_RANGE_INV_REG06 0x26 */
/* #define HUE_RANGE_INV_REG07 0x2C */
#define HUE_SHF_RAN_INV_BIT 0
#define HUE_SHF_RAN_INV_WID 16
/* #define HUE_LUM_RANGE_REG00 0x03 */
/* #define HUE_LUM_RANGE_REG01 0x09 */
/* #define HUE_LUM_RANGE_REG02 0x0F */
/* #define HUE_LUM_RANGE_REG03 0x15 */
/* #define HUE_LUM_RANGE_REG04 0x1B */
/* #define HUE_LUM_RANGE_REG05 0x21 */
/* #define HUE_LUM_RANGE_REG06 0x27 */
/* #define HUE_LUM_RANGE_REG07 0x2D */
/* for belowing each low, high, low_slope, high_slope group: */
/* a_____________b */
/* / \ */
/* / \ */
/* / \ */
/* / \ */
/* ______/_____________________\________ */
/* low high */
/* a = low + 2^low_slope */
/* low_slope <= 7; high_slope <= 7 */
/* b >= a */
#define SAT_LUM_L_BIT 24
#define SAT_LUM_L_WID 8
#define HUE_LUM_H_SLOPE_BIT 20
#define HUE_LUM_H_SLOPE_WID 4
#define HUE_LUM_L_SLOPE_BIT 16
#define HUE_LUM_L_SLOPE_WID 4
#define HUE_LUM_H_BIT 8
#define HUE_LUM_H_WID 8
#define HUE_LUM_L_BIT 0
#define HUE_LUM_L_WID 8
/* #define HUE_SAT_RANGE_REG00 0x04 */
/* #define HUE_SAT_RANGE_REG01 0x0A */
/* #define HUE_SAT_RANGE_REG02 0x10 */
/* #define HUE_SAT_RANGE_REG03 0x16 */
/* #define HUE_SAT_RANGE_REG04 0x1C */
/* #define HUE_SAT_RANGE_REG05 0x22 */
/* #define HUE_SAT_RANGE_REG06 0x28 */
/* #define HUE_SAT_RANGE_REG07 0x2E */
#define SAT_LUM_H_BIT 24
#define SAT_LUM_H_WID 8
#define HUE_SAT_H_SLOPE_BIT 20
#define HUE_SAT_H_SLOPE_WID 4
#define HUE_SAT_L_SLOPE_BIT 16
#define HUE_SAT_L_SLOPE_WID 4
#define HUE_SAT_H_BIT 8
#define HUE_SAT_H_WID 8
#define HUE_SAT_L_BIT 0
#define HUE_SAT_L_WID 8
/* #define SAT_SAT_RANGE_REG00 0x05 */
/* #define SAT_SAT_RANGE_REG01 0x0B */
/* #define SAT_SAT_RANGE_REG02 0x11 */
/* #define SAT_SAT_RANGE_REG03 0x17 */
/* #define SAT_SAT_RANGE_REG04 0x1D */
/* #define SAT_SAT_RANGE_REG05 0x23 */
/* #define SAT_SAT_RANGE_REG06 0x29 */
/* #define SAT_SAT_RANGE_REG07 0x2F */
#define SAT_LUM_H_SLOPE_BIT 28
#define SAT_LUM_H_SLOPE_WID 4
#define SAT_LUM_L_SLOPE_BIT 24
#define SAT_LUM_L_SLOPE_WID 4
#define SAT_SAT_H_SLOPE_BIT 20
#define SAT_SAT_H_SLOPE_WID 4
#define SAT_SAT_L_SLOPE_BIT 16
#define SAT_SAT_L_SLOPE_WID 4
#define SAT_SAT_H_BIT 8
#define SAT_SAT_H_WID 8
#define SAT_SAT_L_BIT 0
#define SAT_SAT_L_WID 8
/* #define REG_CHROMA_CONTROL 0x30 */
#define CHROMA_EN_BIT 31
#define CHROMA_EN_WID 1
#if defined(CONFIG_ARCH_MESON)
/* 1'b0: demo adjust on right, 1'b1: demo adjust on left */
#elif defined(CONFIG_ARCH_MESON2)
/* 2'b00: demo adjust on top, 2'b01: demo adjust on bottom */
/* 2'b10: demo adjust on left,2'b11: demo adjust on right */
#endif
#define CM_DEMO_POS_BIT 22
#define CM_DEMO_POS_WID 2
#define DEMO_HLIGHT_ADJ_BIT 21
#define DEMO_HLIGHT_ADJ_WID 1
#define DEMO_EN_BIT 20
#define DEMO_EN_WID 1
#define CM_DEMO_WID_BIT 8
#define CM_DEMO_WID_WID 12
#define SAT_SEL_BIT 6
#define SAT_SEL_WID 1
#define UV_ADJ_EN_BIT 5
#define UV_ADJ_EN_WID 1
#define RGB_TO_HUE_EN_BIT 2
#define RGB_TO_HUE_EN_WID 1
/* 2'b00: 601(16-235) 2'b01: 709(16-235) */
/* 2'b10: 601(0-255) 2'b11: 709(0-255) */
#define CSC_SEL_BIT 0
#define CSC_SEL_WID 2
/* #if defined(CONFIG_ARCH_MESON2) */
/* #define REG_DEMO_CENTER_BAR 0x31 // default 32h'0 */
#define CM_CBAR_EN_BIT 31 /* center bar enable */
#define CM_CBAR_EN_WID 1
#define CM_CBAR_WID_BIT 24 /* center bar width (*2) */
#define CM_CBAR_WID_WID 4
#define CM_CBAR_CR_BIT 16 /* center bar Cr (*4) */
#define CM_CBAR_CR_WID 8
#define CM_CBAR_CB_BIT 8 /* center bar Cb (*4) */
#define CM_CBAR_CB_WID 8
#define CM_CBAR_Y_BIT 0 /* center bar y (*4) */
#define CM_CBAR_Y_WID 8
/* #endif */
#endif /* _CM_REG_H */