xref: /aosp_15_r20/external/arm-trusted-firmware/plat/socionext/uniphier/uniphier.h (revision 54fd6939e177f8ff529b10183254802c76df6d08)
1*54fd6939SJiyong Park /*
2*54fd6939SJiyong Park  * Copyright (c) 2017-2020, ARM Limited and Contributors. All rights reserved.
3*54fd6939SJiyong Park  *
4*54fd6939SJiyong Park  * SPDX-License-Identifier: BSD-3-Clause
5*54fd6939SJiyong Park  */
6*54fd6939SJiyong Park 
7*54fd6939SJiyong Park #ifndef UNIPHIER_H
8*54fd6939SJiyong Park #define UNIPHIER_H
9*54fd6939SJiyong Park 
10*54fd6939SJiyong Park #include <stdint.h>
11*54fd6939SJiyong Park #include <string.h>
12*54fd6939SJiyong Park 
13*54fd6939SJiyong Park unsigned int uniphier_get_soc_type(void);
14*54fd6939SJiyong Park unsigned int uniphier_get_soc_model(void);
15*54fd6939SJiyong Park unsigned int uniphier_get_soc_revision(void);
16*54fd6939SJiyong Park unsigned int uniphier_get_soc_id(void);
17*54fd6939SJiyong Park 
18*54fd6939SJiyong Park #define UNIPHIER_SOC_LD11		0
19*54fd6939SJiyong Park #define UNIPHIER_SOC_LD20		1
20*54fd6939SJiyong Park #define UNIPHIER_SOC_PXS3		2
21*54fd6939SJiyong Park #define UNIPHIER_SOC_UNKNOWN		0xffffffff
22*54fd6939SJiyong Park 
23*54fd6939SJiyong Park unsigned int uniphier_get_boot_device(unsigned int soc);
24*54fd6939SJiyong Park 
25*54fd6939SJiyong Park #define UNIPHIER_BOOT_DEVICE_EMMC	0
26*54fd6939SJiyong Park #define UNIPHIER_BOOT_DEVICE_NAND	1
27*54fd6939SJiyong Park #define UNIPHIER_BOOT_DEVICE_NOR	2
28*54fd6939SJiyong Park #define UNIPHIER_BOOT_DEVICE_SD		3
29*54fd6939SJiyong Park #define UNIPHIER_BOOT_DEVICE_USB	4
30*54fd6939SJiyong Park #define UNIPHIER_BOOT_DEVICE_RSV	0xffffffff
31*54fd6939SJiyong Park 
32*54fd6939SJiyong Park unsigned int uniphier_get_boot_master(unsigned int soc);
33*54fd6939SJiyong Park 
34*54fd6939SJiyong Park #define UNIPHIER_BOOT_MASTER_THIS	0
35*54fd6939SJiyong Park #define UNIPHIER_BOOT_MASTER_SCP	1
36*54fd6939SJiyong Park #define UNIPHIER_BOOT_MASTER_EXT	2
37*54fd6939SJiyong Park 
38*54fd6939SJiyong Park void uniphier_console_setup(unsigned int soc);
39*54fd6939SJiyong Park 
40*54fd6939SJiyong Park struct io_block_dev_spec;
41*54fd6939SJiyong Park int uniphier_emmc_init(unsigned int soc,
42*54fd6939SJiyong Park 		       struct io_block_dev_spec **block_dev_spec);
43*54fd6939SJiyong Park int uniphier_nand_init(unsigned int soc,
44*54fd6939SJiyong Park 		       struct io_block_dev_spec **block_dev_spec);
45*54fd6939SJiyong Park int uniphier_usb_init(unsigned int soc,
46*54fd6939SJiyong Park 		      struct io_block_dev_spec **block_dev_spec);
47*54fd6939SJiyong Park 
48*54fd6939SJiyong Park int uniphier_io_setup(unsigned int soc, uintptr_t mem_base);
49*54fd6939SJiyong Park 
50*54fd6939SJiyong Park void uniphier_init_image_descs(uintptr_t mem_base);
51*54fd6939SJiyong Park struct image_info;
52*54fd6939SJiyong Park struct image_info *uniphier_get_image_info(unsigned int image_id);
53*54fd6939SJiyong Park 
54*54fd6939SJiyong Park int uniphier_scp_is_running(void);
55*54fd6939SJiyong Park void uniphier_scp_start(uint32_t scp_base);
56*54fd6939SJiyong Park void uniphier_scp_open_com(void);
57*54fd6939SJiyong Park void uniphier_scp_system_off(void);
58*54fd6939SJiyong Park void uniphier_scp_system_reset(void);
59*54fd6939SJiyong Park 
60*54fd6939SJiyong Park void uniphier_mmap_setup(unsigned int soc);
61*54fd6939SJiyong Park 
62*54fd6939SJiyong Park void uniphier_cci_init(unsigned int soc);
63*54fd6939SJiyong Park void uniphier_cci_enable(void);
64*54fd6939SJiyong Park void uniphier_cci_disable(void);
65*54fd6939SJiyong Park 
66*54fd6939SJiyong Park void uniphier_gic_driver_init(unsigned int soc);
67*54fd6939SJiyong Park void uniphier_gic_init(void);
68*54fd6939SJiyong Park void uniphier_gic_cpuif_enable(void);
69*54fd6939SJiyong Park void uniphier_gic_cpuif_disable(void);
70*54fd6939SJiyong Park void uniphier_gic_pcpu_init(void);
71*54fd6939SJiyong Park 
72*54fd6939SJiyong Park void uniphier_psci_init(unsigned int soc);
73*54fd6939SJiyong Park 
74*54fd6939SJiyong Park unsigned int uniphier_calc_core_pos(u_register_t mpidr);
75*54fd6939SJiyong Park 
76*54fd6939SJiyong Park #endif /* UNIPHIER_H */
77