1*a656470bShkenken /* $NetBSD: imx51_ipuv3reg.h,v 1.2 2014/11/07 11:54:18 hkenken Exp $ */ 2456cfa81Sbsh /* 3456cfa81Sbsh * Copyright (c) 2011, 2012 Genetec Corporation. All rights reserved. 4456cfa81Sbsh * Written by Hashimoto Kenichi for Genetec Corporation. 5456cfa81Sbsh * 6456cfa81Sbsh * Redistribution and use in source and binary forms, with or without 7456cfa81Sbsh * modification, are permitted provided that the following conditions 8456cfa81Sbsh * are met: 9456cfa81Sbsh * 1. Redistributions of source code must retain the above copyright 10456cfa81Sbsh * notice, this list of conditions and the following disclaimer. 11456cfa81Sbsh * 2. Redistributions in binary form must reproduce the above copyright 12456cfa81Sbsh * notice, this list of conditions and the following disclaimer in the 13456cfa81Sbsh * documentation and/or other materials provided with the distribution. 14456cfa81Sbsh * 15456cfa81Sbsh * THIS SOFTWARE IS PROVIDED BY GENETEC CORPORATION ``AS IS'' AND 16456cfa81Sbsh * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 17456cfa81Sbsh * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 18456cfa81Sbsh * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GENETEC CORPORATION 19456cfa81Sbsh * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 20456cfa81Sbsh * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 21456cfa81Sbsh * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 22456cfa81Sbsh * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 23456cfa81Sbsh * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 24456cfa81Sbsh * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 25456cfa81Sbsh * POSSIBILITY OF SUCH DAMAGE. 26456cfa81Sbsh */ 27456cfa81Sbsh #ifndef _ARM_IMX_IMX51_IPUV3REG_H 28456cfa81Sbsh #define _ARM_IMX_IMX51_IPUV3REG_H 29456cfa81Sbsh 30456cfa81Sbsh /* register offset address */ 31456cfa81Sbsh 32456cfa81Sbsh /* 33456cfa81Sbsh * CM 34456cfa81Sbsh * Control Module 35456cfa81Sbsh */ 36456cfa81Sbsh #define IPU_CM_CONF 0x00000000 37456cfa81Sbsh #define CM_CONF_CSI_SEL __BIT(31) 38456cfa81Sbsh #define CM_CONF_IC_INPUT __BIT(30) 39456cfa81Sbsh #define CM_CONF_CSI1_DATA_SOURCE __BIT(29) 40456cfa81Sbsh #define CM_CONF_CSI0_DATA_SOURCE __BIT(28) 41456cfa81Sbsh #define CM_CONF_VDI_DMFC_SYNC __BIT(27) 42456cfa81Sbsh #define CM_CONF_IC_DMFC_SYNC __BIT(26) 43456cfa81Sbsh #define CM_CONF_IC_DMFC_SEL __BIT(25) 44456cfa81Sbsh #define CM_CONF_ISP_DOUBLE_FLOW __BIT(24) 45456cfa81Sbsh #define CM_CONF_IDMAC_DISABLE __BIT(22) 46456cfa81Sbsh #define CM_CONF_IPU_DIAGBUS_ON __BIT(21) 47456cfa81Sbsh #define CM_CONF_IPU_DIAGBUS_MODE __BITS(20, 16) 48456cfa81Sbsh #define CM_CONF_VDI_EN __BIT(12) 49456cfa81Sbsh #define CM_CONF_SISG_EN __BIT(11) 50456cfa81Sbsh #define CM_CONF_DMFC_EN __BIT(10) 51456cfa81Sbsh #define CM_CONF_DC_EN __BIT(9) 52456cfa81Sbsh #define CM_CONF_SMFC_EN __BIT(8) 53456cfa81Sbsh #define CM_CONF_DI1_EN __BIT(7) 54456cfa81Sbsh #define CM_CONF_DI0_EN __BIT(6) 55456cfa81Sbsh #define CM_CONF_DP_EN __BIT(5) 56456cfa81Sbsh #define CM_CONF_ISP_EN __BIT(4) 57456cfa81Sbsh #define CM_CONF_IRT_EN __BIT(3) 58456cfa81Sbsh #define CM_CONF_IC_EN __BIT(2) 59456cfa81Sbsh #define CM_CONF_CSI1_EN __BIT(1) 60456cfa81Sbsh #define CM_CONF_CSI0_EN __BIT(0) 61456cfa81Sbsh #define IPU_SISG_CTRL0 0x00000004 62456cfa81Sbsh #define IPU_SISG_CTRL1 0x00000008 63456cfa81Sbsh #define IPU_CM_INT_CTRL_1 0x0000003c 64456cfa81Sbsh #define IPU_CM_INT_CTRL_2 0x00000040 65456cfa81Sbsh #define IPU_CM_INT_CTRL_3 0x00000044 66456cfa81Sbsh #define IPU_CM_INT_CTRL_4 0x00000048 67456cfa81Sbsh #define IPU_CM_INT_CTRL_5 0x0000004c 68456cfa81Sbsh #define IPU_CM_INT_CTRL_6 0x00000050 69456cfa81Sbsh #define IPU_CM_INT_CTRL_7 0x00000054 70456cfa81Sbsh #define IPU_CM_INT_CTRL_8 0x00000058 71456cfa81Sbsh #define IPU_CM_INT_CTRL_9 0x0000005c 72456cfa81Sbsh #define IPU_CM_INT_CTRL_10 0x00000060 73456cfa81Sbsh #define IPU_CM_INT_CTRL_11 0x00000064 74456cfa81Sbsh #define IPU_CM_INT_CTRL_12 0x00000068 75456cfa81Sbsh #define IPU_CM_INT_CTRL_13 0x0000006c 76456cfa81Sbsh #define IPU_CM_INT_CTRL_14 0x00000070 77456cfa81Sbsh #define IPU_CM_INT_CTRL_15 0x00000074 78456cfa81Sbsh #define IPU_CM_SDMA_EVENT_1 0x00000078 79456cfa81Sbsh #define IPU_CM_SDMA_EVENT_2 0x0000007c 80456cfa81Sbsh #define IPU_CM_SDMA_EVENT_3 0x00000080 81456cfa81Sbsh #define IPU_CM_SDMA_EVENT_4 0x00000084 82456cfa81Sbsh #define IPU_CM_SDMA_EVENT_7 0x00000088 83456cfa81Sbsh #define IPU_CM_SDMA_EVENT_8 0x0000008c 84456cfa81Sbsh #define IPU_CM_SDMA_EVENT_11 0x00000090 85456cfa81Sbsh #define IPU_CM_SDMA_EVENT_12 0x00000094 86456cfa81Sbsh #define IPU_CM_SDMA_EVENT_13 0x00000098 87456cfa81Sbsh #define IPU_CM_SDMA_EVENT_14 0x0000009c 88456cfa81Sbsh #define IPU_CM_SRM_PRI1 0x000000a0 89456cfa81Sbsh #define IPU_CM_SRM_PRI2 0x000000a4 90456cfa81Sbsh #define IPU_CM_FS_PROC_FLOW1 0x000000a8 91456cfa81Sbsh #define IPU_CM_FS_PROC_FLOW2 0x000000ac 92456cfa81Sbsh #define IPU_CM_FS_PROC_FLOW3 0x000000b0 93456cfa81Sbsh #define IPU_CM_FS_DISP_FLOW1 0x000000b4 94456cfa81Sbsh #define IPU_CM_FS_DISP_FLOW2 0x000000b8 95456cfa81Sbsh #define IPU_CM_SKIP 0x000000bc 96456cfa81Sbsh #define IPU_CM_DISP_ALT_CONF 0x000000c0 97456cfa81Sbsh #define IPU_CM_DISP_GEN 0x000000c4 98*a656470bShkenken #define CM_DISP_GEN_DI1_COUNTER_RELEASE __BIT(25) 99456cfa81Sbsh #define CM_DISP_GEN_DI0_COUNTER_RELEASE __BIT(24) 100*a656470bShkenken #define CM_DISP_GEN_MCU_CSI_VSYNC_DEST __BIT(23) 101456cfa81Sbsh #define CM_DISP_GEN_MCU_MAX_BURST_STOP __BIT(22) 102*a656470bShkenken #define CM_DISP_GEN_MCU_T __BITS(18, 21) 103456cfa81Sbsh #define IPU_CM_DISP_ALT1 0x000000c8 104456cfa81Sbsh #define IPU_CM_DISP_ALT2 0x000000cc 105456cfa81Sbsh #define IPU_CM_DISP_ALT3 0x000000d0 106456cfa81Sbsh #define IPU_CM_DISP_ALT4 0x000000d4 107456cfa81Sbsh #define IPU_CM_SNOOP 0x000000d8 108456cfa81Sbsh #define IPU_CM_MEM_RST 0x000000dc 109456cfa81Sbsh #define CM_MEM_START __BIT(31) 110456cfa81Sbsh #define CM_MEM_EN __BITS(22, 0) 111456cfa81Sbsh #define IPU_CM_PM 0x000000e0 112456cfa81Sbsh #define IPU_CM_GPR 0x000000e4 113456cfa81Sbsh #define CM_GPR_IPU_CH_BUF1_RDY1_CLR __BIT(31) 114456cfa81Sbsh #define CM_GPR_IPU_CH_BUF1_RDY0_CLR __BIT(30) 115456cfa81Sbsh #define CM_GPR_IPU_CH_BUF0_RDY1_CLR __BIT(29) 116456cfa81Sbsh #define CM_GPR_IPU_CH_BUF0_RDY0_CLR __BIT(28) 117456cfa81Sbsh #define CM_GPR_IPU_ALT_CH_BUF1_RDY1_CLR __BIT(27) 118456cfa81Sbsh #define CM_GPR_IPU_ALT_CH_BUF1_RDY0_CLR __BIT(26) 119456cfa81Sbsh #define CM_GPR_IPU_ALT_CH_BUF0_RDY1_CLR __BIT(25) 120456cfa81Sbsh #define CM_GPR_IPU_ALT_CH_BUF0_RDY0_CLR __BIT(24) 121456cfa81Sbsh #define CM_GPR_IPU_DI1_CLK_CHANGE_ACK_DIS __BIT(23) 122456cfa81Sbsh #define CM_GPR_IPU_DI0_CLK_CHANGE_ACK_DIS __BIT(22) 123456cfa81Sbsh #define CM_GPR_IPU_CH_BUF2_RDY1_CLR __BIT(21) 124456cfa81Sbsh #define CM_GPR_IPU_CH_BUF2_RDY0_CLR __BIT(20) 125456cfa81Sbsh #define CM_GPR_IPU_GP(n) __BIT((n)) 126456cfa81Sbsh #define IPU_CM_CH_DB_MODE_SEL_0 0x00000150 127456cfa81Sbsh #define IPU_CM_CH_DB_MODE_SEL_1 0x00000154 128456cfa81Sbsh #define IPU_CM_ALT_CH_DB_MODE_SEL_0 0x00000168 129456cfa81Sbsh #define IPU_CM_ALT_CH_DB_MODE_SEL_1 0x0000016c 130456cfa81Sbsh #define IPU_CM_CH_TRB_MODE_SEL_0 0x00000178 131456cfa81Sbsh #define IPU_CM_CH_TRB_MODE_SEL_1 0x0000017c 132456cfa81Sbsh #define IPU_CM_INT_STAT_1 0x00000200 133456cfa81Sbsh #define IPU_CM_INT_STAT_2 0x00000204 134456cfa81Sbsh #define IPU_CM_INT_STAT_3 0x00000208 135456cfa81Sbsh #define IPU_CM_INT_STAT_4 0x0000020c 136456cfa81Sbsh #define IPU_CM_INT_STAT_5 0x00000210 137456cfa81Sbsh #define IPU_CM_INT_STAT_6 0x00000214 138456cfa81Sbsh #define IPU_CM_INT_STAT_7 0x00000218 139456cfa81Sbsh #define IPU_CM_INT_STAT_8 0x0000021c 140456cfa81Sbsh #define IPU_CM_INT_STAT_9 0x00000220 141456cfa81Sbsh #define IPU_CM_INT_STAT_10 0x00000224 142456cfa81Sbsh #define IPU_CM_INT_STAT_11 0x00000228 143456cfa81Sbsh #define IPU_CM_INT_STAT_12 0x0000022c 144456cfa81Sbsh #define IPU_CM_INT_STAT_13 0x00000230 145456cfa81Sbsh #define IPU_CM_INT_STAT_14 0x00000234 146456cfa81Sbsh #define IPU_CM_INT_STAT_15 0x00000238 147456cfa81Sbsh #define IPU_CM_CUR_BUF_0 0x0000023c 148456cfa81Sbsh #define IPU_CM_CUR_BUF_1 0x00000240 149456cfa81Sbsh #define IPU_CM_ALT_CUR_BUF_0 0x00000244 150456cfa81Sbsh #define IPU_CM_ALT_CUR_BUF_1 0x00000248 151456cfa81Sbsh #define IPU_CM_SRM_STAT 0x0000024c 152456cfa81Sbsh #define IPU_CM_PROC_TASKS_STAT 0x00000250 153456cfa81Sbsh #define IPU_CM_DISP_TASKS_STAT 0x00000254 154456cfa81Sbsh #define IPU_CM_TRIPLE_CUR_BUF_0 0x00000258 155456cfa81Sbsh #define IPU_CM_TRIPLE_CUR_BUF_1 0x0000025c 156456cfa81Sbsh #define IPU_CM_TRIPLE_CUR_BUF_2 0x00000260 157456cfa81Sbsh #define IPU_CM_TRIPLE_CUR_BUF_3 0x00000264 158456cfa81Sbsh #define IPU_CM_CH_BUF0_RDY0 0x00000268 159456cfa81Sbsh #define IPU_CM_CH_BUF0_RDY1 0x0000026c 160456cfa81Sbsh #define IPU_CM_CH_BUF1_RDY0 0x00000270 161456cfa81Sbsh #define IPU_CM_CH_BUF1_RDY1 0x00000274 162456cfa81Sbsh #define IPU_CM_ALT_CH_BUF0_RDY0 0x00000278 163456cfa81Sbsh #define IPU_CM_ALT_CH_BUF0_RDY1 0x0000027c 164456cfa81Sbsh #define IPU_CM_ALT_CH_BUF1_RDY0 0x00000280 165456cfa81Sbsh #define IPU_CM_ALT_CH_BUF1_RDY1 0x00000284 166456cfa81Sbsh #define IPU_CM_CH_BUF2_RDY0 0x00000288 167456cfa81Sbsh #define IPU_CM_CH_BUF2_RDY1 0x0000028c 168456cfa81Sbsh 169456cfa81Sbsh /* 170456cfa81Sbsh * IDMAC 171456cfa81Sbsh * Image DMA Controller 172456cfa81Sbsh */ 173456cfa81Sbsh #define IPU_IDMAC_CONF 0x00000000 174456cfa81Sbsh #define IPU_IDMAC_CH_EN_1 0x00000004 175456cfa81Sbsh #define IPU_IDMAC_CH_EN_2 0x00000008 176456cfa81Sbsh #define IPU_IDMAC_SEP_ALPHA 0x0000000c 177456cfa81Sbsh #define IPU_IDMAC_ALT_SEP_ALPHA 0x00000010 178456cfa81Sbsh #define IPU_IDMAC_CH_PRI_1 0x00000014 179456cfa81Sbsh #define IPU_IDMAC_CH_PRI_2 0x00000018 180456cfa81Sbsh #define IPU_IDMAC_WM_EN_1 0x0000001c 181456cfa81Sbsh #define IPU_IDMAC_WM_EN_2 0x00000020 182456cfa81Sbsh #define IPU_IDMAC_LOCK_EN_1 0x00000024 183456cfa81Sbsh #define IPU_IDMAC_LOCK_EN_2 0x00000028 184456cfa81Sbsh #define IPU_IDMAC_SUB_ADDR_0 0x0000002c 185456cfa81Sbsh #define IPU_IDMAC_SUB_ADDR_1 0x00000030 186456cfa81Sbsh #define IPU_IDMAC_SUB_ADDR_2 0x00000034 187456cfa81Sbsh #define IPU_IDMAC_SUB_ADDR_3 0x00000038 188456cfa81Sbsh #define IPU_IDMAC_SUB_ADDR_4 0x0000003c 189456cfa81Sbsh #define IPU_IDMAC_BNDM_EN_1 0x00000040 190456cfa81Sbsh #define IPU_IDMAC_BNDM_EN_2 0x00000044 191456cfa81Sbsh #define IPU_IDMAC_SC_CORD 0x00000048 192456cfa81Sbsh #define IPU_IDMAC_SC_CORD1 0x0000004c 193456cfa81Sbsh #define IPU_IDMAC_CH_BUSY_1 0x00000100 194456cfa81Sbsh #define IPU_IDMAC_CH_BUSY_2 0x00000104 195456cfa81Sbsh 196456cfa81Sbsh #define CH_PANNEL_BG 23 197456cfa81Sbsh #define CH_PANNEL_FG 27 198456cfa81Sbsh 199456cfa81Sbsh /* 200456cfa81Sbsh * DP 201456cfa81Sbsh * Display Port 202456cfa81Sbsh */ 203456cfa81Sbsh #define IPU_DP_DEBUG_CNT 0x000000bc 204456cfa81Sbsh #define IPU_DP_DEBUG_STAT 0x000000c0 205456cfa81Sbsh 206456cfa81Sbsh /* 207456cfa81Sbsh * IC 208456cfa81Sbsh * Image Converter 209456cfa81Sbsh */ 210456cfa81Sbsh #define IPU_IC_CONF 0x00000000 211456cfa81Sbsh #define IPU_IC_PRP_ENC_RSC 0x00000004 212456cfa81Sbsh #define IPU_IC_PRP_VF_RSC 0x00000008 213456cfa81Sbsh #define IPU_IC_PP_RSC 0x0000000c 214456cfa81Sbsh #define IPU_IC_CMBP_1 0x00000010 215456cfa81Sbsh #define IPU_IC_CMBP_2 0x00000014 216456cfa81Sbsh #define IPU_IC_IDMAC_1 0x00000018 217456cfa81Sbsh #define IPU_IC_IDMAC_2 0x0000001c 218456cfa81Sbsh #define IPU_IC_IDMAC_3 0x00000020 219456cfa81Sbsh #define IPU_IC_IDMAC_4 0x00000024 220456cfa81Sbsh 221456cfa81Sbsh /* 222456cfa81Sbsh * CSI 223456cfa81Sbsh * Camera Sensor Interface 224456cfa81Sbsh */ 225456cfa81Sbsh #define IPU_CSI0_SENS_CONF 0x00000000 226456cfa81Sbsh #define IPU_CSI0_SENS_FRM_SIZE 0x00000004 227456cfa81Sbsh #define IPU_CSI0_ACT_FRM_SIZE 0x00000008 228456cfa81Sbsh #define IPU_CSI0_OUT_FRM_CTRL 0x0000000c 229456cfa81Sbsh #define IPU_CSI0_TST_CTRL 0x00000010 230456cfa81Sbsh #define IPU_CSI0_CCIR_CODE_1 0x00000014 231456cfa81Sbsh #define IPU_CSI0_CCIR_CODE_2 0x00000018 232456cfa81Sbsh #define IPU_CSI0_CCIR_CODE_3 0x0000001c 233456cfa81Sbsh #define IPU_CSI0_DI 0x00000020 234456cfa81Sbsh #define IPU_CSI0_SKIP 0x00000024 235456cfa81Sbsh #define IPU_CSI0_CPD_CTRL 0x00000028 236456cfa81Sbsh #define IPU_CSI0_CPD_OFFSET1 0x000000ec 237456cfa81Sbsh #define IPU_CSI0_CPD_OFFSET2 0x000000f0 238456cfa81Sbsh 239456cfa81Sbsh #define IPU_CSI1_SENS_CONF 0x00000000 240456cfa81Sbsh #define IPU_CSI1_SENS_FRM_SIZE 0x00000004 241456cfa81Sbsh #define IPU_CSI1_ACT_FRM_SIZE 0x00000008 242456cfa81Sbsh #define IPU_CSI1_OUT_FRM_CTRL 0x0000000c 243456cfa81Sbsh #define IPU_CSI1_TST_CTRL 0x00000010 244456cfa81Sbsh #define IPU_CSI1_CCIR_CODE_1 0x00000014 245456cfa81Sbsh #define IPU_CSI1_CCIR_CODE_2 0x00000018 246456cfa81Sbsh #define IPU_CSI1_CCIR_CODE_3 0x0000001c 247456cfa81Sbsh #define IPU_CSI1_DI 0x00000020 248456cfa81Sbsh #define IPU_CSI1_SKIP 0x00000024 249456cfa81Sbsh #define IPU_CSI1_CPD_CTRL 0x00000028 250456cfa81Sbsh #define IPU_CSI1_CPD_OFFSET1 0x000000ec 251456cfa81Sbsh #define IPU_CSI1_CPD_OFFSET2 0x000000f0 252456cfa81Sbsh 253456cfa81Sbsh /* 254456cfa81Sbsh * DI 255456cfa81Sbsh * Display Interface 256456cfa81Sbsh */ 257456cfa81Sbsh #define IPU_DI_GENERAL 0x00000000 258456cfa81Sbsh #define DI_GENERAL_DISP_Y_SEL __BITS(30, 28) 259456cfa81Sbsh #define DI_GENERAL_CLOCK_STOP_MODE __BITS(27, 24) 260456cfa81Sbsh #define DI_GENERAL_DISP_CLOCK_INIT __BIT(23) 261456cfa81Sbsh #define DI_GENERAL_MASK_SEL __BIT(22) 262456cfa81Sbsh #define DI_GENERAL_VSYNC_EXT __BIT(21) 263456cfa81Sbsh #define DI_GENERAL_CLK_EXT __BIT(20) 264456cfa81Sbsh #define DI_GENERAL_WATCHDOG_MODE __BITS(19, 18) 265456cfa81Sbsh #define DI_GENERAL_POLARITY_DISP_CLK __BIT(17) 266456cfa81Sbsh #define DI_GENERAL_SYNC_COUNT_SEL __BITS(15, 12) 267456cfa81Sbsh #define DI_GENERAL_ERR_TREATMENT __BIT(11) 268456cfa81Sbsh #define DI_GENERAL_ERM_VSYNC_SEL __BIT(10) 269456cfa81Sbsh #define DI_GENERAL_POLARITY_CS(n) (1 << ((n) + 8)) 270456cfa81Sbsh #define DI_GENERAL_POLARITY(n) (1 << ((n) - 1)) 271456cfa81Sbsh 272456cfa81Sbsh #define IPU_DI_BS_CLKGEN0 0x00000004 273*a656470bShkenken #define DI_BS_CLKGEN0_OFFSET __BITS(24, 16) 274*a656470bShkenken #define DI_BS_CLKGEN0_PERIOD __BITS(11, 0) 275456cfa81Sbsh #define IPU_DI_BS_CLKGEN1 0x00000008 276*a656470bShkenken #define DI_BS_CLKGEN1_DOWN __BITS(24, 16) 277*a656470bShkenken #define DI_BS_CLKGEN1_UP __BITS(8, 0) 278456cfa81Sbsh #define IPU_DI_SW_GEN0(n) (0x0000000c + ((n) - 1) * 4) 279456cfa81Sbsh #define DI_SW_GEN0_RUN_VAL __BITS(30, 19) 280456cfa81Sbsh #define DI_SW_GEN0_RUN_RESOL __BITS(18, 16) 281456cfa81Sbsh #define DI_SW_GEN0_OFFSET_VAL __BITS(14, 3) 282456cfa81Sbsh #define DI_SW_GEN0_OFFSET_RESOL __BITS( 2, 0) 283456cfa81Sbsh #define __DI_SW_GEN0(run_val, run_resol, offset_val, offset_resol) \ 284456cfa81Sbsh (((run_val) << 19) | ((run_resol) << 16) | \ 285456cfa81Sbsh ((offset_val) << 3) | (offset_resol)) 286456cfa81Sbsh #define IPU_DI_SW_GEN1(n) (0x00000030 + ((n) - 1) * 4) 287456cfa81Sbsh #define DI_SW_GEN1_CNT_POL_GEN_EN __BITS(30, 29) 288456cfa81Sbsh #define DI_SW_GEN1_CNT_AUTO_RELOAD __BIT(28) 289456cfa81Sbsh #define DI_SW_GEN1_CNT_CLR_SEL __BITS(27, 25) 290456cfa81Sbsh #define DI_SW_GEN1_CNT_DOWN __BITS(24, 16) 291456cfa81Sbsh #define DI_SW_GEN1_CNT_POL_TRIG_SEL __BITS(14, 12) 292456cfa81Sbsh #define DI_SW_GEN1_CNT_POL_CLR_SEL __BITS(11, 9) 293456cfa81Sbsh #define DI_SW_GEN1_CNT_UP __BITS( 8, 0) 294456cfa81Sbsh #define __DI_SW_GEN1(pol_gen_en, auto_reload, clr_sel, down, pol_trig_sel, pol_clr_sel, up) \ 295456cfa81Sbsh (((pol_gen_en) << 29) | ((auto_reload) << 28) | \ 296456cfa81Sbsh ((clr_sel) << 25) | \ 297456cfa81Sbsh ((down) << 16) | ((pol_trig_sel) << 12) | \ 298456cfa81Sbsh ((pol_clr_sel) << 9) | (up)) 299456cfa81Sbsh #define IPU_DI_SYNC_AS_GEN 0x00000054 300456cfa81Sbsh #define DI_SYNC_AS_GEN_SYNC_START_EN __BIT(28) 301456cfa81Sbsh #define DI_SYNC_AS_GEN_VSYNC_SEL __BITS(15, 13) 302*a656470bShkenken #define DI_SYNC_AS_GEN_SYNC_START __BITS(11, 0) 303456cfa81Sbsh #define IPU_DI_DW_GEN(n) (0x00000058 + (n) * 4) 304*a656470bShkenken #define DI_DW_GEN_ACCESS_SIZE __BITS(31, 24) 305*a656470bShkenken #define DI_DW_GEN_COMPONNENT_SIZE __BITS(23, 16) 306*a656470bShkenken #define DI_DW_GEN_PIN(n) __BITS((((n) - 11) * 2) + 1, \ 307*a656470bShkenken ((n) - 11) * 2) 308456cfa81Sbsh #define IPU_DI_DW_SET(n, m) (0x00000088 + (n) * 4 + (m) * 0x30) 309*a656470bShkenken #define DI_DW_SET_DOWN __BITS(24, 16) 310*a656470bShkenken #define DI_DW_SET_UP __BITS(8, 0) 311456cfa81Sbsh #define IPU_DI_STP_REP(n) (0x00000148 + ((n - 1) / 2) * 4) 312*a656470bShkenken #define DI_STP_REP(n) (__BITS(11, 0) << (((n - 1) % 2) * 16)) 313456cfa81Sbsh #define IPU_DI_SER_CONF 0x0000015c 314456cfa81Sbsh #define IPU_DI_SSC 0x00000160 315456cfa81Sbsh #define IPU_DI_POL 0x00000164 316456cfa81Sbsh #define DI_POL_DRDY_POLARITY_17 __BIT(6) 317456cfa81Sbsh #define DI_POL_DRDY_POLARITY_16 __BIT(5) 318456cfa81Sbsh #define DI_POL_DRDY_POLARITY_15 __BIT(4) 319456cfa81Sbsh #define DI_POL_DRDY_POLARITY_14 __BIT(3) 320456cfa81Sbsh #define DI_POL_DRDY_POLARITY_13 __BIT(2) 321456cfa81Sbsh #define DI_POL_DRDY_POLARITY_12 __BIT(1) 322456cfa81Sbsh #define DI_POL_DRDY_POLARITY_11 __BIT(0) 323456cfa81Sbsh #define IPU_DI_AW0 0x00000168 324456cfa81Sbsh #define IPU_DI_AW1 0x0000016c 325456cfa81Sbsh #define IPU_DI_SCR_CONF 0x00000170 326456cfa81Sbsh #define IPU_DI_STAT 0x00000174 327456cfa81Sbsh 328456cfa81Sbsh /* 329456cfa81Sbsh * SMFC 330456cfa81Sbsh * Sensor Multi FIFO Controller 331456cfa81Sbsh */ 332456cfa81Sbsh #define IPU_SMFC_MAP 0x00000000 333456cfa81Sbsh #define IPU_SMFC_WMC 0x00000004 334456cfa81Sbsh #define IPU_SMFC_BS 0x00000008 335456cfa81Sbsh 336456cfa81Sbsh /* 337456cfa81Sbsh * DC 338456cfa81Sbsh * Display Controller 339456cfa81Sbsh */ 340456cfa81Sbsh #define IPU_DC_READ_CH_CONF 0x00000000 341456cfa81Sbsh #define IPU_DC_READ_CH_ADDR 0x00000004 342456cfa81Sbsh 343456cfa81Sbsh #define IPU_DC_RL0_CH_0 0x00000008 344456cfa81Sbsh #define IPU_DC_RL1_CH_0 0x0000000c 345456cfa81Sbsh #define IPU_DC_RL2_CH_0 0x00000010 346456cfa81Sbsh #define IPU_DC_RL3_CH_0 0x00000014 347456cfa81Sbsh #define IPU_DC_RL4_CH_0 0x00000018 348456cfa81Sbsh #define IPU_DC_WR_CH_CONF_1 0x0000001c 349456cfa81Sbsh #define IPU_DC_WR_CH_ADDR_1 0x00000020 350456cfa81Sbsh #define IPU_DC_RL0_CH_1 0x00000024 351456cfa81Sbsh #define IPU_DC_RL1_CH_1 0x00000028 352456cfa81Sbsh #define IPU_DC_RL2_CH_1 0x0000002c 353456cfa81Sbsh #define IPU_DC_RL3_CH_1 0x00000030 354456cfa81Sbsh #define IPU_DC_RL4_CH_1 0x00000034 355456cfa81Sbsh #define IPU_DC_WR_CH_CONF_2 0x00000038 356456cfa81Sbsh #define IPU_DC_WR_CH_ADDR_2 0x0000003c 357456cfa81Sbsh #define IPU_DC_RL0_CH_2 0x00000040 358456cfa81Sbsh #define IPU_DC_RL1_CH_2 0x00000044 359456cfa81Sbsh #define IPU_DC_RL2_CH_2 0x00000048 360456cfa81Sbsh #define IPU_DC_RL3_CH_2 0x0000004c 361456cfa81Sbsh #define IPU_DC_RL4_CH_2 0x00000050 362456cfa81Sbsh #define IPU_DC_CMD_CH_CONF_3 0x00000054 363456cfa81Sbsh #define IPU_DC_CMD_CH_CONF_4 0x00000058 364456cfa81Sbsh #define IPU_DC_WR_CH_CONF_5 0x0000005c 365456cfa81Sbsh #define IPU_DC_WR_CH_ADDR_5 0x00000060 366456cfa81Sbsh #define IPU_DC_RL0_CH_5 0x00000064 367456cfa81Sbsh #define IPU_DC_RL1_CH_5 0x00000068 368456cfa81Sbsh #define IPU_DC_RL2_CH_5 0x0000006c 369456cfa81Sbsh #define IPU_DC_RL3_CH_5 0x00000070 370456cfa81Sbsh #define IPU_DC_RL4_CH_5 0x00000074 371456cfa81Sbsh #define IPU_DC_WR_CH_CONF_6 0x00000078 372456cfa81Sbsh #define IPU_DC_WR_CH_ADDR_6 0x0000007c 373456cfa81Sbsh #define IPU_DC_RL0_CH_6 0x00000080 374456cfa81Sbsh #define IPU_DC_RL1_CH_6 0x00000084 375456cfa81Sbsh #define IPU_DC_RL2_CH_6 0x00000088 376456cfa81Sbsh #define IPU_DC_RL3_CH_6 0x0000008c 377456cfa81Sbsh #define IPU_DC_RL4_CH_6 0x00000090 378456cfa81Sbsh #define IPU_DC_WR_CH_CONF1_8 0x00000094 379456cfa81Sbsh #define IPU_DC_WR_CH_CONF2_8 0x00000098 380456cfa81Sbsh #define IPU_DC_RL1_CH_8 0x0000009c 381456cfa81Sbsh #define IPU_DC_RL2_CH_8 0x000000a0 382456cfa81Sbsh #define IPU_DC_RL3_CH_8 0x000000a4 383456cfa81Sbsh #define IPU_DC_RL4_CH_8 0x000000a8 384456cfa81Sbsh #define IPU_DC_RL5_CH_8 0x000000ac 385456cfa81Sbsh #define IPU_DC_RL6_CH_8 0x000000b0 386456cfa81Sbsh #define IPU_DC_WR_CH_CONF1_9 0x000000b4 387456cfa81Sbsh #define IPU_DC_WR_CH_CONF2_9 0x000000b8 388456cfa81Sbsh #define IPU_DC_RL1_CH_9 0x000000bc 389456cfa81Sbsh #define IPU_DC_RL2_CH_9 0x000000c0 390456cfa81Sbsh #define IPU_DC_RL3_CH_9 0x000000c4 391456cfa81Sbsh #define IPU_DC_RL4_CH_9 0x000000c8 392456cfa81Sbsh #define IPU_DC_RL5_CH_9 0x000000cc 393456cfa81Sbsh #define IPU_DC_RL6_CH_9 0x000000d0 394456cfa81Sbsh 395456cfa81Sbsh #define IPU_DC_RL(chan_base, evt) ((chan_base) + (evt / 2) *0x4) 396456cfa81Sbsh #define DC_RL_CH_0 IPU_DC_RL0_CH_0 397456cfa81Sbsh #define DC_RL_CH_1 IPU_DC_RL0_CH_1 398456cfa81Sbsh #define DC_RL_CH_2 IPU_DC_RL0_CH_2 399456cfa81Sbsh #define DC_RL_CH_5 IPU_DC_RL0_CH_5 400456cfa81Sbsh #define DC_RL_CH_6 IPU_DC_RL0_CH_6 401456cfa81Sbsh #define DC_RL_CH_8 IPU_DC_RL0_CH_8 402456cfa81Sbsh 403456cfa81Sbsh #define DC_RL_EVT_NF 0 404456cfa81Sbsh #define DC_RL_EVT_NL 1 405456cfa81Sbsh #define DC_RL_EVT_EOF 2 406456cfa81Sbsh #define DC_RL_EVT_NFIELD 3 407456cfa81Sbsh #define DC_RL_EVT_EOL 4 408456cfa81Sbsh #define DC_RL_EVT_EOFIELD 5 409456cfa81Sbsh #define DC_RL_EVT_NEW_ADDR 6 410456cfa81Sbsh #define DC_RL_EVT_NEW_CHAN 7 411456cfa81Sbsh #define DC_RL_EVT_NEW_DATA 8 412456cfa81Sbsh 413456cfa81Sbsh #define IPU_DC_GEN 0x000000d4 414456cfa81Sbsh #define IPU_DC_DISP_CONF1_0 0x000000d8 415456cfa81Sbsh #define IPU_DC_DISP_CONF1_1 0x000000dc 416456cfa81Sbsh #define IPU_DC_DISP_CONF1_2 0x000000e0 417456cfa81Sbsh #define IPU_DC_DISP_CONF1_3 0x000000e4 418456cfa81Sbsh #define IPU_DC_DISP_CONF2_0 0x000000e8 419456cfa81Sbsh #define IPU_DC_DISP_CONF2_1 0x000000ec 420456cfa81Sbsh #define IPU_DC_DISP_CONF2_2 0x000000f0 421456cfa81Sbsh #define IPU_DC_DISP_CONF2_3 0x000000f4 422456cfa81Sbsh #define IPU_DC_DI0_CONF_1 0x000000f8 423456cfa81Sbsh #define IPU_DC_DI0_CONF_2 0x000000fc 424456cfa81Sbsh #define IPU_DC_DI1_CONF_1 0x00000100 425456cfa81Sbsh #define IPU_DC_DI1_CONF_2 0x00000104 426456cfa81Sbsh 427456cfa81Sbsh #define IPU_DC_MAP_CONF_PNTR(n) (0x00000108 + (n) * 4) 428456cfa81Sbsh #define IPU_DC_MAP_CONF_0 0x00000108 429456cfa81Sbsh #define IPU_DC_MAP_CONF_1 0x0000010c 430456cfa81Sbsh #define IPU_DC_MAP_CONF_2 0x00000110 431456cfa81Sbsh #define IPU_DC_MAP_CONF_3 0x00000114 432456cfa81Sbsh #define IPU_DC_MAP_CONF_4 0x00000118 433456cfa81Sbsh #define IPU_DC_MAP_CONF_5 0x0000011c 434456cfa81Sbsh #define IPU_DC_MAP_CONF_6 0x00000120 435456cfa81Sbsh #define IPU_DC_MAP_CONF_7 0x00000124 436456cfa81Sbsh #define IPU_DC_MAP_CONF_8 0x00000128 437456cfa81Sbsh #define IPU_DC_MAP_CONF_9 0x0000012c 438456cfa81Sbsh #define IPU_DC_MAP_CONF_10 0x00000130 439456cfa81Sbsh #define IPU_DC_MAP_CONF_11 0x00000134 440456cfa81Sbsh #define IPU_DC_MAP_CONF_12 0x00000138 441456cfa81Sbsh #define IPU_DC_MAP_CONF_13 0x0000013c 442456cfa81Sbsh #define IPU_DC_MAP_CONF_14 0x00000140 443456cfa81Sbsh 444456cfa81Sbsh #define IPU_DC_MAP_CONF_MASK(n) (0x00000144 + (n) * 4) 445456cfa81Sbsh #define IPU_DC_MAP_CONF_15 0x00000144 446456cfa81Sbsh #define IPU_DC_MAP_CONF_16 0x00000148 447456cfa81Sbsh #define IPU_DC_MAP_CONF_17 0x0000014c 448456cfa81Sbsh #define IPU_DC_MAP_CONF_18 0x00000150 449456cfa81Sbsh #define IPU_DC_MAP_CONF_19 0x00000154 450456cfa81Sbsh #define IPU_DC_MAP_CONF_20 0x00000158 451456cfa81Sbsh #define IPU_DC_MAP_CONF_21 0x0000015c 452456cfa81Sbsh #define IPU_DC_MAP_CONF_22 0x00000160 453456cfa81Sbsh #define IPU_DC_MAP_CONF_23 0x00000164 454456cfa81Sbsh #define IPU_DC_MAP_CONF_24 0x00000168 455456cfa81Sbsh #define IPU_DC_MAP_CONF_25 0x0000016c 456456cfa81Sbsh #define IPU_DC_MAP_CONF_26 0x00000170 457456cfa81Sbsh 458456cfa81Sbsh #define IPU_DC_UGDE(m, n) (0x00000174 + (m) * 0x10 + (n) +4) 459456cfa81Sbsh #define IPU_DC_UGDE0_0 0x00000174 460456cfa81Sbsh #define IPU_DC_UGDE0_1 0x00000178 461456cfa81Sbsh #define IPU_DC_UGDE0_2 0x0000017c 462456cfa81Sbsh #define IPU_DC_UGDE0_3 0x00000180 463456cfa81Sbsh #define IPU_DC_UGDE1_0 0x00000184 464456cfa81Sbsh #define IPU_DC_UGDE1_1 0x00000188 465456cfa81Sbsh #define IPU_DC_UGDE1_2 0x0000018c 466456cfa81Sbsh #define IPU_DC_UGDE1_3 0x00000190 467456cfa81Sbsh #define IPU_DC_UGDE2_0 0x00000194 468456cfa81Sbsh #define IPU_DC_UGDE2_1 0x00000198 469456cfa81Sbsh #define IPU_DC_UGDE2_2 0x0000019c 470456cfa81Sbsh #define IPU_DC_UGDE2_3 0x000001a0 471456cfa81Sbsh #define IPU_DC_UGDE3_0 0x000001a4 472456cfa81Sbsh #define IPU_DC_UGDE3_1 0x000001a8 473456cfa81Sbsh #define IPU_DC_UGDE3_2 0x000001ac 474456cfa81Sbsh #define IPU_DC_UGDE3_3 0x000001b0 475456cfa81Sbsh #define IPU_DC_LLA0 0x000001b4 476456cfa81Sbsh #define IPU_DC_LLA1 0x000001b8 477456cfa81Sbsh #define IPU_DC_R_LLA0 0x000001bc 478456cfa81Sbsh #define IPU_DC_R_LLA1 0x000001c0 479456cfa81Sbsh #define IPU_DC_WR_CH_ADDR_5_ALT 0x000001c4 480456cfa81Sbsh #define IPU_DC_STAT 0x000001c8 481456cfa81Sbsh 482456cfa81Sbsh /* 483456cfa81Sbsh * DMFC 484456cfa81Sbsh * Display Multi FIFO Controller 485456cfa81Sbsh */ 486456cfa81Sbsh #define IPU_DMFC_RD_CHAN 0x00000000 487456cfa81Sbsh #define DMFC_RD_CHAN_PPW_C __BITS(25,24) 488456cfa81Sbsh #define DMFC_RD_CHAN_WM_DR_0 __BITS(23,21) 489456cfa81Sbsh #define DMFC_RD_CHAN_WM_SET_0 __BITS(20,18) 490456cfa81Sbsh #define DMFC_RD_CHAN_WM_EN_0 __BIT(17) 491456cfa81Sbsh #define DMFC_RD_CHAN_BURST_SIZE_0 __BITS( 7, 6) 492456cfa81Sbsh #define IPU_DMFC_WR_CHAN 0x00000004 493456cfa81Sbsh #define DMFC_WR_CHAN_BUSRT_SIZE_2C __BITS(31,30) 494456cfa81Sbsh #define DMFC_WR_CHAN_FIFO_SIZE_2C __BITS(29,27) 495456cfa81Sbsh #define DMFC_WR_CHAN_ST_ADDR_2C __BITS(26,24) 496456cfa81Sbsh #define DMFC_WR_CHAN_BURST_SIZE_1C __BITS(23,22) 497456cfa81Sbsh #define DMFC_WR_CHAN_FIFO_SIZE_1C __BITS(21,19) 498456cfa81Sbsh #define DMFC_WR_CHAN_ST_ADDR_1C __BITS(18,16) 499456cfa81Sbsh #define DMFC_WR_CHAN_BURST_SIZE_2 __BITS(15,14) 500456cfa81Sbsh #define DMFC_WR_CHAN_FIFO_SIZE_2 __BITS(13,11) 501456cfa81Sbsh #define DMFC_WR_CHAN_ST_ADDR_2 __BITS(10, 8) 502456cfa81Sbsh #define DMFC_WR_CHAN_BURST_SIZE_1 __BITS( 7, 6) 503456cfa81Sbsh #define DMFC_WR_CHAN_FIFO_SIZE_1 __BITS( 5, 3) 504456cfa81Sbsh #define DMFC_WR_CHAN_ST_ADDR_1 __BITS( 2, 0) 505456cfa81Sbsh #define IPU_DMFC_WR_CHAN_DEF 0x00000008 506456cfa81Sbsh #define DMFC_WR_CHAN_DEF_WM_CLR_2C __BITS(31,29) 507456cfa81Sbsh #define DMFC_WR_CHAN_DEF_WM_SET_2C __BITS(28,26) 508456cfa81Sbsh #define DMFC_WR_CHAN_DEF_WM_EN_2C __BIT(25) 509456cfa81Sbsh #define DMFC_WR_CHAN_DEF_WM_CLR_1C __BITS(23,21) 510456cfa81Sbsh #define DMFC_WR_CHAN_DEF_WM_SET_1C __BITS(20,18) 511456cfa81Sbsh #define DMFC_WR_CHAN_DEF_WM_EN_1C __BIT(17) 512456cfa81Sbsh #define DMFC_WR_CHAN_DEF_WM_CLR_2 __BITS(15,13) 513456cfa81Sbsh #define DMFC_WR_CHAN_DEF_WM_SET_2 __BITS(12,10) 514456cfa81Sbsh #define DMFC_WR_CHAN_DEF_WM_EN_2 __BIT(9) 515456cfa81Sbsh #define DMFC_WR_CHAN_DEF_WM_CLR_1 __BITS( 7, 5) 516456cfa81Sbsh #define DMFC_WR_CHAN_DEF_WM_SET_1 __BITS( 3, 2) 517456cfa81Sbsh #define DMFC_WR_CHAN_DEF_WM_EN_1 __BIT(1) 518456cfa81Sbsh #define IPU_DMFC_DP_CHAN 0x0000000c 519456cfa81Sbsh #define DMFC_DP_CHAN_BUSRT_SIZE_6F __BITS(31,30) 520456cfa81Sbsh #define DMFC_DP_CHAN_FIFO_SIZE_6F __BITS(29,27) 521456cfa81Sbsh #define DMFC_DP_CHAN_ST_ADDR_6F __BITS(26,24) 522456cfa81Sbsh #define DMFC_DP_CHAN_BURST_SIZE_6B __BITS(23,22) 523456cfa81Sbsh #define DMFC_DP_CHAN_FIFO_SIZE_6B __BITS(21,19) 524456cfa81Sbsh #define DMFC_DP_CHAN_ST_ADDR_6B __BITS(18,16) 525456cfa81Sbsh #define DMFC_DP_CHAN_BURST_SIZE_5F __BITS(15,14) 526456cfa81Sbsh #define DMFC_DP_CHAN_FIFO_SIZE_5F __BITS(13,11) 527456cfa81Sbsh #define DMFC_DP_CHAN_ST_ADDR_5F __BITS(10, 8) 528456cfa81Sbsh #define DMFC_DP_CHAN_BURST_SIZE_5B __BITS( 7, 6) 529456cfa81Sbsh #define DMFC_DP_CHAN_FIFO_SIZE_5B __BITS( 5, 3) 530456cfa81Sbsh #define DMFC_DP_CHAN_ST_ADDR_5B __BITS( 2, 0) 531456cfa81Sbsh #define IPU_DMFC_DP_CHAN_DEF 0x00000010 532456cfa81Sbsh #define DMFC_DP_CHAN_DEF_WM_CLR_6F __BITS(31,29) 533456cfa81Sbsh #define DMFC_DP_CHAN_DEF_WM_SET_6F __BITS(28,26) 534456cfa81Sbsh #define DMFC_DP_CHAN_DEF_WM_EN_6F __BIT(25) 535456cfa81Sbsh #define DMFC_DP_CHAN_DEF_WM_CLR_6B __BITS(23,21) 536456cfa81Sbsh #define DMFC_DP_CHAN_DEF_WM_SET_6B __BITS(20,18) 537456cfa81Sbsh #define DMFC_DP_CHAN_DEF_WM_EN_6B __BIT(17) 538456cfa81Sbsh #define DMFC_DP_CHAN_DEF_WM_CLR_5F __BITS(15,13) 539456cfa81Sbsh #define DMFC_DP_CHAN_DEF_WM_SET_5F __BITS(12,10) 540456cfa81Sbsh #define DMFC_DP_CHAN_DEF_WM_EN_5F __BIT(9) 541456cfa81Sbsh #define DMFC_DP_CHAN_DEF_WM_CLR_5B __BITS( 7, 5) 542456cfa81Sbsh #define DMFC_DP_CHAN_DEF_WM_SET_5B __BITS( 4, 2) 543456cfa81Sbsh #define DMFC_DP_CHAN_DEF_WM_EN_5B __BIT(1) 544456cfa81Sbsh #define IPU_DMFC_GENERAL1 0x00000014 545456cfa81Sbsh #define DMFC_GENERAL1_WAIT4EOT_9 __BIT(24) 546456cfa81Sbsh #define DMFC_GENERAL1_WAIT4EOT_6F __BIT(23) 547456cfa81Sbsh #define DMFC_GENERAL1_WAIT4EOT_6B __BIT(22) 548456cfa81Sbsh #define DMFC_GENERAL1_WAIT4EOT_5F __BIT(21) 549456cfa81Sbsh #define DMFC_GENERAL1_WAIT4EOT_5B __BIT(20) 550456cfa81Sbsh #define DMFC_GENERAL1_WAIT4EOT_4 __BIT(19) 551456cfa81Sbsh #define DMFC_GENERAL1_WAIT4EOT_3 __BIT(18) 552456cfa81Sbsh #define DMFC_GENERAL1_WAIT4EOT_2 __BIT(17) 553456cfa81Sbsh #define DMFC_GENERAL1_WAIT4EOT_1 __BIT(16) 554456cfa81Sbsh #define DMFC_GENERAL1_WM_CLR_9 __BITS(15,13) 555456cfa81Sbsh #define DMFC_GENERAL1_WM_SET_9 __BITS(12,10) 556456cfa81Sbsh #define DMFC_GENERAL1_BURST_SIZE_9 __BITS( 6, 5) 557456cfa81Sbsh #define DMFC_GENERAL1_DCDP_SYNC_PR __BITS( 1, 0) 558456cfa81Sbsh #define DCDP_SYNC_PR_FORBIDDEN 0 559456cfa81Sbsh #define DCDP_SYNC_PR_DC_DP 1 560456cfa81Sbsh #define DCDP_SYNC_PR_DP_DC 2 561456cfa81Sbsh #define DCDP_SYNC_PR_ROUNDROBIN 3 562456cfa81Sbsh #define IPU_DMFC_GENERAL2 0x00000018 563456cfa81Sbsh #define DMFC_GENERAL2_FRAME_HEIGHT_RD __BITS(28,16) 564456cfa81Sbsh #define DMFC_GENERAL2_FRAME_WIDTH_RD __BITS(12, 0) 565456cfa81Sbsh #define IPU_DMFC_IC_CTRL 0x0000001c 566456cfa81Sbsh #define DMFC_IC_CTRL_IC_FRAME_HEIGHT_RD __BITS(31,19) 567456cfa81Sbsh #define DMFC_IC_CTRL_IC_FRAME_WIDTH_RD __BITS(18, 6) 568456cfa81Sbsh #define DMFC_IC_CTRL_IC_PPW_C __BITS( 5, 4) 569456cfa81Sbsh #define DMFC_IC_CTRL_IC_IN_PORT __BITS( 2, 0) 570456cfa81Sbsh #define IC_IN_PORT_CH28 0 571456cfa81Sbsh #define IC_IN_PORT_CH41 1 572456cfa81Sbsh #define IC_IN_PORT_DISABLE 2 573456cfa81Sbsh #define IC_IN_PORT_CH23 4 574456cfa81Sbsh #define IC_IN_PORT_CH27 5 575456cfa81Sbsh #define IC_IN_PORT_CH24 6 576456cfa81Sbsh #define IC_IN_PORT_CH29 7 577456cfa81Sbsh #define IPU_DMFC_WR_CHAN_ALT 0x00000020 578456cfa81Sbsh #define IPU_DMFC_WR_CHAN_DEF_ALT 0x00000024 579456cfa81Sbsh #define IPU_DMFC_DP_CHAN_ALT 0x00000028 580456cfa81Sbsh #define IPU_DMFC_DP_CHAN_DEF_ALT 0x0000002c 581456cfa81Sbsh #define DMFC_DP_CHAN_DEF_ALT_WM_CLR_6F_ALT __BITS(31,29) 582456cfa81Sbsh #define DMFC_DP_CHAN_DEF_ALT_WM_SET_6F_ALT __BITS(28,26) 583456cfa81Sbsh #define DMFC_DP_CHAN_DEF_ALT_WM_EN_6F_ALT __BIT(25) 584456cfa81Sbsh #define DMFC_DP_CHAN_DEF_ALT_WM_CLR_6B_ALT __BITS(23,21) 585456cfa81Sbsh #define DMFC_DP_CHAN_DEF_ALT_WM_SET_6B_ALT __BITS(20,18) 586456cfa81Sbsh #define DMFC_DP_CHAN_DEF_ALT_WM_EN_6B_ALT __BIT(17) 587456cfa81Sbsh #define DMFC_DP_CHAN_DEF_ALT_WM_CLR_5B_ALT __BITS( 7, 5) 588456cfa81Sbsh #define DMFC_DP_CHAN_DEF_ALT_WM_SET_5B_ALT __BITS( 4, 2) 589456cfa81Sbsh #define DMFC_DP_CHAN_DEF_ALT_WM_EN_5B_ALT __BIT(1) 590456cfa81Sbsh #define IPU_DMFC_GENERAL1_ALT 0x00000030 591456cfa81Sbsh #define DMFC_GENERAL1_ALT_WAIT4EOT_6F_ALT __BIT(23) 592456cfa81Sbsh #define DMFC_GENERAL1_ALT_WAIT4EOT_6B_ALT __BIT(22) 593456cfa81Sbsh #define DMFC_GENERAL1_ALT_WAIT4EOT_5B_ALT __BIT(20) 594456cfa81Sbsh #define DMFC_GENERAL1_ALT_WAIT4EOT_2_ALT __BIT(17) 595456cfa81Sbsh #define IPU_DMFC_STAT 0x00000034 596456cfa81Sbsh #define DMFC_STAT_IC_BUFFER_EMPTY __BIT(25) 597456cfa81Sbsh #define DMFC_STAT_IC_BUFFER_FULL __BIT(24) 598456cfa81Sbsh #define DMFC_STAT_FIFO_EMPTY(n) __BIT(12 + (n)) 599456cfa81Sbsh #define DMFC_STAT_FIFO_FULL(n) __BIT((n)) 600456cfa81Sbsh 601456cfa81Sbsh /* 602456cfa81Sbsh * VCI 603456cfa81Sbsh * Video De Interkacing Module 604456cfa81Sbsh */ 605456cfa81Sbsh #define IPU_VDI_FSIZE 0x00000000 606456cfa81Sbsh #define IPU_VDI_C 0x00000004 607456cfa81Sbsh 608456cfa81Sbsh /* 609456cfa81Sbsh * DP 610456cfa81Sbsh * Display Processor 611456cfa81Sbsh */ 612456cfa81Sbsh #define IPU_DP_COM_CONF_SYNC 0x00000000 613456cfa81Sbsh #define DP_FG_EN_SYNC __BIT(0) 614456cfa81Sbsh #define DP_DP_GWAM_SYNC __BIT(2) 615456cfa81Sbsh #define IPU_DP_GRAPH_WIND_CTRL_SYNC 0x00000004 616456cfa81Sbsh #define IPU_DP_FG_POS_SYNC 0x00000008 617456cfa81Sbsh #define IPU_DP_CUR_POS_SYNC 0x0000000c 618456cfa81Sbsh #define IPU_DP_CUR_MAP_SYNC 0x00000010 619456cfa81Sbsh #define IPU_DP_CSC_SYNC_0 0x00000054 620456cfa81Sbsh #define IPU_DP_CSC_SYNC_1 0x00000058 621456cfa81Sbsh #define IPU_DP_CUR_POS_ALT 0x0000005c 622456cfa81Sbsh #define IPU_DP_COM_CONF_ASYNC0 0x00000060 623456cfa81Sbsh #define IPU_DP_GRAPH_WIND_CTRL_ASYNC0 0x00000064 624456cfa81Sbsh #define IPU_DP_FG_POS_ASYNC0 0x00000068 625456cfa81Sbsh #define IPU_DP_CUR_POS_ASYNC0 0x0000006c 626456cfa81Sbsh #define IPU_DP_CUR_MAP_ASYNC0 0x00000070 627456cfa81Sbsh #define IPU_DP_CSC_ASYNC0_0 0x000000b4 628456cfa81Sbsh #define IPU_DP_CSC_ASYNC0_1 0x000000b8 629456cfa81Sbsh #define IPU_DP_COM_CONF_ASYNC1 0x000000bc 630456cfa81Sbsh #define IPU_DP_GRAPH_WIND_CTRL_ASYNC1 0x000000c0 631456cfa81Sbsh #define IPU_DP_FG_POS_ASYNC1 0x000000c4 632456cfa81Sbsh #define IPU_DP_CUR_POS_ASYNC1 0x000000c8 633456cfa81Sbsh #define IPU_DP_CUR_MAP_ASYNC1 0x000000cc 634456cfa81Sbsh #define IPU_DP_CSC_ASYNC1_0 0x00000110 635456cfa81Sbsh #define IPU_DP_CSC_ASYNC1_1 0x00000114 636456cfa81Sbsh 637456cfa81Sbsh /* IDMA parameter */ 638456cfa81Sbsh /* 639456cfa81Sbsh * non-Interleaved parameter 640456cfa81Sbsh * 641456cfa81Sbsh * param 0: XV W0[ 9: 0] 642456cfa81Sbsh * YV W0[18:10] 643456cfa81Sbsh * XB W0[31:19] 644456cfa81Sbsh * param 1: YB W0[43:32] 645456cfa81Sbsh * NSB W0[44] 646456cfa81Sbsh * CF W0[45] 647456cfa81Sbsh * UBO W0[61:46] 648456cfa81Sbsh * param 2: UBO W0[67:62] 649456cfa81Sbsh * VBO W0[89:68] 650456cfa81Sbsh * IOX W0[93:90] 651456cfa81Sbsh * RDRW W0[94] 652456cfa81Sbsh * Reserved W0[95] 653456cfa81Sbsh * param 3: Reserved W0[112:96] 654456cfa81Sbsh * S0 W0[113] 655456cfa81Sbsh * BNDM W0[116:114] 656456cfa81Sbsh * BM W0[118:117] 657456cfa81Sbsh * ROT W0[119] 658456cfa81Sbsh * HF W0[120] 659456cfa81Sbsh * VF W0[121] 660456cfa81Sbsh * THF W0[122] 661456cfa81Sbsh * CAP W0[123] 662456cfa81Sbsh * CAE W0[124] 663456cfa81Sbsh * FW W0[127:125] 664456cfa81Sbsh * param 4: FW W0[137:128] 665456cfa81Sbsh * FH W0[149:138] 666456cfa81Sbsh * param 5: EBA0 W1[28:0] 667456cfa81Sbsh * EBA1 W1[31:29] 668456cfa81Sbsh * param 6: EBA1 W1[57:32] 669456cfa81Sbsh * ILO W1[63:58] 670456cfa81Sbsh * param 7: ILO W1[77:64] 671456cfa81Sbsh * NPB W1[84:78] 672456cfa81Sbsh * PFS W1[88:85] 673456cfa81Sbsh * ALU W1[89] 674456cfa81Sbsh * ALBM W1[92:90] 675456cfa81Sbsh * ID W1[94:93] 676456cfa81Sbsh * TH W1[95] 677456cfa81Sbsh * param 8: TH W1[101:96] 678456cfa81Sbsh * SLY W1[115:102] 679456cfa81Sbsh * WID3 W1[127:125] 680456cfa81Sbsh * param 9: SLUV W1[141:128] 681456cfa81Sbsh * CRE W1[149] 682456cfa81Sbsh * 683456cfa81Sbsh * Interleaved parameter 684456cfa81Sbsh * 685456cfa81Sbsh * param 0: XV W0[ 9: 0] 686456cfa81Sbsh * YV W0[18:10] 687456cfa81Sbsh * XB W0[31:19] 688456cfa81Sbsh * param 1: YB W0[43:32] 689456cfa81Sbsh * NSB W0[44] 690456cfa81Sbsh * CF W0[45] 691456cfa81Sbsh * SX W0[57:46] 692456cfa81Sbsh * SY W0[61:58] 693456cfa81Sbsh * param 2: SY W0[68:62] 694456cfa81Sbsh * NS W0[78:69] 695456cfa81Sbsh * SDX W0[85:79] 696456cfa81Sbsh * SM W0[95:86] 697456cfa81Sbsh * param 3: SCC W0[96] 698456cfa81Sbsh * SCE W0[97] 699456cfa81Sbsh * SDY W0[104:98] 700456cfa81Sbsh * SDRX W0[105] 701456cfa81Sbsh * SDRY W0[106] 702456cfa81Sbsh * BPP W0[109:107] 703456cfa81Sbsh * DEC_SEL W0[111:110] 704456cfa81Sbsh * DIM W0[112] 705456cfa81Sbsh * SO W0[113] 706456cfa81Sbsh * BNDM W0[116:114] 707456cfa81Sbsh * BM W0[118:117] 708456cfa81Sbsh * ROT W0[119] 709456cfa81Sbsh * HF W0[120] 710456cfa81Sbsh * VF W0[121] 711456cfa81Sbsh * THF W0[122] 712456cfa81Sbsh * CAP W0[123] 713456cfa81Sbsh * CAE W0[124] 714456cfa81Sbsh * FW W0[127:125] 715456cfa81Sbsh * param 4: FW W0[137:128] 716456cfa81Sbsh * FH W0[149:138] 717456cfa81Sbsh * param 5: EBA0 W1[28:0] 718456cfa81Sbsh * EBA1 W1[31:29] 719456cfa81Sbsh * param 6: EBA1 W1[57:32] 720456cfa81Sbsh * ILO W1[63:58] 721456cfa81Sbsh * param 7: ILO W1[77:64] 722456cfa81Sbsh * NPB W1[84:78] 723456cfa81Sbsh * PFS W1[88:85] 724456cfa81Sbsh * ALU W1[89] 725456cfa81Sbsh * ALBM W1[92:90] 726456cfa81Sbsh * ID W1[94:93] 727456cfa81Sbsh * TH W1[95] 728456cfa81Sbsh * param 8: TH W1[101:96] 729456cfa81Sbsh * SL W1[115:102] 730456cfa81Sbsh * WID0 W1[118:116] 731456cfa81Sbsh * WID1 W1[121:119] 732456cfa81Sbsh * WID2 W1[124:122] 733456cfa81Sbsh * WID3 W1[127:125] 734456cfa81Sbsh * param 9: OFS0 W1[132:128] 735456cfa81Sbsh * OFS1 W1[137:133] 736456cfa81Sbsh * OFS2 W1[142:138] 737456cfa81Sbsh * OFS3 W1[147:143] 738456cfa81Sbsh * SXYS W1[148] 739456cfa81Sbsh * CRE W1[149] 740456cfa81Sbsh * DEC_SEL2 W1[150] 741456cfa81Sbsh */ 742456cfa81Sbsh 743456cfa81Sbsh #define __IDMA_PARAM(word, shift, size) \ 744456cfa81Sbsh ((((word) & 0xff) << 16) | (((shift) & 0xff) << 8) | ((size) & 0xff)) 745456cfa81Sbsh 746456cfa81Sbsh /* non-Interleaved parameter */ 747456cfa81Sbsh /* W0 */ 748456cfa81Sbsh #define IDMAC_Ch_PARAM_XV __IDMA_PARAM(0, 0, 10) 749456cfa81Sbsh #define IDMAC_Ch_PARAM_YV __IDMA_PARAM(0, 10, 9) 750456cfa81Sbsh #define IDMAC_Ch_PARAM_XB __IDMA_PARAM(0, 19, 13) 751456cfa81Sbsh #define IDMAC_Ch_PARAM_YB __IDMA_PARAM(0, 32, 12) 752456cfa81Sbsh #define IDMAC_Ch_PARAM_NSB __IDMA_PARAM(0, 44, 1) 753456cfa81Sbsh #define IDMAC_Ch_PARAM_CF __IDMA_PARAM(0, 45, 1) 754456cfa81Sbsh #define IDMAC_Ch_PARAM_UBO __IDMA_PARAM(0, 46, 22) 755456cfa81Sbsh #define IDMAC_Ch_PARAM_VBO __IDMA_PARAM(0, 68, 22) 756456cfa81Sbsh #define IDMAC_Ch_PARAM_IOX __IDMA_PARAM(0, 90, 4) 757456cfa81Sbsh #define IDMAC_Ch_PARAM_RDRW __IDMA_PARAM(0, 94, 1) 758456cfa81Sbsh #define IDMAC_Ch_PARAM_S0 __IDMA_PARAM(0,113, 1) 759456cfa81Sbsh #define IDMAC_Ch_PARAM_BNDM __IDMA_PARAM(0,114, 3) 760456cfa81Sbsh #define IDMAC_Ch_PARAM_BM __IDMA_PARAM(0,117, 2) 761456cfa81Sbsh #define IDMAC_Ch_PARAM_ROT __IDMA_PARAM(0,119, 1) 762456cfa81Sbsh #define IDMAC_Ch_PARAM_HF __IDMA_PARAM(0,120, 1) 763456cfa81Sbsh #define IDMAC_Ch_PARAM_VF __IDMA_PARAM(0,121, 1) 764456cfa81Sbsh #define IDMAC_Ch_PARAM_THF __IDMA_PARAM(0,122, 1) 765456cfa81Sbsh #define IDMAC_Ch_PARAM_CAP __IDMA_PARAM(0,123, 1) 766456cfa81Sbsh #define IDMAC_Ch_PARAM_CAE __IDMA_PARAM(0,124, 1) 767456cfa81Sbsh #define IDMAC_Ch_PARAM_FW __IDMA_PARAM(0,125, 13) 768456cfa81Sbsh #define IDMAC_Ch_PARAM_FH __IDMA_PARAM(0,138, 12) 769456cfa81Sbsh /* W1 */ 770456cfa81Sbsh #define IDMAC_Ch_PARAM_EBA0 __IDMA_PARAM(1, 0, 29) 771456cfa81Sbsh #define IDMAC_Ch_PARAM_EBA1 __IDMA_PARAM(1, 29, 29) 772456cfa81Sbsh #define IDMAC_Ch_PARAM_ILO __IDMA_PARAM(1, 58, 20) 773456cfa81Sbsh #define IDMAC_Ch_PARAM_NPB __IDMA_PARAM(1, 78, 7) 774456cfa81Sbsh #define IDMAC_Ch_PARAM_PFS __IDMA_PARAM(1, 85, 4) 775456cfa81Sbsh #define IDMAC_Ch_PARAM_ALU __IDMA_PARAM(1, 89, 1) 776456cfa81Sbsh #define IDMAC_Ch_PARAM_ALBM __IDMA_PARAM(1, 90, 3) 777456cfa81Sbsh #define IDMAC_Ch_PARAM_ID __IDMA_PARAM(1, 93, 2) 778456cfa81Sbsh #define IDMAC_Ch_PARAM_TH __IDMA_PARAM(1, 95, 7) 779456cfa81Sbsh #define IDMAC_Ch_PARAM_SL __IDMA_PARAM(1,102, 14) 780456cfa81Sbsh #define IDMAC_Ch_PARAM_WID3 __IDMA_PARAM(1,125, 3) 781456cfa81Sbsh #define IDMAC_Ch_PARAM_SLUV __IDMA_PARAM(1,128, 14) 782456cfa81Sbsh #define IDMAC_Ch_PARAM_CRE __IDMA_PARAM(1,149, 1) 783456cfa81Sbsh 784456cfa81Sbsh /* Interleaved parameter */ 785456cfa81Sbsh /* W0 */ 786456cfa81Sbsh #define IDMAC_Ch_PARAM_XV __IDMA_PARAM(0, 0, 10) 787456cfa81Sbsh #define IDMAC_Ch_PARAM_YV __IDMA_PARAM(0, 10, 9) 788456cfa81Sbsh #define IDMAC_Ch_PARAM_XB __IDMA_PARAM(0, 19, 13) 789456cfa81Sbsh #define IDMAC_Ch_PARAM_YB __IDMA_PARAM(0, 32, 12) 790456cfa81Sbsh #define IDMAC_Ch_PARAM_NSB __IDMA_PARAM(0, 44, 1) 791456cfa81Sbsh #define IDMAC_Ch_PARAM_CF __IDMA_PARAM(0, 45, 1) 792456cfa81Sbsh #define IDMAC_Ch_PARAM_SX __IDMA_PARAM(0, 46, 12) 793456cfa81Sbsh #define IDMAC_Ch_PARAM_SY __IDMA_PARAM(0, 58, 11) 794456cfa81Sbsh #define IDMAC_Ch_PARAM_NS __IDMA_PARAM(0, 69, 10) 795456cfa81Sbsh #define IDMAC_Ch_PARAM_SDX __IDMA_PARAM(0, 79, 7) 796456cfa81Sbsh #define IDMAC_Ch_PARAM_SM __IDMA_PARAM(0, 86, 10) 797456cfa81Sbsh #define IDMAC_Ch_PARAM_SCC __IDMA_PARAM(0, 96, 1) 798456cfa81Sbsh #define IDMAC_Ch_PARAM_SCE __IDMA_PARAM(0, 97, 1) 799456cfa81Sbsh #define IDMAC_Ch_PARAM_SDY __IDMA_PARAM(0, 98, 7) 800456cfa81Sbsh #define IDMAC_Ch_PARAM_SDRX __IDMA_PARAM(0,105, 1) 801456cfa81Sbsh #define IDMAC_Ch_PARAM_SDRY __IDMA_PARAM(0,106, 1) 802456cfa81Sbsh #define IDMAC_Ch_PARAM_BPP __IDMA_PARAM(0,107, 3) 803456cfa81Sbsh #define IDMAC_Ch_PARAM_DEC_SEL __IDMA_PARAM(0,110, 2) 804456cfa81Sbsh #define IDMAC_Ch_PARAM_DIM __IDMA_PARAM(0,112, 1) 805456cfa81Sbsh #define IDMAC_Ch_PARAM_SO __IDMA_PARAM(0,113, 1) 806456cfa81Sbsh #define IDMAC_Ch_PARAM_BNDM __IDMA_PARAM(0,114, 3) 807456cfa81Sbsh #define IDMAC_Ch_PARAM_BM __IDMA_PARAM(0,117, 2) 808456cfa81Sbsh #define IDMAC_Ch_PARAM_ROT __IDMA_PARAM(0,119, 1) 809456cfa81Sbsh #define IDMAC_Ch_PARAM_HF __IDMA_PARAM(0,120, 1) 810456cfa81Sbsh #define IDMAC_Ch_PARAM_VF __IDMA_PARAM(0,121, 1) 811456cfa81Sbsh #define IDMAC_Ch_PARAM_THF __IDMA_PARAM(0,122, 1) 812456cfa81Sbsh #define IDMAC_Ch_PARAM_CAP __IDMA_PARAM(0,123, 1) 813456cfa81Sbsh #define IDMAC_Ch_PARAM_CAE __IDMA_PARAM(0,124, 1) 814456cfa81Sbsh #define IDMAC_Ch_PARAM_FW __IDMA_PARAM(0,125, 13) 815456cfa81Sbsh #define IDMAC_Ch_PARAM_FH __IDMA_PARAM(0,138, 12) 816456cfa81Sbsh /* W1 */ 817456cfa81Sbsh #define IDMAC_Ch_PARAM_EBA0 __IDMA_PARAM(1, 0, 29) 818456cfa81Sbsh #define IDMAC_Ch_PARAM_EBA1 __IDMA_PARAM(1, 29, 29) 819456cfa81Sbsh #define IDMAC_Ch_PARAM_ILO __IDMA_PARAM(1, 58, 20) 820456cfa81Sbsh #define IDMAC_Ch_PARAM_NPB __IDMA_PARAM(1, 78, 7) 821456cfa81Sbsh #define IDMAC_Ch_PARAM_PFS __IDMA_PARAM(1, 85, 4) 822456cfa81Sbsh #define IDMAC_Ch_PARAM_ALU __IDMA_PARAM(1, 89, 1) 823456cfa81Sbsh #define IDMAC_Ch_PARAM_ALBM __IDMA_PARAM(1, 90, 3) 824456cfa81Sbsh #define IDMAC_Ch_PARAM_ID __IDMA_PARAM(1, 93, 2) 825456cfa81Sbsh #define IDMAC_Ch_PARAM_TH __IDMA_PARAM(1, 95, 7) 826456cfa81Sbsh #define IDMAC_Ch_PARAM_SL __IDMA_PARAM(1,102, 14) 827456cfa81Sbsh #define IDMAC_Ch_PARAM_WID0 __IDMA_PARAM(1,116, 3) 828456cfa81Sbsh #define IDMAC_Ch_PARAM_WID1 __IDMA_PARAM(1,119, 3) 829456cfa81Sbsh #define IDMAC_Ch_PARAM_WID2 __IDMA_PARAM(1,122, 3) 830456cfa81Sbsh #define IDMAC_Ch_PARAM_WID3 __IDMA_PARAM(1,125, 3) 831456cfa81Sbsh #define IDMAC_Ch_PARAM_OFS0 __IDMA_PARAM(1,128, 5) 832456cfa81Sbsh #define IDMAC_Ch_PARAM_OFS1 __IDMA_PARAM(1,133, 5) 833456cfa81Sbsh #define IDMAC_Ch_PARAM_OFS2 __IDMA_PARAM(1,138, 5) 834456cfa81Sbsh #define IDMAC_Ch_PARAM_OFS3 __IDMA_PARAM(1,143, 5) 835456cfa81Sbsh #define IDMAC_Ch_PARAM_SXYS __IDMA_PARAM(1,148, 1) 836456cfa81Sbsh #define IDMAC_Ch_PARAM_CRE __IDMA_PARAM(1,149, 1) 837456cfa81Sbsh #define IDMAC_Ch_PARAM_DEC_SEL2 __IDMA_PARAM(1,150, 1) 838456cfa81Sbsh 839456cfa81Sbsh #endif /* _ARM_IMX_IMX51_IPUV3REG_H */ 840