1 1.8 hkenken /* $NetBSD: imx51reg.h,v 1.8 2019/08/19 11:41:36 hkenken Exp $ */ 2 1.1 bsh /*- 3 1.1 bsh * Copyright (c) 2007 The NetBSD Foundation, Inc. 4 1.1 bsh * All rights reserved. 5 1.1 bsh * 6 1.1 bsh * This code is derived from software contributed to The NetBSD Foundation 7 1.1 bsh * by Matt Thomas. 8 1.1 bsh * 9 1.1 bsh * Redistribution and use in source and binary forms, with or without 10 1.1 bsh * modification, are permitted provided that the following conditions 11 1.1 bsh * are met: 12 1.1 bsh * 1. Redistributions of source code must retain the above copyright 13 1.1 bsh * notice, this list of conditions and the following disclaimer. 14 1.1 bsh * 2. Redistributions in binary form must reproduce the above copyright 15 1.1 bsh * notice, this list of conditions and the following disclaimer in the 16 1.1 bsh * documentation and/or other materials provided with the distribution. 17 1.1 bsh * 18 1.1 bsh * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 19 1.1 bsh * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 20 1.1 bsh * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 21 1.1 bsh * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 22 1.1 bsh * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23 1.1 bsh * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24 1.1 bsh * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25 1.1 bsh * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 26 1.1 bsh * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 27 1.1 bsh * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28 1.1 bsh * POSSIBILITY OF SUCH DAMAGE. 29 1.1 bsh */ 30 1.1 bsh 31 1.1 bsh #ifndef _ARM_IMX_IMX51REG_H_ 32 1.1 bsh #define _ARM_IMX_IMX51REG_H_ 33 1.1 bsh 34 1.5 hkenken #ifdef IMX50 35 1.5 hkenken #define TZIC_BASE 0x0fffc000 36 1.5 hkenken #define APB_BASE 0x40000000 37 1.5 hkenken #define AIPSTZ1_BASE 0x50000000 38 1.5 hkenken #define AIPSTZ2_BASE 0x60000000 39 1.5 hkenken #define CSD0DDR_BASE 0x70000000 40 1.5 hkenken #else 41 1.5 hkenken #define TZIC_BASE 0xe0000000 42 1.5 hkenken #define AIPSTZ1_BASE 0x70000000 43 1.5 hkenken #define AIPSTZ2_BASE 0x80000000 44 1.5 hkenken #define CSD0DDR_BASE 0x90000000 45 1.5 hkenken #define CSD1DDR_BASE 0xa0000000 46 1.5 hkenken #define CSDDDR_SIZE 0x10000000 /* 256MiB */ 47 1.5 hkenken #define CS0_BASE 0xb0000000 48 1.5 hkenken #define CS0_SIZE 0x08000000 /* 128MiB */ 49 1.5 hkenken #define CS1_BASE 0xb8000000 50 1.5 hkenken #define CS1_SIZE 0x08000000 /* 128MiB */ 51 1.5 hkenken #define CS2_BASE 0xc0000000 52 1.5 hkenken #define CS2_SIZE 0x08000000 /* 128MiB */ 53 1.5 hkenken #define CS3_BASE 0xc8000000 54 1.5 hkenken #define CS3_SIZE 0x04000000 /* 64MiB */ 55 1.5 hkenken #define CS4_BASE 0xcc000000 56 1.5 hkenken #define CS4_SIZE 0x02000000 /* 32MiB */ 57 1.5 hkenken #define CS5_BASE 0xcefe0000 58 1.5 hkenken #define CS5_SIZE 0x00010000 /* 32MiB */ 59 1.5 hkenken #define NAND_FLASH_BASE 0xcfff0000 /* internal buffer */ 60 1.5 hkenken #define NAND_FLASH_SIZE 0x00010000 61 1.5 hkenken 62 1.5 hkenken #define GPU2D_BASE 0xd0000000 63 1.5 hkenken #define GPU2D_SIZE 0x10000000 64 1.5 hkenken #endif 65 1.5 hkenken 66 1.1 bsh #define BOOTROM_BASE 0x00000000 67 1.1 bsh #define BOOTROM_SIZE 0x9000 68 1.1 bsh 69 1.1 bsh #define SCCRAM_BASE 0x1ffe0000 70 1.1 bsh #define SCCRAM_SIZE 0x20000 71 1.1 bsh 72 1.1 bsh #define GPUMEM_BASE 0x20000000 73 1.1 bsh #define GPUMEM_SIZE 0x20000 74 1.1 bsh 75 1.1 bsh #define GPU_BASE 0x30000000 76 1.1 bsh #define GPU_SIZE 0x10000000 77 1.1 bsh 78 1.5 hkenken #ifdef IMX50 79 1.5 hkenken #define EPDC_BASE (APB_BASE + 0x01010000) 80 1.5 hkenken #define EPDC_SIZE 0x2000 81 1.5 hkenken #endif 82 1.5 hkenken 83 1.4 bsh /* Image Prossasing Unit */ 84 1.4 bsh #define IPU_BASE 0x40000000 85 1.4 bsh #define IPU_CM_BASE (IPU_BASE + 0x1e000000) 86 1.4 bsh #define IPU_CM_SIZE 0x8000 87 1.4 bsh #define IPU_IDMAC_BASE (IPU_BASE + 0x1e008000) 88 1.4 bsh #define IPU_IDMAC_SIZE 0x8000 89 1.4 bsh #define IPU_DP_BASE (IPU_BASE + 0x1e018000) 90 1.4 bsh #define IPU_DP_SIZE 0x8000 91 1.4 bsh #define IPU_IC_BASE (IPU_BASE + 0x1e020000) 92 1.4 bsh #define IPU_IC_SIZE 0x8000 93 1.4 bsh #define IPU_IRT_BASE (IPU_BASE + 0x1e028000) 94 1.4 bsh #define IPU_IRT_SIZE 0x8000 95 1.4 bsh #define IPU_CSI0_BASE (IPU_BASE + 0x1e030000) 96 1.4 bsh #define IPU_CSI0_SIZE 0x8000 97 1.4 bsh #define IPU_CSI1_BASE (IPU_BASE + 0x1e038000) 98 1.4 bsh #define IPU_CSI1_SIZE 0x8000 99 1.4 bsh #define IPU_DI0_BASE (IPU_BASE + 0x1e040000) 100 1.4 bsh #define IPU_DI0_SIZE 0x8000 101 1.4 bsh #define IPU_DI1_BASE (IPU_BASE + 0x1e048000) 102 1.4 bsh #define IPU_DI1_SIZE 0x8000 103 1.4 bsh #define IPU_SMFC_BASE (IPU_BASE + 0x1e050000) 104 1.4 bsh #define IPU_SMFC_SIZE 0x8000 105 1.4 bsh #define IPU_DC_BASE (IPU_BASE + 0x1e058000) 106 1.4 bsh #define IPU_DC_SIZE 0x8000 107 1.4 bsh #define IPU_DMFC_BASE (IPU_BASE + 0x1e060000) 108 1.4 bsh #define IPU_DMFC_SIZE 0x8000 109 1.4 bsh #define IPU_VDI_BASE (IPU_BASE + 0x1e068000) 110 1.4 bsh #define IPU_VDI_SIZE 0x8000 111 1.4 bsh #define IPU_CPMEM_BASE (IPU_BASE + 0x1f000000) 112 1.4 bsh #define IPU_CPMEM_SIZE 0x20000 113 1.4 bsh #define IPU_LUT_BASE (IPU_BASE + 0x1f020000) 114 1.4 bsh #define IPU_LUT_SIZE 0x20000 115 1.4 bsh #define IPU_SRM_BASE (IPU_BASE + 0x1f040000) 116 1.4 bsh #define IPU_SRM_SIZE 0x20000 117 1.4 bsh #define IPU_TPM_BASE (IPU_BASE + 0x1f060000) 118 1.4 bsh #define IPU_TPM_SIZE 0x20000 119 1.4 bsh #define IPU_DCTMPL_BASE (IPU_BASE + 0x1f080000) 120 1.4 bsh #define IPU_DCTMPL_SIZE 0x20000 121 1.1 bsh 122 1.1 bsh #define DEBUGROM_BASE 0x60000000 123 1.1 bsh #define DEBUGROM_SIZE 0x1000 124 1.1 bsh 125 1.5 hkenken #define ESDHC1_BASE (AIPSTZ1_BASE + 0x00004000) 126 1.5 hkenken #define ESDHC2_BASE (AIPSTZ1_BASE + 0x00008000) 127 1.5 hkenken #define ESDHC3_BASE (AIPSTZ1_BASE + 0x00020000) 128 1.5 hkenken #define ESDHC4_BASE (AIPSTZ1_BASE + 0x00024000) 129 1.7 hkenken #define ESDHC_SIZE 0x4000 130 1.5 hkenken 131 1.5 hkenken #define PWM1_BASE (AIPSTZ1_BASE + 0x03fb4000) 132 1.5 hkenken #define PWM2_BASE (AIPSTZ1_BASE + 0x03fb8000) 133 1.5 hkenken 134 1.5 hkenken #define UART1_BASE (AIPSTZ1_BASE + 0x03fbc000) 135 1.5 hkenken #define UART2_BASE (AIPSTZ1_BASE + 0x03fc0000) 136 1.5 hkenken #define UART3_BASE (AIPSTZ1_BASE + 0x0000c000) 137 1.1 bsh /* register definitions in imxuartreg.h */ 138 1.1 bsh 139 1.5 hkenken #define CCMC_BASE (AIPSTZ1_BASE + 0x03fd4000) 140 1.5 hkenken 141 1.5 hkenken #define ECSPI1_BASE (AIPSTZ1_BASE + 0x00010000) 142 1.5 hkenken #define ECSPI2_BASE (AIPSTZ2_BASE + 0x03fac000) 143 1.1 bsh 144 1.5 hkenken #define SSI1_BASE (AIPSTZ2_BASE + 0x03fcc000) 145 1.5 hkenken #define SSI2_BASE (AIPSTZ1_BASE + 0x00014000) 146 1.5 hkenken #define SSI3_BASE (AIPSTZ2_BASE + 0x03fe8000) 147 1.1 bsh /* register definitions in imxssireg.h */ 148 1.1 bsh 149 1.5 hkenken #define SPDIF_BASE (AIPSTZ1_BASE + 0x00028000) 150 1.1 bsh #define SPDIF_SIZE 0x4000 151 1.1 bsh 152 1.5 hkenken #define PATA_UDMA_BASE (AIPSTZ1_BASE + 0x00030000) 153 1.1 bsh #define PATA_UDMA_SIZE 0x4000 154 1.5 hkenken #define PATA_PIO_BASE (AIPSTZ2_BASE + 0x03fe0000) 155 1.1 bsh #define PATA_PIO_SIZE 0x4000 156 1.1 bsh 157 1.5 hkenken #define SLM_BASE (AIPSTZ1_BASE + 0x00034000) 158 1.1 bsh #define SLM_SIZE 0x4000 159 1.1 bsh 160 1.5 hkenken #ifdef IMX50 161 1.5 hkenken #define I2C3_BASE (AIPSTZ1_BASE + 0x00038000) 162 1.5 hkenken #define I2C3_SIZE 0x4000 163 1.5 hkenken #else 164 1.5 hkenken #define HSI2C_BASE (AIPSTZ1_BASE + 0x00038000) 165 1.1 bsh #define HSI2C_SIZE 0x4000 166 1.5 hkenken #endif 167 1.1 bsh 168 1.5 hkenken #define SPBA_BASE (AIPSTZ1_BASE + 0x0003c000) 169 1.1 bsh #define SPBA_SIZE 0x4000 170 1.1 bsh 171 1.5 hkenken #define USBOH3_BASE (AIPSTZ1_BASE + 0x03f80000) 172 1.5 hkenken #define USBOH3_PL301_BASE (AIPSTZ1_BASE + 0x03fc4000) 173 1.2 bsh #define USBOH3_EHCI_SIZE 0x200 174 1.2 bsh #define USBOH3_OTG 0x000 175 1.2 bsh #define USBOH3_EHCI(n) (USBOH3_EHCI_SIZE*(n)) /* n=1,2,3 */ 176 1.2 bsh 177 1.2 bsh /* USB_CTRL register */ 178 1.5 hkenken #define USBOH3_USBCTRL 0x800 179 1.5 hkenken #define USBCTRL_OWIR __BIT(31) /* OTG Wakeup interrupt request */ 180 1.5 hkenken #define USBCTRL_OSIC __BITS(29,30) /* OTG Serial interface configuration */ 181 1.5 hkenken #define USBCTRL_OUIE __BIT(28) /* OTG Wake-up interrupt enable */ 182 1.5 hkenken #define USBCTRL_OBPAL __BITS(25,26) /* OTG Bypass value */ 183 1.5 hkenken #define USBCTRL_OPM __BIT(24) /* OTG Power Mask */ 184 1.5 hkenken #define USBCTRL_ICVOL __BIT(23) /* Host1 IC_USB voltage status */ 185 1.5 hkenken #define USBCTRL_ICTPIE __BIT(19) /* IC USB TP interrupt enable */ 186 1.5 hkenken #define USBCTRL_UBPCKE __BIT(18) /* Bypass clock enable */ 187 1.5 hkenken #define USBCTRL_H1TCKOEN __BIT(17) /* Host1 ULPO PHY clock enable */ 188 1.5 hkenken #define USBCTRL_ICTPC __BIT(16) /* Clear IC TP interrupt flag */ 189 1.5 hkenken #define USBCTRL_H1WIR __BIT(15) /* Host1 wakeup interrupt request */ 190 1.5 hkenken #define USBCTRL_H1SIC __BITS(13,14) /* Host1 serial interface config */ 191 1.5 hkenken #define USBCTRL_H1UIE __BIT(12) /* Host1 ILPI interrupt enable */ 192 1.5 hkenken #define USBCTRL_H1WIE __BIT(11) /* Host1 wakeup interrupt enable */ 193 1.5 hkenken #define USBCTRL_H1BPVAL __BITS(9,10) /* Host1 bypass value */ 194 1.5 hkenken #define USBCTRL_H1PM __BIT(8) /* Host1 power mask */ 195 1.5 hkenken #define USBCTRL_OHSTLL __BIT(7) /* OTG ULPI TLL enable */ 196 1.5 hkenken #define USBCTRL_H1HSTLL __BIT(6) /* Host1 ULPI TLL enable */ 197 1.5 hkenken #define USBCTRL_H1DISFSTTL __BIT(4) /* Host1 serial TLL disable */ 198 1.5 hkenken #define USBCTRL_OTCKOEN __BIT(1) /* OTG ULPI PHY clock enable */ 199 1.5 hkenken #define USBCTRL_BPE __BIT(0) /* Bypass enable */ 200 1.5 hkenken #define USBOH3_OTGMIRROR 0x804 201 1.5 hkenken #define USBOH3_PHYCTRL0 0x808 202 1.5 hkenken #define PHYCTRL0_VLOAD __BIT(31) 203 1.5 hkenken #define PHYCTRL0_VCONTROL __BITS(27,30) 204 1.5 hkenken #define PHYCTRL0_CONF2 __BIT(26) 205 1.5 hkenken #define PHYCTRL0_CONF3 __BIT(25) 206 1.5 hkenken #define PHYCTRL0_CHGRDETEN __BIT(24) 207 1.5 hkenken #define PHYCTRL0_CHGRDETON __BIT(23) 208 1.5 hkenken #define PHYCTRL0_VSTATUS __BITS(15,22) 209 1.5 hkenken #define PHYCTRL0_SUSPENDM __BIT(12) 210 1.5 hkenken #define PHYCTRL0_RESET __BIT(11) 211 1.5 hkenken #define PHYCTRL0_UTMI_ON_CLOCK __BIT(10) 212 1.2 bsh #define PHYCTRL0_OTG_OVER_CUR_POL __BIT(9) 213 1.2 bsh #define PHYCTRL0_OTG_OVER_CUR_DIS __BIT(8) 214 1.2 bsh #define PHYCTRL0_OTG_XCVR_CLK_SEL __BIT(7) 215 1.5 hkenken #define PHYCTRL0_H1_OVER_CUR_POL __BIT(6) 216 1.5 hkenken #define PHYCTRL0_H1_OVER_CUR_DIS __BIT(5) 217 1.2 bsh #define PHYCTRL0_H1_XCVR_CLK_SEL __BIT(4) 218 1.2 bsh #define PHYCTRL0_PWR_POL __BIT(3) 219 1.2 bsh #define PHYCTRL0_CHRGDET __BIT(2) 220 1.2 bsh #define PHYCTRL0_CHRGDET_INT_EN __BIT(1) 221 1.2 bsh #define PHYCTRL0_CHRGDET_INT_FLG __BIT(0) 222 1.5 hkenken #define USBOH3_PHYCTRL1 0x80c 223 1.2 bsh #define PHYCTRL1_PLLDIVVALUE_MASK __BITS(0,1) 224 1.2 bsh #define PHYCTRL1_PLLDIVVALUE_19MHZ 0 /* 19.2MHz */ 225 1.2 bsh #define PHYCTRL1_PLLDIVVALUE_24MHZ 1 226 1.2 bsh #define PHYCTRL1_PLLDIVVALUE_26MHZ 2 227 1.2 bsh #define PHYCTRL1_PLLDIVVALUE_27MHZ 3 228 1.5 hkenken #define USBOH3_USBCTRL1 0x810 229 1.2 bsh #define USBCTRL1_UH3_EXT_CLK_EN __BIT(27) 230 1.2 bsh #define USBCTRL1_UH2_EXT_CLK_EN __BIT(26) 231 1.2 bsh #define USBCTRL1_UH1_EXT_CLK_EN __BIT(25) 232 1.2 bsh #define USBCTRL1_OTG_EXT_CLK_EN __BIT(24) 233 1.5 hkenken #define USBOH3_USBCTRL2 0x814 234 1.5 hkenken #define USBOH3_USBCTRL3 0x818 235 1.5 hkenken #define USBOH3_UH1_PHY_CTRL_0 0x81c 236 1.5 hkenken #define USBOH3_UH1_PHY_CTRL_1 0x820 237 1.5 hkenken #define USBOH3_USB_CLKONOFF_CTRL 0x824 238 1.5 hkenken #define USB_CLKONOFF_CTRL_H1_AHBCLK_OFF __BIT(18) 239 1.5 hkenken #define USB_CLKONOFF_CTRL_OTG_AHBCLK_OFF __BIT(17) 240 1.1 bsh 241 1.7 hkenken #define USBOH3_SIZE 0x4000 242 1.1 bsh 243 1.1 bsh /* GPIO module */ 244 1.1 bsh 245 1.5 hkenken #define GPIO_BASE(n) \ 246 1.5 hkenken (AIPSTZ1_BASE + (((n) <= 4) ? \ 247 1.5 hkenken 0x03f84000 + 0x4000 * ((n) - 1) : \ 248 1.5 hkenken 0x03fdc000 + 0x4000 * ((n) - 5))) 249 1.1 bsh 250 1.1 bsh #define GPIO1_BASE GPIO_BASE(1) 251 1.1 bsh #define GPIO2_BASE GPIO_BASE(2) 252 1.1 bsh #define GPIO3_BASE GPIO_BASE(3) 253 1.1 bsh #define GPIO4_BASE GPIO_BASE(4) 254 1.5 hkenken #define GPIO5_BASE GPIO_BASE(5) 255 1.5 hkenken #define GPIO6_BASE GPIO_BASE(6) 256 1.1 bsh 257 1.5 hkenken #ifdef IMX50 258 1.5 hkenken #define GPIO_NGROUPS 6 259 1.5 hkenken #else 260 1.2 bsh #define GPIO_NGROUPS 4 261 1.5 hkenken #endif 262 1.1 bsh 263 1.5 hkenken #define KPP_BASE (AIPSTZ1_BASE + 0x03f94000) 264 1.1 bsh /* register definitions in imxkppreg.h */ 265 1.1 bsh 266 1.5 hkenken #define WDOG1_BASE (AIPSTZ1_BASE + 0x03f98000) 267 1.5 hkenken #define WDOG2_BASE (AIPSTZ1_BASE + 0x03f9c000) 268 1.7 hkenken #define WDOG_SIZE 0x4000 269 1.1 bsh 270 1.5 hkenken #define GPT_BASE (AIPSTZ1_BASE + 0x03fa0000) 271 1.1 bsh #define GPT_SIZE 0x4000 272 1.1 bsh 273 1.5 hkenken #define SRTC_BASE (AIPSTZ1_BASE + 0x03fa4000) 274 1.1 bsh #define SRTC_SIZE 0x4000 275 1.1 bsh 276 1.1 bsh /* IO multiplexor */ 277 1.5 hkenken #define IOMUXC_BASE (AIPSTZ1_BASE + 0x03fa8000) 278 1.1 bsh #define IOMUXC_SIZE 0x4000 279 1.1 bsh 280 1.1 bsh #define IOMUXC_MUX_CTL 0x001c /* multiprex control */ 281 1.3 bsh #define IOMUX_CONFIG_SION __BIT(4) 282 1.1 bsh #define IOMUX_CONFIG_ALT0 (0) 283 1.1 bsh #define IOMUX_CONFIG_ALT1 (1) 284 1.1 bsh #define IOMUX_CONFIG_ALT2 (2) 285 1.1 bsh #define IOMUX_CONFIG_ALT3 (3) 286 1.1 bsh #define IOMUX_CONFIG_ALT4 (4) 287 1.1 bsh #define IOMUX_CONFIG_ALT5 (5) 288 1.1 bsh #define IOMUX_CONFIG_ALT6 (6) 289 1.1 bsh #define IOMUX_CONFIG_ALT7 (7) 290 1.1 bsh #define IOMUXC_PAD_CTL 0x03f0 /* pad control */ 291 1.3 bsh #define PAD_CTL_HVE __BIT(13) 292 1.2 bsh #define PAD_CTL_DDR_INPUT __BIT(9) 293 1.2 bsh #define PAD_CTL_HYS __BIT(8) 294 1.2 bsh #define PAD_CTL_PKE __BIT(7) 295 1.2 bsh #define PAD_CTL_PUE __BIT(6) 296 1.2 bsh #define PAD_CTL_PULL (PAD_CTL_PKE|PAD_CTL_PUE) 297 1.2 bsh #define PAD_CTL_KEEPER (PAD_CTL_PKE|0) 298 1.5 hkenken #define PAD_CTL_PUS_MASK __BITS(5, 4) 299 1.5 hkenken #define PAD_CTL_PUS_100K_PD __SHIFTIN(0x0, PAD_CTL_PUS_MASK) 300 1.5 hkenken #define PAD_CTL_PUS_47K_PU __SHIFTIN(0x1, PAD_CTL_PUS_MASK) 301 1.5 hkenken #define PAD_CTL_PUS_100K_PU __SHIFTIN(0x2, PAD_CTL_PUS_MASK) 302 1.5 hkenken #define PAD_CTL_PUS_22K_PU __SHIFTIN(0x3, PAD_CTL_PUS_MASK) 303 1.2 bsh #define PAD_CTL_ODE __BIT(3) /* opendrain */ 304 1.5 hkenken #define PAD_CTL_DSE_MASK __BITS(2, 1) 305 1.5 hkenken #define PAD_CTL_DSE_LOW __SHIFTIN(0x0, PAD_CTL_DSE_MASK) 306 1.5 hkenken #define PAD_CTL_DSE_MID __SHIFTIN(0x1, PAD_CTL_DSE_MASK) 307 1.5 hkenken #define PAD_CTL_DSE_HIGH __SHIFTIN(0x2, PAD_CTL_DSE_MASK) 308 1.5 hkenken #define PAD_CTL_DSE_MAX __SHIFTIN(0x3, PAD_CTL_DSE_MASK) 309 1.2 bsh #define PAD_CTL_SRE __BIT(0) 310 1.1 bsh #define IOMUXC_INPUT_CTL 0x08c4 /* input control */ 311 1.1 bsh #define INPUT_DAISY_0 0 312 1.1 bsh #define INPUT_DAISY_1 1 313 1.1 bsh #define INPUT_DAISY_2 2 314 1.1 bsh #define INPUT_DAISY_3 3 315 1.1 bsh #define INPUT_DAISY_4 4 316 1.1 bsh #define INPUT_DAISY_5 5 317 1.1 bsh #define INPUT_DAISY_6 6 318 1.1 bsh #define INPUT_DAISY_7 7 319 1.1 bsh 320 1.1 bsh /* 321 1.1 bsh * IOMUX index 322 1.1 bsh */ 323 1.1 bsh #define IOMUX_PIN_TO_MUX_ADDRESS(pin) (((pin) >> 16) & 0xffff) 324 1.1 bsh #define IOMUX_PIN_TO_PAD_ADDRESS(pin) (((pin) >> 0) & 0xffff) 325 1.1 bsh 326 1.1 bsh #define IOMUX_PIN(mux_adr, pad_adr) \ 327 1.1 bsh (((mux_adr) << 16) | (((pad_adr) << 0))) 328 1.1 bsh #define IOMUX_MUX_NONE 0xffff 329 1.1 bsh #define IOMUX_PAD_NONE 0xffff 330 1.1 bsh 331 1.1 bsh /* EPIT */ 332 1.5 hkenken #define EPIT1_BASE (AIPSTZ1_BASE + 0x03FAC000) 333 1.5 hkenken #define EPIT2_BASE (AIPSTZ1_BASE + 0x03FB0000) 334 1.1 bsh /* register definitions in imxepitreg.h */ 335 1.1 bsh 336 1.5 hkenken #define PWM1_BASE (AIPSTZ1_BASE + 0x03fb4000) 337 1.5 hkenken #define PWM2_BASE (AIPSTZ1_BASE + 0x03fb8000) 338 1.1 bsh #define PWM_SIZE 0x4000 339 1.1 bsh 340 1.5 hkenken #define SRC_BASE (AIPSTZ1_BASE + 0x03fd0000) 341 1.1 bsh #define SRC_SIZE 0x4000 342 1.1 bsh 343 1.5 hkenken #define CCM_BASE (AIPSTZ1_BASE + 0x03fd4000) 344 1.7 hkenken #define CCM_SIZE 0x4000 345 1.1 bsh 346 1.5 hkenken #define GPC_BASE (AIPSTZ1_BASE + 0x03fd8000) 347 1.1 bsh #define GPC_SIZE 0x4000 348 1.1 bsh 349 1.5 hkenken #define AHBMAX_BASE (AIPSTZ2_BASE + 0x03f94000) 350 1.1 bsh #define AHBMAX_SIZE 0x4000 351 1.1 bsh 352 1.5 hkenken #define IIM_BASE (AIPSTZ2_BASE + 0x03f98000) 353 1.1 bsh #define IIM_SIZE 0x4000 354 1.1 bsh 355 1.5 hkenken #define CSU_BASE (AIPSTZ2_BASE + 0x03f9c000) 356 1.1 bsh #define CSU_SIZE 0x4000 357 1.1 bsh 358 1.5 hkenken #define OWIRE_BASE (AIPSTZ2_BASE + 0x03fa4000) 359 1.1 bsh #define OWIRE_SIZE 0x4000 360 1.1 bsh 361 1.5 hkenken #define FIRI_BASE (AIPSTZ2_BASE + 0x03fa8000) 362 1.1 bsh #define FIRI_SIZE 0x4000 363 1.1 bsh 364 1.1 bsh 365 1.5 hkenken #define SDMA_BASE (AIPSTZ2_BASE + 0x03fb0000) 366 1.1 bsh #define SDMA_SIZE 0x4000 367 1.1 bsh /* see imxsdmareg.h for register definitions */ 368 1.1 bsh 369 1.5 hkenken #define SCC_BASE (AIPSTZ2_BASE + 0x03fb4000) 370 1.1 bsh #define SCC_SIZE 0x4000 371 1.1 bsh 372 1.5 hkenken #define ROMCP_BASE (AIPSTZ2_BASE + 0x03fb8000) 373 1.1 bsh #define ROMCP_SIZE 0x4000 374 1.1 bsh 375 1.5 hkenken #define RTIC_BASE (AIPSTZ2_BASE + 0x03fbc000) 376 1.1 bsh #define RTIC_SIZE 0x4000 377 1.1 bsh 378 1.5 hkenken #define CSPI_BASE (AIPSTZ2_BASE + 0x03fc0000) 379 1.1 bsh #define CSPI_SIZE 0x4000 380 1.1 bsh 381 1.5 hkenken #define I2C1_BASE (AIPSTZ2_BASE + 0x03fc8000) 382 1.5 hkenken #define I2C2_BASE (AIPSTZ2_BASE + 0x03fc4000) 383 1.6 hkenken #define I2C_SIZE 0x4000 384 1.1 bsh 385 1.5 hkenken #define AUDMUX_BASE (AIPSTZ2_BASE + 0x03fd0000) 386 1.1 bsh #define AUDMUX_SIZE 0x4000 387 1.1 bsh #define AUDMUX_PTCR(n) ((n - 1) * 0x8) 388 1.1 bsh #define PTCR_TFSDIR (1 << 31) 389 1.1 bsh #define PTCR_TFSEL(x) (((x) & 0x7) << 27) 390 1.1 bsh #define PTCR_TCLKDIR (1 << 26) 391 1.1 bsh #define PTCR_TCSEL(x) (((x) & 0x7) << 22) 392 1.1 bsh #define PTCR_RFSDIR (1 << 21) 393 1.1 bsh #define PTCR_RFSEL(x) (((x) & 0x7) << 17) 394 1.1 bsh #define PTCR_RCLKDIR (1 << 16) 395 1.1 bsh #define PTCR_RCSEL(x) (((x) & 0x7) << 12) 396 1.1 bsh #define PTCR_SYN (1 << 11) 397 1.1 bsh 398 1.1 bsh #define AUDMUX_PDCR(n) ((n - 1) * 0x8 + 0x4) 399 1.1 bsh #define PDCR_RXDSEL(x) (((x) & 0x7) << 13) 400 1.1 bsh #define PDCR_TXRXEN (1 << 12) 401 1.1 bsh #define PDCR_MODE(x) (((x) & 0x3) << 8) 402 1.1 bsh #define PDCR_INMMASK(x) (((x) & 0xff) << 0) 403 1.1 bsh #define AUDMUX_CNMCR 0x38 404 1.1 bsh 405 1.5 hkenken #define EMI_BASE (AIPSTZ2_BASE + 0x03fd8000) 406 1.1 bsh #define EMI_SIZE 0x4000 407 1.1 bsh 408 1.5 hkenken #define SIM_BASE (AIPSTZ2_BASE + 0x03fe4000) 409 1.1 bsh #define SIM_SIZE 0x4000 410 1.1 bsh 411 1.5 hkenken #define FEC_BASE (AIPSTZ2_BASE + 0x03fec000) 412 1.1 bsh #define FEC_SIZE 0x4000 413 1.5 hkenken #define TVE_BASE (AIPSTZ2_BASE + 0x03ff0000) 414 1.1 bsh #define TVE_SIZE 0x4000 415 1.5 hkenken #define VPU_BASE (AIPSTZ2_BASE + 0x03ff4000) 416 1.1 bsh #define VPU_SIZE 0x4000 417 1.5 hkenken #define SAHARA_BASE (AIPSTZ2_BASE + 0x03ff8000) 418 1.1 bsh #define SAHARA_SIZE 0x4000 419 1.1 bsh 420 1.5 hkenken #define DPLL_BASE(n) ((AIPSTZ2_BASE + 0x03F80000 + (0x4000 * ((n)-1)))) 421 1.7 hkenken #define DPLL_SIZE 0x4000 422 1.1 bsh 423 1.1 bsh #endif /* _ARM_IMX_IMX51REG_H_ */ 424