12f2abcf4SHaojian Zhuang /* 22f2abcf4SHaojian Zhuang * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved. 32f2abcf4SHaojian Zhuang * 42f2abcf4SHaojian Zhuang * SPDX-License-Identifier: BSD-3-Clause 52f2abcf4SHaojian Zhuang */ 6c3cf06f1SAntonio Nino Diaz #ifndef HI3660_H 7c3cf06f1SAntonio Nino Diaz #define HI3660_H 82f2abcf4SHaojian Zhuang 92f2abcf4SHaojian Zhuang #include <hi3660_crg.h> 102f2abcf4SHaojian Zhuang #include <hi3660_hkadc.h> 112f2abcf4SHaojian Zhuang #include <hi3660_mem_map.h> 122f2abcf4SHaojian Zhuang 132f2abcf4SHaojian Zhuang #define ASP_CFG_REG_BASE 0xE804E000 142f2abcf4SHaojian Zhuang 152f2abcf4SHaojian Zhuang #define ASP_CFG_MMBUF_CTRL_REG (ASP_CFG_REG_BASE + 0x148) 162f2abcf4SHaojian Zhuang 172f2abcf4SHaojian Zhuang #define LP_RAM_BASE 0xFFF50000 182f2abcf4SHaojian Zhuang 192f2abcf4SHaojian Zhuang #define SCTRL_REG_BASE 0xFFF0A000 202f2abcf4SHaojian Zhuang 212f2abcf4SHaojian Zhuang #define SCTRL_CONTROL_REG (SCTRL_REG_BASE + 0x000) 222f2abcf4SHaojian Zhuang #define SCTRL_CONTROL_SYS_MODE(x) (((x) & 0xf) << 3) 232f2abcf4SHaojian Zhuang #define SCTRL_CONTROL_SYS_MODE_NORMAL ((1 << 2) << 3) 242f2abcf4SHaojian Zhuang #define SCTRL_CONTROL_SYS_MODE_SLOW ((1 << 1) << 3) 252f2abcf4SHaojian Zhuang #define SCTRL_CONTROL_SYS_MODE_MASK (0xf << 3) 262f2abcf4SHaojian Zhuang #define SCTRL_CONTROL_MODE_CTRL_NORMAL (1 << 2) 272f2abcf4SHaojian Zhuang #define SCTRL_CONTROL_MODE_CTRL_SLOW (1 << 1) 282f2abcf4SHaojian Zhuang #define SCTRL_CONTROL_MODE_CTRL_MASK 0x7 292f2abcf4SHaojian Zhuang 302f2abcf4SHaojian Zhuang #define SCTRL_SCSYSSTAT_REG (SCTRL_REG_BASE + 0x004) 312f2abcf4SHaojian Zhuang 322f2abcf4SHaojian Zhuang #define SCTRL_DEEPSLEEPED_REG (SCTRL_REG_BASE + 0x008) 332f2abcf4SHaojian Zhuang #define SCTRL_EFUSE_USB_MASK (1 << 30) 342f2abcf4SHaojian Zhuang #define SCTRL_EFUSE_USB_PLL (1 << 30) 352f2abcf4SHaojian Zhuang #define SCTRL_EFUSE_USB_ABB (0 << 30) 362f2abcf4SHaojian Zhuang #define SCTRL_EFUSE_UFS_MASK (3 << 6) 372f2abcf4SHaojian Zhuang #define SCTRL_EFUSE_UFS_PLL (1 << 6) 382f2abcf4SHaojian Zhuang #define SCTRL_EFUSE_UFS_ABB (0 << 6) 392f2abcf4SHaojian Zhuang 402f2abcf4SHaojian Zhuang #define SCTRL_SCISOEN_REG (SCTRL_REG_BASE + 0x040) 412f2abcf4SHaojian Zhuang #define SCTRL_SCISODIS_REG (SCTRL_REG_BASE + 0x044) 422f2abcf4SHaojian Zhuang #define SCISO_MMBUFISO (1 << 3) 432f2abcf4SHaojian Zhuang 442f2abcf4SHaojian Zhuang #define SCTRL_SCPWREN_REG (SCTRL_REG_BASE + 0x060) 452f2abcf4SHaojian Zhuang #define SCPWREN_MMBUFPWREN (1 << 3) 462f2abcf4SHaojian Zhuang 472f2abcf4SHaojian Zhuang #define SCTRL_PLL_CTRL0_REG (SCTRL_REG_BASE + 0x100) 482f2abcf4SHaojian Zhuang #define SCTRL_PLL0_POSTDIV2(x) (((x) & 0x7) << 23) 492f2abcf4SHaojian Zhuang #define SCTRL_PLL0_POSTDIV1(x) (((x) & 0x7) << 20) 502f2abcf4SHaojian Zhuang #define SCTRL_PLL0_FBDIV(x) (((x) & 0xfff) << 8) 512f2abcf4SHaojian Zhuang #define SCTRL_PLL0_REFDIV(x) (((x) & 0x3f) << 2) 522f2abcf4SHaojian Zhuang #define SCTRL_PLL0_EN (1 << 0) 532f2abcf4SHaojian Zhuang 542f2abcf4SHaojian Zhuang #define SCTRL_PLL_CTRL1_REG (SCTRL_REG_BASE + 0x104) 552f2abcf4SHaojian Zhuang #define SCTRL_PLL0_CLK_NO_GATE (1 << 26) 562f2abcf4SHaojian Zhuang #define SCTRL_PLL0_CFG_VLD (1 << 25) 572f2abcf4SHaojian Zhuang #define SCTRL_PLL0_FRACDIV(x) ((x) & 0xFFFFFF) 582f2abcf4SHaojian Zhuang 592f2abcf4SHaojian Zhuang #define SCTRL_PLL_STAT_REG (SCTRL_REG_BASE + 0x10C) 602f2abcf4SHaojian Zhuang #define SCTRL_PLL0_STAT (1 << 0) 612f2abcf4SHaojian Zhuang 622f2abcf4SHaojian Zhuang #define SCTRL_SCPEREN0_REG (SCTRL_REG_BASE + 0x160) 632f2abcf4SHaojian Zhuang #define SCTRL_SCPERDIS0_REG (SCTRL_REG_BASE + 0x164) 642f2abcf4SHaojian Zhuang #define SCTRL_SCPERSTAT0_REG (SCTRL_REG_BASE + 0x168) 652f2abcf4SHaojian Zhuang 662f2abcf4SHaojian Zhuang #define SCTRL_SCPEREN1_REG (SCTRL_REG_BASE + 0x170) 672f2abcf4SHaojian Zhuang #define SCTRL_SCPERDIS1_REG (SCTRL_REG_BASE + 0x174) 682f2abcf4SHaojian Zhuang #define SCTRL_SCPEREN1_REG (SCTRL_REG_BASE + 0x170) 692f2abcf4SHaojian Zhuang #define SCTRL_SCPERDIS1_REG (SCTRL_REG_BASE + 0x174) 70d3b6df7cSJustin Chadwell #define SCPEREN1_WAIT_DDR_SELFREFRESH_DONE_BYPASS (1u << 31) 712f2abcf4SHaojian Zhuang #define SCPEREN_GT_PCLK_MMBUFCFG (1 << 25) 722f2abcf4SHaojian Zhuang #define SCPEREN_GT_PCLK_MMBUF (1 << 23) 732f2abcf4SHaojian Zhuang #define SCPEREN_GT_ACLK_MMBUF (1 << 22) 742f2abcf4SHaojian Zhuang #define SCPEREN_GT_CLK_NOC_AOBUS2MMBUF (1 << 6) 752f2abcf4SHaojian Zhuang 762f2abcf4SHaojian Zhuang #define SCTRL_SCPEREN2_REG (SCTRL_REG_BASE + 0x190) 772f2abcf4SHaojian Zhuang #define SCTRL_SCPERDIS2_REG (SCTRL_REG_BASE + 0x194) 782f2abcf4SHaojian Zhuang #define SCTRL_SCPERSTAT2_REG (SCTRL_REG_BASE + 0x198) 792f2abcf4SHaojian Zhuang #define SCTRL_SCPERRSTEN0_REG (SCTRL_REG_BASE + 0x200) 802f2abcf4SHaojian Zhuang #define SCTRL_SCPERRSTDIS0_REG (SCTRL_REG_BASE + 0x204) 812f2abcf4SHaojian Zhuang #define SCTRL_SCPERRSTSTAT0_REG (SCTRL_REG_BASE + 0x208) 822f2abcf4SHaojian Zhuang #define SCTRL_SCPERRSTEN1_REG (SCTRL_REG_BASE + 0x20C) 832f2abcf4SHaojian Zhuang #define SCTRL_SCPERRSTDIS1_REG (SCTRL_REG_BASE + 0x210) 842f2abcf4SHaojian Zhuang #define SCTRL_SCPERRSTSTAT1_REG (SCTRL_REG_BASE + 0x214) 852f2abcf4SHaojian Zhuang #define IP_RST_MMBUFCFG (1 << 12) 862f2abcf4SHaojian Zhuang #define IP_RST_MMBUF (1 << 11) 872f2abcf4SHaojian Zhuang 882f2abcf4SHaojian Zhuang #define SCTRL_SCPERRSTEN2_REG (SCTRL_REG_BASE + 0x218) 892f2abcf4SHaojian Zhuang #define SCTRL_SCPERRSTDIS2_REG (SCTRL_REG_BASE + 0x21C) 902f2abcf4SHaojian Zhuang #define SCTRL_SCPERRSTSTAT2_REG (SCTRL_REG_BASE + 0x220) 912f2abcf4SHaojian Zhuang 922f2abcf4SHaojian Zhuang #define SCTRL_SCCLKDIV2_REG (SCTRL_REG_BASE + 0x258) 932f2abcf4SHaojian Zhuang #define SEL_CLK_MMBUF_MASK (0x3 << 8) 942f2abcf4SHaojian Zhuang #define SEL_CLK_MMBUF_PLL0 (0x3 << 8) 952f2abcf4SHaojian Zhuang #define SCCLKDIV2_GT_PCLK_MMBUF (1 << 7) 962f2abcf4SHaojian Zhuang 972f2abcf4SHaojian Zhuang #define SCTRL_SCCLKDIV4_REG (SCTRL_REG_BASE + 0x260) 982f2abcf4SHaojian Zhuang #define GT_MMBUF_SYS (1 << 13) 992f2abcf4SHaojian Zhuang #define GT_MMBUF_FLL (1 << 12) 1002f2abcf4SHaojian Zhuang #define GT_PLL_CLK_MMBUF (1 << 11) 1012f2abcf4SHaojian Zhuang 1022f2abcf4SHaojian Zhuang #define SCTRL_SCCLKDIV6_REG (SCTRL_REG_BASE + 0x268) 1032f2abcf4SHaojian Zhuang 1042f2abcf4SHaojian Zhuang #define SCTRL_SCPERCTRL7_REG (SCTRL_REG_BASE + 0x31C) 1052f2abcf4SHaojian Zhuang #define SCTRL_SCPERSTAT6_REG (SCTRL_REG_BASE + 0x378) 1062f2abcf4SHaojian Zhuang 1072f2abcf4SHaojian Zhuang #define SCTRL_SCINNERSTAT_REG (SCTRL_REG_BASE + 0x3A0) 1082f2abcf4SHaojian Zhuang #define EMMC_UFS_SEL (1 << 15) 1092f2abcf4SHaojian Zhuang 1102f2abcf4SHaojian Zhuang #define SCTRL_BAK_DATA0_REG (SCTRL_REG_BASE + 0x40C) 1112f2abcf4SHaojian Zhuang #define SCTRL_BAK_DATA4_REG (SCTRL_REG_BASE + 0x41C) 1122f2abcf4SHaojian Zhuang 1132f2abcf4SHaojian Zhuang #define SCTRL_LPMCU_CLKEN_REG (SCTRL_REG_BASE + 0x480) 1142f2abcf4SHaojian Zhuang #define SCTRL_LPMCU_CLKDIS_REG (SCTRL_REG_BASE + 0x484) 1152f2abcf4SHaojian Zhuang #define SCTRL_LPMCU_RSTEN_REG (SCTRL_REG_BASE + 0x500) 1162f2abcf4SHaojian Zhuang #define SCTRL_LPMCU_RSTDIS_REG (SCTRL_REG_BASE + 0x504) 1172f2abcf4SHaojian Zhuang #define DDRC_SOFT_BIT (1 << 6) 1182f2abcf4SHaojian Zhuang #define DDRC_CLK_BIT (1 << 5) 1192f2abcf4SHaojian Zhuang 1202f2abcf4SHaojian Zhuang #define SCTRL_SCPEREN0_SEC_REG (SCTRL_REG_BASE + 0x900) 1212f2abcf4SHaojian Zhuang #define SCTRL_SCPERDIS0_SEC_REG (SCTRL_REG_BASE + 0x904) 1222f2abcf4SHaojian Zhuang #define MMBUF_SEC_CTRL_MASK (0xfff << 20) 1232f2abcf4SHaojian Zhuang #define MMBUF_SEC_CTRL(x) (((x) & 0xfff) << 20) 1242f2abcf4SHaojian Zhuang 1252f2abcf4SHaojian Zhuang #define SCTRL_PERRSTEN1_SEC_REG (SCTRL_REG_BASE + 0xA50) 1262f2abcf4SHaojian Zhuang #define SCTRL_PERRSTDIS1_SEC_REG (SCTRL_REG_BASE + 0xA54) 1272f2abcf4SHaojian Zhuang #define SCTRL_PERRSTSTAT1_SEC_REG (SCTRL_REG_BASE + 0xA58) 1282f2abcf4SHaojian Zhuang #define RST_ASP_SUBSYS_BIT (1 << 0) 1292f2abcf4SHaojian Zhuang 1302f2abcf4SHaojian Zhuang #define SCTRL_PERRSTEN2_SEC_REG (SCTRL_REG_BASE + 0xB50) 1312f2abcf4SHaojian Zhuang #define SCTRL_PERRSTDIS2_SEC_REG (SCTRL_REG_BASE + 0xB54) 1322f2abcf4SHaojian Zhuang #define SCTRL_PERRSTSTAT2_SEC_REG (SCTRL_REG_BASE + 0xB58) 1332f2abcf4SHaojian Zhuang 1342f2abcf4SHaojian Zhuang #define SCTRL_HISEECLKDIV_REG (SCTRL_REG_BASE + 0xC28) 1352f2abcf4SHaojian Zhuang #define SC_SEL_HISEE_PLL_MASK (1 << 4) 1362f2abcf4SHaojian Zhuang #define SC_SEL_HISEE_PLL0 (1 << 4) 1372f2abcf4SHaojian Zhuang #define SC_SEL_HISEE_PLL2 (0 << 4) 1382f2abcf4SHaojian Zhuang #define SC_DIV_HISEE_PLL_MASK (7 << 16) 1392f2abcf4SHaojian Zhuang #define SC_DIV_HISEE_PLL(x) ((x) & 0x7) 1402f2abcf4SHaojian Zhuang 1412f2abcf4SHaojian Zhuang #define SCTRL_SCSOCID0_REG (SCTRL_REG_BASE + 0xE00) 1422f2abcf4SHaojian Zhuang 1432f2abcf4SHaojian Zhuang #define PMC_REG_BASE 0xFFF31000 1442f2abcf4SHaojian Zhuang #define PMC_PPLL1_CTRL0_REG (PMC_REG_BASE + 0x038) 1452f2abcf4SHaojian Zhuang #define PMC_PPLL1_CTRL1_REG (PMC_REG_BASE + 0x03C) 1462f2abcf4SHaojian Zhuang #define PMC_PPLL2_CTRL0_REG (PMC_REG_BASE + 0x040) 1472f2abcf4SHaojian Zhuang #define PMC_PPLL2_CTRL1_REG (PMC_REG_BASE + 0x044) 1482f2abcf4SHaojian Zhuang #define PMC_PPLL3_CTRL0_REG (PMC_REG_BASE + 0x048) 1492f2abcf4SHaojian Zhuang #define PMC_PPLL3_CTRL1_REG (PMC_REG_BASE + 0x04C) 1502f2abcf4SHaojian Zhuang #define PPLLx_LOCK (1 << 26) 1512f2abcf4SHaojian Zhuang #define PPLLx_WITHOUT_CLK_GATE (1 << 26) 1522f2abcf4SHaojian Zhuang #define PPLLx_CFG_VLD (1 << 25) 1532f2abcf4SHaojian Zhuang #define PPLLx_INT_MOD (1 << 24) 1542f2abcf4SHaojian Zhuang #define PPLLx_POSTDIV2_MASK (0x7 << 23) 1552f2abcf4SHaojian Zhuang #define PPLLx_POSTDIV2(x) (((x) & 0x7) << 23) 1562f2abcf4SHaojian Zhuang #define PPLLx_POSTDIV1_MASK (0x7 << 20) 1572f2abcf4SHaojian Zhuang #define PPLLx_POSTDIV1(x) (((x) & 0x7) << 20) 1582f2abcf4SHaojian Zhuang #define PPLLx_FRACDIV_MASK (0x00FFFFFF) 1592f2abcf4SHaojian Zhuang #define PPLLx_FRACDIV(x) ((x) & 0x00FFFFFF) 1602f2abcf4SHaojian Zhuang #define PPLLx_FBDIV_MASK (0xfff << 8) 1612f2abcf4SHaojian Zhuang #define PPLLx_FBDIV(x) (((x) & 0xfff) << 8) 1622f2abcf4SHaojian Zhuang #define PPLLx_REFDIV_MASK (0x3f << 2) 1632f2abcf4SHaojian Zhuang #define PPLLx_REFDIV(x) (((x) & 0x3f) << 2) 1642f2abcf4SHaojian Zhuang #define PPLLx_BP (1 << 1) 1652f2abcf4SHaojian Zhuang #define PPLLx_EN (1 << 0) 1662f2abcf4SHaojian Zhuang 1672f2abcf4SHaojian Zhuang #define PMC_DDRLP_CTRL_REG (PMC_REG_BASE + 0x30C) 1682f2abcf4SHaojian Zhuang #define DDRC_CSYSREQ_CFG(x) ((x) & 0xF) 1692f2abcf4SHaojian Zhuang 1702f2abcf4SHaojian Zhuang #define PMC_NOC_POWER_IDLEREQ_REG (PMC_REG_BASE + 0x380) 1712f2abcf4SHaojian Zhuang #define PMC_NOC_POWER_IDLEREQ_IVP (1 << 14) 1722f2abcf4SHaojian Zhuang #define PMC_NOC_POWER_IDLEREQ_DSS (1 << 13) 1732f2abcf4SHaojian Zhuang #define PMC_NOC_POWER_IDLEREQ_VENC (1 << 11) 1742f2abcf4SHaojian Zhuang #define PMC_NOC_POWER_IDLEREQ_VDEC (1 << 10) 1752f2abcf4SHaojian Zhuang #define PMC_NOC_POWER_IDLEREQ_ISP (1 << 5) 1762f2abcf4SHaojian Zhuang #define PMC_NOC_POWER_IDLEREQ_VCODEC (1 << 4) 1772f2abcf4SHaojian Zhuang #define DDRPHY_BYPASS_MODE (1 << 0) 1782f2abcf4SHaojian Zhuang 1792f2abcf4SHaojian Zhuang #define PMC_NOC_POWER_IDLEACK_REG (PMC_REG_BASE + 0x384) 1802f2abcf4SHaojian Zhuang #define PMC_NOC_POWER_IDLE_REG (PMC_REG_BASE + 0x388) 1812f2abcf4SHaojian Zhuang 1822f2abcf4SHaojian Zhuang #define PMU_SSI0_REG_BASE 0xFFF34000 1832f2abcf4SHaojian Zhuang 1842f2abcf4SHaojian Zhuang #define PMU_SSI0_LDO8_CTRL0_REG (PMU_SSI0_REG_BASE + (0x68 << 2)) 1852f2abcf4SHaojian Zhuang #define LDO8_CTRL0_EN_1_8V 0x02 1862f2abcf4SHaojian Zhuang 1872f2abcf4SHaojian Zhuang #define PMU_SSI0_CLK_TOP_CTRL7_REG (PMU_SSI0_REG_BASE + (0x10C << 2)) 1882f2abcf4SHaojian Zhuang #define NP_XO_ABB_DIG (1 << 1) 1892f2abcf4SHaojian Zhuang 1902f2abcf4SHaojian Zhuang #define LP_CONFIG_REG_BASE 0xFFF3F000 1912f2abcf4SHaojian Zhuang 1922f2abcf4SHaojian Zhuang #define DMAC_BASE 0xFDF30000 1932f2abcf4SHaojian Zhuang 1942f2abcf4SHaojian Zhuang #define CCI400_REG_BASE 0xE8100000 1952f2abcf4SHaojian Zhuang #define CCI400_SL_IFACE3_CLUSTER_IX 0 1962f2abcf4SHaojian Zhuang #define CCI400_SL_IFACE4_CLUSTER_IX 1 1972f2abcf4SHaojian Zhuang 1982f2abcf4SHaojian Zhuang #define GICD_REG_BASE 0xE82B1000 1992f2abcf4SHaojian Zhuang #define GICC_REG_BASE 0xE82B2000 2002f2abcf4SHaojian Zhuang /* 2012f2abcf4SHaojian Zhuang * GIC400 interrupt handling related constants 2022f2abcf4SHaojian Zhuang */ 2032f2abcf4SHaojian Zhuang #define IRQ_SEC_PHY_TIMER 29 2042f2abcf4SHaojian Zhuang #define IRQ_SEC_SGI_0 8 2052f2abcf4SHaojian Zhuang #define IRQ_SEC_SGI_1 9 2062f2abcf4SHaojian Zhuang #define IRQ_SEC_SGI_2 10 2072f2abcf4SHaojian Zhuang #define IRQ_SEC_SGI_3 11 2082f2abcf4SHaojian Zhuang #define IRQ_SEC_SGI_4 12 2092f2abcf4SHaojian Zhuang #define IRQ_SEC_SGI_5 13 2102f2abcf4SHaojian Zhuang #define IRQ_SEC_SGI_6 14 2112f2abcf4SHaojian Zhuang #define IRQ_SEC_SGI_7 15 2122f2abcf4SHaojian Zhuang #define IRQ_SEC_SGI_8 16 2132f2abcf4SHaojian Zhuang 2142f2abcf4SHaojian Zhuang #define IPC_REG_BASE 0xE896A000 2152f2abcf4SHaojian Zhuang #define IPC_BASE (IPC_REG_BASE) 2162f2abcf4SHaojian Zhuang 2172f2abcf4SHaojian Zhuang #define IOMG_REG_BASE 0xE896C000 2182f2abcf4SHaojian Zhuang 2192f2abcf4SHaojian Zhuang /* GPIO46: HUB 3.3V enable. active low */ 2202f2abcf4SHaojian Zhuang #define IOMG_044_REG (IOMG_REG_BASE + 0x0B0) 2212f2abcf4SHaojian Zhuang #define IOMG_UART5_RX_REG (IOMG_REG_BASE + 0x0BC) 2222f2abcf4SHaojian Zhuang #define IOMG_UART5_TX_REG (IOMG_REG_BASE + 0x0C0) 2232f2abcf4SHaojian Zhuang 2242f2abcf4SHaojian Zhuang #define IOCG_REG_BASE 0xE896C800 2252f2abcf4SHaojian Zhuang 2262f2abcf4SHaojian Zhuang /* GPIO005: PMIC SSI. (2 << 4) */ 2272f2abcf4SHaojian Zhuang #define IOCG_006_REG (IOCG_REG_BASE + 0x018) 2282f2abcf4SHaojian Zhuang 2292f2abcf4SHaojian Zhuang #define TIMER9_REG_BASE 0xE8A00000 2302f2abcf4SHaojian Zhuang 2312f2abcf4SHaojian Zhuang #define WDT0_REG_BASE 0xE8A06000 2322f2abcf4SHaojian Zhuang #define WDT1_REG_BASE 0xE8A07000 2332f2abcf4SHaojian Zhuang #define WDT_CONTROL_OFFSET 0x008 2342f2abcf4SHaojian Zhuang #define WDT_LOCK_OFFSET 0xC00 2352f2abcf4SHaojian Zhuang 2362f2abcf4SHaojian Zhuang #define WDT_UNLOCK 0x1ACCE551 2372f2abcf4SHaojian Zhuang #define WDT_LOCKED 1 2382f2abcf4SHaojian Zhuang 2392f2abcf4SHaojian Zhuang #define PCTRL_REG_BASE 0xE8A09000 2402f2abcf4SHaojian Zhuang #define PCTRL_PERI_CTRL3_REG (PCTRL_REG_BASE + 0x010) 2412f2abcf4SHaojian Zhuang #define PCTRL_PERI_CTRL24_REG (PCTRL_REG_BASE + 0x064) 2422f2abcf4SHaojian Zhuang 24316bec9c2SKaihua Zhong #define GPIO0_BASE UL(0xE8A0B000) 24416bec9c2SKaihua Zhong #define GPIO1_BASE UL(0xE8A0C000) 24516bec9c2SKaihua Zhong #define GPIO2_BASE UL(0xE8A0D000) 24616bec9c2SKaihua Zhong #define GPIO3_BASE UL(0xE8A0E000) 24716bec9c2SKaihua Zhong #define GPIO4_BASE UL(0xE8A0F000) 24816bec9c2SKaihua Zhong #define GPIO5_BASE UL(0xE8A10000) 24916bec9c2SKaihua Zhong #define GPIO6_BASE UL(0xE8A11000) 25016bec9c2SKaihua Zhong #define GPIO7_BASE UL(0xE8A12000) 25116bec9c2SKaihua Zhong #define GPIO8_BASE UL(0xE8A13000) 25216bec9c2SKaihua Zhong #define GPIO9_BASE UL(0xE8A14000) 25316bec9c2SKaihua Zhong #define GPIO10_BASE UL(0xE8A15000) 25416bec9c2SKaihua Zhong #define GPIO11_BASE UL(0xE8A16000) 25516bec9c2SKaihua Zhong #define GPIO12_BASE UL(0xE8A17000) 25616bec9c2SKaihua Zhong #define GPIO13_BASE UL(0xE8A18000) 25716bec9c2SKaihua Zhong #define GPIO14_BASE UL(0xE8A19000) 25816bec9c2SKaihua Zhong #define GPIO15_BASE UL(0xE8A1A000) 25916bec9c2SKaihua Zhong #define GPIO16_BASE UL(0xE8A1B000) 26016bec9c2SKaihua Zhong #define GPIO17_BASE UL(0xE8A1C000) 26116bec9c2SKaihua Zhong #define GPIO20_BASE UL(0xE8A1F000) 26216bec9c2SKaihua Zhong #define GPIO21_BASE UL(0xE8A20000) 263*cfde1870SLeo Yan #define GPIO22_BASE UL(0xFFF0B000) 264*cfde1870SLeo Yan #define GPIO23_BASE UL(0xFFF0C000) 265*cfde1870SLeo Yan #define GPIO24_BASE UL(0xFFF0D000) 266*cfde1870SLeo Yan #define GPIO25_BASE UL(0xFFF0E000) 267*cfde1870SLeo Yan #define GPIO26_BASE UL(0xFFF0F000) 268*cfde1870SLeo Yan #define GPIO27_BASE UL(0xFFF10000) 269*cfde1870SLeo Yan #define GPIO28_BASE UL(0xFFF1D000) 27016bec9c2SKaihua Zhong 2712f2abcf4SHaojian Zhuang #define TZC_REG_BASE 0xE8A21000 2722f2abcf4SHaojian Zhuang #define TZC_STAT0_REG (TZC_REG_BASE + 0x800) 2732f2abcf4SHaojian Zhuang #define TZC_EN0_REG (TZC_REG_BASE + 0x804) 2742f2abcf4SHaojian Zhuang #define TZC_DIS0_REG (TZC_REG_BASE + 0x808) 2752f2abcf4SHaojian Zhuang #define TZC_STAT1_REG (TZC_REG_BASE + 0x80C) 2762f2abcf4SHaojian Zhuang #define TZC_EN1_REG (TZC_REG_BASE + 0x810) 2772f2abcf4SHaojian Zhuang #define TZC_DIS1_REG (TZC_REG_BASE + 0x814) 2782f2abcf4SHaojian Zhuang #define TZC_STAT2_REG (TZC_REG_BASE + 0x818) 2792f2abcf4SHaojian Zhuang #define TZC_EN2_REG (TZC_REG_BASE + 0x81C) 2802f2abcf4SHaojian Zhuang #define TZC_DIS2_REG (TZC_REG_BASE + 0x820) 2812f2abcf4SHaojian Zhuang #define TZC_STAT3_REG (TZC_REG_BASE + 0x824) 2822f2abcf4SHaojian Zhuang #define TZC_EN3_REG (TZC_REG_BASE + 0x828) 2832f2abcf4SHaojian Zhuang #define TZC_DIS3_REG (TZC_REG_BASE + 0x82C) 2842f2abcf4SHaojian Zhuang #define TZC_STAT4_REG (TZC_REG_BASE + 0x830) 2852f2abcf4SHaojian Zhuang #define TZC_EN4_REG (TZC_REG_BASE + 0x834) 2862f2abcf4SHaojian Zhuang #define TZC_DIS4_REG (TZC_REG_BASE + 0x838) 2872f2abcf4SHaojian Zhuang #define TZC_STAT5_REG (TZC_REG_BASE + 0x83C) 2882f2abcf4SHaojian Zhuang #define TZC_EN5_REG (TZC_REG_BASE + 0x840) 2892f2abcf4SHaojian Zhuang #define TZC_DIS5_REG (TZC_REG_BASE + 0x844) 2902f2abcf4SHaojian Zhuang #define TZC_STAT6_REG (TZC_REG_BASE + 0x848) 2912f2abcf4SHaojian Zhuang #define TZC_EN6_REG (TZC_REG_BASE + 0x84C) 2922f2abcf4SHaojian Zhuang #define TZC_DIS6_REG (TZC_REG_BASE + 0x850) 2932f2abcf4SHaojian Zhuang #define TZC_STAT7_REG (TZC_REG_BASE + 0x854) 2942f2abcf4SHaojian Zhuang #define TZC_EN7_REG (TZC_REG_BASE + 0x858) 2952f2abcf4SHaojian Zhuang #define TZC_DIS7_REG (TZC_REG_BASE + 0x85C) 2962f2abcf4SHaojian Zhuang #define TZC_STAT8_REG (TZC_REG_BASE + 0x860) 2972f2abcf4SHaojian Zhuang #define TZC_EN8_REG (TZC_REG_BASE + 0x864) 2982f2abcf4SHaojian Zhuang #define TZC_DIS8_REG (TZC_REG_BASE + 0x868) 2992f2abcf4SHaojian Zhuang 3002f2abcf4SHaojian Zhuang #define MMBUF_BASE 0xEA800000 3012f2abcf4SHaojian Zhuang 3022f2abcf4SHaojian Zhuang #define ACPU_DMCPACK0_BASE 0xEA900000 3032f2abcf4SHaojian Zhuang 3042f2abcf4SHaojian Zhuang #define ACPU_DMCPACK1_BASE 0xEA920000 3052f2abcf4SHaojian Zhuang 3062f2abcf4SHaojian Zhuang #define ACPU_DMCPACK2_BASE 0xEA940000 3072f2abcf4SHaojian Zhuang 3082f2abcf4SHaojian Zhuang #define ACPU_DMCPACK3_BASE 0xEA960000 3092f2abcf4SHaojian Zhuang 3102f2abcf4SHaojian Zhuang #define UART5_REG_BASE 0xFDF05000 3112f2abcf4SHaojian Zhuang 3122f2abcf4SHaojian Zhuang #define USB3OTG_REG_BASE 0xFF100000 3132f2abcf4SHaojian Zhuang 3142f2abcf4SHaojian Zhuang #define UFS_REG_BASE 0xFF3B0000 3152f2abcf4SHaojian Zhuang 3162f2abcf4SHaojian Zhuang #define UFS_SYS_REG_BASE 0xFF3B1000 3172f2abcf4SHaojian Zhuang 3182f2abcf4SHaojian Zhuang #define UFS_SYS_PSW_POWER_CTRL_REG (UFS_SYS_REG_BASE + 0x004) 3192f2abcf4SHaojian Zhuang #define UFS_SYS_PHY_ISO_EN_REG (UFS_SYS_REG_BASE + 0x008) 3202f2abcf4SHaojian Zhuang #define UFS_SYS_HC_LP_CTRL_REG (UFS_SYS_REG_BASE + 0x00C) 3212f2abcf4SHaojian Zhuang #define UFS_SYS_PHY_CLK_CTRL_REG (UFS_SYS_REG_BASE + 0x010) 3222f2abcf4SHaojian Zhuang #define UFS_SYS_PSW_CLK_CTRL_REG (UFS_SYS_REG_BASE + 0x014) 3232f2abcf4SHaojian Zhuang #define UFS_SYS_CLOCK_GATE_BYPASS_REG (UFS_SYS_REG_BASE + 0x018) 3242f2abcf4SHaojian Zhuang #define UFS_SYS_RESET_CTRL_EN_REG (UFS_SYS_REG_BASE + 0x01C) 3252f2abcf4SHaojian Zhuang #define UFS_SYS_MONITOR_HH_REG (UFS_SYS_REG_BASE + 0x03C) 3262f2abcf4SHaojian Zhuang #define UFS_SYS_UFS_SYSCTRL_REG (UFS_SYS_REG_BASE + 0x05C) 3272f2abcf4SHaojian Zhuang #define UFS_SYS_UFS_DEVICE_RESET_CTRL_REG (UFS_SYS_REG_BASE + 0x060) 3282f2abcf4SHaojian Zhuang #define UFS_SYS_UFS_APB_ADDR_MASK_REG (UFS_SYS_REG_BASE + 0x064) 3292f2abcf4SHaojian Zhuang 3302f2abcf4SHaojian Zhuang #define BIT_UFS_PSW_ISO_CTRL (1 << 16) 3312f2abcf4SHaojian Zhuang #define BIT_UFS_PSW_MTCMOS_EN (1 << 0) 3322f2abcf4SHaojian Zhuang #define BIT_UFS_REFCLK_ISO_EN (1 << 16) 3332f2abcf4SHaojian Zhuang #define BIT_UFS_PHY_ISO_CTRL (1 << 0) 3342f2abcf4SHaojian Zhuang #define BIT_SYSCTRL_LP_ISOL_EN (1 << 16) 3352f2abcf4SHaojian Zhuang #define BIT_SYSCTRL_PWR_READY (1 << 8) 3362f2abcf4SHaojian Zhuang #define BIT_SYSCTRL_REF_CLOCK_EN (1 << 24) 3372f2abcf4SHaojian Zhuang #define MASK_SYSCTRL_REF_CLOCK_SEL (3 << 8) 3382f2abcf4SHaojian Zhuang #define MASK_SYSCTRL_CFG_CLOCK_FREQ (0xFF) 3392f2abcf4SHaojian Zhuang #define BIT_SYSCTRL_PSW_CLK_EN (1 << 4) 3402f2abcf4SHaojian Zhuang #define MASK_UFS_CLK_GATE_BYPASS (0x3F) 3412f2abcf4SHaojian Zhuang #define BIT_SYSCTRL_LP_RESET_N (1 << 0) 3422f2abcf4SHaojian Zhuang #define BIT_UFS_REFCLK_SRC_SE1 (1 << 0) 3432f2abcf4SHaojian Zhuang #define MASK_UFS_SYSCTRL_BYPASS (0x3F << 16) 3442f2abcf4SHaojian Zhuang #define MASK_UFS_DEVICE_RESET (1 << 16) 3452f2abcf4SHaojian Zhuang #define BIT_UFS_DEVICE_RESET (1 << 0) 3462f2abcf4SHaojian Zhuang 34716bec9c2SKaihua Zhong #define GPIO18_BASE UL(0xFF3B4000) 34816bec9c2SKaihua Zhong #define GPIO19_BASE UL(0xFF3B5000) 34916bec9c2SKaihua Zhong 3502f2abcf4SHaojian Zhuang #define IOMG_FIX_REG_BASE 0xFF3B6000 3512f2abcf4SHaojian Zhuang 3522f2abcf4SHaojian Zhuang /* GPIO150: LED */ 3532f2abcf4SHaojian Zhuang #define IOMG_FIX_006_REG (IOMG_FIX_REG_BASE + 0x018) 3542f2abcf4SHaojian Zhuang /* GPIO151: LED */ 3552f2abcf4SHaojian Zhuang #define IOMG_FIX_007_REG (IOMG_FIX_REG_BASE + 0x01C) 3562f2abcf4SHaojian Zhuang 3572f2abcf4SHaojian Zhuang #define IOMG_AO_REG_BASE 0xFFF11000 3582f2abcf4SHaojian Zhuang 3592f2abcf4SHaojian Zhuang /* GPIO189: LED */ 3602f2abcf4SHaojian Zhuang #define IOMG_AO_011_REG (IOMG_AO_REG_BASE + 0x02C) 3612f2abcf4SHaojian Zhuang /* GPIO190: LED */ 3622f2abcf4SHaojian Zhuang #define IOMG_AO_012_REG (IOMG_AO_REG_BASE + 0x030) 3632f2abcf4SHaojian Zhuang /* GPIO202: type C enable. active low */ 3642f2abcf4SHaojian Zhuang #define IOMG_AO_023_REG (IOMG_AO_REG_BASE + 0x05C) 3652f2abcf4SHaojian Zhuang /* GPIO206: USB switch. active low */ 3662f2abcf4SHaojian Zhuang #define IOMG_AO_026_REG (IOMG_AO_REG_BASE + 0x068) 3672f2abcf4SHaojian Zhuang /* GPIO219: PD interrupt. pull up */ 3682f2abcf4SHaojian Zhuang #define IOMG_AO_039_REG (IOMG_AO_REG_BASE + 0x09C) 369294d7471SKaihua Zhong /* GPIO213: PCIE_CLKREQ_N */ 370294d7471SKaihua Zhong #define IOMG_AO_033_REG (IOMG_AO_REG_BASE + 0x084) 3712f2abcf4SHaojian Zhuang 3722f2abcf4SHaojian Zhuang #define IOCG_AO_REG_BASE 0xFFF1187C 3732f2abcf4SHaojian Zhuang /* GPIO219: PD interrupt. pull up */ 3742f2abcf4SHaojian Zhuang #define IOCG_AO_043_REG (IOCG_AO_REG_BASE + 0x030) 3752f2abcf4SHaojian Zhuang 37687f6740cSRyan Grachek #define EDMAC_BASE 0xfdf30000 37787f6740cSRyan Grachek #define EDMAC_SEC_CTRL (EDMAC_BASE + 0x694) 37887f6740cSRyan Grachek #define EDMAC_AXI_CONF(x) (EDMAC_BASE + 0x820 + (x << 6)) 37987f6740cSRyan Grachek #define EDMAC_SEC_CTRL_INTR_SEC (1 << 1) 38087f6740cSRyan Grachek #define EDMAC_SEC_CTRL_GLOBAL_SEC (1 << 0) 38187f6740cSRyan Grachek #define EDMAC_CHANNEL_NUMS 16 38287f6740cSRyan Grachek 383c8ab47d4SRyan Grachek #define IOMCU_DMAC_BASE 0xffd77000 384c8ab47d4SRyan Grachek #define IOMCU_DMAC_SEC_CTRL (IOMCU_DMAC_BASE + 0x694) 385c8ab47d4SRyan Grachek #define IOMCU_DMAC_AXI_CONF(x) (IOMCU_DMAC_BASE + 0x820 + ((x) << 6)) 386c8ab47d4SRyan Grachek #define IOMCU_DMAC_AXI_CONF_ARPROT_NS (1 << 6) 387c8ab47d4SRyan Grachek #define IOMCU_DMAC_AXI_CONF_AWPROT_NS (1 << 18) 388c8ab47d4SRyan Grachek #define IOMCU_DMAC_SEC_CTRL_INTR_SEC (1 << 1) 389c8ab47d4SRyan Grachek #define IOMCU_DMAC_SEC_CTRL_GLOBAL_SEC (1 << 0) 390c8ab47d4SRyan Grachek #define IOMCU_DMAC_CHANNEL_NUMS 8 391c8ab47d4SRyan Grachek 392c3cf06f1SAntonio Nino Diaz #endif /* HI3660_H */ 393