@ -19,7 +19,7 @@
# define GPU_2D_ARB_END_ADDR 0x02203FFF
# define OPENVG_ARB_BASE_ADDR 0x02204000
# define OPENVG_ARB_END_ADDR 0x02207FFF
# elif CONFIG_MX6SX
# elif (defined( CONFIG_MX6SX) || defined(CONFIG_MX6UL))
# define CAAM_ARB_BASE_ADDR 0x00100000
# define CAAM_ARB_END_ADDR 0x00107FFF
# define GPU_ARB_BASE_ADDR 0x01800000
@ -28,10 +28,6 @@
# define APBH_DMA_ARB_END_ADDR 0x0180BFFF
# define M4_BOOTROM_BASE_ADDR 0x007F8000
# define MXS_APBH_BASE APBH_DMA_ARB_BASE_ADDR
# define MXS_GPMI_BASE (APBH_DMA_ARB_BASE_ADDR + 0x02000)
# define MXS_BCH_BASE (APBH_DMA_ARB_BASE_ADDR + 0x04000)
# else
# define CAAM_ARB_BASE_ADDR 0x00100000
# define CAAM_ARB_END_ADDR 0x00103FFF
@ -52,13 +48,13 @@
# define MXS_BCH_BASE (APBH_DMA_ARB_BASE_ADDR + 0x04000)
/* GPV - PL301 configuration ports */
# if (defined(CONFIG_MX6SL) || defined(CONFIG_MX6SX))
# if (defined(CONFIG_MX6SL) || defined(CONFIG_MX6SX) || defined(CONFIG_MX6UL) )
# define GPV2_BASE_ADDR 0x00D00000
# else
# define GPV2_BASE_ADDR 0x00200000
# endif
# ifdef CONFIG_MX6SX
# if (defined(CONFIG_MX6SX) || defined(CONFIG_MX6UL))
# define GPV3_BASE_ADDR 0x00E00000
# define GPV4_BASE_ADDR 0x00F00000
# define GPV5_BASE_ADDR 0x01000000
@ -87,15 +83,21 @@
# define AIPS1_ARB_END_ADDR 0x020FFFFF
# define AIPS2_ARB_BASE_ADDR 0x02100000
# define AIPS2_ARB_END_ADDR 0x021FFFFF
# ifdef CONFIG_MX6SX
/* AIPS3 only on i.MX6SX */
# define AIPS3_ARB_BASE_ADDR 0x02200000
# define AIPS3_ARB_END_ADDR 0x022FFFFF
# ifdef CONFIG_MX6SX
# define WEIM_ARB_BASE_ADDR 0x50000000
# define WEIM_ARB_END_ADDR 0x57FFFFFF
# define QSPI0_AMBA_BASE 0x60000000
# define QSPI0_AMBA_END 0x6FFFFFFF
# define QSPI1_AMBA_BASE 0x70000000
# define QSPI1_AMBA_END 0x7FFFFFFF
# elif defined(CONFIG_MX6UL)
# define WEIM_ARB_BASE_ADDR 0x50000000
# define WEIM_ARB_END_ADDR 0x57FFFFFF
# define QSPI0_AMBA_BASE 0x60000000
# define QSPI0_AMBA_END 0x6FFFFFFF
# else
# define SATA_ARB_BASE_ADDR 0x02200000
# define SATA_ARB_END_ADDR 0x02203FFF
@ -111,7 +113,7 @@
# define WEIM_ARB_END_ADDR 0x0FFFFFFF
# endif
# if (defined(CONFIG_MX6SL) || defined(CONFIG_MX6SX))
# if (defined(CONFIG_MX6SL) || defined(CONFIG_MX6SX) || defined(CONFIG_MX6UL) )
# define MMDC0_ARB_BASE_ADDR 0x80000000
# define MMDC0_ARB_END_ADDR 0xFFFFFFFF
# define MMDC1_ARB_BASE_ADDR 0xC0000000
@ -238,13 +240,16 @@
# define I2C3_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x28000)
# define ROMCP_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x2C000)
# define MMDC_P0_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x30000)
# ifdef CONFIG_MX6SL
/* i.MX6SL */
# define RNGB_IPS_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x34000)
# elif CONFIG_MX6SX
# define ENET2_BASE_ADDR (AIPS2 _OFF_BASE_ADDR + 0x34000)
# ifdef CONFIG_MX6UL
# define ENET2_BASE_ADDR (AIPS1 _OFF_BASE_ADDR + 0x34000)
# else
# define MMDC_P1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x34000)
/* i.MX6SX */
# define ENET2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x34000)
# endif
/* i.MX6DQ/SDL */
# define MMDC_P1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x34000)
# define WEIM_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x38000)
# define OCOTP_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x3C000)
@ -257,22 +262,21 @@
# define IP2APB_PERFMON3_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x4C000)
# endif
# define IP2APB_TZASC1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x50000)
# ifdef CONFIG_MX6SX
# ifdef CONFIG_MX6UL
# define QSPI0_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x60000)
# elif defined(CONFIG_MX6SX)
# define SAI1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x54000)
# else
# define IP2APB_TZASC2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x54000)
# endif
# define AUDMUX_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x58000)
# define AUDMUX_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x58000)
# ifdef CONFIG_MX6SX
# define SAI2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x5C000)
# define QSPI0_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x60000)
# define QSPI1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x64000)
# else
# define IP2APB_TZASC2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x54000)
# define MIPI_CSI2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x5C000)
# define MIPI_DSI_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x60000)
# define VDOA_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x64000)
# endif
# define MX6UL_WDOG3_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x64000)
# define UART2_BASE (AIPS2_OFF_BASE_ADDR + 0x68000)
# define UART3_BASE (AIPS2_OFF_BASE_ADDR + 0x6C000)
# define UART4_BASE (AIPS2_OFF_BASE_ADDR + 0x70000)
@ -296,7 +300,6 @@
# define AIPS3_CONFIG_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x7C000)
# define ADC1_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x80000)
# define ADC2_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x84000)
# define WDOG3_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x88000)
# define ECSPI5_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x8C000)
# define HS_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x90000)
# define MU_MCU_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x94000)
@ -308,12 +311,17 @@
# define PWM7_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0xAC000)
# define PWM8_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0xB0000)
# endif
# define MX6SX_WDOG3_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x88000)
/* only for i.MX6SX/UL */
# define WDOG3_BASE_ADDR (is_cpu_type(MXC_CPU_MX6UL) ? \
MX6UL_WDOG3_BASE_ADDR : MX6SX_WDOG3_BASE_ADDR )
# define CHIP_REV_1_0 0x10
# define CHIP_REV_1_2 0x12
# define CHIP_REV_1_5 0x15
# define CHIP_REV_2_0 0x20
# ifndef CONFIG_MX6SX
# if !(defined(CONFIG_MX6SX) || defined(CONFIG_MX6UL))
# define IRAM_SIZE 0x00040000
# else
# define IRAM_SIZE 0x00020000
@ -451,7 +459,7 @@ struct src {
struct iomuxc {
# ifdef CONFIG_MX6SX
# if (defined(CONFIG_MX6SX) || defined(CONFIG_MX6UL))
u8 reserved [ 0x4000 ] ;
# endif
u32 gpr [ 14 ] ;
@ -577,7 +585,7 @@ struct cspi_regs {
# define MXC_CSPICON_POL 4 /* SCLK polarity */
# define MXC_CSPICON_SSPOL 12 /* SS polarity */
# define MXC_CSPICON_CTL 20 /* inactive state of SCLK */
# if defined(CONFIG_MX6SL) || defined(CONFIG_MX6DL)
# if defined(CONFIG_MX6SL) || defined(CONFIG_MX6DL) || defined(CONFIG_MX6UL)
# define MXC_SPI_BASE_ADDRESSES \
ECSPI1_BASE_ADDR , \
ECSPI2_BASE_ADDR , \
@ -661,7 +669,7 @@ struct fuse_bank1_regs {
u32 rsvd7 [ 3 ] ;
} ;
# ifdef CONFIG_MX6SX
# if (defined(CONFIG_MX6SX) || defined(CONFIG_MX6UL))
struct fuse_bank4_regs {
u32 sjc_resp_low ;
u32 rsvd0 [ 3 ] ;
@ -674,7 +682,9 @@ struct fuse_bank4_regs {
u32 mac_addr2 ;
u32 rsvd4 [ 7 ] ;
u32 gp1 ;
u32 rsvd5 [ 7 ] ;
u32 rsvd5 [ 3 ] ;
u32 gp2 ;
u32 rsvd6 [ 3 ] ;
} ;
# else
struct fuse_bank4_regs {