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