1ff9f475dSJason Liu /* 2ff9f475dSJason Liu * (C) Copyright 2009 Freescale Semiconductor, Inc. 3ff9f475dSJason Liu * 4ff9f475dSJason Liu * See file CREDITS for list of people who contributed to this 5ff9f475dSJason Liu * project. 6ff9f475dSJason Liu * 7ff9f475dSJason Liu * This program is free software; you can redistribute it and/or 8ff9f475dSJason Liu * modify it under the terms of the GNU General Public License as 9ff9f475dSJason Liu * published by the Free Software Foundation; either version 2 of 10ff9f475dSJason Liu * the License, or (at your option) any later version. 11ff9f475dSJason Liu * 12ff9f475dSJason Liu * This program is distributed in the hope that it will be useful, 13ff9f475dSJason Liu * but WITHOUT ANY WARRANTY; without even the implied warranty of 14ff9f475dSJason Liu * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15ff9f475dSJason Liu * GNU General Public License for more details. 16ff9f475dSJason Liu * 17ff9f475dSJason Liu * You should have received a copy of the GNU General Public License 18ff9f475dSJason Liu * along with this program; if not, write to the Free Software 19ff9f475dSJason Liu * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 20ff9f475dSJason Liu * MA 02111-1307 USA 21ff9f475dSJason Liu */ 22ff9f475dSJason Liu 23595f3e56SLiu Hui-R64343 #ifndef __ASM_ARCH_MX5_IMX_REGS_H__ 24595f3e56SLiu Hui-R64343 #define __ASM_ARCH_MX5_IMX_REGS_H__ 25ff9f475dSJason Liu 26595f3e56SLiu Hui-R64343 #if defined(CONFIG_MX51) 271ab027cbSShawn Guo #define IRAM_BASE_ADDR 0x1FFE0000 /* internal ram */ 28ff9f475dSJason Liu #define IPU_CTRL_BASE_ADDR 0x40000000 29595f3e56SLiu Hui-R64343 #define SPBA0_BASE_ADDR 0x70000000 30595f3e56SLiu Hui-R64343 #define AIPS1_BASE_ADDR 0x73F00000 31595f3e56SLiu Hui-R64343 #define AIPS2_BASE_ADDR 0x83F00000 32595f3e56SLiu Hui-R64343 #define CSD0_BASE_ADDR 0x90000000 33595f3e56SLiu Hui-R64343 #define CSD1_BASE_ADDR 0xA0000000 34595f3e56SLiu Hui-R64343 #define NFC_BASE_ADDR_AXI 0xCFFF0000 35ac4020e3SFabio Estevam #define CS1_BASE_ADDR 0xB8000000 36595f3e56SLiu Hui-R64343 #elif defined(CONFIG_MX53) 37595f3e56SLiu Hui-R64343 #define IPU_CTRL_BASE_ADDR 0x18000000 38595f3e56SLiu Hui-R64343 #define SPBA0_BASE_ADDR 0x50000000 39595f3e56SLiu Hui-R64343 #define AIPS1_BASE_ADDR 0x53F00000 40595f3e56SLiu Hui-R64343 #define AIPS2_BASE_ADDR 0x63F00000 41595f3e56SLiu Hui-R64343 #define CSD0_BASE_ADDR 0x70000000 42595f3e56SLiu Hui-R64343 #define CSD1_BASE_ADDR 0xB0000000 43595f3e56SLiu Hui-R64343 #define NFC_BASE_ADDR_AXI 0xF7FF0000 44595f3e56SLiu Hui-R64343 #define IRAM_BASE_ADDR 0xF8000000 45ac4020e3SFabio Estevam #define CS1_BASE_ADDR 0xF4000000 46595f3e56SLiu Hui-R64343 #else 47595f3e56SLiu Hui-R64343 #error "CPU_TYPE not defined" 48595f3e56SLiu Hui-R64343 #endif 49595f3e56SLiu Hui-R64343 50595f3e56SLiu Hui-R64343 #define IRAM_SIZE 0x00020000 /* 128 KB */ 51ff9f475dSJason Liu 52ff9f475dSJason Liu /* 53ff9f475dSJason Liu * SPBA global module enabled #0 54ff9f475dSJason Liu */ 55ff9f475dSJason Liu #define MMC_SDHC1_BASE_ADDR (SPBA0_BASE_ADDR + 0x00004000) 56ff9f475dSJason Liu #define MMC_SDHC2_BASE_ADDR (SPBA0_BASE_ADDR + 0x00008000) 57ff9f475dSJason Liu #define UART3_BASE_ADDR (SPBA0_BASE_ADDR + 0x0000C000) 58ff9f475dSJason Liu #define CSPI1_BASE_ADDR (SPBA0_BASE_ADDR + 0x00010000) 59ff9f475dSJason Liu #define SSI2_BASE_ADDR (SPBA0_BASE_ADDR + 0x00014000) 60ff9f475dSJason Liu #define MMC_SDHC3_BASE_ADDR (SPBA0_BASE_ADDR + 0x00020000) 61ff9f475dSJason Liu #define MMC_SDHC4_BASE_ADDR (SPBA0_BASE_ADDR + 0x00024000) 62ff9f475dSJason Liu #define SPDIF_BASE_ADDR (SPBA0_BASE_ADDR + 0x00028000) 63ff9f475dSJason Liu #define ATA_DMA_BASE_ADDR (SPBA0_BASE_ADDR + 0x00030000) 64ff9f475dSJason Liu #define SLIM_DMA_BASE_ADDR (SPBA0_BASE_ADDR + 0x00034000) 65ff9f475dSJason Liu #define HSI2C_DMA_BASE_ADDR (SPBA0_BASE_ADDR + 0x00038000) 66ff9f475dSJason Liu #define SPBA_CTRL_BASE_ADDR (SPBA0_BASE_ADDR + 0x0003C000) 67ff9f475dSJason Liu 68ff9f475dSJason Liu /* 69ff9f475dSJason Liu * AIPS 1 70ff9f475dSJason Liu */ 71ff9f475dSJason Liu #define OTG_BASE_ADDR (AIPS1_BASE_ADDR + 0x00080000) 72ff9f475dSJason Liu #define GPIO1_BASE_ADDR (AIPS1_BASE_ADDR + 0x00084000) 73ff9f475dSJason Liu #define GPIO2_BASE_ADDR (AIPS1_BASE_ADDR + 0x00088000) 74ff9f475dSJason Liu #define GPIO3_BASE_ADDR (AIPS1_BASE_ADDR + 0x0008C000) 75ff9f475dSJason Liu #define GPIO4_BASE_ADDR (AIPS1_BASE_ADDR + 0x00090000) 76ff9f475dSJason Liu #define KPP_BASE_ADDR (AIPS1_BASE_ADDR + 0x00094000) 77ff9f475dSJason Liu #define WDOG1_BASE_ADDR (AIPS1_BASE_ADDR + 0x00098000) 78ff9f475dSJason Liu #define WDOG2_BASE_ADDR (AIPS1_BASE_ADDR + 0x0009C000) 79ff9f475dSJason Liu #define GPT1_BASE_ADDR (AIPS1_BASE_ADDR + 0x000A0000) 80ff9f475dSJason Liu #define SRTC_BASE_ADDR (AIPS1_BASE_ADDR + 0x000A4000) 81ff9f475dSJason Liu #define IOMUXC_BASE_ADDR (AIPS1_BASE_ADDR + 0x000A8000) 82ff9f475dSJason Liu #define EPIT1_BASE_ADDR (AIPS1_BASE_ADDR + 0x000AC000) 83ff9f475dSJason Liu #define EPIT2_BASE_ADDR (AIPS1_BASE_ADDR + 0x000B0000) 84ff9f475dSJason Liu #define PWM1_BASE_ADDR (AIPS1_BASE_ADDR + 0x000B4000) 85ff9f475dSJason Liu #define PWM2_BASE_ADDR (AIPS1_BASE_ADDR + 0x000B8000) 86ff9f475dSJason Liu #define UART1_BASE_ADDR (AIPS1_BASE_ADDR + 0x000BC000) 87ff9f475dSJason Liu #define UART2_BASE_ADDR (AIPS1_BASE_ADDR + 0x000C0000) 88ff9f475dSJason Liu #define SRC_BASE_ADDR (AIPS1_BASE_ADDR + 0x000D0000) 89ff9f475dSJason Liu #define CCM_BASE_ADDR (AIPS1_BASE_ADDR + 0x000D4000) 90ff9f475dSJason Liu #define GPC_BASE_ADDR (AIPS1_BASE_ADDR + 0x000D8000) 91ff9f475dSJason Liu 92595f3e56SLiu Hui-R64343 #if defined(CONFIG_MX53) 93595f3e56SLiu Hui-R64343 #define GPIO5_BASE_ADDR (AIPS1_BASE_ADDR + 0x000DC000) 94595f3e56SLiu Hui-R64343 #define GPIO6_BASE_ADDR (AIPS1_BASE_ADDR + 0x000E0000) 95595f3e56SLiu Hui-R64343 #define GPIO7_BASE_ADDR (AIPS1_BASE_ADDR + 0x000E4000) 96595f3e56SLiu Hui-R64343 #endif 97ff9f475dSJason Liu /* 98ff9f475dSJason Liu * AIPS 2 99ff9f475dSJason Liu */ 100ff9f475dSJason Liu #define PLL1_BASE_ADDR (AIPS2_BASE_ADDR + 0x00080000) 101ff9f475dSJason Liu #define PLL2_BASE_ADDR (AIPS2_BASE_ADDR + 0x00084000) 102ff9f475dSJason Liu #define PLL3_BASE_ADDR (AIPS2_BASE_ADDR + 0x00088000) 103ff9f475dSJason Liu #define AHBMAX_BASE_ADDR (AIPS2_BASE_ADDR + 0x00094000) 104ff9f475dSJason Liu #define IIM_BASE_ADDR (AIPS2_BASE_ADDR + 0x00098000) 105ff9f475dSJason Liu #define CSU_BASE_ADDR (AIPS2_BASE_ADDR + 0x0009C000) 106ff9f475dSJason Liu #define ARM_BASE_ADDR (AIPS2_BASE_ADDR + 0x000A0000) 107ff9f475dSJason Liu #define OWIRE_BASE_ADDR (AIPS2_BASE_ADDR + 0x000A4000) 108ff9f475dSJason Liu #define FIRI_BASE_ADDR (AIPS2_BASE_ADDR + 0x000A8000) 109ff9f475dSJason Liu #define CSPI2_BASE_ADDR (AIPS2_BASE_ADDR + 0x000AC000) 110ff9f475dSJason Liu #define SDMA_BASE_ADDR (AIPS2_BASE_ADDR + 0x000B0000) 111ff9f475dSJason Liu #define SCC_BASE_ADDR (AIPS2_BASE_ADDR + 0x000B4000) 112ff9f475dSJason Liu #define ROMCP_BASE_ADDR (AIPS2_BASE_ADDR + 0x000B8000) 113ff9f475dSJason Liu #define RTIC_BASE_ADDR (AIPS2_BASE_ADDR + 0x000BC000) 114ff9f475dSJason Liu #define CSPI3_BASE_ADDR (AIPS2_BASE_ADDR + 0x000C0000) 115ff9f475dSJason Liu #define I2C2_BASE_ADDR (AIPS2_BASE_ADDR + 0x000C4000) 116ff9f475dSJason Liu #define I2C1_BASE_ADDR (AIPS2_BASE_ADDR + 0x000C8000) 117ff9f475dSJason Liu #define SSI1_BASE_ADDR (AIPS2_BASE_ADDR + 0x000CC000) 118ff9f475dSJason Liu #define AUDMUX_BASE_ADDR (AIPS2_BASE_ADDR + 0x000D0000) 119ff9f475dSJason Liu #define M4IF_BASE_ADDR (AIPS2_BASE_ADDR + 0x000D8000) 120ff9f475dSJason Liu #define ESDCTL_BASE_ADDR (AIPS2_BASE_ADDR + 0x000D9000) 121ff9f475dSJason Liu #define WEIM_BASE_ADDR (AIPS2_BASE_ADDR + 0x000DA000) 122ff9f475dSJason Liu #define NFC_BASE_ADDR (AIPS2_BASE_ADDR + 0x000DB000) 123ff9f475dSJason Liu #define EMI_BASE_ADDR (AIPS2_BASE_ADDR + 0x000DBF00) 124ff9f475dSJason Liu #define MIPI_HSC_BASE_ADDR (AIPS2_BASE_ADDR + 0x000DC000) 125ff9f475dSJason Liu #define ATA_BASE_ADDR (AIPS2_BASE_ADDR + 0x000E0000) 126ff9f475dSJason Liu #define SIM_BASE_ADDR (AIPS2_BASE_ADDR + 0x000E4000) 127ff9f475dSJason Liu #define SSI3BASE_ADDR (AIPS2_BASE_ADDR + 0x000E8000) 128ff9f475dSJason Liu #define FEC_BASE_ADDR (AIPS2_BASE_ADDR + 0x000EC000) 129ff9f475dSJason Liu #define TVE_BASE_ADDR (AIPS2_BASE_ADDR + 0x000F0000) 130ff9f475dSJason Liu #define VPU_BASE_ADDR (AIPS2_BASE_ADDR + 0x000F4000) 131ff9f475dSJason Liu #define SAHARA_BASE_ADDR (AIPS2_BASE_ADDR + 0x000F8000) 132ff9f475dSJason Liu 133ff9f475dSJason Liu /* 134ac4020e3SFabio Estevam * WEIM CSnGCR1 135ac4020e3SFabio Estevam */ 136ac4020e3SFabio Estevam #define CSEN 1 137ac4020e3SFabio Estevam #define SWR (1 << 1) 138ac4020e3SFabio Estevam #define SRD (1 << 2) 139ac4020e3SFabio Estevam #define MUM (1 << 3) 140ac4020e3SFabio Estevam #define WFL (1 << 4) 141ac4020e3SFabio Estevam #define RFL (1 << 5) 142ac4020e3SFabio Estevam #define CRE (1 << 6) 143ac4020e3SFabio Estevam #define CREP (1 << 7) 144ac4020e3SFabio Estevam #define BL(x) (((x) & 0x7) << 8) 145ac4020e3SFabio Estevam #define WC (1 << 11) 146ac4020e3SFabio Estevam #define BCD(x) (((x) & 0x3) << 12) 147ac4020e3SFabio Estevam #define BCS(x) (((x) & 0x3) << 14) 148ac4020e3SFabio Estevam #define DSZ(x) (((x) & 0x7) << 16) 149ac4020e3SFabio Estevam #define SP (1 << 19) 150ac4020e3SFabio Estevam #define CSREC(x) (((x) & 0x7) << 20) 151ac4020e3SFabio Estevam #define AUS (1 << 23) 152ac4020e3SFabio Estevam #define GBC(x) (((x) & 0x7) << 24) 153ac4020e3SFabio Estevam #define WP (1 << 27) 154ac4020e3SFabio Estevam #define PSZ(x) (((x) & 0x0f << 28) 155ac4020e3SFabio Estevam 156ac4020e3SFabio Estevam /* 157ac4020e3SFabio Estevam * WEIM CSnGCR2 158ac4020e3SFabio Estevam */ 159ac4020e3SFabio Estevam #define ADH(x) (((x) & 0x3)) 160ac4020e3SFabio Estevam #define DAPS(x) (((x) & 0x0f << 4) 161ac4020e3SFabio Estevam #define DAE (1 << 8) 162ac4020e3SFabio Estevam #define DAP (1 << 9) 163ac4020e3SFabio Estevam #define MUX16_BYP (1 << 12) 164ac4020e3SFabio Estevam 165ac4020e3SFabio Estevam /* 166ac4020e3SFabio Estevam * WEIM CSnRCR1 167ac4020e3SFabio Estevam */ 168ac4020e3SFabio Estevam #define RCSN(x) (((x) & 0x7)) 169ac4020e3SFabio Estevam #define RCSA(x) (((x) & 0x7) << 4) 170ac4020e3SFabio Estevam #define OEN(x) (((x) & 0x7) << 8) 171ac4020e3SFabio Estevam #define OEA(x) (((x) & 0x7) << 12) 172ac4020e3SFabio Estevam #define RADVN(x) (((x) & 0x7) << 16) 173ac4020e3SFabio Estevam #define RAL (1 << 19) 174ac4020e3SFabio Estevam #define RADVA(x) (((x) & 0x7) << 20) 175ac4020e3SFabio Estevam #define RWSC(x) (((x) & 0x3f) << 24) 176ac4020e3SFabio Estevam 177ac4020e3SFabio Estevam /* 178ac4020e3SFabio Estevam * WEIM CSnRCR2 179ac4020e3SFabio Estevam */ 180ac4020e3SFabio Estevam #define RBEN(x) (((x) & 0x7)) 181ac4020e3SFabio Estevam #define RBE (1 << 3) 182ac4020e3SFabio Estevam #define RBEA(x) (((x) & 0x7) << 4) 183ac4020e3SFabio Estevam #define RL(x) (((x) & 0x3) << 8) 184ac4020e3SFabio Estevam #define PAT(x) (((x) & 0x7) << 12) 185ac4020e3SFabio Estevam #define APR (1 << 15) 186ac4020e3SFabio Estevam 187ac4020e3SFabio Estevam /* 188ac4020e3SFabio Estevam * WEIM CSnWCR1 189ac4020e3SFabio Estevam */ 190ac4020e3SFabio Estevam #define WCSN(x) (((x) & 0x7)) 191ac4020e3SFabio Estevam #define WCSA(x) (((x) & 0x7) << 3) 192ac4020e3SFabio Estevam #define WEN(x) (((x) & 0x7) << 6) 193ac4020e3SFabio Estevam #define WEA(x) (((x) & 0x7) << 9) 194ac4020e3SFabio Estevam #define WBEN(x) (((x) & 0x7) << 12) 195ac4020e3SFabio Estevam #define WBEA(x) (((x) & 0x7) << 15) 196ac4020e3SFabio Estevam #define WADVN(x) (((x) & 0x7) << 18) 197ac4020e3SFabio Estevam #define WADVA(x) (((x) & 0x7) << 21) 198ac4020e3SFabio Estevam #define WWSC(x) (((x) & 0x3f) << 24) 199ac4020e3SFabio Estevam #define WBED1 (1 << 30) 200ac4020e3SFabio Estevam #define WAL (1 << 31) 201ac4020e3SFabio Estevam 202ac4020e3SFabio Estevam /* 203ac4020e3SFabio Estevam * WEIM CSnWCR2 204ac4020e3SFabio Estevam */ 205ac4020e3SFabio Estevam #define WBED 1 206ac4020e3SFabio Estevam 207ac4020e3SFabio Estevam /* 208ac4020e3SFabio Estevam * WEIM WCR 209ac4020e3SFabio Estevam */ 210ac4020e3SFabio Estevam #define BCM 1 211ac4020e3SFabio Estevam #define GBCD(x) (((x) & 0x3) << 1) 212ac4020e3SFabio Estevam #define INTEN (1 << 4) 213ac4020e3SFabio Estevam #define INTPOL (1 << 5) 214ac4020e3SFabio Estevam #define WDOG_EN (1 << 8) 215ac4020e3SFabio Estevam #define WDOG_LIMIT(x) (((x) & 0x3) << 9) 216ac4020e3SFabio Estevam 217a6e961c2SFabio Estevam #define CS0_128 0 218a6e961c2SFabio Estevam #define CS0_64M_CS1_64M 1 219a6e961c2SFabio Estevam #define CS0_64M_CS1_32M_CS2_32M 2 220a6e961c2SFabio Estevam #define CS0_32M_CS1_32M_CS2_32M_CS3_32M 3 221a6e961c2SFabio Estevam 222ac4020e3SFabio Estevam /* 223ff9f475dSJason Liu * Number of GPIO pins per port 224ff9f475dSJason Liu */ 225ff9f475dSJason Liu #define GPIO_NUM_PIN 32 226ff9f475dSJason Liu 227ff9f475dSJason Liu #define IIM_SREV 0x24 228ff9f475dSJason Liu #define ROM_SI_REV 0x48 229ff9f475dSJason Liu 230ff9f475dSJason Liu #define NFC_BUF_SIZE 0x1000 231ff9f475dSJason Liu 232ff9f475dSJason Liu /* M4IF */ 233ff9f475dSJason Liu #define M4IF_FBPM0 0x40 234ff9f475dSJason Liu #define M4IF_FIDBP 0x48 235ff9f475dSJason Liu 236ff9f475dSJason Liu /* Assuming 24MHz input clock with doubler ON */ 237ff9f475dSJason Liu /* MFI PDF */ 238ff9f475dSJason Liu #define DP_OP_850 ((8 << 4) + ((1 - 1) << 0)) 239ff9f475dSJason Liu #define DP_MFD_850 (48 - 1) 240ff9f475dSJason Liu #define DP_MFN_850 41 241ff9f475dSJason Liu 242ff9f475dSJason Liu #define DP_OP_800 ((8 << 4) + ((1 - 1) << 0)) 243ff9f475dSJason Liu #define DP_MFD_800 (3 - 1) 244ff9f475dSJason Liu #define DP_MFN_800 1 245ff9f475dSJason Liu 246ff9f475dSJason Liu #define DP_OP_700 ((7 << 4) + ((1 - 1) << 0)) 247ff9f475dSJason Liu #define DP_MFD_700 (24 - 1) 248ff9f475dSJason Liu #define DP_MFN_700 7 249ff9f475dSJason Liu 250ff9f475dSJason Liu #define DP_OP_665 ((6 << 4) + ((1 - 1) << 0)) 251ff9f475dSJason Liu #define DP_MFD_665 (96 - 1) 252ff9f475dSJason Liu #define DP_MFN_665 89 253ff9f475dSJason Liu 254ff9f475dSJason Liu #define DP_OP_532 ((5 << 4) + ((1 - 1) << 0)) 255ff9f475dSJason Liu #define DP_MFD_532 (24 - 1) 256ff9f475dSJason Liu #define DP_MFN_532 13 257ff9f475dSJason Liu 258ff9f475dSJason Liu #define DP_OP_400 ((8 << 4) + ((2 - 1) << 0)) 259ff9f475dSJason Liu #define DP_MFD_400 (3 - 1) 260ff9f475dSJason Liu #define DP_MFN_400 1 261ff9f475dSJason Liu 262ff9f475dSJason Liu #define DP_OP_216 ((6 << 4) + ((3 - 1) << 0)) 263ff9f475dSJason Liu #define DP_MFD_216 (4 - 1) 264ff9f475dSJason Liu #define DP_MFN_216 3 265ff9f475dSJason Liu 266ff9f475dSJason Liu #define CHIP_REV_1_0 0x10 267ff9f475dSJason Liu #define CHIP_REV_1_1 0x11 268ff9f475dSJason Liu #define CHIP_REV_2_0 0x20 269ff9f475dSJason Liu #define CHIP_REV_2_5 0x25 270ff9f475dSJason Liu #define CHIP_REV_3_0 0x30 271ff9f475dSJason Liu 272ff9f475dSJason Liu #define BOARD_REV_1_0 0x0 273ff9f475dSJason Liu #define BOARD_REV_2_0 0x1 274ff9f475dSJason Liu 275565e39c5SLiu Hui-R64343 #define IMX_IIM_BASE (IIM_BASE_ADDR) 276565e39c5SLiu Hui-R64343 277ff9f475dSJason Liu #if !(defined(__KERNEL_STRICT_NAMES) || defined(__ASSEMBLY__)) 278ff9f475dSJason Liu #include <asm/types.h> 279ff9f475dSJason Liu 280565e39c5SLiu Hui-R64343 extern void imx_get_mac_from_fuse(unsigned char *mac); 281565e39c5SLiu Hui-R64343 282ff9f475dSJason Liu #define __REG(x) (*((volatile u32 *)(x))) 283ff9f475dSJason Liu #define __REG16(x) (*((volatile u16 *)(x))) 284ff9f475dSJason Liu #define __REG8(x) (*((volatile u8 *)(x))) 285ff9f475dSJason Liu 286ff9f475dSJason Liu struct clkctl { 287ff9f475dSJason Liu u32 ccr; 288ff9f475dSJason Liu u32 ccdr; 289ff9f475dSJason Liu u32 csr; 290ff9f475dSJason Liu u32 ccsr; 291ff9f475dSJason Liu u32 cacrr; 292ff9f475dSJason Liu u32 cbcdr; 293ff9f475dSJason Liu u32 cbcmr; 294ff9f475dSJason Liu u32 cscmr1; 295ff9f475dSJason Liu u32 cscmr2; 296ff9f475dSJason Liu u32 cscdr1; 297ff9f475dSJason Liu u32 cs1cdr; 298ff9f475dSJason Liu u32 cs2cdr; 299ff9f475dSJason Liu u32 cdcdr; 300ff9f475dSJason Liu u32 chsccdr; 301ff9f475dSJason Liu u32 cscdr2; 302ff9f475dSJason Liu u32 cscdr3; 303ff9f475dSJason Liu u32 cscdr4; 304ff9f475dSJason Liu u32 cwdr; 305ff9f475dSJason Liu u32 cdhipr; 306ff9f475dSJason Liu u32 cdcr; 307ff9f475dSJason Liu u32 ctor; 308ff9f475dSJason Liu u32 clpcr; 309ff9f475dSJason Liu u32 cisr; 310ff9f475dSJason Liu u32 cimr; 311ff9f475dSJason Liu u32 ccosr; 312ff9f475dSJason Liu u32 cgpr; 313ff9f475dSJason Liu u32 ccgr0; 314ff9f475dSJason Liu u32 ccgr1; 315ff9f475dSJason Liu u32 ccgr2; 316ff9f475dSJason Liu u32 ccgr3; 317ff9f475dSJason Liu u32 ccgr4; 318ff9f475dSJason Liu u32 ccgr5; 319ff9f475dSJason Liu u32 ccgr6; 320*0edf8b5bSStefano Babic #if defined(CONFIG_MX53) 321*0edf8b5bSStefano Babic u32 ccgr7; 322*0edf8b5bSStefano Babic #endif 323ff9f475dSJason Liu u32 cmeor; 324ff9f475dSJason Liu }; 325ff9f475dSJason Liu 326*0edf8b5bSStefano Babic /* DPLL registers */ 327*0edf8b5bSStefano Babic struct dpll { 328*0edf8b5bSStefano Babic u32 dp_ctl; 329*0edf8b5bSStefano Babic u32 dp_config; 330*0edf8b5bSStefano Babic u32 dp_op; 331*0edf8b5bSStefano Babic u32 dp_mfd; 332*0edf8b5bSStefano Babic u32 dp_mfn; 333*0edf8b5bSStefano Babic u32 dp_mfn_minus; 334*0edf8b5bSStefano Babic u32 dp_mfn_plus; 335*0edf8b5bSStefano Babic u32 dp_hfs_op; 336*0edf8b5bSStefano Babic u32 dp_hfs_mfd; 337*0edf8b5bSStefano Babic u32 dp_hfs_mfn; 338*0edf8b5bSStefano Babic u32 dp_mfn_togc; 339*0edf8b5bSStefano Babic u32 dp_destat; 340*0edf8b5bSStefano Babic }; 341ff9f475dSJason Liu /* WEIM registers */ 342ff9f475dSJason Liu struct weim { 343ac4020e3SFabio Estevam u32 cs0gcr1; 344ac4020e3SFabio Estevam u32 cs0gcr2; 345ac4020e3SFabio Estevam u32 cs0rcr1; 346ac4020e3SFabio Estevam u32 cs0rcr2; 347ac4020e3SFabio Estevam u32 cs0wcr1; 348ac4020e3SFabio Estevam u32 cs0wcr2; 349ac4020e3SFabio Estevam u32 cs1gcr1; 350ac4020e3SFabio Estevam u32 cs1gcr2; 351ac4020e3SFabio Estevam u32 cs1rcr1; 352ac4020e3SFabio Estevam u32 cs1rcr2; 353ac4020e3SFabio Estevam u32 cs1wcr1; 354ac4020e3SFabio Estevam u32 cs1wcr2; 355ac4020e3SFabio Estevam u32 cs2gcr1; 356ac4020e3SFabio Estevam u32 cs2gcr2; 357ac4020e3SFabio Estevam u32 cs2rcr1; 358ac4020e3SFabio Estevam u32 cs2rcr2; 359ac4020e3SFabio Estevam u32 cs2wcr1; 360ac4020e3SFabio Estevam u32 cs2wcr2; 361ac4020e3SFabio Estevam u32 cs3gcr1; 362ac4020e3SFabio Estevam u32 cs3gcr2; 363ac4020e3SFabio Estevam u32 cs3rcr1; 364ac4020e3SFabio Estevam u32 cs3rcr2; 365ac4020e3SFabio Estevam u32 cs3wcr1; 366ac4020e3SFabio Estevam u32 cs3wcr2; 367ac4020e3SFabio Estevam u32 cs4gcr1; 368ac4020e3SFabio Estevam u32 cs4gcr2; 369ac4020e3SFabio Estevam u32 cs4rcr1; 370ac4020e3SFabio Estevam u32 cs4rcr2; 371ac4020e3SFabio Estevam u32 cs4wcr1; 372ac4020e3SFabio Estevam u32 cs4wcr2; 373ac4020e3SFabio Estevam u32 cs5gcr1; 374ac4020e3SFabio Estevam u32 cs5gcr2; 375ac4020e3SFabio Estevam u32 cs5rcr1; 376ac4020e3SFabio Estevam u32 cs5rcr2; 377ac4020e3SFabio Estevam u32 cs5wcr1; 378ac4020e3SFabio Estevam u32 cs5wcr2; 379ac4020e3SFabio Estevam u32 wcr; 380ac4020e3SFabio Estevam u32 wiar; 381ac4020e3SFabio Estevam u32 ear; 382ff9f475dSJason Liu }; 383ff9f475dSJason Liu 384a682b3f7SFabio Estevam #if defined(CONFIG_MX51) 385a682b3f7SFabio Estevam struct iomuxc { 386a682b3f7SFabio Estevam u32 gpr0; 387a682b3f7SFabio Estevam u32 gpr1; 388a682b3f7SFabio Estevam u32 omux0; 389a682b3f7SFabio Estevam u32 omux1; 390a682b3f7SFabio Estevam u32 omux2; 391a682b3f7SFabio Estevam u32 omux3; 392a682b3f7SFabio Estevam u32 omux4; 393a682b3f7SFabio Estevam }; 394a682b3f7SFabio Estevam #elif defined(CONFIG_MX53) 395a682b3f7SFabio Estevam struct iomuxc { 396a682b3f7SFabio Estevam u32 gpr0; 397a682b3f7SFabio Estevam u32 gpr1; 398a682b3f7SFabio Estevam u32 gpr2; 399a682b3f7SFabio Estevam u32 omux0; 400a682b3f7SFabio Estevam u32 omux1; 401a682b3f7SFabio Estevam u32 omux2; 402a682b3f7SFabio Estevam u32 omux3; 403a682b3f7SFabio Estevam u32 omux4; 404a682b3f7SFabio Estevam }; 405a682b3f7SFabio Estevam #endif 406a682b3f7SFabio Estevam 407ff9f475dSJason Liu /* GPIO Registers */ 408ff9f475dSJason Liu struct gpio_regs { 409ff9f475dSJason Liu u32 gpio_dr; 410ff9f475dSJason Liu u32 gpio_dir; 411ff9f475dSJason Liu u32 gpio_psr; 412ff9f475dSJason Liu }; 413ff9f475dSJason Liu 414ff9f475dSJason Liu /* System Reset Controller (SRC) */ 415ff9f475dSJason Liu struct src { 416ff9f475dSJason Liu u32 scr; 417ff9f475dSJason Liu u32 sbmr; 418ff9f475dSJason Liu u32 srsr; 419ff9f475dSJason Liu u32 reserved1[2]; 420ff9f475dSJason Liu u32 sisr; 421ff9f475dSJason Liu u32 simr; 422ff9f475dSJason Liu }; 423565e39c5SLiu Hui-R64343 424ac87c17dSStefano Babic /* CSPI registers */ 425ac87c17dSStefano Babic struct cspi_regs { 426ac87c17dSStefano Babic u32 rxdata; 427ac87c17dSStefano Babic u32 txdata; 428ac87c17dSStefano Babic u32 ctrl; 429ac87c17dSStefano Babic u32 cfg; 430ac87c17dSStefano Babic u32 intr; 431ac87c17dSStefano Babic u32 dma; 432ac87c17dSStefano Babic u32 stat; 433ac87c17dSStefano Babic u32 period; 434ac87c17dSStefano Babic }; 435ac87c17dSStefano Babic 436565e39c5SLiu Hui-R64343 struct iim_regs { 437565e39c5SLiu Hui-R64343 u32 stat; 438565e39c5SLiu Hui-R64343 u32 statm; 439565e39c5SLiu Hui-R64343 u32 err; 440565e39c5SLiu Hui-R64343 u32 emask; 441565e39c5SLiu Hui-R64343 u32 fctl; 442565e39c5SLiu Hui-R64343 u32 ua; 443565e39c5SLiu Hui-R64343 u32 la; 444565e39c5SLiu Hui-R64343 u32 sdat; 445565e39c5SLiu Hui-R64343 u32 prev; 446565e39c5SLiu Hui-R64343 u32 srev; 447565e39c5SLiu Hui-R64343 u32 preg_p; 448565e39c5SLiu Hui-R64343 u32 scs0; 449565e39c5SLiu Hui-R64343 u32 scs1; 450565e39c5SLiu Hui-R64343 u32 scs2; 451565e39c5SLiu Hui-R64343 u32 scs3; 452565e39c5SLiu Hui-R64343 u32 res0[0x1f1]; 453565e39c5SLiu Hui-R64343 struct fuse_bank { 454565e39c5SLiu Hui-R64343 u32 fuse_regs[0x20]; 455565e39c5SLiu Hui-R64343 u32 fuse_rsvd[0xe0]; 456565e39c5SLiu Hui-R64343 } bank[4]; 457565e39c5SLiu Hui-R64343 }; 458565e39c5SLiu Hui-R64343 459565e39c5SLiu Hui-R64343 struct fuse_bank1_regs { 460565e39c5SLiu Hui-R64343 u32 fuse0_8[9]; 461565e39c5SLiu Hui-R64343 u32 mac_addr[6]; 462565e39c5SLiu Hui-R64343 u32 fuse15_31[0x11]; 463565e39c5SLiu Hui-R64343 }; 464565e39c5SLiu Hui-R64343 465ff9f475dSJason Liu #endif /* __ASSEMBLER__*/ 466ff9f475dSJason Liu 467595f3e56SLiu Hui-R64343 #endif /* __ASM_ARCH_MX5_IMX_REGS_H__ */ 468