1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2020-2023, STMicroelectronics - All Rights Reserved 3*91f16700Schasinglulu * Copyright (c) 2017-2023, Arm Limited and Contributors. All rights reserved. 4*91f16700Schasinglulu * 5*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 6*91f16700Schasinglulu */ 7*91f16700Schasinglulu 8*91f16700Schasinglulu #ifndef STM32MP_DT_H 9*91f16700Schasinglulu #define STM32MP_DT_H 10*91f16700Schasinglulu 11*91f16700Schasinglulu #include <stdbool.h> 12*91f16700Schasinglulu #include <stdint.h> 13*91f16700Schasinglulu 14*91f16700Schasinglulu #define DT_DISABLED U(0) 15*91f16700Schasinglulu #define DT_NON_SECURE U(1) 16*91f16700Schasinglulu #define DT_SECURE U(2) 17*91f16700Schasinglulu #define DT_SHARED (DT_NON_SECURE | DT_SECURE) 18*91f16700Schasinglulu 19*91f16700Schasinglulu struct dt_node_info { 20*91f16700Schasinglulu uint32_t base; 21*91f16700Schasinglulu int32_t clock; 22*91f16700Schasinglulu int32_t reset; 23*91f16700Schasinglulu uint32_t status; 24*91f16700Schasinglulu }; 25*91f16700Schasinglulu 26*91f16700Schasinglulu /******************************************************************************* 27*91f16700Schasinglulu * Function and variable prototypes 28*91f16700Schasinglulu ******************************************************************************/ 29*91f16700Schasinglulu int dt_open_and_check(uintptr_t dt_addr); 30*91f16700Schasinglulu int fdt_get_address(void **fdt_addr); 31*91f16700Schasinglulu bool fdt_check_node(int node); 32*91f16700Schasinglulu uint8_t fdt_get_status(int node); 33*91f16700Schasinglulu int dt_set_stdout_pinctrl(void); 34*91f16700Schasinglulu void dt_fill_device_info(struct dt_node_info *info, int node); 35*91f16700Schasinglulu int dt_get_node(struct dt_node_info *info, int offset, const char *compat); 36*91f16700Schasinglulu int dt_get_stdout_uart_info(struct dt_node_info *info); 37*91f16700Schasinglulu int dt_match_instance_by_compatible(const char *compatible, uintptr_t address); 38*91f16700Schasinglulu size_t dt_get_ddr_size(void); 39*91f16700Schasinglulu uint32_t dt_get_pwr_vdd_voltage(void); 40*91f16700Schasinglulu struct rdev *dt_get_vdd_regulator(void); 41*91f16700Schasinglulu struct rdev *dt_get_cpu_regulator(void); 42*91f16700Schasinglulu const char *dt_get_board_model(void); 43*91f16700Schasinglulu int dt_find_otp_name(const char *name, uint32_t *otp, uint32_t *otp_len); 44*91f16700Schasinglulu int fdt_get_gpio_bank_pin_count(unsigned int bank); 45*91f16700Schasinglulu 46*91f16700Schasinglulu #endif /* STM32MP_DT_H */ 47