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