xref: /rk3399_ARM-atf/plat/st/common/include/stm32mp_fconf_getter.h (revision d5a84eeaac2c8ce14d3f2662dc9523b4abf41516)
1*d5a84eeaSYann Gautier /*
2*d5a84eeaSYann Gautier  * Copyright (c) 2021, STMicroelectronics - All Rights Reserved
3*d5a84eeaSYann Gautier  *
4*d5a84eeaSYann Gautier  * SPDX-License-Identifier: BSD-3-Clause
5*d5a84eeaSYann Gautier  */
6*d5a84eeaSYann Gautier 
7*d5a84eeaSYann Gautier #ifndef STM32MP_FCONF_GETTER
8*d5a84eeaSYann Gautier #define STM32MP_FCONF_GETTER
9*d5a84eeaSYann Gautier 
10*d5a84eeaSYann Gautier #include <assert.h>
11*d5a84eeaSYann Gautier 
12*d5a84eeaSYann Gautier #include <lib/fconf/fconf.h>
13*d5a84eeaSYann Gautier 
14*d5a84eeaSYann Gautier /* IO policies */
15*d5a84eeaSYann Gautier #define stm32mp__io_policies_getter(id) __extension__ ({	\
16*d5a84eeaSYann Gautier 	assert((id) < MAX_NUMBER_IDS);				\
17*d5a84eeaSYann Gautier 	&policies[id];						\
18*d5a84eeaSYann Gautier })
19*d5a84eeaSYann Gautier 
20*d5a84eeaSYann Gautier struct plat_io_policy {
21*d5a84eeaSYann Gautier 	uintptr_t *dev_handle;
22*d5a84eeaSYann Gautier 	uintptr_t image_spec;
23*d5a84eeaSYann Gautier 	int (*check)(const uintptr_t spec);
24*d5a84eeaSYann Gautier };
25*d5a84eeaSYann Gautier 
26*d5a84eeaSYann Gautier extern struct plat_io_policy policies[];
27*d5a84eeaSYann Gautier int fconf_populate_stm32mp_io_policies(uintptr_t config);
28*d5a84eeaSYann Gautier 
29*d5a84eeaSYann Gautier #endif /* STM32MP_FCONF_GETTER */
30