blob: f6e5a8f919d97a7de1a4a450a5ab2143d1dc0e1c [file] [log] [blame]
Yann Gautier4b0c72a2018-07-16 10:54:09 +02001/*
Yann Gautier06ae3962023-09-19 18:26:16 +02002 * Copyright (c) 2015-2024, Arm Limited and Contributors. All rights reserved.
Yann Gautier4b0c72a2018-07-16 10:54:09 +02003 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +00007#ifndef STM32MP1_PRIVATE_H
8#define STM32MP1_PRIVATE_H
9
10#include <stdint.h>
Yann Gautier4b0c72a2018-07-16 10:54:09 +020011
Yann Gautier4b0c72a2018-07-16 10:54:09 +020012void configure_mmu(void);
13
Yann Gautiercaf575b2018-07-24 17:18:19 +020014void stm32mp1_arch_security_setup(void);
Yann Gautier9d135e42018-07-16 19:36:06 +020015void stm32mp1_security_setup(void);
Yann Gautiercaf575b2018-07-24 17:18:19 +020016
Yann Gautier3edc7c32019-05-20 19:17:08 +020017void stm32mp1_syscfg_init(void);
Yann Gautierb76c61a2020-12-16 10:17:35 +010018void stm32mp1_syscfg_enable_io_compensation_start(void);
19void stm32mp1_syscfg_enable_io_compensation_finish(void);
Yann Gautier3edc7c32019-05-20 19:17:08 +020020void stm32mp1_syscfg_disable_io_compensation(void);
Yann Gautierf36a1d32020-04-21 15:03:59 +020021uint32_t stm32mp1_syscfg_get_chip_version(void);
22uint32_t stm32mp1_syscfg_get_chip_dev_id(void);
Nicolas Toromanoff1877b132021-02-03 16:52:03 +010023#if STM32MP13
24void stm32mp1_syscfg_boot_mode_enable(void);
25void stm32mp1_syscfg_boot_mode_disable(void);
26#endif
27#if STM32MP15
28static inline void stm32mp1_syscfg_boot_mode_enable(void){}
29static inline void stm32mp1_syscfg_boot_mode_disable(void){}
30#endif
Yann Gautier3edc7c32019-05-20 19:17:08 +020031
Yann Gautiercd16df32021-06-04 14:04:05 +020032void stm32mp1_deconfigure_uart_pins(void);
33
Etienne Carriere34f0e932020-07-16 17:36:18 +020034void stm32mp1_init_scmi_server(void);
Yann Gautier06ae3962023-09-19 18:26:16 +020035
36/* Wrappers for OTP / BSEC functions */
37static inline uint32_t stm32_otp_read(uint32_t *val, uint32_t otp)
38{
39 return bsec_read_otp(val, otp);
40}
41
42static inline uint32_t stm32_otp_shadow_read(uint32_t *val, uint32_t otp)
43{
44 return bsec_shadow_read_otp(val, otp);
45}
46
47static inline uint32_t stm32_otp_write(uint32_t val, uint32_t otp)
48{
49 return bsec_write_otp(val, otp);
50}
51
52static inline uint32_t stm32_otp_set_sr_lock(uint32_t otp)
53{
54 return bsec_set_sr_lock(otp);
55}
56
57static inline uint32_t stm32_otp_read_sw_lock(uint32_t otp, bool *value)
58{
59 return bsec_read_sw_lock(otp, value);
60}
61
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +000062#endif /* STM32MP1_PRIVATE_H */