/*
 * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

#ifndef HI3798CV200_H
#define HI3798CV200_H

#include <utils_def.h>

/* PL011 */
#define PL011_UART0_BASE		(0xF8B00000)
#define PL011_BAUDRATE			(115200)
#define PL011_UART0_CLK_IN_HZ		(75000000)

/* Sys Counter */
#define SYS_COUNTER_FREQ_IN_TICKS	(24000000)
#define SYS_COUNTER_FREQ_IN_MHZ		(24)

/* Timer */
#define SEC_TIMER0_BASE			(0xF8008000)
#define TIMER00_LOAD			(SEC_TIMER0_BASE + 0x000)
#define TIMER00_VALUE			(SEC_TIMER0_BASE + 0x004)
#define TIMER00_CONTROL			(SEC_TIMER0_BASE + 0x008)
#define TIMER00_BGLOAD			(SEC_TIMER0_BASE + 0x018)

#define SEC_TIMER2_BASE			(0xF8009000)
#define TIMER20_LOAD			(SEC_TIMER2_BASE + 0x000)
#define TIMER20_VALUE			(SEC_TIMER2_BASE + 0x004)
#define TIMER20_CONTROL			(SEC_TIMER2_BASE + 0x008)
#define TIMER20_BGLOAD			(SEC_TIMER2_BASE + 0x018)

/* GPIO */
#define	GPIO_MAX			(13)
#define	GPIO_BASE(x)			(x != 5 ?			\
					0xf820000 + x * 0x1000 : 0xf8004000)

/* SCTL */
#define REG_BASE_SCTL			(0xF8000000)
#define REG_SC_GEN12			(0x00B0)

/* CRG */
#define REG_BASE_CRG			(0xF8A22000)
#define REG_CPU_LP			(0x48)
#define REG_CPU_RST			(0x50)
#define REG_PERI_CRG39			(0x9C)
#define REG_PERI_CRG40			(0xA0)

/* MCI */
#define REG_BASE_MCI			(0xF9830000)
#define MCI_CDETECT			(0x50)
#define MCI_VERID			(0x6C)
#define MCI_VERID_VALUE			(0x5342250A)
#define MCI_VERID_VALUE2		(0x5342270A)

/* EMMC */
#define REG_EMMC_PERI_CRG		REG_PERI_CRG40
#define REG_SDCARD_PERI_CRG		REG_PERI_CRG39
#define EMMC_CLK_MASK			(0x7 << 8)
#define EMMC_SRST_REQ			(0x1 << 4)
#define EMMC_CKEN			(0x1 << 1)
#define EMMC_BUS_CKEN			(0x1 << 0)
#define EMMC_CLK_100M			(0 << 8)
#define EMMC_CLK_50M			(1 << 8)
#define EMMC_CLK_25M			(2 << 8)

#define EMMC_DESC_SIZE			U(0x00100000) /* 1MB */
#define EMMC_INIT_PARAMS(base)				\
	{	.bus_width = MMC_BUS_WIDTH_8,		\
		.clk_rate = 25 * 1000 * 1000,		\
		.desc_base = (base),	\
		.desc_size = EMMC_DESC_SIZE,		\
		.flags =  MMC_FLAG_CMD23,		\
		.reg_base = REG_BASE_MCI,		\
	}

/* GIC-400 */
#define GICD_BASE			(0xF1001000)
#define GICC_BASE			(0xF1002000)
#define GICR_BASE			(0xF1000000)

/* FIQ platform related define */
#define HISI_IRQ_SEC_SGI_0		8
#define HISI_IRQ_SEC_SGI_1		9
#define HISI_IRQ_SEC_SGI_2		10
#define HISI_IRQ_SEC_SGI_3		11
#define HISI_IRQ_SEC_SGI_4		12
#define HISI_IRQ_SEC_SGI_5		13
#define HISI_IRQ_SEC_SGI_6		14
#define HISI_IRQ_SEC_SGI_7		15
#define HISI_IRQ_SEC_PPI_0		29
#define HISI_IRQ_SEC_TIMER0		60
#define HISI_IRQ_SEC_TIMER1		50
#define HISI_IRQ_SEC_TIMER2		52
#define HISI_IRQ_SEC_TIMER3		88
#define HISI_IRQ_SEC_AXI		110

/* Watchdog */
#define HISI_WDG0_BASE			(0xF8A2C000)

#define HISI_TZPC_BASE			(0xF8A80000)
#define HISI_TZPC_SEC_ATTR_CTRL		(HISI_TZPC_BASE + 0x10)

#endif /* HI3798CV200_H */
