Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /*
0003  * Copyright (C) 2016-2018 Texas Instruments Incorporated - https://www.ti.com/
0004  * Author: Jyri Sarha <jsarha@ti.com>
0005  */
0006 
0007 #ifndef __TIDSS_DISPC_REGS_H
0008 #define __TIDSS_DISPC_REGS_H
0009 
0010 enum dispc_common_regs {
0011     NOT_APPLICABLE_OFF = 0,
0012     DSS_REVISION_OFF,
0013     DSS_SYSCONFIG_OFF,
0014     DSS_SYSSTATUS_OFF,
0015     DISPC_IRQ_EOI_OFF,
0016     DISPC_IRQSTATUS_RAW_OFF,
0017     DISPC_IRQSTATUS_OFF,
0018     DISPC_IRQENABLE_SET_OFF,
0019     DISPC_IRQENABLE_CLR_OFF,
0020     DISPC_VID_IRQENABLE_OFF,
0021     DISPC_VID_IRQSTATUS_OFF,
0022     DISPC_VP_IRQENABLE_OFF,
0023     DISPC_VP_IRQSTATUS_OFF,
0024     WB_IRQENABLE_OFF,
0025     WB_IRQSTATUS_OFF,
0026     DISPC_GLOBAL_MFLAG_ATTRIBUTE_OFF,
0027     DISPC_GLOBAL_OUTPUT_ENABLE_OFF,
0028     DISPC_GLOBAL_BUFFER_OFF,
0029     DSS_CBA_CFG_OFF,
0030     DISPC_DBG_CONTROL_OFF,
0031     DISPC_DBG_STATUS_OFF,
0032     DISPC_CLKGATING_DISABLE_OFF,
0033     DISPC_SECURE_DISABLE_OFF,
0034     FBDC_REVISION_1_OFF,
0035     FBDC_REVISION_2_OFF,
0036     FBDC_REVISION_3_OFF,
0037     FBDC_REVISION_4_OFF,
0038     FBDC_REVISION_5_OFF,
0039     FBDC_REVISION_6_OFF,
0040     FBDC_COMMON_CONTROL_OFF,
0041     FBDC_CONSTANT_COLOR_0_OFF,
0042     FBDC_CONSTANT_COLOR_1_OFF,
0043     DISPC_CONNECTIONS_OFF,
0044     DISPC_MSS_VP1_OFF,
0045     DISPC_MSS_VP3_OFF,
0046     DISPC_COMMON_REG_TABLE_LEN,
0047 };
0048 
0049 /*
0050  * dispc_common_regmap should be defined as const u16 * and pointing
0051  * to a valid dss common register map for the platform, before the
0052  * macros bellow can be used.
0053  */
0054 
0055 #define REG(r) (dispc_common_regmap[r ## _OFF])
0056 
0057 #define DSS_REVISION            REG(DSS_REVISION)
0058 #define DSS_SYSCONFIG           REG(DSS_SYSCONFIG)
0059 #define DSS_SYSSTATUS           REG(DSS_SYSSTATUS)
0060 #define DISPC_IRQ_EOI           REG(DISPC_IRQ_EOI)
0061 #define DISPC_IRQSTATUS_RAW     REG(DISPC_IRQSTATUS_RAW)
0062 #define DISPC_IRQSTATUS         REG(DISPC_IRQSTATUS)
0063 #define DISPC_IRQENABLE_SET     REG(DISPC_IRQENABLE_SET)
0064 #define DISPC_IRQENABLE_CLR     REG(DISPC_IRQENABLE_CLR)
0065 #define DISPC_VID_IRQENABLE(n)      (REG(DISPC_VID_IRQENABLE) + (n) * 4)
0066 #define DISPC_VID_IRQSTATUS(n)      (REG(DISPC_VID_IRQSTATUS) + (n) * 4)
0067 #define DISPC_VP_IRQENABLE(n)       (REG(DISPC_VP_IRQENABLE) + (n) * 4)
0068 #define DISPC_VP_IRQSTATUS(n)       (REG(DISPC_VP_IRQSTATUS) + (n) * 4)
0069 #define WB_IRQENABLE            REG(WB_IRQENABLE)
0070 #define WB_IRQSTATUS            REG(WB_IRQSTATUS)
0071 
0072 #define DISPC_GLOBAL_MFLAG_ATTRIBUTE    REG(DISPC_GLOBAL_MFLAG_ATTRIBUTE)
0073 #define DISPC_GLOBAL_OUTPUT_ENABLE  REG(DISPC_GLOBAL_OUTPUT_ENABLE)
0074 #define DISPC_GLOBAL_BUFFER     REG(DISPC_GLOBAL_BUFFER)
0075 #define DSS_CBA_CFG         REG(DSS_CBA_CFG)
0076 #define DISPC_DBG_CONTROL       REG(DISPC_DBG_CONTROL)
0077 #define DISPC_DBG_STATUS        REG(DISPC_DBG_STATUS)
0078 #define DISPC_CLKGATING_DISABLE     REG(DISPC_CLKGATING_DISABLE)
0079 #define DISPC_SECURE_DISABLE        REG(DISPC_SECURE_DISABLE)
0080 
0081 #define FBDC_REVISION_1         REG(FBDC_REVISION_1)
0082 #define FBDC_REVISION_2         REG(FBDC_REVISION_2)
0083 #define FBDC_REVISION_3         REG(FBDC_REVISION_3)
0084 #define FBDC_REVISION_4         REG(FBDC_REVISION_4)
0085 #define FBDC_REVISION_5         REG(FBDC_REVISION_5)
0086 #define FBDC_REVISION_6         REG(FBDC_REVISION_6)
0087 #define FBDC_COMMON_CONTROL     REG(FBDC_COMMON_CONTROL)
0088 #define FBDC_CONSTANT_COLOR_0       REG(FBDC_CONSTANT_COLOR_0)
0089 #define FBDC_CONSTANT_COLOR_1       REG(FBDC_CONSTANT_COLOR_1)
0090 #define DISPC_CONNECTIONS       REG(DISPC_CONNECTIONS)
0091 #define DISPC_MSS_VP1           REG(DISPC_MSS_VP1)
0092 #define DISPC_MSS_VP3           REG(DISPC_MSS_VP3)
0093 
0094 /* VID */
0095 
0096 #define DISPC_VID_ACCUH_0       0x0
0097 #define DISPC_VID_ACCUH_1       0x4
0098 #define DISPC_VID_ACCUH2_0      0x8
0099 #define DISPC_VID_ACCUH2_1      0xc
0100 #define DISPC_VID_ACCUV_0       0x10
0101 #define DISPC_VID_ACCUV_1       0x14
0102 #define DISPC_VID_ACCUV2_0      0x18
0103 #define DISPC_VID_ACCUV2_1      0x1c
0104 #define DISPC_VID_ATTRIBUTES        0x20
0105 #define DISPC_VID_ATTRIBUTES2       0x24
0106 #define DISPC_VID_BA_0          0x28
0107 #define DISPC_VID_BA_1          0x2c
0108 #define DISPC_VID_BA_UV_0       0x30
0109 #define DISPC_VID_BA_UV_1       0x34
0110 #define DISPC_VID_BUF_SIZE_STATUS   0x38
0111 #define DISPC_VID_BUF_THRESHOLD     0x3c
0112 #define DISPC_VID_CSC_COEF(n)       (0x40 + (n) * 4)
0113 
0114 #define DISPC_VID_FIRH          0x5c
0115 #define DISPC_VID_FIRH2         0x60
0116 #define DISPC_VID_FIRV          0x64
0117 #define DISPC_VID_FIRV2         0x68
0118 
0119 #define DISPC_VID_FIR_COEFS_H0      0x6c
0120 #define DISPC_VID_FIR_COEF_H0(phase)    (0x6c + (phase) * 4)
0121 #define DISPC_VID_FIR_COEFS_H0_C    0x90
0122 #define DISPC_VID_FIR_COEF_H0_C(phase)  (0x90 + (phase) * 4)
0123 
0124 #define DISPC_VID_FIR_COEFS_H12     0xb4
0125 #define DISPC_VID_FIR_COEF_H12(phase)   (0xb4 + (phase) * 4)
0126 #define DISPC_VID_FIR_COEFS_H12_C   0xf4
0127 #define DISPC_VID_FIR_COEF_H12_C(phase) (0xf4 + (phase) * 4)
0128 
0129 #define DISPC_VID_FIR_COEFS_V0      0x134
0130 #define DISPC_VID_FIR_COEF_V0(phase)    (0x134 + (phase) * 4)
0131 #define DISPC_VID_FIR_COEFS_V0_C    0x158
0132 #define DISPC_VID_FIR_COEF_V0_C(phase)  (0x158 + (phase) * 4)
0133 
0134 #define DISPC_VID_FIR_COEFS_V12     0x17c
0135 #define DISPC_VID_FIR_COEF_V12(phase)   (0x17c + (phase) * 4)
0136 #define DISPC_VID_FIR_COEFS_V12_C   0x1bc
0137 #define DISPC_VID_FIR_COEF_V12_C(phase) (0x1bc + (phase) * 4)
0138 
0139 #define DISPC_VID_GLOBAL_ALPHA      0x1fc
0140 #define DISPC_VID_K2G_IRQENABLE     0x200 /* K2G */
0141 #define DISPC_VID_K2G_IRQSTATUS     0x204 /* K2G */
0142 #define DISPC_VID_MFLAG_THRESHOLD   0x208
0143 #define DISPC_VID_PICTURE_SIZE      0x20c
0144 #define DISPC_VID_PIXEL_INC     0x210
0145 #define DISPC_VID_K2G_POSITION      0x214 /* K2G */
0146 #define DISPC_VID_PRELOAD       0x218
0147 #define DISPC_VID_ROW_INC       0x21c
0148 #define DISPC_VID_SIZE          0x220
0149 #define DISPC_VID_BA_EXT_0      0x22c
0150 #define DISPC_VID_BA_EXT_1      0x230
0151 #define DISPC_VID_BA_UV_EXT_0       0x234
0152 #define DISPC_VID_BA_UV_EXT_1       0x238
0153 #define DISPC_VID_CSC_COEF7     0x23c
0154 #define DISPC_VID_ROW_INC_UV        0x248
0155 #define DISPC_VID_CLUT          0x260
0156 #define DISPC_VID_SAFETY_ATTRIBUTES 0x2a0
0157 #define DISPC_VID_SAFETY_CAPT_SIGNATURE 0x2a4
0158 #define DISPC_VID_SAFETY_POSITION   0x2a8
0159 #define DISPC_VID_SAFETY_REF_SIGNATURE  0x2ac
0160 #define DISPC_VID_SAFETY_SIZE       0x2b0
0161 #define DISPC_VID_SAFETY_LFSR_SEED  0x2b4
0162 #define DISPC_VID_LUMAKEY       0x2b8
0163 #define DISPC_VID_DMA_BUFSIZE       0x2bc /* J721E */
0164 
0165 /* OVR */
0166 
0167 #define DISPC_OVR_CONFIG        0x0
0168 #define DISPC_OVR_VIRTVP        0x4 /* J721E */
0169 #define DISPC_OVR_DEFAULT_COLOR     0x8
0170 #define DISPC_OVR_DEFAULT_COLOR2    0xc
0171 #define DISPC_OVR_TRANS_COLOR_MAX   0x10
0172 #define DISPC_OVR_TRANS_COLOR_MAX2  0x14
0173 #define DISPC_OVR_TRANS_COLOR_MIN   0x18
0174 #define DISPC_OVR_TRANS_COLOR_MIN2  0x1c
0175 #define DISPC_OVR_ATTRIBUTES(n)     (0x20 + (n) * 4)
0176 #define DISPC_OVR_ATTRIBUTES2(n)    (0x34 + (n) * 4) /* J721E */
0177 /* VP */
0178 
0179 #define DISPC_VP_CONFIG             0x0
0180 #define DISPC_VP_CONTROL            0x4
0181 #define DISPC_VP_CSC_COEF0          0x8
0182 #define DISPC_VP_CSC_COEF1          0xc
0183 #define DISPC_VP_CSC_COEF2          0x10
0184 #define DISPC_VP_DATA_CYCLE_0           0x14
0185 #define DISPC_VP_DATA_CYCLE_1           0x18
0186 #define DISPC_VP_K2G_GAMMA_TABLE        0x20 /* K2G */
0187 #define DISPC_VP_K2G_IRQENABLE          0x3c /* K2G */
0188 #define DISPC_VP_K2G_IRQSTATUS          0x40 /* K2G */
0189 #define DISPC_VP_DATA_CYCLE_2           0x1c
0190 #define DISPC_VP_LINE_NUMBER            0x44
0191 #define DISPC_VP_POL_FREQ           0x4c
0192 #define DISPC_VP_SIZE_SCREEN            0x50
0193 #define DISPC_VP_TIMING_H           0x54
0194 #define DISPC_VP_TIMING_V           0x58
0195 #define DISPC_VP_CSC_COEF3          0x5c
0196 #define DISPC_VP_CSC_COEF4          0x60
0197 #define DISPC_VP_CSC_COEF5          0x64
0198 #define DISPC_VP_CSC_COEF6          0x68
0199 #define DISPC_VP_CSC_COEF7          0x6c
0200 #define DISPC_VP_SAFETY_ATTRIBUTES_0        0x70
0201 #define DISPC_VP_SAFETY_ATTRIBUTES_1        0x74
0202 #define DISPC_VP_SAFETY_ATTRIBUTES_2        0x78
0203 #define DISPC_VP_SAFETY_ATTRIBUTES_3        0x7c
0204 #define DISPC_VP_SAFETY_CAPT_SIGNATURE_0    0x90
0205 #define DISPC_VP_SAFETY_CAPT_SIGNATURE_1    0x94
0206 #define DISPC_VP_SAFETY_CAPT_SIGNATURE_2    0x98
0207 #define DISPC_VP_SAFETY_CAPT_SIGNATURE_3    0x9c
0208 #define DISPC_VP_SAFETY_POSITION_0      0xb0
0209 #define DISPC_VP_SAFETY_POSITION_1      0xb4
0210 #define DISPC_VP_SAFETY_POSITION_2      0xb8
0211 #define DISPC_VP_SAFETY_POSITION_3      0xbc
0212 #define DISPC_VP_SAFETY_REF_SIGNATURE_0     0xd0
0213 #define DISPC_VP_SAFETY_REF_SIGNATURE_1     0xd4
0214 #define DISPC_VP_SAFETY_REF_SIGNATURE_2     0xd8
0215 #define DISPC_VP_SAFETY_REF_SIGNATURE_3     0xdc
0216 #define DISPC_VP_SAFETY_SIZE_0          0xf0
0217 #define DISPC_VP_SAFETY_SIZE_1          0xf4
0218 #define DISPC_VP_SAFETY_SIZE_2          0xf8
0219 #define DISPC_VP_SAFETY_SIZE_3          0xfc
0220 #define DISPC_VP_SAFETY_LFSR_SEED       0x110
0221 #define DISPC_VP_GAMMA_TABLE            0x120
0222 #define DISPC_VP_DSS_OLDI_CFG           0x160
0223 #define DISPC_VP_DSS_OLDI_STATUS        0x164
0224 #define DISPC_VP_DSS_OLDI_LB            0x168
0225 #define DISPC_VP_DSS_MERGE_SPLIT        0x16c /* J721E */
0226 #define DISPC_VP_DSS_DMA_THREADSIZE     0x170 /* J721E */
0227 #define DISPC_VP_DSS_DMA_THREADSIZE_STATUS  0x174 /* J721E */
0228 
0229 /*
0230  * OLDI IO_CTRL register offsets. On AM654 the registers are found
0231  * from CTRL_MMR0, there the syscon regmap should map 0x14 bytes from
0232  * CTRLMMR0P1_OLDI_DAT0_IO_CTRL to CTRLMMR0P1_OLDI_CLK_IO_CTRL
0233  * register range.
0234  */
0235 #define OLDI_DAT0_IO_CTRL           0x00
0236 #define OLDI_DAT1_IO_CTRL           0x04
0237 #define OLDI_DAT2_IO_CTRL           0x08
0238 #define OLDI_DAT3_IO_CTRL           0x0C
0239 #define OLDI_CLK_IO_CTRL            0x10
0240 
0241 #define OLDI_PWRDN_TX               BIT(8)
0242 
0243 #endif /* __TIDSS_DISPC_REGS_H */