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