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