xref: /rk3399_ARM-atf/plat/socionext/uniphier/uniphier.h (revision b3add9cbf1ce90a173df51bdecc2301df1034ddd)
1d8e919c7SMasahiro Yamada /*
2b5dd85f2SMasahiro Yamada  * Copyright (c) 2017-2020, ARM Limited and Contributors. All rights reserved.
3d8e919c7SMasahiro Yamada  *
4d8e919c7SMasahiro Yamada  * SPDX-License-Identifier: BSD-3-Clause
5d8e919c7SMasahiro Yamada  */
6d8e919c7SMasahiro Yamada 
7c3cf06f1SAntonio Nino Diaz #ifndef UNIPHIER_H
8c3cf06f1SAntonio Nino Diaz #define UNIPHIER_H
9d8e919c7SMasahiro Yamada 
10d8e919c7SMasahiro Yamada #include <stdint.h>
1193c78ed2SAntonio Nino Diaz #include <string.h>
12d8e919c7SMasahiro Yamada 
13d8e919c7SMasahiro Yamada unsigned int uniphier_get_soc_type(void);
14d8e919c7SMasahiro Yamada unsigned int uniphier_get_soc_model(void);
15d8e919c7SMasahiro Yamada unsigned int uniphier_get_soc_revision(void);
16d8e919c7SMasahiro Yamada unsigned int uniphier_get_soc_id(void);
17d8e919c7SMasahiro Yamada 
18d8e919c7SMasahiro Yamada #define UNIPHIER_SOC_LD11		0
19d8e919c7SMasahiro Yamada #define UNIPHIER_SOC_LD20		1
20d8e919c7SMasahiro Yamada #define UNIPHIER_SOC_PXS3		2
21d8e919c7SMasahiro Yamada #define UNIPHIER_SOC_UNKNOWN		0xffffffff
22d8e919c7SMasahiro Yamada 
23d8e919c7SMasahiro Yamada unsigned int uniphier_get_boot_device(unsigned int soc);
24d8e919c7SMasahiro Yamada 
25d8e919c7SMasahiro Yamada #define UNIPHIER_BOOT_DEVICE_EMMC	0
26d8e919c7SMasahiro Yamada #define UNIPHIER_BOOT_DEVICE_NAND	1
27d8e919c7SMasahiro Yamada #define UNIPHIER_BOOT_DEVICE_NOR	2
282cb26005SMasahiro Yamada #define UNIPHIER_BOOT_DEVICE_SD		3
292cb26005SMasahiro Yamada #define UNIPHIER_BOOT_DEVICE_USB	4
30d8e919c7SMasahiro Yamada #define UNIPHIER_BOOT_DEVICE_RSV	0xffffffff
31d8e919c7SMasahiro Yamada 
32d8e919c7SMasahiro Yamada unsigned int uniphier_get_boot_master(unsigned int soc);
33d8e919c7SMasahiro Yamada 
34d8e919c7SMasahiro Yamada #define UNIPHIER_BOOT_MASTER_THIS	0
35d8e919c7SMasahiro Yamada #define UNIPHIER_BOOT_MASTER_SCP	1
36d8e919c7SMasahiro Yamada #define UNIPHIER_BOOT_MASTER_EXT	2
37d8e919c7SMasahiro Yamada 
384511322fSMasahiro Yamada void uniphier_console_setup(unsigned int soc);
39d8e919c7SMasahiro Yamada 
40b79b3177SMasahiro Yamada struct io_block_dev_spec;
41070dcbf5SMasahiro Yamada int uniphier_emmc_init(unsigned int soc,
42070dcbf5SMasahiro Yamada 		       struct io_block_dev_spec **block_dev_spec);
43bda9cd70SMasahiro Yamada int uniphier_nand_init(unsigned int soc,
44bda9cd70SMasahiro Yamada 		       struct io_block_dev_spec **block_dev_spec);
45b79b3177SMasahiro Yamada int uniphier_usb_init(unsigned int soc,
46b79b3177SMasahiro Yamada 		      struct io_block_dev_spec **block_dev_spec);
47d8e919c7SMasahiro Yamada 
487af21317SMasahiro Yamada int uniphier_io_setup(unsigned int soc, uintptr_t mem_base);
490ac60c08SMasahiro Yamada 
507af21317SMasahiro Yamada void uniphier_init_image_descs(uintptr_t mem_base);
510ac60c08SMasahiro Yamada struct image_info;
520ac60c08SMasahiro Yamada struct image_info *uniphier_get_image_info(unsigned int image_id);
53d8e919c7SMasahiro Yamada 
54d8e919c7SMasahiro Yamada int uniphier_scp_is_running(void);
55577b2441SMasahiro Yamada void uniphier_scp_start(uint32_t scp_base);
56d8e919c7SMasahiro Yamada void uniphier_scp_open_com(void);
57d8e919c7SMasahiro Yamada void uniphier_scp_system_off(void);
58d8e919c7SMasahiro Yamada void uniphier_scp_system_reset(void);
59d8e919c7SMasahiro Yamada 
60*eba319beSMasahiro Yamada void uniphier_mmap_setup(unsigned int soc);
61d8e919c7SMasahiro Yamada 
62d8e919c7SMasahiro Yamada void uniphier_cci_init(unsigned int soc);
63d8e919c7SMasahiro Yamada void uniphier_cci_enable(void);
64d8e919c7SMasahiro Yamada void uniphier_cci_disable(void);
65d8e919c7SMasahiro Yamada 
66d8e919c7SMasahiro Yamada void uniphier_gic_driver_init(unsigned int soc);
67d8e919c7SMasahiro Yamada void uniphier_gic_init(void);
68d8e919c7SMasahiro Yamada void uniphier_gic_cpuif_enable(void);
69d8e919c7SMasahiro Yamada void uniphier_gic_cpuif_disable(void);
70d8e919c7SMasahiro Yamada void uniphier_gic_pcpu_init(void);
71d8e919c7SMasahiro Yamada 
72eea5b880SMasahiro Yamada void uniphier_psci_init(unsigned int soc);
73eea5b880SMasahiro Yamada 
74d8e919c7SMasahiro Yamada unsigned int uniphier_calc_core_pos(u_register_t mpidr);
75d8e919c7SMasahiro Yamada 
76c3cf06f1SAntonio Nino Diaz #endif /* UNIPHIER_H */
77