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