uboot/arch/arm/include/asm/arch-vf610/imx-regs.h
<<
>>
Prefs
   1/*
   2 * Copyright 2013-2014 Freescale Semiconductor, Inc.
   3 *
   4 * SPDX-License-Identifier:     GPL-2.0+
   5 */
   6
   7#ifndef __ASM_ARCH_IMX_REGS_H__
   8#define __ASM_ARCH_IMX_REGS_H__
   9
  10#define ARCH_MXC
  11
  12#define IRAM_BASE_ADDR          0x3F000000      /* internal ram */
  13#define IRAM_SIZE               0x00080000      /* 512 KB */
  14
  15#define AIPS0_BASE_ADDR         0x40000000
  16#define AIPS1_BASE_ADDR         0x40080000
  17
  18/* AIPS 0 */
  19#define MSCM_BASE_ADDR          (AIPS0_BASE_ADDR + 0x00001000)
  20#define MSCM_IR_BASE_ADDR       (AIPS0_BASE_ADDR + 0x00001800)
  21#define CA5SCU_BASE_ADDR        (AIPS0_BASE_ADDR + 0x00002000)
  22#define CA5_INTD_BASE_ADDR      (AIPS0_BASE_ADDR + 0x00003000)
  23#define CA5_L2C_BASE_ADDR       (AIPS0_BASE_ADDR + 0x00006000)
  24#define NIC0_BASE_ADDR          (AIPS0_BASE_ADDR + 0x00008000)
  25#define NIC1_BASE_ADDR          (AIPS0_BASE_ADDR + 0x00009000)
  26#define NIC2_BASE_ADDR          (AIPS0_BASE_ADDR + 0x0000A000)
  27#define NIC3_BASE_ADDR          (AIPS0_BASE_ADDR + 0x0000B000)
  28#define NIC4_BASE_ADDR          (AIPS0_BASE_ADDR + 0x0000C000)
  29#define NIC5_BASE_ADDR          (AIPS0_BASE_ADDR + 0x0000D000)
  30#define NIC6_BASE_ADDR          (AIPS0_BASE_ADDR + 0x0000E000)
  31#define NIC7_BASE_ADDR          (AIPS0_BASE_ADDR + 0x0000F000)
  32#define AHBTZASC_BASE_ADDR      (AIPS0_BASE_ADDR + 0x00010000)
  33#define TZASC_SYS0_BASE_ADDR    (AIPS0_BASE_ADDR + 0x00011000)
  34#define TZASC_SYS1_BASE_ADDR    (AIPS0_BASE_ADDR + 0x00012000)
  35#define TZASC_GFX_BASE_ADDR     (AIPS0_BASE_ADDR + 0x00013000)
  36#define TZASC_DDR0_BASE_ADDR    (AIPS0_BASE_ADDR + 0x00014000)
  37#define TZASC_DDR1_BASE_ADDR    (AIPS0_BASE_ADDR + 0x00015000)
  38#define CSU_BASE_ADDR           (AIPS0_BASE_ADDR + 0x00017000)
  39#define DMA0_BASE_ADDR          (AIPS0_BASE_ADDR + 0x00018000)
  40#define DMA0_TCD_BASE_ADDR      (AIPS0_BASE_ADDR + 0x00019000)
  41#define SEMA4_BASE_ADDR         (AIPS0_BASE_ADDR + 0x0001D000)
  42#define FB_BASE_ADDR            (AIPS0_BASE_ADDR + 0x0001E000)
  43#define DMA_MUX0_BASE_ADDR      (AIPS0_BASE_ADDR + 0x00024000)
  44#define UART0_BASE              (AIPS0_BASE_ADDR + 0x00027000)
  45#define UART1_BASE              (AIPS0_BASE_ADDR + 0x00028000)
  46#define UART2_BASE              (AIPS0_BASE_ADDR + 0x00029000)
  47#define UART3_BASE              (AIPS0_BASE_ADDR + 0x0002A000)
  48#define SPI0_BASE_ADDR          (AIPS0_BASE_ADDR + 0x0002C000)
  49#define SPI1_BASE_ADDR          (AIPS0_BASE_ADDR + 0x0002D000)
  50#define SAI0_BASE_ADDR          (AIPS0_BASE_ADDR + 0x0002F000)
  51#define SAI1_BASE_ADDR          (AIPS0_BASE_ADDR + 0x00030000)
  52#define SAI2_BASE_ADDR          (AIPS0_BASE_ADDR + 0x00031000)
  53#define SAI3_BASE_ADDR          (AIPS0_BASE_ADDR + 0x00032000)
  54#define CRC_BASE_ADDR           (AIPS0_BASE_ADDR + 0x00033000)
  55#define USBC0_BASE_ADDR     (AIPS0_BASE_ADDR + 0x00034000)
  56#define PDB_BASE_ADDR           (AIPS0_BASE_ADDR + 0x00036000)
  57#define PIT_BASE_ADDR           (AIPS0_BASE_ADDR + 0x00037000)
  58#define FTM0_BASE_ADDR          (AIPS0_BASE_ADDR + 0x00038000)
  59#define FTM1_BASE_ADDR          (AIPS0_BASE_ADDR + 0x00039000)
  60#define ADC_BASE_ADDR           (AIPS0_BASE_ADDR + 0x0003B000)
  61#define TCON0_BASE_ADDR         (AIPS0_BASE_ADDR + 0x0003D000)
  62#define WDOG1_BASE_ADDR         (AIPS0_BASE_ADDR + 0x0003E000)
  63#define LPTMR_BASE_ADDR         (AIPS0_BASE_ADDR + 0x00040000)
  64#define RLE_BASE_ADDR           (AIPS0_BASE_ADDR + 0x00042000)
  65#define MLB_BASE_ADDR           (AIPS0_BASE_ADDR + 0x00043000)
  66#define QSPI0_BASE_ADDR         (AIPS0_BASE_ADDR + 0x00044000)
  67#define IOMUXC_BASE_ADDR        (AIPS0_BASE_ADDR + 0x00048000)
  68#define ANADIG_BASE_ADDR        (AIPS0_BASE_ADDR + 0x00050000)
  69#define USB_PHY0_BASE_ADDR  (AIPS0_BASE_ADDR + 0x00050800)
  70#define USB_PHY1_BASE_ADDR  (AIPS0_BASE_ADDR + 0x00050C00)
  71#define SCSC_BASE_ADDR          (AIPS0_BASE_ADDR + 0x00052000)
  72#define DCU0_BASE_ADDR          (AIPS0_BASE_ADDR + 0x00058000)
  73#define ASRC_BASE_ADDR          (AIPS0_BASE_ADDR + 0x00060000)
  74#define SPDIF_BASE_ADDR         (AIPS0_BASE_ADDR + 0x00061000)
  75#define ESAI_BASE_ADDR          (AIPS0_BASE_ADDR + 0x00062000)
  76#define ESAI_FIFO_BASE_ADDR     (AIPS0_BASE_ADDR + 0x00063000)
  77#define WDOG_BASE_ADDR          (AIPS0_BASE_ADDR + 0x00065000)
  78#define I2C1_BASE_ADDR          (AIPS0_BASE_ADDR + 0x00066000)
  79#define I2C2_BASE_ADDR          (AIPS0_BASE_ADDR + 0x00067000)
  80#define I2C3_BASE_ADDR          (AIPS0_BASE_ADDR + 0x000E6000)
  81#define I2C4_BASE_ADDR          (AIPS0_BASE_ADDR + 0x000E7000)
  82#define WKUP_BASE_ADDR          (AIPS0_BASE_ADDR + 0x0006A000)
  83#define CCM_BASE_ADDR           (AIPS0_BASE_ADDR + 0x0006B000)
  84#define GPC_BASE_ADDR           (AIPS0_BASE_ADDR + 0x0006C000)
  85#define VREG_DIG_BASE_ADDR      (AIPS0_BASE_ADDR + 0x0006D000)
  86#define SRC_BASE_ADDR           (AIPS0_BASE_ADDR + 0x0006E000)
  87#define CMU_BASE_ADDR           (AIPS0_BASE_ADDR + 0x0006F000)
  88#define GPIO0_BASE_ADDR         (AIPS0_BASE_ADDR + 0x000FF000)
  89#define GPIO1_BASE_ADDR         (AIPS0_BASE_ADDR + 0x000FF040)
  90#define GPIO2_BASE_ADDR         (AIPS0_BASE_ADDR + 0x000FF080)
  91#define GPIO3_BASE_ADDR         (AIPS0_BASE_ADDR + 0x000FF0C0)
  92#define GPIO4_BASE_ADDR         (AIPS0_BASE_ADDR + 0x000FF100)
  93
  94/* AIPS 1 */
  95#define OCOTP_BASE_ADDR         (AIPS1_BASE_ADDR + 0x00025000)
  96#define DDR_BASE_ADDR           (AIPS1_BASE_ADDR + 0x0002E000)
  97#define ESDHC0_BASE_ADDR        (AIPS1_BASE_ADDR + 0x00031000)
  98#define ESDHC1_BASE_ADDR        (AIPS1_BASE_ADDR + 0x00032000)
  99#define USBC1_BASE_ADDR     (AIPS1_BASE_ADDR + 0x00034000)
 100#define ENET_BASE_ADDR          (AIPS1_BASE_ADDR + 0x00050000)
 101#define ENET1_BASE_ADDR         (AIPS1_BASE_ADDR + 0x00051000)
 102#define DCU1_BASE_ADDR          (AIPS1_BASE_ADDR + 0x00058000)
 103#define NFC_BASE_ADDR           (AIPS1_BASE_ADDR + 0x00060000)
 104
 105#define QSPI0_AMBA_BASE         0x20000000
 106
 107/* MUX mode and PAD ctrl are in one register */
 108#define CONFIG_IOMUX_SHARE_CONF_REG
 109
 110#define FEC_QUIRK_ENET_MAC
 111#define I2C_QUIRK_REG
 112
 113/* MSCM interrupt rounter */
 114#define MSCM_IRSPRC_CP0_EN                              1
 115#define MSCM_IRSPRC_NUM                                 112
 116
 117/* DDRMC */
 118#define DDRMC_PHY_DQ_TIMING                             0x00002613
 119#define DDRMC_PHY_DQS_TIMING                            0x00002615
 120#define DDRMC_PHY_CTRL                                  0x00210000
 121#define DDRMC_PHY_MASTER_CTRL                           0x0001012a
 122#define DDRMC_PHY_SLAVE_CTRL                            0x00002000
 123#define DDRMC_PHY_OFF                                   0x00000000
 124#define DDRMC_PHY_PROC_PAD_ODT                          0x00010101
 125
 126#define DDRMC_PHY50_DDR3_MODE                           (1 << 12)
 127#define DDRMC_PHY50_EN_SW_HALF_CYCLE                    (1 << 8)
 128
 129#define DDRMC_CR00_DRAM_CLASS_DDR3                      (0x6 << 8)
 130#define DDRMC_CR00_DRAM_CLASS_LPDDR2                    (0x5 << 8)
 131#define DDRMC_CR00_START                                1
 132#define DDRMC_CR02_DRAM_TINIT(v)                        ((v) & 0xffffff)
 133#define DDRMC_CR10_TRST_PWRON(v)                        (v)
 134#define DDRMC_CR11_CKE_INACTIVE(v)                      (v)
 135#define DDRMC_CR12_WRLAT(v)                             (((v) & 0x1f) << 8)
 136#define DDRMC_CR12_CASLAT_LIN(v)                        ((v) & 0x3f)
 137#define DDRMC_CR13_TRC(v)                               (((v) & 0xff) << 24)
 138#define DDRMC_CR13_TRRD(v)                              (((v) & 0xff) << 16)
 139#define DDRMC_CR13_TCCD(v)                              (((v) & 0x1f) << 8)
 140#define DDRMC_CR13_TBST_INT_INTERVAL(v)                 ((v) & 0x7)
 141#define DDRMC_CR14_TFAW(v)                              (((v) & 0x3f) << 24)
 142#define DDRMC_CR14_TRP(v)                               (((v) & 0x1f) << 16)
 143#define DDRMC_CR14_TWTR(v)                              (((v) & 0xf) << 8)
 144#define DDRMC_CR14_TRAS_MIN(v)                          ((v) & 0xff)
 145#define DDRMC_CR16_TMRD(v)                              (((v) & 0x1f) << 24)
 146#define DDRMC_CR16_TRTP(v)                              (((v) & 0xf) << 16)
 147#define DDRMC_CR17_TRAS_MAX(v)                          (((v) & 0x1ffff) << 8)
 148#define DDRMC_CR17_TMOD(v)                              ((v) & 0xff)
 149#define DDRMC_CR18_TCKESR(v)                            (((v) & 0x1f) << 8)
 150#define DDRMC_CR18_TCKE(v)                              ((v) & 0x7)
 151#define DDRMC_CR20_AP_EN                                (1 << 24)
 152#define DDRMC_CR21_TRCD_INT(v)                          (((v) & 0xff) << 16)
 153#define DDRMC_CR21_TRAS_LOCKOUT(v)                      ((v) << 8)
 154#define DDRMC_CR21_CCMAP_EN                             1
 155#define DDRMC_CR22_TDAL(v)                              (((v) & 0x3f) << 16)
 156#define DDRMC_CR23_BSTLEN(v)                            (((v) & 0x7) << 24)
 157#define DDRMC_CR23_TDLL(v)                              ((v) & 0xffff)
 158#define DDRMC_CR24_TRP_AB(v)                            ((v) & 0x1f)
 159#define DDRMC_CR25_TREF_EN                              (1 << 16)
 160#define DDRMC_CR26_TREF(v)                              (((v) & 0xffff) << 16)
 161#define DDRMC_CR26_TRFC(v)                              ((v) & 0x3ff)
 162#define DDRMC_CR28_TREF_INT(v)                          ((v) & 0xffff)
 163#define DDRMC_CR29_TPDEX(v)                             ((v) & 0xffff)
 164#define DDRMC_CR30_TXPDLL(v)                            ((v) & 0xffff)
 165#define DDRMC_CR31_TXSNR(v)                             (((v) & 0xffff) << 16)
 166#define DDRMC_CR31_TXSR(v)                              ((v) & 0xffff)
 167#define DDRMC_CR33_EN_QK_SREF                           (1 << 16)
 168#define DDRMC_CR34_CKSRX(v)                             (((v) & 0xf) << 16)
 169#define DDRMC_CR34_CKSRE(v)                             (((v) & 0xf) << 8)
 170#define DDRMC_CR38_FREQ_CHG_EN(v)                       (((v) & 0x1) << 8)
 171#define DDRMC_CR39_PHY_INI_COM(v)                       (((v) & 0xffff) << 16)
 172#define DDRMC_CR39_PHY_INI_STA(v)                       (((v) & 0xff) << 8)
 173#define DDRMC_CR39_FRQ_CH_DLLOFF(v)                     ((v) & 0x3)
 174#define DDRMC_CR41_PHY_INI_STRT_INI_DIS                 1
 175#define DDRMC_CR48_MR1_DA_0(v)                          (((v) & 0xffff) << 16)
 176#define DDRMC_CR48_MR0_DA_0(v)                          ((v) & 0xffff)
 177#define DDRMC_CR66_ZQCL(v)                              (((v) & 0xfff) << 16)
 178#define DDRMC_CR66_ZQINIT(v)                            ((v) & 0xfff)
 179#define DDRMC_CR67_ZQCS(v)                              ((v) & 0xfff)
 180#define DDRMC_CR69_ZQ_ON_SREF_EX(v)                     (((v) & 0xf) << 8)
 181#define DDRMC_CR70_REF_PER_ZQ(v)                        (v)
 182#define DDRMC_CR72_ZQCS_ROTATE(v)                       (((v) & 0x1) << 24)
 183#define DDRMC_CR73_APREBIT(v)                           (((v) & 0xf) << 24)
 184#define DDRMC_CR73_COL_DIFF(v)                          (((v) & 0x7) << 16)
 185#define DDRMC_CR73_ROW_DIFF(v)                          (((v) & 0x3) << 8)
 186#define DDRMC_CR74_BANKSPLT_EN                          (1 << 24)
 187#define DDRMC_CR74_ADDR_CMP_EN                          (1 << 16)
 188#define DDRMC_CR74_CMD_AGE_CNT(v)                       (((v) & 0xff) << 8)
 189#define DDRMC_CR74_AGE_CNT(v)                           ((v) & 0xff)
 190#define DDRMC_CR75_RW_PG_EN                             (1 << 24)
 191#define DDRMC_CR75_RW_EN                                (1 << 16)
 192#define DDRMC_CR75_PRI_EN                               (1 << 8)
 193#define DDRMC_CR75_PLEN                                 1
 194#define DDRMC_CR76_NQENT_ACTDIS(v)                      (((v) & 0x7) << 24)
 195#define DDRMC_CR76_D_RW_G_BKCN(v)                       (((v) & 0x3) << 16)
 196#define DDRMC_CR76_W2R_SPLT_EN                          (1 << 8)
 197#define DDRMC_CR76_CS_EN                                1
 198#define DDRMC_CR77_CS_MAP                               (1 << 24)
 199#define DDRMC_CR77_DI_RD_INTLEAVE                       (1 << 8)
 200#define DDRMC_CR77_SWAP_EN                              1
 201#define DDRMC_CR78_Q_FULLNESS(v)                        (((v) & 0x7) << 24)
 202#define DDRMC_CR78_BUR_ON_FLY_BIT(v)                    ((v) & 0xf)
 203#define DDRMC_CR79_CTLUPD_AREF(v)                       (((v) & 0x1) << 24)
 204#define DDRMC_CR82_INT_MASK                             0x10000000
 205#define DDRMC_CR87_ODT_WR_MAPCS0(v)                     ((v) << 24)
 206#define DDRMC_CR87_ODT_RD_MAPCS0(v)                     ((v) << 16)
 207#define DDRMC_CR88_TODTL_CMD(v)                         (((v) & 0x1f) << 16)
 208#define DDRMC_CR89_AODT_RWSMCS(v)                       ((v) & 0xf)
 209#define DDRMC_CR91_R2W_SMCSDL(v)                        (((v) & 0x7) << 16)
 210#define DDRMC_CR96_WLMRD(v)                             (((v) & 0x3f) << 8)
 211#define DDRMC_CR96_WLDQSEN(v)                           ((v) & 0x3f)
 212#define DDRMC_CR97_WRLVL_EN                             (1 << 24)
 213#define DDRMC_CR98_WRLVL_DL_0(v)                        ((v) & 0xffff)
 214#define DDRMC_CR99_WRLVL_DL_1(v)                        ((v) & 0xffff)
 215#define DDRMC_CR102_RDLVL_GT_REGEN                      (1 << 16)
 216#define DDRMC_CR102_RDLVL_REG_EN                        (1 << 8)
 217#define DDRMC_CR105_RDLVL_DL_0(v)                       (((v) & 0xff) << 8)
 218#define DDRMC_CR106_RDLVL_GTDL_0(v)                     ((v) & 0xff)
 219#define DDRMC_CR110_RDLVL_DL_1(v)                       ((v) & 0xff)
 220#define DDRMC_CR110_RDLVL_GTDL_1(v)                     (((v) & 0xff) << 16)
 221#define DDRMC_CR114_RDLVL_GTDL_2(v)                     (((v) & 0xffff) << 8)
 222#define DDRMC_CR115_RDLVL_GTDL_2(v)                     ((v) & 0xff)
 223#define DDRMC_CR117_AXI0_W_PRI(v)                       (((v) & 0x3) << 8)
 224#define DDRMC_CR117_AXI0_R_PRI(v)                       ((v) & 0x3)
 225#define DDRMC_CR118_AXI1_W_PRI(v)                       (((v) & 0x3) << 24)
 226#define DDRMC_CR118_AXI1_R_PRI(v)                       (((v) & 0x3) << 16)
 227#define DDRMC_CR120_AXI0_PRI1_RPRI(v)                   (((v) & 0xf) << 24)
 228#define DDRMC_CR120_AXI0_PRI0_RPRI(v)                   (((v) & 0xf) << 16)
 229#define DDRMC_CR121_AXI0_PRI3_RPRI(v)                   (((v) & 0xf) << 8)
 230#define DDRMC_CR121_AXI0_PRI2_RPRI(v)                   ((v) & 0xf)
 231#define DDRMC_CR122_AXI1_PRI1_RPRI(v)                   (((v) & 0xf) << 24)
 232#define DDRMC_CR122_AXI1_PRI0_RPRI(v)                   (((v) & 0xf) << 16)
 233#define DDRMC_CR122_AXI0_PRIRLX(v)                      ((v) & 0x3ff)
 234#define DDRMC_CR123_AXI1_PRI3_RPRI(v)                   (((v) & 0xf) << 8)
 235#define DDRMC_CR123_AXI1_PRI2_RPRI(v)                   ((v) & 0xf)
 236#define DDRMC_CR123_AXI1_P_ODR_EN                       (1 << 16)
 237#define DDRMC_CR124_AXI1_PRIRLX(v)                      ((v) & 0x3ff)
 238#define DDRMC_CR126_PHY_RDLAT(v)                        (((v) & 0x3f) << 8)
 239#define DDRMC_CR132_WRLAT_ADJ(v)                        (((v) & 0x1f) << 8)
 240#define DDRMC_CR132_RDLAT_ADJ(v)                        ((v) & 0x3f)
 241#define DDRMC_CR137_PHYCTL_DL(v)                        (((v) & 0xf) << 16)
 242#define DDRMC_CR138_PHY_WRLV_MXDL(v)                    (((v) & 0xffff) << 16)
 243#define DDRMC_CR138_PHYDRAM_CK_EN(v)                    (((v) & 0x8) << 8)
 244#define DDRMC_CR139_PHY_WRLV_RESPLAT(v)                 (((v) & 0xff) << 24)
 245#define DDRMC_CR139_PHY_WRLV_LOAD(v)                    (((v) & 0xff) << 16)
 246#define DDRMC_CR139_PHY_WRLV_DLL(v)                     (((v) & 0xff) << 8)
 247#define DDRMC_CR139_PHY_WRLV_EN(v)                      ((v) & 0xff)
 248#define DDRMC_CR140_PHY_WRLV_WW(v)                      ((v) & 0x3ff)
 249#define DDRMC_CR143_RDLV_GAT_MXDL(v)                    (((v) & 0xffff) << 16)
 250#define DDRMC_CR143_RDLV_MXDL(v)                        ((v) & 0xffff)
 251#define DDRMC_CR144_PHY_RDLVL_RES(v)                    (((v) & 0xff) << 24)
 252#define DDRMC_CR144_PHY_RDLV_LOAD(v)                    (((v) & 0xff) << 16)
 253#define DDRMC_CR144_PHY_RDLV_DLL(v)                     (((v) & 0xff) << 8)
 254#define DDRMC_CR144_PHY_RDLV_EN(v)                      ((v) & 0xff)
 255#define DDRMC_CR145_PHY_RDLV_RR(v)                      ((v) & 0x3ff)
 256#define DDRMC_CR146_PHY_RDLVL_RESP(v)                   (v)
 257#define DDRMC_CR147_RDLV_RESP_MASK(v)                   ((v) & 0xfffff)
 258#define DDRMC_CR148_RDLV_GATE_RESP_MASK(v)              ((v) & 0xfffff)
 259#define DDRMC_CR151_RDLV_GAT_DQ_ZERO_CNT(v)             (((v) & 0xf) << 8)
 260#define DDRMC_CR151_RDLVL_DQ_ZERO_CNT(v)                ((v) & 0xf)
 261#define DDRMC_CR154_PAD_ZQ_EARLY_CMP_EN_TIMER(v)        (((v) & 0x1f) << 27)
 262#define DDRMC_CR154_PAD_ZQ_MODE(v)                      (((v) & 0x3) << 21)
 263#define DDRMC_CR154_DDR_SEL_PAD_CONTR(v)                (((v) & 0x3) << 18)
 264#define DDRMC_CR154_PAD_ZQ_HW_FOR(v)                    (((v) & 0x1) << 14)
 265#define DDRMC_CR155_AXI0_AWCACHE                        (1 << 10)
 266#define DDRMC_CR155_PAD_ODT_BYTE1(v)                    (((v) & 0x7) << 3)
 267#define DDRMC_CR155_PAD_ODT_BYTE0(v)                    ((v) & 0x7)
 268#define DDRMC_CR158_TWR(v)                              ((v) & 0x3f)
 269#define DDRMC_CR161_ODT_EN(v)                           (((v) & 0x1) << 16)
 270#define DDRMC_CR161_TODTH_RD(v)                         (((v) & 0xf) << 8)
 271#define DDRMC_CR161_TODTH_WR(v)                         ((v) & 0xf)
 272
 273/* System Reset Controller (SRC) */
 274#define SRC_SRSR_SW_RST                                 (0x1 << 18)
 275#define SRC_SRSR_RESETB                                 (0x1 << 7)
 276#define SRC_SRSR_JTAG_RST                               (0x1 << 5)
 277#define SRC_SRSR_WDOG_M4                                (0x1 << 4)
 278#define SRC_SRSR_WDOG_A5                                (0x1 << 3)
 279#define SRC_SRSR_POR_RST                                (0x1 << 0)
 280#define SRC_SBMR2_BMOD_MASK             (0x3 << 24)
 281#define SRC_SBMR2_BMOD_SHIFT            24
 282#define SRC_SBMR2_BMOD_FUSES            0x0
 283#define SRC_SBMR2_BMOD_SERIAL           0x1
 284#define SRC_SBMR2_BMOD_RCON             0x2
 285
 286/* Slow Clock Source Controller Module (SCSC) */
 287#define SCSC_SOSC_CTR_SOSC_EN            0x1
 288
 289#if !(defined(__KERNEL_STRICT_NAMES) || defined(__ASSEMBLY__))
 290#include <asm/types.h>
 291
 292/* System Reset Controller (SRC) */
 293struct src {
 294        u32 scr;
 295        u32 sbmr1;
 296        u32 srsr;
 297        u32 secr;
 298        u32 gpsr;
 299        u32 sicr;
 300        u32 simr;
 301        u32 sbmr2;
 302        u32 gpr0;
 303        u32 gpr1;
 304        u32 gpr2;
 305        u32 gpr3;
 306        u32 gpr4;
 307        u32 hab0;
 308        u32 hab1;
 309        u32 hab2;
 310        u32 hab3;
 311        u32 hab4;
 312        u32 hab5;
 313        u32 misc0;
 314        u32 misc1;
 315        u32 misc2;
 316        u32 misc3;
 317};
 318
 319/* Periodic Interrupt Timer (PIT) */
 320struct pit_reg {
 321        u32 mcr;
 322        u32 recv0[55];
 323        u32 ltmr64h;
 324        u32 ltmr64l;
 325        u32 recv1[6];
 326        u32 ldval0;
 327        u32 cval0;
 328        u32 tctrl0;
 329        u32 tflg0;
 330        u32 ldval1;
 331        u32 cval1;
 332        u32 tctrl1;
 333        u32 tflg1;
 334        u32 ldval2;
 335        u32 cval2;
 336        u32 tctrl2;
 337        u32 tflg2;
 338        u32 ldval3;
 339        u32 cval3;
 340        u32 tctrl3;
 341        u32 tflg3;
 342        u32 ldval4;
 343        u32 cval4;
 344        u32 tctrl4;
 345        u32 tflg4;
 346        u32 ldval5;
 347        u32 cval5;
 348        u32 tctrl5;
 349        u32 tflg5;
 350        u32 ldval6;
 351        u32 cval6;
 352        u32 tctrl6;
 353        u32 tflg6;
 354        u32 ldval7;
 355        u32 cval7;
 356        u32 tctrl7;
 357        u32 tflg7;
 358};
 359
 360/* Watchdog Timer (WDOG) */
 361struct wdog_regs {
 362        u16 wcr;
 363        u16 wsr;
 364        u16 wrsr;
 365        u16 wicr;
 366        u16 wmcr;
 367};
 368
 369/* LPDDR2/DDR3 SDRAM Memory Controller (DDRMC) */
 370struct ddrmr_regs {
 371        u32 cr[162];
 372        u32 rsvd[94];
 373        u32 phy[53];
 374};
 375
 376/* On-Chip One Time Programmable Controller (OCOTP) */
 377struct ocotp_regs {
 378        u32 ctrl;
 379        u32 ctrl_set;
 380        u32 ctrl_clr;
 381        u32 ctrl_tog;
 382        u32 timing;
 383        u32 rsvd0[3];
 384        u32 data;
 385        u32 rsvd1[3];
 386        u32 read_ctrl;
 387        u32 rsvd2[3];
 388        u32 read_fuse_data;
 389        u32 rsvd3[7];
 390        u32 scs;
 391        u32 scs_set;
 392        u32 scs_clr;
 393        u32 scs_tog;
 394        u32 crc_addr;
 395        u32 rsvd4[3];
 396        u32 crc_value;
 397        u32 rsvd5[3];
 398        u32 version;
 399        u32 rsvd6[0xdb];
 400
 401        struct fuse_bank {
 402                u32 fuse_regs[0x20];
 403        } bank[16];
 404};
 405
 406struct fuse_bank0_regs {
 407        u32 lock;
 408        u32 rsvd0[3];
 409        u32 uid_low;
 410        u32 rsvd1[3];
 411        u32 uid_high;
 412        u32 rsvd2[0x17];
 413};
 414
 415struct fuse_bank4_regs {
 416        u32 sjc_resp0;
 417        u32 rsvd0[3];
 418        u32 sjc_resp1;
 419        u32 rsvd1[3];
 420        u32 mac_addr0;
 421        u32 rsvd2[3];
 422        u32 mac_addr1;
 423        u32 rsvd3[3];
 424        u32 mac_addr2;
 425        u32 rsvd4[3];
 426        u32 mac_addr3;
 427        u32 rsvd5[3];
 428        u32 gp1;
 429        u32 rsvd6[3];
 430        u32 gp2;
 431        u32 rsvd7[3];
 432};
 433
 434/* MSCM Interrupt Router */
 435struct mscm_ir {
 436        u32 ircp0ir;
 437        u32 ircp1ir;
 438        u32 rsvd1[6];
 439        u32 ircpgir;
 440        u32 rsvd2[23];
 441        u16 irsprc[112];
 442        u16 rsvd3[848];
 443};
 444
 445/* SCSC */
 446struct scsc_reg {
 447        u32 sirc_ctr;
 448        u32 sosc_ctr;
 449};
 450
 451/* MSCM */
 452struct mscm {
 453        u32 cpxtype;
 454        u32 cpxnum;
 455        u32 cpxmaster;
 456        u32 cpxcount;
 457        u32 cpxcfg0;
 458        u32 cpxcfg1;
 459        u32 cpxcfg2;
 460        u32 cpxcfg3;
 461};
 462
 463#endif  /* __ASSEMBLER__*/
 464
 465#endif  /* __ASM_ARCH_IMX_REGS_H__ */
 466