xref: /rk3399_ARM-atf/plat/hisilicon/poplar/include/hi3798cv200.h (revision 26cadf59ea13e0acc69668e9911e98c6d52144c2)
1e35d0edbSJorge Ramirez-Ortiz /*
2e35d0edbSJorge Ramirez-Ortiz  * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
3e35d0edbSJorge Ramirez-Ortiz  *
4e35d0edbSJorge Ramirez-Ortiz  * SPDX-License-Identifier: BSD-3-Clause
5e35d0edbSJorge Ramirez-Ortiz  */
6e35d0edbSJorge Ramirez-Ortiz 
7c3cf06f1SAntonio Nino Diaz #ifndef HI3798CV200_H
8c3cf06f1SAntonio Nino Diaz #define HI3798CV200_H
9e35d0edbSJorge Ramirez-Ortiz 
1009d40e0eSAntonio Nino Diaz #include <lib/utils_def.h>
1159149bbeSVictor Chong 
12e35d0edbSJorge Ramirez-Ortiz /* PL011 */
13e35d0edbSJorge Ramirez-Ortiz #define PL011_UART0_BASE		(0xF8B00000)
14e35d0edbSJorge Ramirez-Ortiz #define PL011_BAUDRATE			(115200)
15e35d0edbSJorge Ramirez-Ortiz #define PL011_UART0_CLK_IN_HZ		(75000000)
16e35d0edbSJorge Ramirez-Ortiz 
17e35d0edbSJorge Ramirez-Ortiz /* Sys Counter */
18e35d0edbSJorge Ramirez-Ortiz #define SYS_COUNTER_FREQ_IN_TICKS	(24000000)
19e35d0edbSJorge Ramirez-Ortiz #define SYS_COUNTER_FREQ_IN_MHZ		(24)
20e35d0edbSJorge Ramirez-Ortiz 
21e35d0edbSJorge Ramirez-Ortiz /* Timer */
22e35d0edbSJorge Ramirez-Ortiz #define SEC_TIMER0_BASE			(0xF8008000)
23e35d0edbSJorge Ramirez-Ortiz #define TIMER00_LOAD			(SEC_TIMER0_BASE + 0x000)
24e35d0edbSJorge Ramirez-Ortiz #define TIMER00_VALUE			(SEC_TIMER0_BASE + 0x004)
25e35d0edbSJorge Ramirez-Ortiz #define TIMER00_CONTROL			(SEC_TIMER0_BASE + 0x008)
26e35d0edbSJorge Ramirez-Ortiz #define TIMER00_BGLOAD			(SEC_TIMER0_BASE + 0x018)
27e35d0edbSJorge Ramirez-Ortiz 
28e35d0edbSJorge Ramirez-Ortiz #define SEC_TIMER2_BASE			(0xF8009000)
29e35d0edbSJorge Ramirez-Ortiz #define TIMER20_LOAD			(SEC_TIMER2_BASE + 0x000)
30e35d0edbSJorge Ramirez-Ortiz #define TIMER20_VALUE			(SEC_TIMER2_BASE + 0x004)
31e35d0edbSJorge Ramirez-Ortiz #define TIMER20_CONTROL			(SEC_TIMER2_BASE + 0x008)
32e35d0edbSJorge Ramirez-Ortiz #define TIMER20_BGLOAD			(SEC_TIMER2_BASE + 0x018)
33e35d0edbSJorge Ramirez-Ortiz 
34e35d0edbSJorge Ramirez-Ortiz /* GPIO */
3578896ac3SVictor Chong #define	GPIO_MAX			(13)
36e35d0edbSJorge Ramirez-Ortiz #define	GPIO_BASE(x)			(x != 5 ?			\
37e35d0edbSJorge Ramirez-Ortiz 					0xf820000 + x * 0x1000 : 0xf8004000)
38e35d0edbSJorge Ramirez-Ortiz 
39e35d0edbSJorge Ramirez-Ortiz /* SCTL */
40e35d0edbSJorge Ramirez-Ortiz #define REG_BASE_SCTL			(0xF8000000)
41*c961e68eSYang Xiwen #define REG_SC_SYSRES			(0x0004)
42e35d0edbSJorge Ramirez-Ortiz #define REG_SC_GEN12			(0x00B0)
43*c961e68eSYang Xiwen #define REG_SC_LOCKEN			(0x020C)
44*c961e68eSYang Xiwen 
45*c961e68eSYang Xiwen #define SC_UNLOCK_MAGIC			(0x4F50454E)
46e35d0edbSJorge Ramirez-Ortiz 
47e35d0edbSJorge Ramirez-Ortiz /* CRG */
48e35d0edbSJorge Ramirez-Ortiz #define REG_BASE_CRG			(0xF8A22000)
49e35d0edbSJorge Ramirez-Ortiz #define REG_CPU_LP			(0x48)
50e35d0edbSJorge Ramirez-Ortiz #define REG_CPU_RST			(0x50)
51e35d0edbSJorge Ramirez-Ortiz #define REG_PERI_CRG39			(0x9C)
52e35d0edbSJorge Ramirez-Ortiz #define REG_PERI_CRG40			(0xA0)
53e35d0edbSJorge Ramirez-Ortiz 
54e35d0edbSJorge Ramirez-Ortiz /* MCI */
55e35d0edbSJorge Ramirez-Ortiz #define REG_BASE_MCI			(0xF9830000)
56e35d0edbSJorge Ramirez-Ortiz #define MCI_CDETECT			(0x50)
57e35d0edbSJorge Ramirez-Ortiz #define MCI_VERID			(0x6C)
58e35d0edbSJorge Ramirez-Ortiz #define MCI_VERID_VALUE			(0x5342250A)
59e35d0edbSJorge Ramirez-Ortiz #define MCI_VERID_VALUE2		(0x5342270A)
60e35d0edbSJorge Ramirez-Ortiz 
61e35d0edbSJorge Ramirez-Ortiz /* EMMC */
62e35d0edbSJorge Ramirez-Ortiz #define REG_EMMC_PERI_CRG		REG_PERI_CRG40
63e35d0edbSJorge Ramirez-Ortiz #define REG_SDCARD_PERI_CRG		REG_PERI_CRG39
64e35d0edbSJorge Ramirez-Ortiz #define EMMC_CLK_MASK			(0x7 << 8)
65e35d0edbSJorge Ramirez-Ortiz #define EMMC_SRST_REQ			(0x1 << 4)
66e35d0edbSJorge Ramirez-Ortiz #define EMMC_CKEN			(0x1 << 1)
67e35d0edbSJorge Ramirez-Ortiz #define EMMC_BUS_CKEN			(0x1 << 0)
68e35d0edbSJorge Ramirez-Ortiz #define EMMC_CLK_100M			(0 << 8)
69e35d0edbSJorge Ramirez-Ortiz #define EMMC_CLK_50M			(1 << 8)
70e35d0edbSJorge Ramirez-Ortiz #define EMMC_CLK_25M			(2 << 8)
71e35d0edbSJorge Ramirez-Ortiz 
7259149bbeSVictor Chong #define EMMC_DESC_SIZE			U(0x00100000) /* 1MB */
73e35d0edbSJorge Ramirez-Ortiz #define EMMC_INIT_PARAMS(base)				\
74eba1b6b3SHaojian Zhuang 	{	.bus_width = MMC_BUS_WIDTH_8,		\
75e35d0edbSJorge Ramirez-Ortiz 		.clk_rate = 25 * 1000 * 1000,		\
7659149bbeSVictor Chong 		.desc_base = (base),	\
77e35d0edbSJorge Ramirez-Ortiz 		.desc_size = EMMC_DESC_SIZE,		\
78eba1b6b3SHaojian Zhuang 		.flags =  MMC_FLAG_CMD23,		\
79e35d0edbSJorge Ramirez-Ortiz 		.reg_base = REG_BASE_MCI,		\
80e35d0edbSJorge Ramirez-Ortiz 	}
81e35d0edbSJorge Ramirez-Ortiz 
82e35d0edbSJorge Ramirez-Ortiz /* GIC-400 */
83e35d0edbSJorge Ramirez-Ortiz #define GICD_BASE			(0xF1001000)
84e35d0edbSJorge Ramirez-Ortiz #define GICC_BASE			(0xF1002000)
85e35d0edbSJorge Ramirez-Ortiz #define GICR_BASE			(0xF1000000)
86e35d0edbSJorge Ramirez-Ortiz 
87e35d0edbSJorge Ramirez-Ortiz /* FIQ platform related define */
88e35d0edbSJorge Ramirez-Ortiz #define HISI_IRQ_SEC_SGI_0		8
89e35d0edbSJorge Ramirez-Ortiz #define HISI_IRQ_SEC_SGI_1		9
90e35d0edbSJorge Ramirez-Ortiz #define HISI_IRQ_SEC_SGI_2		10
91e35d0edbSJorge Ramirez-Ortiz #define HISI_IRQ_SEC_SGI_3		11
92e35d0edbSJorge Ramirez-Ortiz #define HISI_IRQ_SEC_SGI_4		12
93e35d0edbSJorge Ramirez-Ortiz #define HISI_IRQ_SEC_SGI_5		13
94e35d0edbSJorge Ramirez-Ortiz #define HISI_IRQ_SEC_SGI_6		14
95e35d0edbSJorge Ramirez-Ortiz #define HISI_IRQ_SEC_SGI_7		15
96e35d0edbSJorge Ramirez-Ortiz #define HISI_IRQ_SEC_PPI_0		29
97e35d0edbSJorge Ramirez-Ortiz #define HISI_IRQ_SEC_TIMER0		60
98e35d0edbSJorge Ramirez-Ortiz #define HISI_IRQ_SEC_TIMER1		50
99e35d0edbSJorge Ramirez-Ortiz #define HISI_IRQ_SEC_TIMER2		52
100e35d0edbSJorge Ramirez-Ortiz #define HISI_IRQ_SEC_TIMER3		88
101e35d0edbSJorge Ramirez-Ortiz #define HISI_IRQ_SEC_AXI		110
102e35d0edbSJorge Ramirez-Ortiz 
103e35d0edbSJorge Ramirez-Ortiz /* Watchdog */
104e35d0edbSJorge Ramirez-Ortiz #define HISI_WDG0_BASE			(0xF8A2C000)
105e35d0edbSJorge Ramirez-Ortiz 
106d45a1c30SJiancheng Xue #define HISI_TZPC_BASE			(0xF8A80000)
107d45a1c30SJiancheng Xue #define HISI_TZPC_SEC_ATTR_CTRL		(HISI_TZPC_BASE + 0x10)
108d45a1c30SJiancheng Xue 
109c3cf06f1SAntonio Nino Diaz #endif /* HI3798CV200_H */
110