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