12a128a33SClement Faure /* SPDX-License-Identifier: BSD-2-Clause */ 22a128a33SClement Faure /* 32a128a33SClement Faure * Copyright (C) 2015 Freescale Semiconductor, Inc. 42a128a33SClement Faure * Copyright (c) 2016, Wind River Systems. 52a128a33SClement Faure * All rights reserved. 693e678edSClement Faure * Copyright 2017-2020 NXP 72a128a33SClement Faure * 82a128a33SClement Faure * Redistribution and use in source and binary forms, with or without 92a128a33SClement Faure * modification, are permitted provided that the following conditions are met: 102a128a33SClement Faure * 112a128a33SClement Faure * 1. Redistributions of source code must retain the above copyright notice, 122a128a33SClement Faure * this list of conditions and the following disclaimer. 132a128a33SClement Faure * 142a128a33SClement Faure * 2. Redistributions in binary form must reproduce the above copyright notice, 152a128a33SClement Faure * this list of conditions and the following disclaimer in the documentation 162a128a33SClement Faure * and/or other materials provided with the distribution. 172a128a33SClement Faure * 182a128a33SClement Faure * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 192a128a33SClement Faure * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 202a128a33SClement Faure * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 212a128a33SClement Faure * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 222a128a33SClement Faure * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 232a128a33SClement Faure * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 242a128a33SClement Faure * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 252a128a33SClement Faure * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 262a128a33SClement Faure * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 272a128a33SClement Faure * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 282a128a33SClement Faure * POSSIBILITY OF SUCH DAMAGE. 292a128a33SClement Faure */ 302a128a33SClement Faure #ifndef __IMX6_H__ 312a128a33SClement Faure #define __IMX6_H__ 322a128a33SClement Faure 33e05236a9SClement Faure #include <registers/imx6-crm.h> 3493e678edSClement Faure #include <registers/imx6-dcp.h> 35f9bfeacbSCedric Neveux 362a128a33SClement Faure #define UART1_BASE 0x2020000 372a128a33SClement Faure #define IOMUXC_BASE 0x020E0000 382a128a33SClement Faure #define IOMUXC_SIZE 0x4000 392a128a33SClement Faure #define IOMUXC_GPR_BASE 0x020E4000 402a128a33SClement Faure #define SRC_BASE 0x020D8000 412a128a33SClement Faure #define SRC_SIZE 0x4000 422a128a33SClement Faure #define CCM_BASE 0x020C4000 432a128a33SClement Faure #define CCM_SIZE 0x4000 442a128a33SClement Faure #define ANATOP_BASE 0x020C8000 452a128a33SClement Faure #define ANATOP_SIZE 0x1000 462a128a33SClement Faure #define SNVS_BASE 0x020CC000 471523165fSClement Faure #define SNVS_SIZE 0x4000 482a128a33SClement Faure #define GPC_BASE 0x020DC000 492a128a33SClement Faure #define GPC_SIZE 0x4000 502a128a33SClement Faure #define WDOG_BASE 0x020BC000 512a128a33SClement Faure #define CSU_BASE 0x021C0000 522a128a33SClement Faure #define SEMA4_BASE 0x02290000 532a128a33SClement Faure #define SEMA4_SIZE 0x4000 542a128a33SClement Faure #define MMDC_P0_BASE 0x021B0000 552a128a33SClement Faure #define MMDC_P0_SIZE 0x4000 562a128a33SClement Faure #define MMDC_P1_BASE 0x021B4000 572a128a33SClement Faure #define MMDC_P1_SIZE 0x4000 582a128a33SClement Faure #define TZASC_BASE 0x21D0000 59a4928cf1SClement Faure #define TZASC_SIZE 0x4000 602a128a33SClement Faure #define TZASC2_BASE 0x21D4000 612a128a33SClement Faure #define UART2_BASE 0x021E8000 622a128a33SClement Faure #define UART3_BASE 0x021EC000 632a128a33SClement Faure #define UART4_BASE 0x021F0000 642a128a33SClement Faure #define UART5_BASE 0x021F4000 652a128a33SClement Faure #define AIPS1_BASE 0x02000000 662a128a33SClement Faure #define AIPS1_SIZE 0x100000 672a128a33SClement Faure #define AIPS2_BASE 0x02100000 682a128a33SClement Faure #define AIPS2_SIZE 0x100000 692a128a33SClement Faure #define AIPS3_BASE 0x02200000 702a128a33SClement Faure #define AIPS3_SIZE 0x100000 712a128a33SClement Faure 72de266e27SJorge Ramirez-Ortiz #if defined(CFG_MX6ULL) 73de266e27SJorge Ramirez-Ortiz #define RNGB_BASE 0x02284000 74de266e27SJorge Ramirez-Ortiz #elif defined(CFG_MX6SL) || defined(CFG_MX6SLL) 75de266e27SJorge Ramirez-Ortiz #define RNGB_BASE 0x021b4000 76de266e27SJorge Ramirez-Ortiz #endif 77de266e27SJorge Ramirez-Ortiz 782a128a33SClement Faure #define SCU_BASE 0x00A00000 792a128a33SClement Faure #define PL310_BASE 0x00A02000 802a128a33SClement Faure #define IRAM_BASE 0x00900000 812a128a33SClement Faure 822a128a33SClement Faure #define OCOTP_BASE 0x021BC000 830a8e42ddSClement Faure #define OCOTP_SIZE 0x4000 842a128a33SClement Faure 852a128a33SClement Faure #define GIC_BASE 0x00A00000 862a128a33SClement Faure #define GICD_OFFSET 0x1000 872a128a33SClement Faure 882a128a33SClement Faure #if defined(CFG_MX6UL) || defined(CFG_MX6ULL) 892a128a33SClement Faure #define GICC_OFFSET 0x2000 90d135e217SRouven Czerwinski #define UART6_BASE 0x021FC000 91d135e217SRouven Czerwinski #define UART7_BASE 0x02018000 922a128a33SClement Faure /* No CAAM on i.MX6ULL */ 932a128a33SClement Faure #define CAAM_BASE 0x02140000 942a128a33SClement Faure #else 952a128a33SClement Faure #define GICC_OFFSET 0x100 962a128a33SClement Faure #define CAAM_BASE 0x02100000 972a128a33SClement Faure #endif 98*2866fd96SClement Faure #define CAAM_SIZE 0x40000 992a128a33SClement Faure 1002a128a33SClement Faure #define GIC_CPU_BASE (GIC_BASE + GICC_OFFSET) 1012a128a33SClement Faure #define GIC_DIST_BASE (GIC_BASE + GICD_OFFSET) 1022a128a33SClement Faure 1032a128a33SClement Faure /* Central Security Unit register values */ 1042a128a33SClement Faure #define CSU_CSL_START 0x0 1052a128a33SClement Faure #define CSU_CSL_END 0xA0 1062a128a33SClement Faure #define CSU_ACCESS_ALL 0x00FF00FF 1072a128a33SClement Faure #define CSU_SETTING_LOCK 0x01000100 108cab01ed5SRouven Czerwinski #define CSU_SA 0x218 1092a128a33SClement Faure 1102a128a33SClement Faure /* Used in suspend/resume and low power idle */ 1112a128a33SClement Faure #define MX6Q_SRC_GPR1 0x20 1122a128a33SClement Faure #define MX6Q_SRC_GPR2 0x24 1132a128a33SClement Faure #define MX6Q_MMDC_MISC 0x18 1142a128a33SClement Faure #define MX6Q_MMDC_MAPSR 0x404 1152a128a33SClement Faure #define MX6Q_MMDC_MPDGCTRL0 0x83c 1162a128a33SClement Faure #define MX6Q_GPC_IMR1 0x08 1172a128a33SClement Faure #define MX6Q_GPC_IMR2 0x0c 1182a128a33SClement Faure #define MX6Q_GPC_IMR3 0x10 1192a128a33SClement Faure #define MX6Q_GPC_IMR4 0x14 1202a128a33SClement Faure #define MX6Q_CCM_CCR 0x0 1212a128a33SClement Faure #define MX6Q_ANATOP_CORE 0x140 1222a128a33SClement Faure 1232a128a33SClement Faure #define IOMUXC_GPR9_OFFSET 0x24 1242a128a33SClement Faure #define IOMUXC_GPR10_OFFSET 0x28 1252a128a33SClement Faure 1262a128a33SClement Faure #define IOMUXC_GPR10_OCRAM_TZ_ADDR_OFFSET 5 1272a128a33SClement Faure #define IOMUXC_GPR10_OCRAM_TZ_ADDR_MASK GENMASK_32(10, 5) 1282a128a33SClement Faure 1292a128a33SClement Faure #define IOMUXC_GPR10_OCRAM_TZ_EN_OFFSET 4 1302a128a33SClement Faure #define IOMUXC_GPR10_OCRAM_TZ_EN_MASK GENMASK_32(4, 4) 1312a128a33SClement Faure 1322a128a33SClement Faure #define IOMUXC_GPR10_OCRAM_TZ_EN_LOCK_OFFSET 20 1332a128a33SClement Faure #define IOMUXC_GPR10_OCRAM_TZ_EN_LOCK_MASK GENMASK_32(20, 20) 1342a128a33SClement Faure #define IOMUXC_GPR10_OCRAM_TZ_ADDR_LOCK_OFFSET 21 1352a128a33SClement Faure #define IOMUXC_GPR10_OCRAM_TZ_ADDR_LOCK_MASK GENMASK_32(26, 21) 1362a128a33SClement Faure 1372a128a33SClement Faure #define IOMUXC_GPR10_OCRAM_TZ_ADDR_OFFSET_6UL 11 1382a128a33SClement Faure #define IOMUXC_GPR10_OCRAM_TZ_ADDR_MASK_6UL GENMASK_32(15, 11) 1392a128a33SClement Faure #define IOMUXC_GPR10_OCRAM_TZ_EN_OFFSET_6UL 10 1402a128a33SClement Faure #define IOMUXC_GPR10_OCRAM_TZ_EN_MASK_6UL GENMASK_32(10, 10) 1412a128a33SClement Faure 1422a128a33SClement Faure #define IOMUXC_GPR10_OCRAM_TZ_EN_LOCK_OFFSET_6UL 26 1432a128a33SClement Faure #define IOMUXC_GPR10_OCRAM_TZ_EN_LOCK_MASK_6UL GENMASK_32(26, 26) 1442a128a33SClement Faure #define IOMUXC_GPR10_OCRAM_TZ_ADDR_LOCK_OFFSET_6UL (27) 1452a128a33SClement Faure #define IOMUXC_GPR10_OCRAM_TZ_ADDR_LOCK_MASK_6UL GENMASK_32(31, 27) 1462a128a33SClement Faure 147247f081aSClement Faure #ifdef CFG_MX6SL 148247f081aSClement Faure #define DIGPROG_OFFSET 0x280 149247f081aSClement Faure #else 150247f081aSClement Faure #define DIGPROG_OFFSET 0x260 151247f081aSClement Faure #endif 152247f081aSClement Faure 153d156989aSJorge Ramirez-Ortiz #if defined(CFG_MX6ULL) 154d156989aSJorge Ramirez-Ortiz #define I2C1_BASE 0x021a0000 155d156989aSJorge Ramirez-Ortiz #define I2C2_BASE 0x021a4000 156bbdd7597SDevendra Devadiga #define I2C3_BASE 0x021a8000 1573d72b012SDevendra Devadiga #define I2C4_BASE 0x021f8000 158d156989aSJorge Ramirez-Ortiz 159e2cf992dSJorge Ramirez-Ortiz #define IOMUXC_I2C1_SCL_CFG_OFF 0x340 160e2cf992dSJorge Ramirez-Ortiz #define IOMUXC_I2C1_SDA_CFG_OFF 0x344 161e2cf992dSJorge Ramirez-Ortiz #define IOMUXC_I2C1_SCL_MUX_OFF 0xb4 162e2cf992dSJorge Ramirez-Ortiz #define IOMUXC_I2C1_SDA_MUX_OFF 0xb8 163e2cf992dSJorge Ramirez-Ortiz #define IOMUXC_I2C1_SCL_INP_OFF 0x5a4 164e2cf992dSJorge Ramirez-Ortiz #define IOMUXC_I2C1_SDA_INP_OFF 0x5a8 165d156989aSJorge Ramirez-Ortiz #endif 166d156989aSJorge Ramirez-Ortiz 1672a128a33SClement Faure #endif /* __IMX6_H__ */ 168