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 fdt_get_reg_props_by_name(int node, const char *name, uintptr_t *base, 36 size_t *size); 37 int dt_set_stdout_pinctrl(void); 38 void dt_fill_device_info(struct dt_node_info *info, int node); 39 int dt_get_node(struct dt_node_info *info, int offset, const char *compat); 40 int dt_get_stdout_uart_info(struct dt_node_info *info); 41 uint32_t dt_get_ddr_size(void); 42 uintptr_t dt_get_ddrctrl_base(void); 43 uintptr_t dt_get_ddrphyc_base(void); 44 uintptr_t dt_get_pwr_base(void); 45 uint32_t dt_get_pwr_vdd_voltage(void); 46 uintptr_t dt_get_syscfg_base(void); 47 const char *dt_get_board_model(void); 48 49 #endif /* STM32MP_DT_H */ 50