1 /* 2 * Copyright (c) 2017-2019, ARM Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef STM32MP_DT_H 8 #define STM32MP_DT_H 9 10 #include <stdbool.h> 11 12 #define DT_DISABLED U(0) 13 #define DT_NON_SECURE U(1) 14 #define DT_SECURE U(2) 15 #define DT_SHARED (DT_NON_SECURE | DT_SECURE) 16 17 struct dt_node_info { 18 uint32_t base; 19 int32_t clock; 20 int32_t reset; 21 uint32_t status; 22 }; 23 24 /******************************************************************************* 25 * Function and variable prototypes 26 ******************************************************************************/ 27 int dt_open_and_check(void); 28 int fdt_get_address(void **fdt_addr); 29 bool fdt_check_node(int node); 30 uint8_t fdt_get_status(int node); 31 uint32_t fdt_read_uint32_default(int node, const char *prop_name, 32 uint32_t dflt_value); 33 int fdt_read_uint32_array(int node, const char *prop_name, 34 uint32_t *array, uint32_t count); 35 int dt_set_stdout_pinctrl(void); 36 void dt_fill_device_info(struct dt_node_info *info, int node); 37 int dt_get_node(struct dt_node_info *info, int offset, const char *compat); 38 int dt_get_stdout_uart_info(struct dt_node_info *info); 39 int dt_get_stdout_node_offset(void); 40 uint32_t dt_get_ddr_size(void); 41 uintptr_t dt_get_ddrctrl_base(void); 42 uintptr_t dt_get_ddrphyc_base(void); 43 uintptr_t dt_get_pwr_base(void); 44 const char *dt_get_board_model(void); 45 46 #endif /* STM32MP_DT_H */ 47