xref: /rk3399_ARM-atf/plat/st/common/include/stm32mp_dt.h (revision c9d75b3cf98c7f2a78d3f916bcf9e2b3a2c55967)
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