1 /* 2 * Copyright (c) 2015-2019, ARM Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #include <assert.h> 8 9 #include <platform_def.h> 10 11 #include <arch_helpers.h> 12 #include <common/debug.h> 13 #include <dt-bindings/clock/stm32mp1-clks.h> 14 #include <plat/common/platform.h> 15 16 uintptr_t plat_get_ns_image_entrypoint(void) 17 { 18 return BL33_BASE; 19 } 20 21 unsigned int plat_get_syscnt_freq2(void) 22 { 23 return read_cntfrq_el0(); 24 } 25 26 static uintptr_t boot_ctx_address; 27 28 void stm32mp1_save_boot_ctx_address(uintptr_t address) 29 { 30 boot_ctx_address = address; 31 } 32 33 uintptr_t stm32mp1_get_boot_ctx_address(void) 34 { 35 return boot_ctx_address; 36 } 37 38 uintptr_t stm32_get_gpio_bank_base(unsigned int bank) 39 { 40 if (bank == GPIO_BANK_Z) { 41 return GPIOZ_BASE; 42 } 43 44 assert(GPIO_BANK_A == 0 && bank <= GPIO_BANK_K); 45 46 return GPIOA_BASE + (bank * GPIO_BANK_OFFSET); 47 } 48 49 unsigned long stm32_get_gpio_bank_clock(unsigned int bank) 50 { 51 if (bank == GPIO_BANK_Z) { 52 return GPIOZ; 53 } 54 55 assert(GPIO_BANK_A == 0 && bank <= GPIO_BANK_K); 56 57 return GPIOA + (bank - GPIO_BANK_A); 58 } 59 60 uint32_t stm32_get_gpio_bank_offset(unsigned int bank) 61 { 62 if (bank == GPIO_BANK_Z) { 63 return 0; 64 } 65 66 assert(GPIO_BANK_A == 0 && bank <= GPIO_BANK_K); 67 68 return bank * GPIO_BANK_OFFSET; 69 } 70