mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-03 18:10:13 +00:00
2d779b39b4
Implement new accessor, sysmgr_get_pinmux_table(), used to obtain pinmux table and it's size from the QTS-generated pinmux_config.c. The target here is again to get rid of poluting global namespace by including the pinmux_config.h into it. Furthermore, the pinmux_config.h declares some CONFIG_HPS_* macros, which are explicitly useless to us in U-Boot. Instead, U-Boot does use DT to detect exactly these configuration options. This patch makes sure that while this QTS-generated file can stay in the tree, these obscure macros do not ooze into the namespace anymore. Signed-off-by: Marek Vasut <marex@denx.de>
35 lines
1.2 KiB
C
35 lines
1.2 KiB
C
/*
|
|
* Copyright (C) 2015 Marek Vasut <marex@denx.de>
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0+
|
|
*/
|
|
|
|
#include <common.h>
|
|
#include <errno.h>
|
|
/*
|
|
* 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);
|
|
}
|