1 /* $NetBSD: imx51_ipuv3reg.h,v 1.1 2012/04/17 10:19:57 bsh Exp $ */ 2 /*- 3 * SPDX-License-Identifier: BSD-2-Clause AND BSD-2-Clause-FreeBSD 4 * 5 * Copyright (c) 2011, 2012 Genetec Corporation. All rights reserved. 6 * Written by Hashimoto Kenichi for Genetec Corporation. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions 10 * are met: 11 * 1. Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * 2. Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in the 15 * documentation and/or other materials provided with the distribution. 16 * 17 * THIS SOFTWARE IS PROVIDED BY GENETEC CORPORATION ``AS IS'' AND 18 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 19 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 20 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GENETEC CORPORATION 21 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27 * POSSIBILITY OF SUCH DAMAGE. 28 */ 29 30 /*- 31 * Copyright (c) 2012, 2013 The FreeBSD Foundation 32 * All rights reserved. 33 * 34 * Portions of this software were developed by Oleksandr Rybalko 35 * under sponsorship from the FreeBSD Foundation. 36 * 37 * Redistribution and use in source and binary forms, with or without 38 * modification, are permitted provided that the following conditions 39 * are met: 40 * 1. Redistributions of source code must retain the above copyright 41 * notice, this list of conditions and the following disclaimer. 42 * 2. Redistributions in binary form must reproduce the above copyright 43 * notice, this list of conditions and the following disclaimer in the 44 * documentation and/or other materials provided with the distribution. 45 * 46 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 47 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 48 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 49 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 50 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 51 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 52 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 53 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 54 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 55 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 56 * SUCH DAMAGE. 57 * 58 * $FreeBSD$ 59 */ 60 61 #ifndef _ARM_IMX_IMX51_IPUV3REG_H 62 #define _ARM_IMX_IMX51_IPUV3REG_H 63 64 /* register offset address */ 65 66 /* 67 * CM 68 * Control Module 69 */ 70 #define IPU_CM_CONF 0x00000000 71 #define CM_CONF_CSI_SEL 0x80000000 72 #define CM_CONF_IC_INPUT 0x40000000 73 #define CM_CONF_CSI1_DATA_SOURCE 0x20000000 74 #define CM_CONF_CSI0_DATA_SOURCE 0x10000000 75 #define CM_CONF_VDI_DMFC_SYNC 0x08000000 76 #define CM_CONF_IC_DMFC_SYNC 0x04000000 77 #define CM_CONF_IC_DMFC_SEL 0x02000000 78 #define CM_CONF_ISP_DOUBLE_FLOW 0x01000000 79 #define CM_CONF_IDMAC_DISABLE 0x00400000 80 #define CM_CONF_IPU_DIAGBUS_ON 0x00200000 81 #define CM_CONF_IPU_DIAGBUS_MODE 0x001f0000 82 #define CM_CONF_VDI_EN 0x00001000 83 #define CM_CONF_SISG_EN 0x00000800 84 #define CM_CONF_DMFC_EN 0x00000400 85 #define CM_CONF_DC_EN 0x00000200 86 #define CM_CONF_SMFC_EN 0x00000100 87 #define CM_CONF_DI1_EN 0x00000080 88 #define CM_CONF_DI0_EN 0x00000040 89 #define CM_CONF_DP_EN 0x00000020 90 #define CM_CONF_ISP_EN 0x00000010 91 #define CM_CONF_IRT_EN 0x00000008 92 #define CM_CONF_IC_EN 0x00000004 93 #define CM_CONF_CSI1_EN 0x00000002 94 #define CM_CONF_CSI0_EN 0x00000001 95 #define IPU_SISG_CTRL0 0x00000004 96 #define IPU_SISG_CTRL1 0x00000008 97 #define IPU_CM_INT_CTRL_1 0x0000003c 98 #define IPU_CM_INT_CTRL_2 0x00000040 99 #define IPU_CM_INT_CTRL_3 0x00000044 100 #define IPU_CM_INT_CTRL_4 0x00000048 101 #define IPU_CM_INT_CTRL_5 0x0000004c 102 #define IPU_CM_INT_CTRL_6 0x00000050 103 #define IPU_CM_INT_CTRL_7 0x00000054 104 #define IPU_CM_INT_CTRL_8 0x00000058 105 #define IPU_CM_INT_CTRL_9 0x0000005c 106 #define IPU_CM_INT_CTRL_10 0x00000060 107 #define IPU_CM_INT_CTRL_11 0x00000064 108 #define IPU_CM_INT_CTRL_12 0x00000068 109 #define IPU_CM_INT_CTRL_13 0x0000006c 110 #define IPU_CM_INT_CTRL_14 0x00000070 111 #define IPU_CM_INT_CTRL_15 0x00000074 112 #define IPU_CM_SDMA_EVENT_1 0x00000078 113 #define IPU_CM_SDMA_EVENT_2 0x0000007c 114 #define IPU_CM_SDMA_EVENT_3 0x00000080 115 #define IPU_CM_SDMA_EVENT_4 0x00000084 116 #define IPU_CM_SDMA_EVENT_7 0x00000088 117 #define IPU_CM_SDMA_EVENT_8 0x0000008c 118 #define IPU_CM_SDMA_EVENT_11 0x00000090 119 #define IPU_CM_SDMA_EVENT_12 0x00000094 120 #define IPU_CM_SDMA_EVENT_13 0x00000098 121 #define IPU_CM_SDMA_EVENT_14 0x0000009c 122 #define IPU_CM_SRM_PRI1 0x000000a0 123 #define IPU_CM_SRM_PRI2 0x000000a4 124 #define IPU_CM_FS_PROC_FLOW1 0x000000a8 125 #define IPU_CM_FS_PROC_FLOW2 0x000000ac 126 #define IPU_CM_FS_PROC_FLOW3 0x000000b0 127 #define IPU_CM_FS_DISP_FLOW1 0x000000b4 128 #define IPU_CM_FS_DISP_FLOW2 0x000000b8 129 #define IPU_CM_SKIP 0x000000bc 130 #define IPU_CM_DISP_ALT_CONF 0x000000c0 131 #define IPU_CM_DISP_GEN 0x000000c4 132 #define CM_DISP_GEN_DI0_COUNTER_RELEASE 0x01000000 133 #define CM_DISP_GEN_DI1_COUNTER_RELEASE 0x00800000 134 #define CM_DISP_GEN_MCU_MAX_BURST_STOP 0x00400000 135 #define CM_DISP_GEN_MCU_T_SHIFT 18 136 #define CM_DISP_GEN_MCU_T(n) ((n) << CM_DISP_GEN_MCU_T_SHIFT) 137 #define IPU_CM_DISP_ALT1 0x000000c8 138 #define IPU_CM_DISP_ALT2 0x000000cc 139 #define IPU_CM_DISP_ALT3 0x000000d0 140 #define IPU_CM_DISP_ALT4 0x000000d4 141 #define IPU_CM_SNOOP 0x000000d8 142 #define IPU_CM_MEM_RST 0x000000dc 143 #define CM_MEM_START 0x80000000 144 #define CM_MEM_EN 0x007fffff 145 #define IPU_CM_PM 0x000000e0 146 #define IPU_CM_GPR 0x000000e4 147 #define CM_GPR_IPU_CH_BUF1_RDY1_CLR 0x80000000 148 #define CM_GPR_IPU_CH_BUF1_RDY0_CLR 0x40000000 149 #define CM_GPR_IPU_CH_BUF0_RDY1_CLR 0x20000000 150 #define CM_GPR_IPU_CH_BUF0_RDY0_CLR 0x10000000 151 #define CM_GPR_IPU_ALT_CH_BUF1_RDY1_CLR 0x08000000 152 #define CM_GPR_IPU_ALT_CH_BUF1_RDY0_CLR 0x04000000 153 #define CM_GPR_IPU_ALT_CH_BUF0_RDY1_CLR 0x02000000 154 #define CM_GPR_IPU_ALT_CH_BUF0_RDY0_CLR 0x01000000 155 #define CM_GPR_IPU_DI1_CLK_CHANGE_ACK_DIS 0x00800000 156 #define CM_GPR_IPU_DI0_CLK_CHANGE_ACK_DIS 0x00400000 157 #define CM_GPR_IPU_CH_BUF2_RDY1_CLR 0x00200000 158 #define CM_GPR_IPU_CH_BUF2_RDY0_CLR 0x00100000 159 #define CM_GPR_IPU_GP(n) __BIT((n)) 160 #define IPU_CM_CH_DB_MODE_SEL_0 0x00000150 161 #define IPU_CM_CH_DB_MODE_SEL_1 0x00000154 162 #define IPU_CM_ALT_CH_DB_MODE_SEL_0 0x00000168 163 #define IPU_CM_ALT_CH_DB_MODE_SEL_1 0x0000016c 164 #define IPU_CM_CH_TRB_MODE_SEL_0 0x00000178 165 #define IPU_CM_CH_TRB_MODE_SEL_1 0x0000017c 166 #define IPU_CM_INT_STAT_1 0x00000200 167 #define IPU_CM_INT_STAT_2 0x00000204 168 #define IPU_CM_INT_STAT_3 0x00000208 169 #define IPU_CM_INT_STAT_4 0x0000020c 170 #define IPU_CM_INT_STAT_5 0x00000210 171 #define IPU_CM_INT_STAT_6 0x00000214 172 #define IPU_CM_INT_STAT_7 0x00000218 173 #define IPU_CM_INT_STAT_8 0x0000021c 174 #define IPU_CM_INT_STAT_9 0x00000220 175 #define IPU_CM_INT_STAT_10 0x00000224 176 #define IPU_CM_INT_STAT_11 0x00000228 177 #define IPU_CM_INT_STAT_12 0x0000022c 178 #define IPU_CM_INT_STAT_13 0x00000230 179 #define IPU_CM_INT_STAT_14 0x00000234 180 #define IPU_CM_INT_STAT_15 0x00000238 181 #define IPU_CM_CUR_BUF_0 0x0000023c 182 #define IPU_CM_CUR_BUF_1 0x00000240 183 #define IPU_CM_ALT_CUR_BUF_0 0x00000244 184 #define IPU_CM_ALT_CUR_BUF_1 0x00000248 185 #define IPU_CM_SRM_STAT 0x0000024c 186 #define IPU_CM_PROC_TASKS_STAT 0x00000250 187 #define IPU_CM_DISP_TASKS_STAT 0x00000254 188 #define IPU_CM_TRIPLE_CUR_BUF_0 0x00000258 189 #define IPU_CM_TRIPLE_CUR_BUF_1 0x0000025c 190 #define IPU_CM_TRIPLE_CUR_BUF_2 0x00000260 191 #define IPU_CM_TRIPLE_CUR_BUF_3 0x00000264 192 #define IPU_CM_CH_BUF0_RDY0 0x00000268 193 #define IPU_CM_CH_BUF0_RDY1 0x0000026c 194 #define IPU_CM_CH_BUF1_RDY0 0x00000270 195 #define IPU_CM_CH_BUF1_RDY1 0x00000274 196 #define IPU_CM_ALT_CH_BUF0_RDY0 0x00000278 197 #define IPU_CM_ALT_CH_BUF0_RDY1 0x0000027c 198 #define IPU_CM_ALT_CH_BUF1_RDY0 0x00000280 199 #define IPU_CM_ALT_CH_BUF1_RDY1 0x00000284 200 #define IPU_CM_CH_BUF2_RDY0 0x00000288 201 #define IPU_CM_CH_BUF2_RDY1 0x0000028c 202 203 /* 204 * IDMAC 205 * Image DMA Controller 206 */ 207 #define IPU_IDMAC_CONF 0x00000000 208 #define IPU_IDMAC_CH_EN_1 0x00000004 209 #define IPU_IDMAC_CH_EN_2 0x00000008 210 #define IPU_IDMAC_SEP_ALPHA 0x0000000c 211 #define IPU_IDMAC_ALT_SEP_ALPHA 0x00000010 212 #define IPU_IDMAC_CH_PRI_1 0x00000014 213 #define IPU_IDMAC_CH_PRI_2 0x00000018 214 #define IPU_IDMAC_WM_EN_1 0x0000001c 215 #define IPU_IDMAC_WM_EN_2 0x00000020 216 #define IPU_IDMAC_LOCK_EN_1 0x00000024 217 #define IPU_IDMAC_LOCK_EN_2 0x00000028 218 #define IPU_IDMAC_SUB_ADDR_0 0x0000002c 219 #define IPU_IDMAC_SUB_ADDR_1 0x00000030 220 #define IPU_IDMAC_SUB_ADDR_2 0x00000034 221 #define IPU_IDMAC_SUB_ADDR_3 0x00000038 222 #define IPU_IDMAC_SUB_ADDR_4 0x0000003c 223 #define IPU_IDMAC_BNDM_EN_1 0x00000040 224 #define IPU_IDMAC_BNDM_EN_2 0x00000044 225 #define IPU_IDMAC_SC_CORD 0x00000048 226 #define IPU_IDMAC_SC_CORD1 0x0000004c 227 #define IPU_IDMAC_CH_BUSY_1 0x00000100 228 #define IPU_IDMAC_CH_BUSY_2 0x00000104 229 230 #define CH_PANNEL_BG 23 231 #define CH_PANNEL_FG 27 232 233 /* 234 * DP 235 * Display Port 236 */ 237 #define IPU_DP_DEBUG_CNT 0x000000bc 238 #define IPU_DP_DEBUG_STAT 0x000000c0 239 240 /* 241 * IC 242 * Image Converter 243 */ 244 #define IPU_IC_CONF 0x00000000 245 #define IPU_IC_PRP_ENC_RSC 0x00000004 246 #define IPU_IC_PRP_VF_RSC 0x00000008 247 #define IPU_IC_PP_RSC 0x0000000c 248 #define IPU_IC_CMBP_1 0x00000010 249 #define IPU_IC_CMBP_2 0x00000014 250 #define IPU_IC_IDMAC_1 0x00000018 251 #define IPU_IC_IDMAC_2 0x0000001c 252 #define IPU_IC_IDMAC_3 0x00000020 253 #define IPU_IC_IDMAC_4 0x00000024 254 255 /* 256 * CSI 257 * Camera Sensor Interface 258 */ 259 #define IPU_CSI0_SENS_CONF 0x00000000 260 #define IPU_CSI0_SENS_FRM_SIZE 0x00000004 261 #define IPU_CSI0_ACT_FRM_SIZE 0x00000008 262 #define IPU_CSI0_OUT_FRM_CTRL 0x0000000c 263 #define IPU_CSI0_TST_CTRL 0x00000010 264 #define IPU_CSI0_CCIR_CODE_1 0x00000014 265 #define IPU_CSI0_CCIR_CODE_2 0x00000018 266 #define IPU_CSI0_CCIR_CODE_3 0x0000001c 267 #define IPU_CSI0_DI 0x00000020 268 #define IPU_CSI0_SKIP 0x00000024 269 #define IPU_CSI0_CPD_CTRL 0x00000028 270 #define IPU_CSI0_CPD_OFFSET1 0x000000ec 271 #define IPU_CSI0_CPD_OFFSET2 0x000000f0 272 273 #define IPU_CSI1_SENS_CONF 0x00000000 274 #define IPU_CSI1_SENS_FRM_SIZE 0x00000004 275 #define IPU_CSI1_ACT_FRM_SIZE 0x00000008 276 #define IPU_CSI1_OUT_FRM_CTRL 0x0000000c 277 #define IPU_CSI1_TST_CTRL 0x00000010 278 #define IPU_CSI1_CCIR_CODE_1 0x00000014 279 #define IPU_CSI1_CCIR_CODE_2 0x00000018 280 #define IPU_CSI1_CCIR_CODE_3 0x0000001c 281 #define IPU_CSI1_DI 0x00000020 282 #define IPU_CSI1_SKIP 0x00000024 283 #define IPU_CSI1_CPD_CTRL 0x00000028 284 #define IPU_CSI1_CPD_OFFSET1 0x000000ec 285 #define IPU_CSI1_CPD_OFFSET2 0x000000f0 286 287 /* 288 * DI 289 * Display Interface 290 */ 291 #define IPU_DI_GENERAL 0x00000000 292 #define DI_GENERAL_DISP_Y_SEL 0x70000000 293 #define DI_GENERAL_CLOCK_STOP_MODE 0x0f000000 294 #define DI_GENERAL_DISP_CLOCK_INIT 0x00800000 295 #define DI_GENERAL_MASK_SEL 0x00400000 296 #define DI_GENERAL_VSYNC_EXT 0x00200000 297 #define DI_GENERAL_CLK_EXT 0x00100000 298 #define DI_GENERAL_WATCHDOG_MODE 0x000c0000 299 #define DI_GENERAL_POLARITY_DISP_CLK 0x00020000 300 #define DI_GENERAL_SYNC_COUNT_SEL 0x0000f000 301 #define DI_GENERAL_ERR_TREATMENT 0x00000800 302 #define DI_GENERAL_ERM_VSYNC_SEL 0x00000400 303 #define DI_GENERAL_POLARITY_CS(n) (1 << ((n) + 8)) 304 #define DI_GENERAL_POLARITY(n) (1 << ((n) - 1)) 305 306 #define IPU_DI_BS_CLKGEN0 0x00000004 307 #define DI_BS_CLKGEN0_OFFSET_SHIFT 16 308 #define IPU_DI_BS_CLKGEN1 0x00000008 309 #define DI_BS_CLKGEN1_DOWN_SHIFT 16 310 #define DI_BS_CLKGEN1_UP_SHIFT 0 311 #define IPU_DI_SW_GEN0(n) (0x0000000c + ((n) - 1) * 4) 312 #define DI_SW_GEN0_RUN_VAL 0x7ff80000 313 #define DI_SW_GEN0_RUN_RESOL 0x00070000 314 #define DI_SW_GEN0_OFFSET_VAL 0x00007ff8 315 #define DI_SW_GEN0_OFFSET_RESOL 0x00000007 316 #define __DI_SW_GEN0(run_val, run_resol, offset_val, offset_resol) \ 317 (((run_val) << 19) | ((run_resol) << 16) | \ 318 ((offset_val) << 3) | (offset_resol)) 319 #define IPU_DI_SW_GEN1(n) (0x00000030 + ((n) - 1) * 4) 320 #define DI_SW_GEN1_CNT_POL_GEN_EN 0x60000000 321 #define DI_SW_GEN1_CNT_AUTO_RELOAD 0x10000000 322 #define DI_SW_GEN1_CNT_CLR_SEL 0x0e000000 323 #define DI_SW_GEN1_CNT_DOWN 0x01ff0000 324 #define DI_SW_GEN1_CNT_POL_TRIG_SEL 0x00007000 325 #define DI_SW_GEN1_CNT_POL_CLR_SEL 0x00000e00 326 #define DI_SW_GEN1_CNT_UP 0x000001ff 327 #define __DI_SW_GEN1(pol_gen_en, auto_reload, clr_sel, down, pol_trig_sel, pol_clr_sel, up) \ 328 (((pol_gen_en) << 29) | ((auto_reload) << 28) | \ 329 ((clr_sel) << 25) | \ 330 ((down) << 16) | ((pol_trig_sel) << 12) | \ 331 ((pol_clr_sel) << 9) | (up)) 332 #define IPU_DI_SYNC_AS_GEN 0x00000054 333 #define DI_SYNC_AS_GEN_SYNC_START_EN 0x10000000 334 #define DI_SYNC_AS_GEN_VSYNC_SEL 0x0000e000 335 #define DI_SYNC_AS_GEN_VSYNC_SEL_SHIFT 13 336 #define DI_SYNC_AS_GEN_SYNC_STAR 0x00000fff 337 #define IPU_DI_DW_GEN(n) (0x00000058 + (n) * 4) 338 #define DI_DW_GEN_ACCESS_SIZE_SHIFT 24 339 #define DI_DW_GEN_COMPONNENT_SIZE_SHIFT 16 340 #define DI_DW_GEN_PIN_SHIFT(n) (((n) - 11) * 2) 341 #define DI_DW_GEN_PIN(n) __BITS(DI_DW_GEN_PIN_SHIFT(n) + 1, \ 342 DI_DW_GEN_PIN_SHIFT(n)) 343 #define IPU_DI_DW_SET(n, m) (0x00000088 + (n) * 4 + (m) * 0x30) 344 #define DI_DW_SET_DOWN_SHIFT 16 345 #define DI_DW_SET_UP_SHIFT 0 346 #define IPU_DI_STP_REP(n) (0x00000148 + ((n - 1) / 2) * 4) 347 #define DI_STP_REP_SHIFT(n) (((n - 1) % 2) * 16) 348 #define DI_STP_REP_MASK(n) (0x00000fff << DI_STP_REP_SHIFT((n))) 349 #define IPU_DI_SER_CONF 0x0000015c 350 #define IPU_DI_SSC 0x00000160 351 #define IPU_DI_POL 0x00000164 352 #define DI_POL_DRDY_POLARITY_17 0x00000040 353 #define DI_POL_DRDY_POLARITY_16 0x00000020 354 #define DI_POL_DRDY_POLARITY_15 0x00000010 355 #define DI_POL_DRDY_POLARITY_14 0x00000008 356 #define DI_POL_DRDY_POLARITY_13 0x00000004 357 #define DI_POL_DRDY_POLARITY_12 0x00000002 358 #define DI_POL_DRDY_POLARITY_11 0x00000001 359 #define IPU_DI_AW0 0x00000168 360 #define IPU_DI_AW1 0x0000016c 361 #define IPU_DI_SCR_CONF 0x00000170 362 #define IPU_DI_STAT 0x00000174 363 364 /* 365 * SMFC 366 * Sensor Multi FIFO Controller 367 */ 368 #define IPU_SMFC_MAP 0x00000000 369 #define IPU_SMFC_WMC 0x00000004 370 #define IPU_SMFC_BS 0x00000008 371 372 /* 373 * DC 374 * Display Controller 375 */ 376 #define IPU_DC_READ_CH_CONF 0x00000000 377 #define IPU_DC_READ_CH_ADDR 0x00000004 378 379 #define IPU_DC_RL0_CH_0 0x00000008 380 #define IPU_DC_RL1_CH_0 0x0000000c 381 #define IPU_DC_RL2_CH_0 0x00000010 382 #define IPU_DC_RL3_CH_0 0x00000014 383 #define IPU_DC_RL4_CH_0 0x00000018 384 #define IPU_DC_WR_CH_CONF_1 0x0000001c 385 #define IPU_DC_WR_CH_ADDR_1 0x00000020 386 #define IPU_DC_RL0_CH_1 0x00000024 387 #define IPU_DC_RL1_CH_1 0x00000028 388 #define IPU_DC_RL2_CH_1 0x0000002c 389 #define IPU_DC_RL3_CH_1 0x00000030 390 #define IPU_DC_RL4_CH_1 0x00000034 391 #define IPU_DC_WR_CH_CONF_2 0x00000038 392 #define IPU_DC_WR_CH_ADDR_2 0x0000003c 393 #define IPU_DC_RL0_CH_2 0x00000040 394 #define IPU_DC_RL1_CH_2 0x00000044 395 #define IPU_DC_RL2_CH_2 0x00000048 396 #define IPU_DC_RL3_CH_2 0x0000004c 397 #define IPU_DC_RL4_CH_2 0x00000050 398 #define IPU_DC_CMD_CH_CONF_3 0x00000054 399 #define IPU_DC_CMD_CH_CONF_4 0x00000058 400 #define IPU_DC_WR_CH_CONF_5 0x0000005c 401 #define IPU_DC_WR_CH_ADDR_5 0x00000060 402 #define IPU_DC_RL0_CH_5 0x00000064 403 #define IPU_DC_RL1_CH_5 0x00000068 404 #define IPU_DC_RL2_CH_5 0x0000006c 405 #define IPU_DC_RL3_CH_5 0x00000070 406 #define IPU_DC_RL4_CH_5 0x00000074 407 #define IPU_DC_WR_CH_CONF_6 0x00000078 408 #define IPU_DC_WR_CH_ADDR_6 0x0000007c 409 #define IPU_DC_RL0_CH_6 0x00000080 410 #define IPU_DC_RL1_CH_6 0x00000084 411 #define IPU_DC_RL2_CH_6 0x00000088 412 #define IPU_DC_RL3_CH_6 0x0000008c 413 #define IPU_DC_RL4_CH_6 0x00000090 414 #define IPU_DC_WR_CH_CONF1_8 0x00000094 415 #define IPU_DC_WR_CH_CONF2_8 0x00000098 416 #define IPU_DC_RL1_CH_8 0x0000009c 417 #define IPU_DC_RL2_CH_8 0x000000a0 418 #define IPU_DC_RL3_CH_8 0x000000a4 419 #define IPU_DC_RL4_CH_8 0x000000a8 420 #define IPU_DC_RL5_CH_8 0x000000ac 421 #define IPU_DC_RL6_CH_8 0x000000b0 422 #define IPU_DC_WR_CH_CONF1_9 0x000000b4 423 #define IPU_DC_WR_CH_CONF2_9 0x000000b8 424 #define IPU_DC_RL1_CH_9 0x000000bc 425 #define IPU_DC_RL2_CH_9 0x000000c0 426 #define IPU_DC_RL3_CH_9 0x000000c4 427 #define IPU_DC_RL4_CH_9 0x000000c8 428 #define IPU_DC_RL5_CH_9 0x000000cc 429 #define IPU_DC_RL6_CH_9 0x000000d0 430 431 #define IPU_DC_RL(chan_base, evt) ((chan_base) + (evt / 2) *0x4) 432 #define DC_RL_CH_0 IPU_DC_RL0_CH_0 433 #define DC_RL_CH_1 IPU_DC_RL0_CH_1 434 #define DC_RL_CH_2 IPU_DC_RL0_CH_2 435 #define DC_RL_CH_5 IPU_DC_RL0_CH_5 436 #define DC_RL_CH_6 IPU_DC_RL0_CH_6 437 #define DC_RL_CH_8 IPU_DC_RL0_CH_8 438 439 #define DC_RL_EVT_NF 0 440 #define DC_RL_EVT_NL 1 441 #define DC_RL_EVT_EOF 2 442 #define DC_RL_EVT_NFIELD 3 443 #define DC_RL_EVT_EOL 4 444 #define DC_RL_EVT_EOFIELD 5 445 #define DC_RL_EVT_NEW_ADDR 6 446 #define DC_RL_EVT_NEW_CHAN 7 447 #define DC_RL_EVT_NEW_DATA 8 448 449 #define IPU_DC_GEN 0x000000d4 450 #define IPU_DC_DISP_CONF1_0 0x000000d8 451 #define IPU_DC_DISP_CONF1_1 0x000000dc 452 #define IPU_DC_DISP_CONF1_2 0x000000e0 453 #define IPU_DC_DISP_CONF1_3 0x000000e4 454 #define IPU_DC_DISP_CONF2_0 0x000000e8 455 #define IPU_DC_DISP_CONF2_1 0x000000ec 456 #define IPU_DC_DISP_CONF2_2 0x000000f0 457 #define IPU_DC_DISP_CONF2_3 0x000000f4 458 #define IPU_DC_DI0_CONF_1 0x000000f8 459 #define IPU_DC_DI0_CONF_2 0x000000fc 460 #define IPU_DC_DI1_CONF_1 0x00000100 461 #define IPU_DC_DI1_CONF_2 0x00000104 462 463 #define IPU_DC_MAP_CONF_PNTR(n) (0x00000108 + (n) * 4) 464 #define IPU_DC_MAP_CONF_0 0x00000108 465 #define IPU_DC_MAP_CONF_1 0x0000010c 466 #define IPU_DC_MAP_CONF_2 0x00000110 467 #define IPU_DC_MAP_CONF_3 0x00000114 468 #define IPU_DC_MAP_CONF_4 0x00000118 469 #define IPU_DC_MAP_CONF_5 0x0000011c 470 #define IPU_DC_MAP_CONF_6 0x00000120 471 #define IPU_DC_MAP_CONF_7 0x00000124 472 #define IPU_DC_MAP_CONF_8 0x00000128 473 #define IPU_DC_MAP_CONF_9 0x0000012c 474 #define IPU_DC_MAP_CONF_10 0x00000130 475 #define IPU_DC_MAP_CONF_11 0x00000134 476 #define IPU_DC_MAP_CONF_12 0x00000138 477 #define IPU_DC_MAP_CONF_13 0x0000013c 478 #define IPU_DC_MAP_CONF_14 0x00000140 479 480 #define IPU_DC_MAP_CONF_MASK(n) (0x00000144 + (n) * 4) 481 #define IPU_DC_MAP_CONF_15 0x00000144 482 #define IPU_DC_MAP_CONF_16 0x00000148 483 #define IPU_DC_MAP_CONF_17 0x0000014c 484 #define IPU_DC_MAP_CONF_18 0x00000150 485 #define IPU_DC_MAP_CONF_19 0x00000154 486 #define IPU_DC_MAP_CONF_20 0x00000158 487 #define IPU_DC_MAP_CONF_21 0x0000015c 488 #define IPU_DC_MAP_CONF_22 0x00000160 489 #define IPU_DC_MAP_CONF_23 0x00000164 490 #define IPU_DC_MAP_CONF_24 0x00000168 491 #define IPU_DC_MAP_CONF_25 0x0000016c 492 #define IPU_DC_MAP_CONF_26 0x00000170 493 494 #define IPU_DC_UGDE(m, n) (0x00000174 + (m) * 0x10 + (n) +4) 495 #define IPU_DC_UGDE0_0 0x00000174 496 #define IPU_DC_UGDE0_1 0x00000178 497 #define IPU_DC_UGDE0_2 0x0000017c 498 #define IPU_DC_UGDE0_3 0x00000180 499 #define IPU_DC_UGDE1_0 0x00000184 500 #define IPU_DC_UGDE1_1 0x00000188 501 #define IPU_DC_UGDE1_2 0x0000018c 502 #define IPU_DC_UGDE1_3 0x00000190 503 #define IPU_DC_UGDE2_0 0x00000194 504 #define IPU_DC_UGDE2_1 0x00000198 505 #define IPU_DC_UGDE2_2 0x0000019c 506 #define IPU_DC_UGDE2_3 0x000001a0 507 #define IPU_DC_UGDE3_0 0x000001a4 508 #define IPU_DC_UGDE3_1 0x000001a8 509 #define IPU_DC_UGDE3_2 0x000001ac 510 #define IPU_DC_UGDE3_3 0x000001b0 511 #define IPU_DC_LLA0 0x000001b4 512 #define IPU_DC_LLA1 0x000001b8 513 #define IPU_DC_R_LLA0 0x000001bc 514 #define IPU_DC_R_LLA1 0x000001c0 515 #define IPU_DC_WR_CH_ADDR_5_ALT 0x000001c4 516 #define IPU_DC_STAT 0x000001c8 517 518 /* 519 * DMFC 520 * Display Multi FIFO Controller 521 */ 522 #define IPU_DMFC_RD_CHAN 0x00000000 523 #define DMFC_RD_CHAN_PPW_C 0x03000000 524 #define DMFC_RD_CHAN_WM_DR_0 0x00e00000 525 #define DMFC_RD_CHAN_WM_SET_0 0x001c0000 526 #define DMFC_RD_CHAN_WM_EN_0 0x00020000 527 #define DMFC_RD_CHAN_BURST_SIZE_0 0x000000c0 528 #define IPU_DMFC_WR_CHAN 0x00000004 529 #define DMFC_WR_CHAN_BUSRT_SIZE_2C 0xc0000000 530 #define DMFC_WR_CHAN_FIFO_SIZE_2C 0x38000000 531 #define DMFC_WR_CHAN_ST_ADDR_2C 0x07000000 532 #define DMFC_WR_CHAN_BURST_SIZE_1C 0x00c00000 533 #define DMFC_WR_CHAN_FIFO_SIZE_1C 0x00380000 534 #define DMFC_WR_CHAN_ST_ADDR_1C 0x00070000 535 #define DMFC_WR_CHAN_BURST_SIZE_2 0x0000c000 536 #define DMFC_WR_CHAN_FIFO_SIZE_2 0x00003800 537 #define DMFC_WR_CHAN_ST_ADDR_2 0x00000700 538 #define DMFC_WR_CHAN_BURST_SIZE_1 0x000000c0 539 #define DMFC_WR_CHAN_FIFO_SIZE_1 0x00000038 540 #define DMFC_WR_CHAN_ST_ADDR_1 0x00000007 541 #define IPU_DMFC_WR_CHAN_DEF 0x00000008 542 #define DMFC_WR_CHAN_DEF_WM_CLR_2C 0xe0000000 543 #define DMFC_WR_CHAN_DEF_WM_SET_2C 0x1c000000 544 #define DMFC_WR_CHAN_DEF_WM_EN_2C 0x02000000 545 #define DMFC_WR_CHAN_DEF_WM_CLR_1C 0x00e00000 546 #define DMFC_WR_CHAN_DEF_WM_SET_1C 0x001c0000 547 #define DMFC_WR_CHAN_DEF_WM_EN_1C 0x00020000 548 #define DMFC_WR_CHAN_DEF_WM_CLR_2 0x0000e000 549 #define DMFC_WR_CHAN_DEF_WM_SET_2 0x00001c00 550 #define DMFC_WR_CHAN_DEF_WM_EN_2 0x00000200 551 #define DMFC_WR_CHAN_DEF_WM_CLR_1 0x000000e0 552 #define DMFC_WR_CHAN_DEF_WM_SET_1 0x0000000c 553 #define DMFC_WR_CHAN_DEF_WM_EN_1 0x00000002 554 #define IPU_DMFC_DP_CHAN 0x0000000c 555 #define DMFC_DP_CHAN_BUSRT_SIZE_6F 0xc0000000 556 #define DMFC_DP_CHAN_FIFO_SIZE_6F 0x38000000 557 #define DMFC_DP_CHAN_ST_ADDR_6F 0x07000000 558 #define DMFC_DP_CHAN_BURST_SIZE_6B 0x00c00000 559 #define DMFC_DP_CHAN_FIFO_SIZE_6B 0x00380000 560 #define DMFC_DP_CHAN_ST_ADDR_6B 0x00070000 561 #define DMFC_DP_CHAN_BURST_SIZE_5F 0x0000c000 562 #define DMFC_DP_CHAN_FIFO_SIZE_5F 0x00003800 563 #define DMFC_DP_CHAN_ST_ADDR_5F 0x00000700 564 #define DMFC_DP_CHAN_BURST_SIZE_5B 0x000000c0 565 #define DMFC_DP_CHAN_FIFO_SIZE_5B 0x00000038 566 #define DMFC_DP_CHAN_ST_ADDR_5B 0x00000007 567 #define IPU_DMFC_DP_CHAN_DEF 0x00000010 568 #define DMFC_DP_CHAN_DEF_WM_CLR_6F 0xe0000000 569 #define DMFC_DP_CHAN_DEF_WM_SET_6F 0x1c000000 570 #define DMFC_DP_CHAN_DEF_WM_EN_6F 0x02000000 571 #define DMFC_DP_CHAN_DEF_WM_CLR_6B 0x00e00000 572 #define DMFC_DP_CHAN_DEF_WM_SET_6B 0x001c0000 573 #define DMFC_DP_CHAN_DEF_WM_EN_6B 0x00020000 574 #define DMFC_DP_CHAN_DEF_WM_CLR_5F 0x0000e000 575 #define DMFC_DP_CHAN_DEF_WM_SET_5F 0x00001c00 576 #define DMFC_DP_CHAN_DEF_WM_EN_5F 0x00000200 577 #define DMFC_DP_CHAN_DEF_WM_CLR_5B 0x000000e0 578 #define DMFC_DP_CHAN_DEF_WM_SET_5B 0x0000001c 579 #define DMFC_DP_CHAN_DEF_WM_EN_5B 0x00000002 580 #define IPU_DMFC_GENERAL1 0x00000014 581 #define DMFC_GENERAL1_WAIT4EOT_9 0x01000000 582 #define DMFC_GENERAL1_WAIT4EOT_6F 0x00800000 583 #define DMFC_GENERAL1_WAIT4EOT_6B 0x00400000 584 #define DMFC_GENERAL1_WAIT4EOT_5F 0x00200000 585 #define DMFC_GENERAL1_WAIT4EOT_5B 0x00100000 586 #define DMFC_GENERAL1_WAIT4EOT_4 0x00080000 587 #define DMFC_GENERAL1_WAIT4EOT_3 0x00040000 588 #define DMFC_GENERAL1_WAIT4EOT_2 0x00020000 589 #define DMFC_GENERAL1_WAIT4EOT_1 0x00010000 590 #define DMFC_GENERAL1_WM_CLR_9 0x0000e000 591 #define DMFC_GENERAL1_WM_SET_9 0x00001c00 592 #define DMFC_GENERAL1_BURST_SIZE_9 0x00000060 593 #define DMFC_GENERAL1_DCDP_SYNC_PR 0x00000003 594 #define DCDP_SYNC_PR_FORBIDDEN 0 595 #define DCDP_SYNC_PR_DC_DP 1 596 #define DCDP_SYNC_PR_DP_DC 2 597 #define DCDP_SYNC_PR_ROUNDROBIN 3 598 #define IPU_DMFC_GENERAL2 0x00000018 599 #define DMFC_GENERAL2_FRAME_HEIGHT_RD 0x1fff0000 600 #define DMFC_GENERAL2_FRAME_WIDTH_RD 0x00001fff 601 #define IPU_DMFC_IC_CTRL 0x0000001c 602 #define DMFC_IC_CTRL_IC_FRAME_HEIGHT_RD 0xfff80000 603 #define DMFC_IC_CTRL_IC_FRAME_WIDTH_RD 0x0007ffc0 604 #define DMFC_IC_CTRL_IC_PPW_C 0x00000030 605 #define DMFC_IC_CTRL_IC_IN_PORT 0x00000007 606 #define IC_IN_PORT_CH28 0 607 #define IC_IN_PORT_CH41 1 608 #define IC_IN_PORT_DISABLE 2 609 #define IC_IN_PORT_CH23 4 610 #define IC_IN_PORT_CH27 5 611 #define IC_IN_PORT_CH24 6 612 #define IC_IN_PORT_CH29 7 613 #define IPU_DMFC_WR_CHAN_ALT 0x00000020 614 #define IPU_DMFC_WR_CHAN_DEF_ALT 0x00000024 615 #define IPU_DMFC_DP_CHAN_ALT 0x00000028 616 #define IPU_DMFC_DP_CHAN_DEF_ALT 0x0000002c 617 #define DMFC_DP_CHAN_DEF_ALT_WM_CLR_6F_ALT 0xe0000000 618 #define DMFC_DP_CHAN_DEF_ALT_WM_SET_6F_ALT 0x1c000000 619 #define DMFC_DP_CHAN_DEF_ALT_WM_EN_6F_ALT 0x02000000 620 #define DMFC_DP_CHAN_DEF_ALT_WM_CLR_6B_ALT 0x00e00000 621 #define DMFC_DP_CHAN_DEF_ALT_WM_SET_6B_ALT 0x001c0000 622 #define DMFC_DP_CHAN_DEF_ALT_WM_EN_6B_ALT 0x00020000 623 #define DMFC_DP_CHAN_DEF_ALT_WM_CLR_5B_ALT 0x000000e0 624 #define DMFC_DP_CHAN_DEF_ALT_WM_SET_5B_ALT 0x0000001c 625 #define DMFC_DP_CHAN_DEF_ALT_WM_EN_5B_ALT 0x00000002 626 #define IPU_DMFC_GENERAL1_ALT 0x00000030 627 #define DMFC_GENERAL1_ALT_WAIT4EOT_6F_ALT 0x00800000 628 #define DMFC_GENERAL1_ALT_WAIT4EOT_6B_ALT 0x00400000 629 #define DMFC_GENERAL1_ALT_WAIT4EOT_5B_ALT 0x00100000 630 #define DMFC_GENERAL1_ALT_WAIT4EOT_2_ALT 0x00020000 631 #define IPU_DMFC_STAT 0x00000034 632 #define DMFC_STAT_IC_BUFFER_EMPTY 0x02000000 633 #define DMFC_STAT_IC_BUFFER_FULL 0x01000000 634 #define DMFC_STAT_FIFO_EMPTY(n) __BIT(12 + (n)) 635 #define DMFC_STAT_FIFO_FULL(n) __BIT((n)) 636 637 /* 638 * VCI 639 * Video De Interkacing Module 640 */ 641 #define IPU_VDI_FSIZE 0x00000000 642 #define IPU_VDI_C 0x00000004 643 644 /* 645 * DP 646 * Display Processor 647 */ 648 #define IPU_DP_COM_CONF_SYNC 0x00000000 649 #define DP_FG_EN_SYNC 0x00000001 650 #define DP_DP_GWAM_SYNC 0x00000004 651 #define IPU_DP_GRAPH_WIND_CTRL_SYNC 0x00000004 652 #define IPU_DP_FG_POS_SYNC 0x00000008 653 #define IPU_DP_CUR_POS_SYNC 0x0000000c 654 #define IPU_DP_CUR_MAP_SYNC 0x00000010 655 #define IPU_DP_CSC_SYNC_0 0x00000054 656 #define IPU_DP_CSC_SYNC_1 0x00000058 657 #define IPU_DP_CUR_POS_ALT 0x0000005c 658 #define IPU_DP_COM_CONF_ASYNC0 0x00000060 659 #define IPU_DP_GRAPH_WIND_CTRL_ASYNC0 0x00000064 660 #define IPU_DP_FG_POS_ASYNC0 0x00000068 661 #define IPU_DP_CUR_POS_ASYNC0 0x0000006c 662 #define IPU_DP_CUR_MAP_ASYNC0 0x00000070 663 #define IPU_DP_CSC_ASYNC0_0 0x000000b4 664 #define IPU_DP_CSC_ASYNC0_1 0x000000b8 665 #define IPU_DP_COM_CONF_ASYNC1 0x000000bc 666 #define IPU_DP_GRAPH_WIND_CTRL_ASYNC1 0x000000c0 667 #define IPU_DP_FG_POS_ASYNC1 0x000000c4 668 #define IPU_DP_CUR_POS_ASYNC1 0x000000c8 669 #define IPU_DP_CUR_MAP_ASYNC1 0x000000cc 670 #define IPU_DP_CSC_ASYNC1_0 0x00000110 671 #define IPU_DP_CSC_ASYNC1_1 0x00000114 672 673 /* IDMA parameter */ 674 /* 675 * non-Interleaved parameter 676 * 677 * param 0: XV W0[ 9: 0] 678 * YV W0[18:10] 679 * XB W0[31:19] 680 * param 1: YB W0[43:32] 681 * NSB W0[44] 682 * CF W0[45] 683 * UBO W0[61:46] 684 * param 2: UBO W0[67:62] 685 * VBO W0[89:68] 686 * IOX W0[93:90] 687 * RDRW W0[94] 688 * Reserved W0[95] 689 * param 3: Reserved W0[112:96] 690 * S0 W0[113] 691 * BNDM W0[116:114] 692 * BM W0[118:117] 693 * ROT W0[119] 694 * HF W0[120] 695 * VF W0[121] 696 * THF W0[122] 697 * CAP W0[123] 698 * CAE W0[124] 699 * FW W0[127:125] 700 * param 4: FW W0[137:128] 701 * FH W0[149:138] 702 * param 5: EBA0 W1[28:0] 703 * EBA1 W1[31:29] 704 * param 6: EBA1 W1[57:32] 705 * ILO W1[63:58] 706 * param 7: ILO W1[77:64] 707 * NPB W1[84:78] 708 * PFS W1[88:85] 709 * ALU W1[89] 710 * ALBM W1[92:90] 711 * ID W1[94:93] 712 * TH W1[95] 713 * param 8: TH W1[101:96] 714 * SLY W1[115:102] 715 * WID3 W1[127:125] 716 * param 9: SLUV W1[141:128] 717 * CRE W1[149] 718 * 719 * Interleaved parameter 720 * 721 * param 0: XV W0[ 9: 0] 722 * YV W0[18:10] 723 * XB W0[31:19] 724 * param 1: YB W0[43:32] 725 * NSB W0[44] 726 * CF W0[45] 727 * SX W0[57:46] 728 * SY W0[61:58] 729 * param 2: SY W0[68:62] 730 * NS W0[78:69] 731 * SDX W0[85:79] 732 * SM W0[95:86] 733 * param 3: SCC W0[96] 734 * SCE W0[97] 735 * SDY W0[104:98] 736 * SDRX W0[105] 737 * SDRY W0[106] 738 * BPP W0[109:107] 739 * DEC_SEL W0[111:110] 740 * DIM W0[112] 741 * SO W0[113] 742 * BNDM W0[116:114] 743 * BM W0[118:117] 744 * ROT W0[119] 745 * HF W0[120] 746 * VF W0[121] 747 * THF W0[122] 748 * CAP W0[123] 749 * CAE W0[124] 750 * FW W0[127:125] 751 * param 4: FW W0[137:128] 752 * FH W0[149:138] 753 * param 5: EBA0 W1[28:0] 754 * EBA1 W1[31:29] 755 * param 6: EBA1 W1[57:32] 756 * ILO W1[63:58] 757 * param 7: ILO W1[77:64] 758 * NPB W1[84:78] 759 * PFS W1[88:85] 760 * ALU W1[89] 761 * ALBM W1[92:90] 762 * ID W1[94:93] 763 * TH W1[95] 764 * param 8: TH W1[101:96] 765 * SL W1[115:102] 766 * WID0 W1[118:116] 767 * WID1 W1[121:119] 768 * WID2 W1[124:122] 769 * WID3 W1[127:125] 770 * param 9: OFS0 W1[132:128] 771 * OFS1 W1[137:133] 772 * OFS2 W1[142:138] 773 * OFS3 W1[147:143] 774 * SXYS W1[148] 775 * CRE W1[149] 776 * DEC_SEL2 W1[150] 777 */ 778 779 #define __IDMA_PARAM(word, shift, size) \ 780 ((((word) & 0xff) << 16) | (((shift) & 0xff) << 8) | ((size) & 0xff)) 781 782 /* non-Interleaved parameter */ 783 /* W0 */ 784 #define IDMAC_Ch_PARAM_XV __IDMA_PARAM(0, 0, 10) 785 #define IDMAC_Ch_PARAM_YV __IDMA_PARAM(0, 10, 9) 786 #define IDMAC_Ch_PARAM_XB __IDMA_PARAM(0, 19, 13) 787 #define IDMAC_Ch_PARAM_YB __IDMA_PARAM(0, 32, 12) 788 #define IDMAC_Ch_PARAM_NSB __IDMA_PARAM(0, 44, 1) 789 #define IDMAC_Ch_PARAM_CF __IDMA_PARAM(0, 45, 1) 790 #define IDMAC_Ch_PARAM_UBO __IDMA_PARAM(0, 46, 22) 791 #define IDMAC_Ch_PARAM_VBO __IDMA_PARAM(0, 68, 22) 792 #define IDMAC_Ch_PARAM_IOX __IDMA_PARAM(0, 90, 4) 793 #define IDMAC_Ch_PARAM_RDRW __IDMA_PARAM(0, 94, 1) 794 #define IDMAC_Ch_PARAM_S0 __IDMA_PARAM(0,113, 1) 795 #define IDMAC_Ch_PARAM_BNDM __IDMA_PARAM(0,114, 3) 796 #define IDMAC_Ch_PARAM_BM __IDMA_PARAM(0,117, 2) 797 #define IDMAC_Ch_PARAM_ROT __IDMA_PARAM(0,119, 1) 798 #define IDMAC_Ch_PARAM_HF __IDMA_PARAM(0,120, 1) 799 #define IDMAC_Ch_PARAM_VF __IDMA_PARAM(0,121, 1) 800 #define IDMAC_Ch_PARAM_THF __IDMA_PARAM(0,122, 1) 801 #define IDMAC_Ch_PARAM_CAP __IDMA_PARAM(0,123, 1) 802 #define IDMAC_Ch_PARAM_CAE __IDMA_PARAM(0,124, 1) 803 #define IDMAC_Ch_PARAM_FW __IDMA_PARAM(0,125, 13) 804 #define IDMAC_Ch_PARAM_FH __IDMA_PARAM(0,138, 12) 805 /* W1 */ 806 #define IDMAC_Ch_PARAM_EBA0 __IDMA_PARAM(1, 0, 29) 807 #define IDMAC_Ch_PARAM_EBA1 __IDMA_PARAM(1, 29, 29) 808 #define IDMAC_Ch_PARAM_ILO __IDMA_PARAM(1, 58, 20) 809 #define IDMAC_Ch_PARAM_NPB __IDMA_PARAM(1, 78, 7) 810 #define IDMAC_Ch_PARAM_PFS __IDMA_PARAM(1, 85, 4) 811 #define IDMAC_Ch_PARAM_ALU __IDMA_PARAM(1, 89, 1) 812 #define IDMAC_Ch_PARAM_ALBM __IDMA_PARAM(1, 90, 3) 813 #define IDMAC_Ch_PARAM_ID __IDMA_PARAM(1, 93, 2) 814 #define IDMAC_Ch_PARAM_TH __IDMA_PARAM(1, 95, 7) 815 #define IDMAC_Ch_PARAM_SL __IDMA_PARAM(1,102, 14) 816 #define IDMAC_Ch_PARAM_WID3 __IDMA_PARAM(1,125, 3) 817 #define IDMAC_Ch_PARAM_SLUV __IDMA_PARAM(1,128, 14) 818 #define IDMAC_Ch_PARAM_CRE __IDMA_PARAM(1,149, 1) 819 820 /* Interleaved parameter */ 821 /* W0 */ 822 #define IDMAC_Ch_PARAM_XV __IDMA_PARAM(0, 0, 10) 823 #define IDMAC_Ch_PARAM_YV __IDMA_PARAM(0, 10, 9) 824 #define IDMAC_Ch_PARAM_XB __IDMA_PARAM(0, 19, 13) 825 #define IDMAC_Ch_PARAM_YB __IDMA_PARAM(0, 32, 12) 826 #define IDMAC_Ch_PARAM_NSB __IDMA_PARAM(0, 44, 1) 827 #define IDMAC_Ch_PARAM_CF __IDMA_PARAM(0, 45, 1) 828 #define IDMAC_Ch_PARAM_SX __IDMA_PARAM(0, 46, 12) 829 #define IDMAC_Ch_PARAM_SY __IDMA_PARAM(0, 58, 11) 830 #define IDMAC_Ch_PARAM_NS __IDMA_PARAM(0, 69, 10) 831 #define IDMAC_Ch_PARAM_SDX __IDMA_PARAM(0, 79, 7) 832 #define IDMAC_Ch_PARAM_SM __IDMA_PARAM(0, 86, 10) 833 #define IDMAC_Ch_PARAM_SCC __IDMA_PARAM(0, 96, 1) 834 #define IDMAC_Ch_PARAM_SCE __IDMA_PARAM(0, 97, 1) 835 #define IDMAC_Ch_PARAM_SDY __IDMA_PARAM(0, 98, 7) 836 #define IDMAC_Ch_PARAM_SDRX __IDMA_PARAM(0,105, 1) 837 #define IDMAC_Ch_PARAM_SDRY __IDMA_PARAM(0,106, 1) 838 #define IDMAC_Ch_PARAM_BPP __IDMA_PARAM(0,107, 3) 839 #define IDMAC_Ch_PARAM_DEC_SEL __IDMA_PARAM(0,110, 2) 840 #define IDMAC_Ch_PARAM_DIM __IDMA_PARAM(0,112, 1) 841 #define IDMAC_Ch_PARAM_SO __IDMA_PARAM(0,113, 1) 842 #define IDMAC_Ch_PARAM_BNDM __IDMA_PARAM(0,114, 3) 843 #define IDMAC_Ch_PARAM_BM __IDMA_PARAM(0,117, 2) 844 #define IDMAC_Ch_PARAM_ROT __IDMA_PARAM(0,119, 1) 845 #define IDMAC_Ch_PARAM_HF __IDMA_PARAM(0,120, 1) 846 #define IDMAC_Ch_PARAM_VF __IDMA_PARAM(0,121, 1) 847 #define IDMAC_Ch_PARAM_THF __IDMA_PARAM(0,122, 1) 848 #define IDMAC_Ch_PARAM_CAP __IDMA_PARAM(0,123, 1) 849 #define IDMAC_Ch_PARAM_CAE __IDMA_PARAM(0,124, 1) 850 #define IDMAC_Ch_PARAM_FW __IDMA_PARAM(0,125, 13) 851 #define IDMAC_Ch_PARAM_FH __IDMA_PARAM(0,138, 12) 852 /* W1 */ 853 #define IDMAC_Ch_PARAM_EBA0 __IDMA_PARAM(1, 0, 29) 854 #define IDMAC_Ch_PARAM_EBA1 __IDMA_PARAM(1, 29, 29) 855 #define IDMAC_Ch_PARAM_ILO __IDMA_PARAM(1, 58, 20) 856 #define IDMAC_Ch_PARAM_NPB __IDMA_PARAM(1, 78, 7) 857 #define IDMAC_Ch_PARAM_PFS __IDMA_PARAM(1, 85, 4) 858 #define IDMAC_Ch_PARAM_ALU __IDMA_PARAM(1, 89, 1) 859 #define IDMAC_Ch_PARAM_ALBM __IDMA_PARAM(1, 90, 3) 860 #define IDMAC_Ch_PARAM_ID __IDMA_PARAM(1, 93, 2) 861 #define IDMAC_Ch_PARAM_TH __IDMA_PARAM(1, 95, 7) 862 #define IDMAC_Ch_PARAM_SL __IDMA_PARAM(1,102, 14) 863 #define IDMAC_Ch_PARAM_WID0 __IDMA_PARAM(1,116, 3) 864 #define IDMAC_Ch_PARAM_WID1 __IDMA_PARAM(1,119, 3) 865 #define IDMAC_Ch_PARAM_WID2 __IDMA_PARAM(1,122, 3) 866 #define IDMAC_Ch_PARAM_WID3 __IDMA_PARAM(1,125, 3) 867 #define IDMAC_Ch_PARAM_OFS0 __IDMA_PARAM(1,128, 5) 868 #define IDMAC_Ch_PARAM_OFS1 __IDMA_PARAM(1,133, 5) 869 #define IDMAC_Ch_PARAM_OFS2 __IDMA_PARAM(1,138, 5) 870 #define IDMAC_Ch_PARAM_OFS3 __IDMA_PARAM(1,143, 5) 871 #define IDMAC_Ch_PARAM_SXYS __IDMA_PARAM(1,148, 1) 872 #define IDMAC_Ch_PARAM_CRE __IDMA_PARAM(1,149, 1) 873 #define IDMAC_Ch_PARAM_DEC_SEL2 __IDMA_PARAM(1,150, 1) 874 875 /* XXX Temp */ 876 #define GPUMEM_BASE 0x20000000 877 #define GPUMEM_SIZE 0x20000 878 879 #define GPU_BASE 0x30000000 880 #define GPU_SIZE 0x10000000 881 882 /* 883 * Image Processing Unit 884 * 885 * All addresses are relative to the base SoC address. 886 */ 887 #define IPU_CM_BASE(_base) ((_base) + 0x1e000000) 888 #define IPU_CM_SIZE 0x8000 889 #define IPU_IDMAC_BASE(_base) ((_base) + 0x1e008000) 890 #define IPU_IDMAC_SIZE 0x8000 891 #define IPU_DP_BASE(_base) ((_base) + 0x1e018000) 892 #define IPU_DP_SIZE 0x8000 893 #define IPU_IC_BASE(_base) ((_base) + 0x1e020000) 894 #define IPU_IC_SIZE 0x8000 895 #define IPU_IRT_BASE(_base) ((_base) + 0x1e028000) 896 #define IPU_IRT_SIZE 0x8000 897 #define IPU_CSI0_BASE(_base) ((_base) + 0x1e030000) 898 #define IPU_CSI0_SIZE 0x8000 899 #define IPU_CSI1_BASE(_base) ((_base) + 0x1e038000) 900 #define IPU_CSI1_SIZE 0x8000 901 #define IPU_DI0_BASE(_base) ((_base) + 0x1e040000) 902 #define IPU_DI0_SIZE 0x8000 903 #define IPU_DI1_BASE(_base) ((_base) + 0x1e048000) 904 #define IPU_DI1_SIZE 0x8000 905 #define IPU_SMFC_BASE(_base) ((_base) + 0x1e050000) 906 #define IPU_SMFC_SIZE 0x8000 907 #define IPU_DC_BASE(_base) ((_base) + 0x1e058000) 908 #define IPU_DC_SIZE 0x8000 909 #define IPU_DMFC_BASE(_base) ((_base) + 0x1e060000) 910 #define IPU_DMFC_SIZE 0x8000 911 #define IPU_VDI_BASE(_base) ((_base) + 0x1e068000) 912 #define IPU_VDI_SIZE 0x8000 913 #define IPU_CPMEM_BASE(_base) ((_base) + 0x1f000000) 914 #define IPU_CPMEM_SIZE 0x20000 915 #define IPU_LUT_BASE(_base) ((_base) + 0x1f020000) 916 #define IPU_LUT_SIZE 0x20000 917 #define IPU_SRM_BASE(_base) ((_base) + 0x1f040000) 918 #define IPU_SRM_SIZE 0x20000 919 #define IPU_TPM_BASE(_base) ((_base) + 0x1f060000) 920 #define IPU_TPM_SIZE 0x20000 921 #define IPU_DCTMPL_BASE(_base) ((_base) + 0x1f080000) 922 #define IPU_DCTMPL_SIZE 0x20000 923 924 #endif /* _ARM_IMX_IMX51_IPUV3REG_H */ 925