/* * Copyright (C) 2015 Marek Vasut * * SPDX-License-Identifier: GPL-2.0+ */ #include #include /* * Yes, dear reader, we're including a C file here, this is no mistake. * But this time around, we do even more perverse hacking here to be * compatible with QTS headers and obtain reasonably nice results too. * * First, we define _PRELOADER_PINMUX_CONFIG_H_, which will neutralise * the pinmux_config.h inclusion in pinmux_config.c . Since we are * probing everything from DT, we do NOT want those macros from the * pinmux_config.h to ooze into our build system, anywhere, ever. So * we nip it at the bud. * * Next, pinmux_config.c needs CONFIG_HPS_PINMUX_NUM and uses it to * specify sized array explicitly. Instead, we want to use ARRAY_SIZE * to figure out the size of the array, so define this macro as an * empty one, so that the preprocessor optimizes things such that the * arrays are not sized by default. */ #define _PRELOADER_PINMUX_CONFIG_H_ #define CONFIG_HPS_PINMUX_NUM #include "qts/pinmux_config.c" void sysmgr_get_pinmux_table(const unsigned long **table, unsigned int *table_len) { *table = sys_mgr_init_table; *table_len = ARRAY_SIZE(sys_mgr_init_table); }