From 2489007e7d740ccbc3e0a202914e243ad5178787 Mon Sep 17 00:00:00 2001 From: codeworkx Date: Sat, 22 Sep 2012 09:48:20 +0200 Subject: merge opensource jb u5 Change-Id: I1aaec157aa196f3448eff8636134fce89a814cf2 --- drivers/video/samsung_duallcd/s3cfb_mdnie.h | 337 ++++++++++++++++++++++++++++ 1 file changed, 337 insertions(+) create mode 100644 drivers/video/samsung_duallcd/s3cfb_mdnie.h (limited to 'drivers/video/samsung_duallcd/s3cfb_mdnie.h') diff --git a/drivers/video/samsung_duallcd/s3cfb_mdnie.h b/drivers/video/samsung_duallcd/s3cfb_mdnie.h new file mode 100644 index 0000000..329a40a --- /dev/null +++ b/drivers/video/samsung_duallcd/s3cfb_mdnie.h @@ -0,0 +1,337 @@ + +/* linux/drivers/video/samsung/s3cfb_mdnie.h + * + * Header file for Samsung (MDNIE) driver + * + * Copyright (c) 2009 Samsung Electronics + * http://www.samsungsemi.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 _S3CFB_MDNIE_H +#define _S3CFB_MDNIE_H + +#define S3C_MDNIE_PHY_BASE 0x11CA0000 +#define S3C_MDNIE_MAP_SIZE 0x00001000 + +#define S3C_MDNIE_rR34 0x0088 +#define S3C_MDNIE_rR35 0x008C + +#define S3C_MDNIE_rR0 0x0000 +#define S3C_MDNIE_rR1 0x0004 +#define S3C_MDNIE_rR3 0x000C +#define S3C_MDNIE_rR4 0x0010 +#define S3C_MDNIE_rR5 0x0014 +#define S3C_MDNIE_rR6 0x0018 +#define S3C_MDNIE_rR8 0x0020 +#define S3C_MDNIE_rR9 0x0024 +#define S3C_MDNIE_rR28 0x00A0 + +#define S3C_MDNIE_rR36 0x0090 +#define S3C_MDNIE_rR37 0x0094 +#define S3C_MDNIE_rR38 0x0098 +#define S3C_MDNIE_rR39 0x009C +#define S3C_MDNIE_rR40 0x00A0 +#define S3C_MDNIE_rR41 0x00A4 +#define S3C_MDNIE_rR42 0x00A8 +#define S3C_MDNIE_rR43 0x00AC +#define S3C_MDNIE_rR44 0x00B0 +#define S3C_MDNIE_rR45 0x00B4 +#define S3C_MDNIE_rR46 0x00B8 + +#define S3C_MDNIE_rR48 0x00C0 + +#define S3C_MDNIE_rR49 0x00C4 +#define S3C_MDNIE_rR50 0x00C8 +#define S3C_MDNIE_rR51 0x00CC +#define S3C_MDNIE_rR52 0x00D0 +#define S3C_MDNIE_rR53 0x00D4 +#define S3C_MDNIE_rR54 0x00D8 +#define S3C_MDNIE_rR55 0x00DC +#define S3C_MDNIE_rR56 0x00E0 + + +#define S3C_MDNIE_rR64 0x0100 +#define S3C_MDNIE_rR65 0x0104 +#define S3C_MDNIE_rR66 0x0108 +#define S3C_MDNIE_rR67 0x010C +#define S3C_MDNIE_rR68 0x0110 +#define S3C_MDNIE_rR69 0x0114 + + +#define S3C_MDNIE_rR72 0x0120 +#define S3C_MDNIE_rR73 0x0124 +#define S3C_MDNIE_rR74 0x0128 +#define S3C_MDNIE_rR75 0x012C +#define S3C_MDNIE_rR76 0x0130 +#define S3C_MDNIE_rR77 0x0134 +#define S3C_MDNIE_rR78 0x0138 +#define S3C_MDNIE_rR79 0x013C +#define S3C_MDNIE_rR80 0x0140 +#define S3C_MDNIE_rR81 0x0144 +#define S3C_MDNIE_rR82 0x0148 +#define S3C_MDNIE_rR83 0x014C +#define S3C_MDNIE_rR84 0x0150 +#define S3C_MDNIE_rR85 0x0154 +#define S3C_MDNIE_rR86 0x0158 +#define S3C_MDNIE_rR87 0x015C + + +#define S3C_MDNIE_rR88 0x0160 +#define S3C_MDNIE_rR89 0x0164 +#define S3C_MDNIE_rR90 0x0168 +#define S3C_MDNIE_rR91 0x016C +#define S3C_MDNIE_rR92 0x0170 +#define S3C_MDNIE_rR93 0x0174 +#define S3C_MDNIE_rR94 0x0178 +#define S3C_MDNIE_rR95 0x017C +#define S3C_MDNIE_rR96 0x0180 +#define S3C_MDNIE_rR97 0x0184 +#define S3C_MDNIE_rR98 0x0188 +#define S3C_MDNIE_rR99 0x018C +#define S3C_MDNIE_rR100 0x0190 +#define S3C_MDNIE_rR101 0x0194 + +#define S3C_MDNIE_rR102 0x0198 + +#define S3C_MDNIE_rR103 0x019C + +/*R1*/ +#define S3C_MDNIE_HDTR (0<<6) +#define S3C_MDNIE_HDTR_CP (1<<6) /* Color Preference */ +#define S3C_MDNIE_HDTR_VE (2<<6) /* Visibility Enhancement */ +#define S3C_MDNIE_MCM_OFF (0<<5) +#define S3C_MDNIE_MCM_ON (1<<5) +#define S3C_MDNIE_LPA_OFF (0<<4) +#define S3C_MDNIE_LPA_ON (1<<4) +#define S3C_MDNIE_ALGORITHM_MASK (0xF<<4) +#define S3C_MDNIE_REG_UNMASK (0<<0) +#define S3C_MDNIE_REG_MASK (1<<0) +/*R3*/ +#define S3C_MDNIE_HSIZE(n) (((n)&0x7FF)<<0) +/*R4*/ +#define S3C_MDNIE_VSIZE(n) (((n)&0x7FF)<<0) +#define S3C_MDNIE_SIZE_MASK (0x7FF<<0) + +/*R36*/ +#define S3C_MDNIE_DECONT_TH(n) (((n)&0xFFF)<<0) +/*R37*/ +#define S3C_MDNIE_DIRECT_TH(n) (((n)&0xFFF)<<0) +/*R38*/ +#define S3C_MDNIE_SIMPLE_TH(n) (((n)&0x7F)<<0) +/*R39*/ +#define S3C_MDNIE_DE_CONT(n) (((n)&0x7F)<<5) +#define S3C_MDNIE_CE_ON (0<<4) +#define S3C_MDNIE_CE_OFF (1<<4) +#define S3C_MDNIE_CE_CURVE(n) (((n)&0x7)<<1) +#define S3C_MDNIE_AMOLED_NOTSELECT (0<<0) +#define S3C_MDNIE_AMOLED_SELECT (1<<0) +/*R40*/ +#define S3C_MDNIE_IPF_ALPHA(n) (((n)&0xFF)<<7) +#define S3C_MDNIE_IPF_BETA(n) (((n)&0xFF)<<0) +/*R41*/ +#define S3C_MDNIE_IPF_THETA(n) (((n)&0xFF)<<0) +/*R42*/ +#define S3C_MDNIE_IPF_CNTRST(n) (((n)&0x3)<<12) +#define S3C_MDNIE_IPF_G(n) (((n)&0xF)<<8) +#define S3C_MDNIE_IPF_T(n) (((n)&0xFF)<<0) + +/*R43*/ +#define S3C_MDNIE_CS_SKIN_OFF (0<<10) +#define S3C_MDNIE_CS_SKIN_ON (1<<10) +#define S3C_MDNIE_CS_CONT(n) (((n)&0x3FF)<<0) + +/*R45*/ +#define S3C_MDNIE_DE_TH(n) (((n)&0x3FF)<<0) + +/*R48*/ +#define S3C_MDNIE_SN_LVL_0 (0<<10) +#define S3C_MDNIE_SN_LVL_1 (1<<10) +#define S3C_MDNIE_SN_LVL_2 (2<<10) +#define S3C_MDNIE_SN_LVL_3 (3<<10) +#define S3C_MDNIE_SY_LVL_0 (0<<8) +#define S3C_MDNIE_SY_LVL_1 (1<<8) +#define S3C_MDNIE_SY_LVL_2 (2<<8) +#define S3C_MDNIE_SY_LVL_3 (3<<8) +#define S3C_MDNIE_GR_LVL_0 (0<<6) +#define S3C_MDNIE_GR_LVL_1 (1<<6) +#define S3C_MDNIE_GR_LVL_2 (2<<6) +#define S3C_MDNIE_GR_LVL_3 (3<<6) +#define S3C_MDNIE_RD_LVL_0 (0<<4) +#define S3C_MDNIE_RD_LVL_1 (1<<4) +#define S3C_MDNIE_RD_LVL_2 (2<<4) +#define S3C_MDNIE_RD_LVL_3 (3<<4) +#define S3C_MDNIE_YE_LVL_0 (0<<2) +#define S3C_MDNIE_YE_LVL_1 (1<<2) +#define S3C_MDNIE_YE_LVL_2 (2<<2) +#define S3C_MDNIE_YE_LVL_3 (3<<2) +#define S3C_MDNIE_PU_LVL_0 (0<<0) +#define S3C_MDNIE_PU_LVL_1 (1<<0) +#define S3C_MDNIE_PU_LVL_2 (2<<0) +#define S3C_MDNIE_PU_LVL_3 (3<<0) + +/*R49*/ +#define S3C_MDNIE_SN_L1_TCB(n) (((n)&0xFF)<<8) +#define S3C_MDNIE_SN_L2_TCB(n) (((n)&0xFF)<<0) +/*R50*/ +#define S3C_MDNIE_SN_L3_TCB(n) (((n)&0xFF)<<8) +#define S3C_MDNIE_SN_L1_TCR(n) (((n)&0xFF)<<0) +/*R51*/ +#define S3C_MDNIE_SN_L2_TCR(n) (((n)&0xFF)<<8) +#define S3C_MDNIE_SN_L3_TCR(n) (((n)&0xFF)<<0) +/*R52*/ +#define S3C_MDNIE_SN_L1_S(n) (((n)&0x7)<<6) +#define S3C_MDNIE_SN_L2_S(n) (((n)&0x7)<<3) +#define S3C_MDNIE_SN_L3_S(n) (((n)&0x7)<<0) +/*R53*/ +#define S3C_MDNIE_RD_L1_TCB(n) (((n)&0xFF)<<8) +#define S3C_MDNIE_RD_L2_TCB(n) (((n)&0xFF)<<0) +/*R54*/ +#define S3C_MDNIE_RD_L3_TCB(n) (((n)&0xFF)<<8) +#define S3C_MDNIE_RD_L1_TCR(n) (((n)&0xFF)<<0) +/*R55*/ +#define S3C_MDNIE_RD_L2_TCR(n) (((n)&0xFF)<<8) +#define S3C_MDNIE_RD_L3_TCR(n) (((n)&0xFF)<<0) +/*R56*/ +#define S3C_MDNIE_RD_L1_S(n) (((n)&0x7)<<6) +#define S3C_MDNIE_RD_L2_S(n) (((n)&0x7)<<3) +#define S3C_MDNIE_RD_L3_S(n) (((n)&0x7)<<0) + +/*R64*/ +#define S3C_MDNIE_LIGHT_P(n) (((n)&0xFF)<<8) +#define S3C_MDNIE_CHROMA_P(n) (((n)&0xFF)<<0) +/*R65*/ +#define S3C_MDNIE_TRANSFUNL_1(n) (((n)&0x7F)<<8) +#define S3C_MDNIE_TRANSFUNL_2(n) (((n)&0x7F)<<0) +/*R66*/ +#define S3C_MDNIE_TRANSFUNL_3(n) (((n)&0x7F)<<8) +#define S3C_MDNIE_TRANSFUNL_4(n) (((n)&0x7F)<<0) +/*R67*/ +#define S3C_MDNIE_TRANSFUNL_5(n) (((n)&0x7F)<<8) +#define S3C_MDNIE_TRANSFUNL_6(n) (((n)&0x7F)<<0) +/*R68*/ +#define S3C_MDNIE_TRANSFUNL_7(n) (((n)&0x7F)<<8) +#define S3C_MDNIE_TRANSFUNL_8(n) (((n)&0x7F)<<0) +/*R69*/ +#define S3C_MDNIE_TRANSFUNL_9(n) (((n)&0x7F)<<8) + +/*R72*/ +#define S3C_MDNIE_QUADRANT_OFF (0<<8) +#define S3C_MDNIE_QUADRAND_ON (1<<8) +#define S3C_MDNIE_COLOR_TEMP_DEST(n) ((((n)&0xFF)<<0) +/*R73*/ +#define S3C_MDNIE_COLOR_TEMP1(n) (((n)&0xFF)<<8) +#define S3C_MDNIE_COLOR_TEMP2(n) (((n)&0xFF)<<0) +/*R74*/ +#define S3C_MDNIE_COLOR_TEMP3(n) (((n)&0xFF)<<8) +#define S3C_MDNIE_COLOR_TEMP4(n) (((n)&0xFF)<<0) +/*R75*/ +#define S3C_MDNIE_COLOR_TEMP5(n) (((n)&0xFF)<<8) +#define S3C_MDNIE_LSF1(n) (((n)&0xFF)<<0) +/*R76*/ +#define S3C_MDNIE_LSF2(n) (((n)&0xFF)<<8) +#define S3C_MDNIE_LSF3(n) (((n)&0xFF)<<0) +/*R76*/ +#define S3C_MDNIE_LSF4(n) (((n)&0xFF)<<8) +#define S3C_MDNIE_LSF5(n) (((n)&0xFF)<<0) +/*R78*/ +#define S3C_MDNIE_CT1_HIGH_CB(n) (((n)&0xFF)<<8) +#define S3C_MDNIE_CT2_HIGH_CB(n) (((n)&0xFF)<<0) +/*R79*/ +#define S3C_MDNIE_CT3_HIGH_CB(n) (((n)&0xFF)<<8) +#define S3C_MDNIE_CT4_HIGH_CB(n) (((n)&0xFF)<<0) +/*R80*/ +#define S3C_MDNIE_CT5_HIGH_CB(n) (((n)&0xFF)<<8) +#define S3C_MDNIE_CT1_HIGH_CR(n) (((n)&0xFF)<<0) +/*R81*/ +#define S3C_MDNIE_CT2_HIGH_CR(n) (((n)&0xFF)<<8) +#define S3C_MDNIE_CT3_HIGH_CR(n) (((n)&0xFF)<<0) +/*R82*/ +#define S3C_MDNIE_CT4_HIGH_CR(n) (((n)&0xFF)<<8) +#define S3C_MDNIE_CT5_HIGH_CR(n) (((n)&0xFF)<<0) +/*R83*/ +#define S3C_MDNIE_GRAY_AXIS_LONG(n) (((n)&0xFF)<<8) +#define S3C_MDNIE_GRAY_AXIS_SHORT(n) (((n)&0xFF)<<0) +/*R84*/ +#define S3C_MDNIE_GRAY_ANGLE_COS(n) (((n)&0x3ff)<<0) +/*R85*/ +#define S3C_MDNIE_GRAY_ANGLE_SIN(n) (((n)&0x3ff)<<0) +/*R86*/ +#define S3C_MDNIE_QUADRANT_TMP1(n) (((n)&0xFF)<<8) +#define S3C_MDNIE_QUADRANT_TMP2(n) (((n)&0xFF)<<0) +/*R87*/ +#define S3C_MDNIE_QUADRANT_TMP3(n) (((n)&0xFF)<<8) +#define S3C_MDNIE_QUADRANT_TMP4(n) (((n)&0xFF)<<0) + +/*R88*/ +#define S3C_MDNIE_FGain_LUT0(n) (((n)&0x7F)<<8) +#define S3C_MDNIE_FGain_LUT1(n) (((n)&0x7F)<<0) +/*R89*/ +#define S3C_MDNIE_FGain_LUT2(n) (((n)&0x7F)<<8) +#define S3C_MDNIE_FGain_LUT3(n) (((n)&0x7F)<<0) +/*R90*/ +#define S3C_MDNIE_FGain_LUT4(n) (((n)&0x7F)<<8) +#define S3C_MDNIE_FGain_LUT5(n) (((n)&0x7F)<<0) +/*R91*/ +#define S3C_MDNIE_FGain_LUT6(n) (((n)&0x7F)<<8) +#define S3C_MDNIE_FGain_LUT7(n) (((n)&0x7F)<<0) +/*R92*/ +#define S3C_MDNIE_DGain_LUT0(n) (((n)&0x7F)<<8) +#define S3C_MDNIE_DGain_LUT1(n) (((n)&0x7F)<<0) +/*R93*/ +#define S3C_MDNIE_DGain_LUT2(n) (((n)&0x7F)<<8) +#define S3C_MDNIE_DGain_LUT3(n) (((n)&0x7F)<<0) +/*R94*/ +#define S3C_MDNIE_DGain_LUT4(n) (((n)&0x7F)<<8) +#define S3C_MDNIE_DGain_LUT5(n) (((n)&0x7F)<<0) +/*R95*/ +#define S3C_MDNIE_DGain_LUT6(n) (((n)&0x7F)<<8) +#define S3C_MDNIE_DGain_LUT7(n) (((n)&0x7F)<<0) +/*R96*/ +#define S3C_MDNIE_Power_LUT0(n) (((n)&0x7F)<<8) +#define S3C_MDNIE_Power_LUT1(n) (((n)&0x7F)<<0) +/*R97*/ +#define S3C_MDNIE_Power_LUT2(n) (((n)&0x7F)<<8) +#define S3C_MDNIE_Power_LUT3(n) (((n)&0x7F)<<0) +/*R98*/ +#define S3C_MDNIE_Power_LUT4(n) (((n)&0x7F)<<8) +#define S3C_MDNIE_Power_LUT5(n) (((n)&0x7F)<<0) +/*R99*/ +#define S3C_MDNIE_Power_LUT6(n) (((n)&0x7F)<<8) +#define S3C_MDNIE_Power_LUT7(n) (((n)&0x7F)<<0) +/*R100*/ +#define S3C_MDNIE_Power_LUT8(n) (((n)&0x7F)<<8) + +/*R101*/ +#define S3C_MDNIE_ZONAL_PARA0(n) (((n)&0x3)<<4) +#define S3C_MDNIE_ZONAL_PARA1(n) (((n)&0x3)<<0) +/*R102*/ +#define S3C_MDNIE_BLU_DISABLE (0<<1) +#define S3C_MDNIE_BLU_ENABLE (1<<1) +#define S3C_MDNIE_DISPLAY_LCD (0<<0) +#define S3C_MDNIE_DISPLAY_OLED (1<<0) + +/*R103*/ +#define S3C_MDNIE_PWM_PHIGH (1<<15) +#define S3C_MDNIE_PWM_PLOW (0<<15) +#define S3C_MDNIE_PWM_CT_LPA (0<<14) /* using LPA counter */ +#define S3C_MDNIE_PWM_CT_PWM (1<<14) /* using PWM counter */ +#define S3C_MDNIE_PWM_CT(n) (((n)&0x3F)<<0) + +#define TRUE 1 +#define FALSE 0 + +int s3c_mdnie_setup(void); +int s3c_mdnie_init_global(struct s3cfb_global *s3cfb_ctrl); +int s3c_mdnie_display_on(struct s3cfb_global *ctrl); +int s3c_mdnie_display_off(void); +int s3c_mdnie_off(void); + +int mdnie_write(unsigned int addr, unsigned int val); +int s3c_mdnie_mask(void); +int s3c_mdnie_unmask(void); + +#endif -- cgit v1.1