xref: /rk3399_ARM-atf/plat/hisilicon/hikey960/hikey960_private.h (revision 07217574afcdcd618320c6bcef3bb9887f334537)
12f2abcf4SHaojian Zhuang /*
2*c371b83fSArthur Cassegrain  * Copyright (c) 2017-2022, ARM Limited and Contributors. All rights reserved.
32f2abcf4SHaojian Zhuang  *
42f2abcf4SHaojian Zhuang  * SPDX-License-Identifier: BSD-3-Clause
52f2abcf4SHaojian Zhuang  */
62f2abcf4SHaojian Zhuang 
7c3cf06f1SAntonio Nino Diaz #ifndef HIKEY960_PRIVATE_H
8c3cf06f1SAntonio Nino Diaz #define HIKEY960_PRIVATE_H
92f2abcf4SHaojian Zhuang 
1009d40e0eSAntonio Nino Diaz #include <common/bl_common.h>
112f2abcf4SHaojian Zhuang 
12*c371b83fSArthur Cassegrain /* Fastboot serial number */
13*c371b83fSArthur Cassegrain #define HIKEY960_SERIAL_NUMBER_LBA	(UFS_BASE + 20)
14*c371b83fSArthur Cassegrain #define HIKEY960_SERIAL_NUMBER_SIZE	16
15*c371b83fSArthur Cassegrain 
162f2abcf4SHaojian Zhuang /*
172f2abcf4SHaojian Zhuang  * Function and variable prototypes
182f2abcf4SHaojian Zhuang  */
192f2abcf4SHaojian Zhuang void hikey960_init_mmu_el1(unsigned long total_base,
202f2abcf4SHaojian Zhuang 			unsigned long total_size,
212f2abcf4SHaojian Zhuang 			unsigned long ro_start,
222f2abcf4SHaojian Zhuang 			unsigned long ro_limit,
232f2abcf4SHaojian Zhuang 			unsigned long coh_start,
242f2abcf4SHaojian Zhuang 			unsigned long coh_limit);
252f2abcf4SHaojian Zhuang void hikey960_init_mmu_el3(unsigned long total_base,
262f2abcf4SHaojian Zhuang 			unsigned long total_size,
272f2abcf4SHaojian Zhuang 			unsigned long ro_start,
282f2abcf4SHaojian Zhuang 			unsigned long ro_limit,
292f2abcf4SHaojian Zhuang 			unsigned long coh_start,
302f2abcf4SHaojian Zhuang 			unsigned long coh_limit);
312f2abcf4SHaojian Zhuang void hikey960_io_setup(void);
322f2abcf4SHaojian Zhuang int hikey960_read_boardid(unsigned int *id);
33c61cf58fSHaojian Zhuang int hikey960_set_fip_addr(unsigned int image_id, const char *name);
34*c371b83fSArthur Cassegrain int hikey960_load_serialno(uint64_t *serno);
354e858ba0SHaojian Zhuang void hikey960_clk_init(void);
364e858ba0SHaojian Zhuang void hikey960_pmu_init(void);
374e858ba0SHaojian Zhuang void hikey960_regulator_enable(void);
384e858ba0SHaojian Zhuang void hikey960_tzc_init(void);
394e858ba0SHaojian Zhuang void hikey960_peri_init(void);
404e858ba0SHaojian Zhuang void hikey960_pinmux_init(void);
4116bec9c2SKaihua Zhong void hikey960_gpio_init(void);
4228b02e23SHaojian Zhuang void set_retention_ticks(unsigned int val);
4328b02e23SHaojian Zhuang void clr_retention_ticks(unsigned int val);
4428b02e23SHaojian Zhuang void clr_ex(void);
4528b02e23SHaojian Zhuang void nop(void);
462f2abcf4SHaojian Zhuang 
47*c371b83fSArthur Cassegrain /*******************************************************************************
48*c371b83fSArthur Cassegrain  * Struct for parameters received from BL2
49*c371b83fSArthur Cassegrain  ******************************************************************************/
50*c371b83fSArthur Cassegrain typedef struct plat_params_from_bl2 {
51*c371b83fSArthur Cassegrain 	/* Fastboot serial number gathered from UFS */
52*c371b83fSArthur Cassegrain 	uint64_t fastboot_serno;
53*c371b83fSArthur Cassegrain } plat_params_from_bl2_t;
54*c371b83fSArthur Cassegrain 
55c3cf06f1SAntonio Nino Diaz #endif /* HIKEY960_PRIVATE_H */
56