Home | History | Annotate | Download | only in include
      1 /*
      2  * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
      3  *
      4  * SPDX-License-Identifier: BSD-3-Clause
      5  */
      6 
      7 #ifndef __HI3798cv200_H__
      8 #define __HI3798cv200_H__
      9 
     10 /* PL011 */
     11 #define PL011_UART0_BASE		(0xF8B00000)
     12 #define PL011_BAUDRATE			(115200)
     13 #define PL011_UART0_CLK_IN_HZ		(75000000)
     14 
     15 /* Sys Counter */
     16 #define SYS_COUNTER_FREQ_IN_TICKS	(24000000)
     17 #define SYS_COUNTER_FREQ_IN_MHZ		(24)
     18 
     19 /* Timer */
     20 #define SEC_TIMER0_BASE			(0xF8008000)
     21 #define TIMER00_LOAD			(SEC_TIMER0_BASE + 0x000)
     22 #define TIMER00_VALUE			(SEC_TIMER0_BASE + 0x004)
     23 #define TIMER00_CONTROL			(SEC_TIMER0_BASE + 0x008)
     24 #define TIMER00_BGLOAD			(SEC_TIMER0_BASE + 0x018)
     25 
     26 #define SEC_TIMER2_BASE			(0xF8009000)
     27 #define TIMER20_LOAD			(SEC_TIMER2_BASE + 0x000)
     28 #define TIMER20_VALUE			(SEC_TIMER2_BASE + 0x004)
     29 #define TIMER20_CONTROL			(SEC_TIMER2_BASE + 0x008)
     30 #define TIMER20_BGLOAD			(SEC_TIMER2_BASE + 0x018)
     31 
     32 /* GPIO */
     33 #define	GPIO_MAX			(12)
     34 #define	GPIO_BASE(x)			(x != 5 ?			\
     35 					0xf820000 + x * 0x1000 : 0xf8004000)
     36 
     37 /* SCTL */
     38 #define REG_BASE_SCTL			(0xF8000000)
     39 #define REG_SC_GEN12			(0x00B0)
     40 
     41 /* CRG */
     42 #define REG_BASE_CRG			(0xF8A22000)
     43 #define REG_CPU_LP			(0x48)
     44 #define REG_CPU_RST			(0x50)
     45 #define REG_PERI_CRG39			(0x9C)
     46 #define REG_PERI_CRG40			(0xA0)
     47 
     48 /* MCI */
     49 #define REG_BASE_MCI			(0xF9830000)
     50 #define MCI_CDETECT			(0x50)
     51 #define MCI_VERID			(0x6C)
     52 #define MCI_VERID_VALUE			(0x5342250A)
     53 #define MCI_VERID_VALUE2		(0x5342270A)
     54 
     55 /* EMMC */
     56 #define REG_EMMC_PERI_CRG		REG_PERI_CRG40
     57 #define REG_SDCARD_PERI_CRG		REG_PERI_CRG39
     58 #define EMMC_CLK_MASK			(0x7 << 8)
     59 #define EMMC_SRST_REQ			(0x1 << 4)
     60 #define EMMC_CKEN			(0x1 << 1)
     61 #define EMMC_BUS_CKEN			(0x1 << 0)
     62 #define EMMC_CLK_100M			(0 << 8)
     63 #define EMMC_CLK_50M			(1 << 8)
     64 #define EMMC_CLK_25M			(2 << 8)
     65 
     66 #define EMMC_DESC_SIZE			(0xF0000)
     67 #define EMMC_INIT_PARAMS(base)				\
     68 	{	.bus_width = EMMC_BUS_WIDTH_8,		\
     69 		.clk_rate = 25 * 1000 * 1000,		\
     70 		.desc_base = (base) - EMMC_DESC_SIZE,	\
     71 		.desc_size = EMMC_DESC_SIZE,		\
     72 		.flags =  EMMC_FLAG_CMD23,		\
     73 		.reg_base = REG_BASE_MCI,		\
     74 	}
     75 
     76 /* GIC-400 */
     77 #define GICD_BASE			(0xF1001000)
     78 #define GICC_BASE			(0xF1002000)
     79 #define GICR_BASE			(0xF1000000)
     80 
     81 /* FIQ platform related define */
     82 #define HISI_IRQ_SEC_SGI_0		8
     83 #define HISI_IRQ_SEC_SGI_1		9
     84 #define HISI_IRQ_SEC_SGI_2		10
     85 #define HISI_IRQ_SEC_SGI_3		11
     86 #define HISI_IRQ_SEC_SGI_4		12
     87 #define HISI_IRQ_SEC_SGI_5		13
     88 #define HISI_IRQ_SEC_SGI_6		14
     89 #define HISI_IRQ_SEC_SGI_7		15
     90 #define HISI_IRQ_SEC_PPI_0		29
     91 #define HISI_IRQ_SEC_TIMER0		60
     92 #define HISI_IRQ_SEC_TIMER1		50
     93 #define HISI_IRQ_SEC_TIMER2		52
     94 #define HISI_IRQ_SEC_TIMER3		88
     95 #define HISI_IRQ_SEC_AXI		110
     96 
     97 /* Watchdog */
     98 #define HISI_WDG0_BASE			(0xF8A2C000)
     99 
    100 #endif	/* __HI3798cv200_H__ */
    101