|
@@ -0,0 +1,35 @@
|
|
|
+/*
|
|
|
+ * 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);
|
|
|
+}
|