xref: /rk3399_rockchip-uboot/arch/arm/include/asm/arch-mx6/imx-regs.h (revision bd2e27c043ca8c4791b340e2377ddeda545330c4)
123608e23SJason Liu /*
223608e23SJason Liu  * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved.
323608e23SJason Liu  *
423608e23SJason Liu  * This program is free software; you can redistribute it and/or modify
523608e23SJason Liu  * it under the terms of the GNU General Public License as published by
623608e23SJason Liu  * the Free Software Foundation; either version 2 of the License, or
723608e23SJason Liu  * (at your option) any later version.
823608e23SJason Liu 
923608e23SJason Liu  * This program is distributed in the hope that it will be useful,
1023608e23SJason Liu  * but WITHOUT ANY WARRANTY; without even the implied warranty of
1123608e23SJason Liu  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1223608e23SJason Liu  * GNU General Public License for more details.
1323608e23SJason Liu 
1423608e23SJason Liu  * You should have received a copy of the GNU General Public License along
1523608e23SJason Liu  * with this program; if not, write to the Free Software Foundation, Inc.,
1623608e23SJason Liu  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
1723608e23SJason Liu  */
1823608e23SJason Liu 
1923608e23SJason Liu #ifndef __ASM_ARCH_MX6_IMX_REGS_H__
2023608e23SJason Liu #define __ASM_ARCH_MX6_IMX_REGS_H__
2123608e23SJason Liu 
2223608e23SJason Liu #define ROMCP_ARB_BASE_ADDR             0x00000000
2323608e23SJason Liu #define ROMCP_ARB_END_ADDR              0x000FFFFF
2423608e23SJason Liu #define CAAM_ARB_BASE_ADDR              0x00100000
2523608e23SJason Liu #define CAAM_ARB_END_ADDR               0x00103FFF
2623608e23SJason Liu #define APBH_DMA_ARB_BASE_ADDR          0x00110000
2723608e23SJason Liu #define APBH_DMA_ARB_END_ADDR           0x00117FFF
2823608e23SJason Liu #define HDMI_ARB_BASE_ADDR              0x00120000
2923608e23SJason Liu #define HDMI_ARB_END_ADDR               0x00128FFF
3023608e23SJason Liu #define GPU_3D_ARB_BASE_ADDR            0x00130000
3123608e23SJason Liu #define GPU_3D_ARB_END_ADDR             0x00133FFF
3223608e23SJason Liu #define GPU_2D_ARB_BASE_ADDR            0x00134000
3323608e23SJason Liu #define GPU_2D_ARB_END_ADDR             0x00137FFF
3423608e23SJason Liu #define DTCP_ARB_BASE_ADDR              0x00138000
3523608e23SJason Liu #define DTCP_ARB_END_ADDR               0x0013BFFF
3623608e23SJason Liu 
3723608e23SJason Liu /* GPV - PL301 configuration ports */
3823608e23SJason Liu #define GPV2_BASE_ADDR			0x00200000
3923608e23SJason Liu #define GPV3_BASE_ADDR			0x00300000
4023608e23SJason Liu #define GPV4_BASE_ADDR			0x00800000
4123608e23SJason Liu #define IRAM_BASE_ADDR			0x00900000
4223608e23SJason Liu #define SCU_BASE_ADDR                   0x00A00000
4323608e23SJason Liu #define IC_INTERFACES_BASE_ADDR         0x00A00100
4423608e23SJason Liu #define GLOBAL_TIMER_BASE_ADDR          0x00A00200
4523608e23SJason Liu #define PRIVATE_TIMERS_WD_BASE_ADDR     0x00A00600
4623608e23SJason Liu #define IC_DISTRIBUTOR_BASE_ADDR        0x00A01000
4723608e23SJason Liu #define GPV0_BASE_ADDR                  0x00B00000
4823608e23SJason Liu #define GPV1_BASE_ADDR                  0x00C00000
4923608e23SJason Liu #define PCIE_ARB_BASE_ADDR              0x01000000
5023608e23SJason Liu #define PCIE_ARB_END_ADDR               0x01FFFFFF
5123608e23SJason Liu 
5223608e23SJason Liu #define AIPS1_ARB_BASE_ADDR             0x02000000
5323608e23SJason Liu #define AIPS1_ARB_END_ADDR              0x020FFFFF
5423608e23SJason Liu #define AIPS2_ARB_BASE_ADDR             0x02100000
5523608e23SJason Liu #define AIPS2_ARB_END_ADDR              0x021FFFFF
5623608e23SJason Liu #define SATA_ARB_BASE_ADDR              0x02200000
5723608e23SJason Liu #define SATA_ARB_END_ADDR               0x02203FFF
5823608e23SJason Liu #define OPENVG_ARB_BASE_ADDR            0x02204000
5923608e23SJason Liu #define OPENVG_ARB_END_ADDR             0x02207FFF
6023608e23SJason Liu #define HSI_ARB_BASE_ADDR               0x02208000
6123608e23SJason Liu #define HSI_ARB_END_ADDR                0x0220BFFF
6223608e23SJason Liu #define IPU1_ARB_BASE_ADDR              0x02400000
6323608e23SJason Liu #define IPU1_ARB_END_ADDR               0x027FFFFF
6423608e23SJason Liu #define IPU2_ARB_BASE_ADDR              0x02800000
6523608e23SJason Liu #define IPU2_ARB_END_ADDR               0x02BFFFFF
6623608e23SJason Liu #define WEIM_ARB_BASE_ADDR              0x08000000
6723608e23SJason Liu #define WEIM_ARB_END_ADDR               0x0FFFFFFF
6823608e23SJason Liu 
6923608e23SJason Liu #define MMDC0_ARB_BASE_ADDR             0x10000000
7023608e23SJason Liu #define MMDC0_ARB_END_ADDR              0x7FFFFFFF
7123608e23SJason Liu #define MMDC1_ARB_BASE_ADDR             0x80000000
7223608e23SJason Liu #define MMDC1_ARB_END_ADDR              0xFFFFFFFF
7323608e23SJason Liu 
7423608e23SJason Liu /* Defines for Blocks connected via AIPS (SkyBlue) */
7523608e23SJason Liu #define ATZ1_BASE_ADDR              AIPS1_ARB_BASE_ADDR
7623608e23SJason Liu #define ATZ2_BASE_ADDR              AIPS2_ARB_BASE_ADDR
7723608e23SJason Liu #define AIPS1_BASE_ADDR             AIPS1_ON_BASE_ADDR
7823608e23SJason Liu #define AIPS2_BASE_ADDR             AIPS2_ON_BASE_ADDR
7923608e23SJason Liu 
8023608e23SJason Liu #define SPDIF_BASE_ADDR             (ATZ1_BASE_ADDR + 0x04000)
8123608e23SJason Liu #define ECSPI1_BASE_ADDR            (ATZ1_BASE_ADDR + 0x08000)
8223608e23SJason Liu #define ECSPI2_BASE_ADDR            (ATZ1_BASE_ADDR + 0x0C000)
8323608e23SJason Liu #define ECSPI3_BASE_ADDR            (ATZ1_BASE_ADDR + 0x10000)
8423608e23SJason Liu #define ECSPI4_BASE_ADDR            (ATZ1_BASE_ADDR + 0x14000)
8523608e23SJason Liu #define ECSPI5_BASE_ADDR            (ATZ1_BASE_ADDR + 0x18000)
8623608e23SJason Liu #define UART1_BASE                  (ATZ1_BASE_ADDR + 0x20000)
8723608e23SJason Liu #define ESAI1_BASE_ADDR             (ATZ1_BASE_ADDR + 0x24000)
8823608e23SJason Liu #define SSI1_BASE_ADDR              (ATZ1_BASE_ADDR + 0x28000)
8923608e23SJason Liu #define SSI2_BASE_ADDR              (ATZ1_BASE_ADDR + 0x2C000)
9023608e23SJason Liu #define SSI3_BASE_ADDR              (ATZ1_BASE_ADDR + 0x30000)
9123608e23SJason Liu #define ASRC_BASE_ADDR              (ATZ1_BASE_ADDR + 0x34000)
9223608e23SJason Liu #define SPBA_BASE_ADDR              (ATZ1_BASE_ADDR + 0x3C000)
9323608e23SJason Liu #define VPU_BASE_ADDR               (ATZ1_BASE_ADDR + 0x40000)
9423608e23SJason Liu #define AIPS1_ON_BASE_ADDR          (ATZ1_BASE_ADDR + 0x7C000)
9523608e23SJason Liu 
9623608e23SJason Liu #define AIPS1_OFF_BASE_ADDR         (ATZ1_BASE_ADDR + 0x80000)
9723608e23SJason Liu #define PWM1_BASE_ADDR              (AIPS1_OFF_BASE_ADDR + 0x0000)
9823608e23SJason Liu #define PWM2_BASE_ADDR              (AIPS1_OFF_BASE_ADDR + 0x4000)
9923608e23SJason Liu #define PWM3_BASE_ADDR              (AIPS1_OFF_BASE_ADDR + 0x8000)
10023608e23SJason Liu #define PWM4_BASE_ADDR              (AIPS1_OFF_BASE_ADDR + 0xC000)
10123608e23SJason Liu #define CAN1_BASE_ADDR              (AIPS1_OFF_BASE_ADDR + 0x10000)
10223608e23SJason Liu #define CAN2_BASE_ADDR              (AIPS1_OFF_BASE_ADDR + 0x14000)
10323608e23SJason Liu #define GPT1_BASE_ADDR              (AIPS1_OFF_BASE_ADDR + 0x18000)
10423608e23SJason Liu #define GPIO1_BASE_ADDR             (AIPS1_OFF_BASE_ADDR + 0x1C000)
10523608e23SJason Liu #define GPIO2_BASE_ADDR             (AIPS1_OFF_BASE_ADDR + 0x20000)
10623608e23SJason Liu #define GPIO3_BASE_ADDR             (AIPS1_OFF_BASE_ADDR + 0x24000)
10723608e23SJason Liu #define GPIO4_BASE_ADDR             (AIPS1_OFF_BASE_ADDR + 0x28000)
10823608e23SJason Liu #define GPIO5_BASE_ADDR             (AIPS1_OFF_BASE_ADDR + 0x2C000)
10923608e23SJason Liu #define GPIO6_BASE_ADDR             (AIPS1_OFF_BASE_ADDR + 0x30000)
11023608e23SJason Liu #define GPIO7_BASE_ADDR             (AIPS1_OFF_BASE_ADDR + 0x34000)
11123608e23SJason Liu #define KPP_BASE_ADDR               (AIPS1_OFF_BASE_ADDR + 0x38000)
11223608e23SJason Liu #define WDOG1_BASE_ADDR             (AIPS1_OFF_BASE_ADDR + 0x3C000)
11323608e23SJason Liu #define WDOG2_BASE_ADDR             (AIPS1_OFF_BASE_ADDR + 0x40000)
11423608e23SJason Liu #define CCM_BASE_ADDR               (AIPS1_OFF_BASE_ADDR + 0x44000)
11523608e23SJason Liu #define ANATOP_BASE_ADDR            (AIPS1_OFF_BASE_ADDR + 0x48000)
11623608e23SJason Liu #define SNVS_BASE_ADDR              (AIPS1_OFF_BASE_ADDR + 0x4C000)
11723608e23SJason Liu #define EPIT1_BASE_ADDR             (AIPS1_OFF_BASE_ADDR + 0x50000)
11823608e23SJason Liu #define EPIT2_BASE_ADDR             (AIPS1_OFF_BASE_ADDR + 0x54000)
11923608e23SJason Liu #define SRC_BASE_ADDR               (AIPS1_OFF_BASE_ADDR + 0x58000)
12023608e23SJason Liu #define GPC_BASE_ADDR               (AIPS1_OFF_BASE_ADDR + 0x5C000)
12123608e23SJason Liu #define IOMUXC_BASE_ADDR            (AIPS1_OFF_BASE_ADDR + 0x60000)
12223608e23SJason Liu #define DCIC1_BASE_ADDR             (AIPS1_OFF_BASE_ADDR + 0x64000)
12323608e23SJason Liu #define DCIC2_BASE_ADDR             (AIPS1_OFF_BASE_ADDR + 0x68000)
12423608e23SJason Liu #define DMA_REQ_PORT_HOST_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x6C000)
12523608e23SJason Liu 
12623608e23SJason Liu #define AIPS2_ON_BASE_ADDR          (ATZ2_BASE_ADDR + 0x7C000)
12723608e23SJason Liu #define AIPS2_OFF_BASE_ADDR         (ATZ2_BASE_ADDR + 0x80000)
12823608e23SJason Liu #define CAAM_BASE_ADDR              (ATZ2_BASE_ADDR)
12923608e23SJason Liu #define ARM_BASE_ADDR		    (ATZ2_BASE_ADDR + 0x40000)
13023608e23SJason Liu #define USBOH3_PL301_BASE_ADDR      (AIPS2_OFF_BASE_ADDR + 0x0000)
13123608e23SJason Liu #define USBOH3_USB_BASE_ADDR        (AIPS2_OFF_BASE_ADDR + 0x4000)
13223608e23SJason Liu #define ENET_BASE_ADDR              (AIPS2_OFF_BASE_ADDR + 0x8000)
13323608e23SJason Liu #define MLB_BASE_ADDR               (AIPS2_OFF_BASE_ADDR + 0xC000)
13423608e23SJason Liu #define USDHC1_BASE_ADDR            (AIPS2_OFF_BASE_ADDR + 0x10000)
13523608e23SJason Liu #define USDHC2_BASE_ADDR            (AIPS2_OFF_BASE_ADDR + 0x14000)
13623608e23SJason Liu #define USDHC3_BASE_ADDR            (AIPS2_OFF_BASE_ADDR + 0x18000)
13723608e23SJason Liu #define USDHC4_BASE_ADDR            (AIPS2_OFF_BASE_ADDR + 0x1C000)
13823608e23SJason Liu #define I2C1_BASE_ADDR              (AIPS2_OFF_BASE_ADDR + 0x20000)
13923608e23SJason Liu #define I2C2_BASE_ADDR              (AIPS2_OFF_BASE_ADDR + 0x24000)
14023608e23SJason Liu #define I2C3_BASE_ADDR              (AIPS2_OFF_BASE_ADDR + 0x28000)
14123608e23SJason Liu #define ROMCP_BASE_ADDR             (AIPS2_OFF_BASE_ADDR + 0x2C000)
14223608e23SJason Liu #define MMDC_P0_BASE_ADDR           (AIPS2_OFF_BASE_ADDR + 0x30000)
14323608e23SJason Liu #define MMDC_P1_BASE_ADDR           (AIPS2_OFF_BASE_ADDR + 0x34000)
14423608e23SJason Liu #define WEIM_BASE_ADDR              (AIPS2_OFF_BASE_ADDR + 0x38000)
14523608e23SJason Liu #define OCOTP_BASE_ADDR             (AIPS2_OFF_BASE_ADDR + 0x3C000)
14623608e23SJason Liu #define CSU_BASE_ADDR               (AIPS2_OFF_BASE_ADDR + 0x40000)
14723608e23SJason Liu #define IP2APB_PERFMON1_BASE_ADDR   (AIPS2_OFF_BASE_ADDR + 0x44000)
14823608e23SJason Liu #define IP2APB_PERFMON2_BASE_ADDR   (AIPS2_OFF_BASE_ADDR + 0x48000)
14923608e23SJason Liu #define IP2APB_PERFMON3_BASE_ADDR   (AIPS2_OFF_BASE_ADDR + 0x4C000)
15023608e23SJason Liu #define IP2APB_TZASC1_BASE_ADDR     (AIPS2_OFF_BASE_ADDR + 0x50000)
15123608e23SJason Liu #define IP2APB_TZASC2_BASE_ADDR     (AIPS2_OFF_BASE_ADDR + 0x54000)
15223608e23SJason Liu #define AUDMUX_BASE_ADDR            (AIPS2_OFF_BASE_ADDR + 0x58000)
15323608e23SJason Liu #define MIPI_CSI2_BASE_ADDR         (AIPS2_OFF_BASE_ADDR + 0x5C000)
15423608e23SJason Liu #define MIPI_DSI_BASE_ADDR          (AIPS2_OFF_BASE_ADDR + 0x60000)
15523608e23SJason Liu #define VDOA_BASE_ADDR              (AIPS2_OFF_BASE_ADDR + 0x64000)
15623608e23SJason Liu #define UART2_BASE                  (AIPS2_OFF_BASE_ADDR + 0x68000)
15723608e23SJason Liu #define UART3_BASE                  (AIPS2_OFF_BASE_ADDR + 0x6C000)
15823608e23SJason Liu #define UART4_BASE                  (AIPS2_OFF_BASE_ADDR + 0x70000)
15923608e23SJason Liu #define UART5_BASE                  (AIPS2_OFF_BASE_ADDR + 0x74000)
16023608e23SJason Liu #define IP2APB_USBPHY1_BASE_ADDR    (AIPS2_OFF_BASE_ADDR + 0x78000)
16123608e23SJason Liu #define IP2APB_USBPHY2_BASE_ADDR    (AIPS2_OFF_BASE_ADDR + 0x7C000)
16223608e23SJason Liu 
16323608e23SJason Liu #define CHIP_REV_1_0                 0x10
16423608e23SJason Liu #define IRAM_SIZE                    0x00040000
16523608e23SJason Liu #define IMX_IIM_BASE                 OCOTP_BASE_ADDR
16623608e23SJason Liu 
16723608e23SJason Liu #if !(defined(__KERNEL_STRICT_NAMES) || defined(__ASSEMBLY__))
16823608e23SJason Liu #include <asm/types.h>
16923608e23SJason Liu 
170be252b65SFabio Estevam extern void imx_get_mac_from_fuse(int dev_id, unsigned char *mac);
17123608e23SJason Liu 
17223608e23SJason Liu /* System Reset Controller (SRC) */
17323608e23SJason Liu struct src {
17423608e23SJason Liu 	u32	scr;
17523608e23SJason Liu 	u32	sbmr1;
17623608e23SJason Liu 	u32	srsr;
17723608e23SJason Liu 	u32	reserved1[2];
17823608e23SJason Liu 	u32	sisr;
17923608e23SJason Liu 	u32	simr;
18023608e23SJason Liu 	u32     sbmr2;
18123608e23SJason Liu 	u32     gpr1;
18223608e23SJason Liu 	u32     gpr2;
18323608e23SJason Liu 	u32     gpr3;
18423608e23SJason Liu 	u32     gpr4;
18523608e23SJason Liu 	u32     gpr5;
18623608e23SJason Liu 	u32     gpr6;
18723608e23SJason Liu 	u32     gpr7;
18823608e23SJason Liu 	u32     gpr8;
18923608e23SJason Liu 	u32     gpr9;
19023608e23SJason Liu 	u32     gpr10;
19123608e23SJason Liu };
19223608e23SJason Liu 
19323608e23SJason Liu struct iim_regs {
19423608e23SJason Liu 	u32	ctrl;
19523608e23SJason Liu 	u32	ctrl_set;
19623608e23SJason Liu 	u32     ctrl_clr;
19723608e23SJason Liu 	u32	ctrl_tog;
19823608e23SJason Liu 	u32	timing;
19923608e23SJason Liu 	u32     rsvd0[3];
20023608e23SJason Liu 	u32     data;
20123608e23SJason Liu 	u32     rsvd1[3];
20223608e23SJason Liu 	u32     read_ctrl;
20323608e23SJason Liu 	u32     rsvd2[3];
20423608e23SJason Liu 	u32     fuse_data;
20523608e23SJason Liu 	u32     rsvd3[3];
20623608e23SJason Liu 	u32     sticky;
20723608e23SJason Liu 	u32     rsvd4[3];
20823608e23SJason Liu 	u32     scs;
20923608e23SJason Liu 	u32     scs_set;
21023608e23SJason Liu 	u32     scs_clr;
21123608e23SJason Liu 	u32     scs_tog;
21223608e23SJason Liu 	u32     crc_addr;
21323608e23SJason Liu 	u32     rsvd5[3];
21423608e23SJason Liu 	u32     crc_value;
21523608e23SJason Liu 	u32     rsvd6[3];
21623608e23SJason Liu 	u32     version;
217*bd2e27c0SJason Liu 	u32     rsvd7[0xdb];
21823608e23SJason Liu 
21923608e23SJason Liu 	struct fuse_bank {
22023608e23SJason Liu 		u32	fuse_regs[0x20];
22123608e23SJason Liu 	} bank[15];
22223608e23SJason Liu };
22323608e23SJason Liu 
22423608e23SJason Liu struct fuse_bank4_regs {
22523608e23SJason Liu 	u32	sjc_resp_low;
22623608e23SJason Liu 	u32     rsvd0[3];
22723608e23SJason Liu 	u32     sjc_resp_high;
22823608e23SJason Liu 	u32     rsvd1[3];
22923608e23SJason Liu 	u32	mac_addr_low;
23023608e23SJason Liu 	u32     rsvd2[3];
23123608e23SJason Liu 	u32     mac_addr_high;
23223608e23SJason Liu 	u32	rsvd3[0x13];
23323608e23SJason Liu };
23423608e23SJason Liu 
23523608e23SJason Liu #endif /* __ASSEMBLER__*/
23623608e23SJason Liu #endif /* __ASM_ARCH_MX6_IMX_REGS_H__ */
237