From f2703ef9231316d1ad5a9e4f4dd8e2ef0e10d43a Mon Sep 17 00:00:00 2001 From: TOKITA Hiroshi Date: Wed, 25 Dec 2024 08:29:52 +0900 Subject: [PATCH 1/3] modules: hal_rpi_pico: add includes that referenced by binary info The binary info feature references `boot_stage2` and `pico_binary_info`. Add these to include dirs. Signed-off-by: TOKITA Hiroshi --- modules/hal_rpi_pico/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/hal_rpi_pico/CMakeLists.txt b/modules/hal_rpi_pico/CMakeLists.txt index 58b29f92bcc4f..7c366a53f1ea5 100644 --- a/modules/hal_rpi_pico/CMakeLists.txt +++ b/modules/hal_rpi_pico/CMakeLists.txt @@ -89,9 +89,11 @@ if(CONFIG_HAS_RPI_PICO) ${rp2_common_dir}/pico_platform_panic/include ${common_dir}/boot_picoboot_headers/include ${common_dir}/boot_picobin_headers/include + ${common_dir}/pico_binary_info/include ${rp2xxx_dir}/hardware_regs/include ${rp2xxx_dir}/hardware_structs/include ${rp2xxx_dir}/pico_platform/include + ${boot_stage_dir}/include ${CMAKE_CURRENT_LIST_DIR} ) From a0b132b73bf572341ce69938199cb3af3c018cb4 Mon Sep 17 00:00:00 2001 From: TOKITA Hiroshi Date: Wed, 25 Dec 2024 08:31:17 +0900 Subject: [PATCH 2/3] modules: hal_rpi_pico: Make PICO_NO_BINARY_INFO configurable Use the definition of PICO_NO_BINARY_INFO if it already exists, set it as 1 if not so. Signed-off-by: TOKITA Hiroshi --- modules/hal_rpi_pico/pico/config_autogen.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/hal_rpi_pico/pico/config_autogen.h b/modules/hal_rpi_pico/pico/config_autogen.h index f5f79d8ca2114..d1d12c396d18c 100644 --- a/modules/hal_rpi_pico/pico/config_autogen.h +++ b/modules/hal_rpi_pico/pico/config_autogen.h @@ -29,8 +29,12 @@ /* Convert uses of asm, which is not supported in c99, to __asm */ #define asm __asm -/* Disable binary info */ +/* Configure binary info */ +#ifndef CONFIG_RPI_PICO_BINARY_INFO #define PICO_NO_BINARY_INFO 1 +#else +#define PICO_NO_BINARY_INFO 0 +#endif #ifdef CONFIG_DT_HAS_RASPBERRYPI_PICO_XOSC_ENABLED #include From 3c9082d1528d72bc118e248ea6d9253ffbff68de Mon Sep 17 00:00:00 2001 From: TOKITA Hiroshi Date: Wed, 1 Feb 2023 09:04:21 +0900 Subject: [PATCH 3/3] soc: arm: rpi_pico: Add support RaspberryPi Pico binary info feature Binary Info embeds program meta information in flash, which can be viewed with RaspberryPi Pico's `picotool`. Metadata is automatically collected from pinctrl. It can be override by the Kconfig configurations, such as ``` CONFIG_RPI_PICO_BINARY_INFO_OVERRIDE_PROGRAM_NAME="my program name" ``` When this feature is enabled, pinctrl groups are restricted to consisting of pins with a single rpi_pico function. In other words, SPI's MISO and MOSI can be in the same group, but I2C's SDA cannot be included in this group. This is rarely an issue in normal use, and can be resolved by dividing them into separate groups. Signed-off-by: TOKITA Hiroshi --- .../rpi_pico/common/CMakeLists.txt | 14 + soc/raspberrypi/rpi_pico/common/Kconfig | 4 + .../rpi_pico/common/Kconfig.binary_info | 177 +++ soc/raspberrypi/rpi_pico/common/binary_info.c | 53 + soc/raspberrypi/rpi_pico/common/binary_info.h | 130 ++ .../rpi_pico/common/binary_info.ld | 11 + .../rpi_pico/common/binary_info_header.S | 23 + .../rpi_pico/common/binary_info_header.ld | 7 + .../rpi_pico/common/binary_info_pins.c | 1109 +++++++++++++++++ 9 files changed, 1528 insertions(+) create mode 100644 soc/raspberrypi/rpi_pico/common/Kconfig create mode 100644 soc/raspberrypi/rpi_pico/common/Kconfig.binary_info create mode 100644 soc/raspberrypi/rpi_pico/common/binary_info.c create mode 100644 soc/raspberrypi/rpi_pico/common/binary_info.h create mode 100644 soc/raspberrypi/rpi_pico/common/binary_info.ld create mode 100644 soc/raspberrypi/rpi_pico/common/binary_info_header.S create mode 100644 soc/raspberrypi/rpi_pico/common/binary_info_header.ld create mode 100644 soc/raspberrypi/rpi_pico/common/binary_info_pins.c diff --git a/soc/raspberrypi/rpi_pico/common/CMakeLists.txt b/soc/raspberrypi/rpi_pico/common/CMakeLists.txt index 92508c111c735..700fbf50cdc05 100644 --- a/soc/raspberrypi/rpi_pico/common/CMakeLists.txt +++ b/soc/raspberrypi/rpi_pico/common/CMakeLists.txt @@ -8,3 +8,17 @@ zephyr_sources( ) zephyr_sources_ifdef(CONFIG_RPI_PICO_ROM_BOOTLOADER rom_bootloader.c) + +zephyr_library_sources_ifdef(CONFIG_RPI_PICO_BINARY_INFO + binary_info.c + binary_info_pins.c + binary_info_header.S +) + +zephyr_linker_sources_ifdef(CONFIG_RPI_PICO_BINARY_INFO + ROM_START SORT_KEY 0x0binary_info_header binary_info_header.ld +) + +zephyr_linker_sources_ifdef(CONFIG_RPI_PICO_BINARY_INFO + RODATA binary_info.ld +) diff --git a/soc/raspberrypi/rpi_pico/common/Kconfig b/soc/raspberrypi/rpi_pico/common/Kconfig new file mode 100644 index 0000000000000..4bb8260bccee9 --- /dev/null +++ b/soc/raspberrypi/rpi_pico/common/Kconfig @@ -0,0 +1,4 @@ +# Copyright (c) 2025 TOKITA Hiroshi +# SPDX-License-Identifier: Apache-2.0 + +source "soc/raspberrypi/rpi_pico/common/Kconfig.*" diff --git a/soc/raspberrypi/rpi_pico/common/Kconfig.binary_info b/soc/raspberrypi/rpi_pico/common/Kconfig.binary_info new file mode 100644 index 0000000000000..6de13c68ee532 --- /dev/null +++ b/soc/raspberrypi/rpi_pico/common/Kconfig.binary_info @@ -0,0 +1,177 @@ +# Copyright (c) 2024 TOKITA Hiroshi +# SPDX-License-Identifier: Apache-2.0 + +config RPI_PICO_BINARY_INFO + bool "Generate RaspberryPi Pico binary info" + default y + help + Binary info is able to embed machine readable information with the binary in flash. + It can read with picotool(https://github.com/raspberrypi/picotool). + Binary info is generated automatically when this option is enabled, + + When this feature is enabled, pinctrl groups are restricted to consisting + of pins with a single rpi_pico function. + In other words, SPI's MISO and MOSI can be in the same group, but I2C's + SDA cannot be included in this group. This is rarely an issue in normal use, + and can be resolved by dividing them into separate groups. + +if RPI_PICO_BINARY_INFO + +config RPI_PICO_BINARY_INFO_PROGRAM_NAME + bool "Generate program_name in binary info" + default y + +if RPI_PICO_BINARY_INFO_PROGRAM_NAME + +config RPI_PICO_BINARY_INFO_OVERRIDE_PROGRAM_NAME + string "Override program_name in binary info" + depends on RPI_PICO_BINARY_INFO_PROGRAM_NAME + +config RPI_PICO_BINARY_INFO_PROGRAM_NAME_OVERRIDDEN + bool + default RPI_PICO_BINARY_INFO_OVERRIDE_PROGRAM_NAME != "" + depends on RPI_PICO_BINARY_INFO_PROGRAM_NAME + +endif + +config RPI_PICO_BINARY_INFO_PROGRAM_URL + bool "Generate program_url in binary info" + default y + +if RPI_PICO_BINARY_INFO_PROGRAM_URL + +config RPI_PICO_BINARY_INFO_OVERRIDE_PROGRAM_URL + string "Override program_url in binary info" + depends on RPI_PICO_BINARY_INFO_PROGRAM_URL + +config RPI_PICO_BINARY_INFO_PROGRAM_URL_OVERRIDDEN + bool + default RPI_PICO_BINARY_INFO_OVERRIDE_PROGRAM_URL != "" + depends on RPI_PICO_BINARY_INFO_PROGRAM_URL + +endif + +config RPI_PICO_BINARY_INFO_PROGRAM_DESCRIPTION + bool "Generate program_description in binary info" + default y + +if RPI_PICO_BINARY_INFO_PROGRAM_DESCRIPTION + +config RPI_PICO_BINARY_INFO_OVERRIDE_PROGRAM_DESCRIPTION + string "Override program_description in binary info" + depends on RPI_PICO_BINARY_INFO_PROGRAM_DESCRIPTION + +config RPI_PICO_BINARY_INFO_PROGRAM_DESCRIPTION_OVERRIDDEN + bool + default RPI_PICO_BINARY_INFO_OVERRIDE_PROGRAM_DESCRIPTION != "" + depends on RPI_PICO_BINARY_INFO_PROGRAM_DESCRIPTION + +endif + +config RPI_PICO_BINARY_INFO_PROGRAM_BUILD_DATE + bool "Generate program_build_date in binary info" + default y + +if RPI_PICO_BINARY_INFO_PROGRAM_BUILD_DATE + +config RPI_PICO_BINARY_INFO_OVERRIDE_PROGRAM_BUILD_DATE + string "Override program_build_date in binary info" + depends on RPI_PICO_BINARY_INFO_PROGRAM_BUILD_DATE + +config RPI_PICO_BINARY_INFO_PROGRAM_BUILD_DATE_OVERRIDDEN + bool + default RPI_PICO_BINARY_INFO_OVERRIDE_PROGRAM_BUILD_DATE != "" + depends on RPI_PICO_BINARY_INFO_PROGRAM_BUILD_DATE + +endif + +config RPI_PICO_BINARY_INFO_PROGRAM_VERSION_STRING + bool "Generate program_version_string in binary info" + default y + +if RPI_PICO_BINARY_INFO_PROGRAM_VERSION_STRING + +config RPI_PICO_BINARY_INFO_OVERRIDE_PROGRAM_VERSION_STRING + string "Override program_version_string in binary info" + depends on RPI_PICO_BINARY_INFO_PROGRAM_VERSION_STRING + +config RPI_PICO_BINARY_INFO_PROGRAM_VERSION_STRING_OVERRIDDEN + bool + default RPI_PICO_BINARY_INFO_OVERRIDE_PROGRAM_VERSION_STRING != "" + depends on RPI_PICO_BINARY_INFO_PROGRAM_VERSION_STRING + +endif + +config RPI_PICO_BINARY_INFO_SDK_VERSION_STRING + bool "Generate sdk_version_string in binary info" + default y + +if RPI_PICO_BINARY_INFO_SDK_VERSION_STRING + +config RPI_PICO_BINARY_INFO_OVERRIDE_SDK_VERSION_STRING + string "Override sdk_version_string in binary info" + depends on RPI_PICO_BINARY_INFO_SDK_VERSION_STRING + +config RPI_PICO_BINARY_INFO_SDK_VERSION_STRING_OVERRIDDEN + bool + default RPI_PICO_BINARY_INFO_OVERRIDE_SDK_VERSION_STRING != "" + depends on RPI_PICO_BINARY_INFO_SDK_VERSION_STRING + +endif + +config RPI_PICO_BINARY_INFO_PICO_BOARD + bool "Generate pico_board in binary info" + default y + +if RPI_PICO_BINARY_INFO_PICO_BOARD + +config RPI_PICO_BINARY_INFO_OVERRIDE_PICO_BOARD + string "Override pico_board in binary info" + depends on RPI_PICO_BINARY_INFO_PICO_BOARD + +config RPI_PICO_BINARY_INFO_PICO_BOARD_OVERRIDDEN + bool + default RPI_PICO_BINARY_INFO_OVERRIDE_PICO_BOARD != "" + depends on RPI_PICO_BINARY_INFO_PICO_BOARD + +endif + +config RPI_PICO_BINARY_INFO_ATTRIBUTE_BUILD_TYPE + bool "Generate attribute_build_type in binary info" + default y + +if RPI_PICO_BINARY_INFO_ATTRIBUTE_BUILD_TYPE + +config RPI_PICO_BINARY_INFO_OVERRIDE_ATTRIBUTE_BUILD_TYPE + string "Override attribute_build_type in binary info" + depends on RPI_PICO_BINARY_INFO_ATTRIBUTE_BUILD_TYPE + +config RPI_PICO_BINARY_INFO_ATTRIBUTE_BUILD_TYPE_OVERRIDDEN + bool + default RPI_PICO_BINARY_INFO_OVERRIDE_ATTRIBUTE_BUILD_TYPE != "" + depends on RPI_PICO_BINARY_INFO_ATTRIBUTE_BUILD_TYPE + +endif + +config RPI_PICO_BINARY_INFO_BOOT_STAGE2_NAME + bool "Generate boot_stage2_name in binary info" + default y + +if RPI_PICO_BINARY_INFO_BOOT_STAGE2_NAME + +config RPI_PICO_BINARY_INFO_OVERRIDE_BOOT_STAGE2_NAME + string "Override boot_stage2_name in binary info" + depends on RPI_PICO_BINARY_INFO_BOOT_STAGE2_NAME + +config RPI_PICO_BINARY_INFO_BOOT_STAGE2_NAME_OVERRIDDEN + bool + default RPI_PICO_BINARY_INFO_OVERRIDE_BOOT_STAGE2_NAME != "" + depends on RPI_PICO_BINARY_INFO_BOOT_STAGE2_NAME + +endif + +config RPI_PICO_BINARY_INFO_PIN_CONFIGURATIONS + bool "Generate pin configuration info in binary info" + default y + +endif diff --git a/soc/raspberrypi/rpi_pico/common/binary_info.c b/soc/raspberrypi/rpi_pico/common/binary_info.c new file mode 100644 index 0000000000000..e1c0bcc856895 --- /dev/null +++ b/soc/raspberrypi/rpi_pico/common/binary_info.c @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2023 TOKITA Hiroshi + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "binary_info.h" + +extern uint32_t __rom_region_end; +bi_decl(bi_binary_end((intptr_t)&__rom_region_end)); + +#ifdef CONFIG_RPI_PICO_BINARY_INFO_PROGRAM_NAME +bi_decl(bi_program_name((uint32_t)BI_PROGRAM_NAME)); +#endif + +#if defined(CONFIG_RPI_PICO_BINARY_INFO_PROGRAM_VERSION_STRING) +bi_decl(bi_program_version_string((uint32_t)BI_PROGRAM_VERSION_STRING)); +#endif + +#ifdef CONFIG_RPI_PICO_BINARY_INFO_PROGRAM_DESCRIPTION +bi_decl(bi_program_description((uint32_t)BI_PROGRAM_DESCRIPTION)); +#endif + +#ifdef CONFIG_RPI_PICO_BINARY_INFO_PROGRAM_URL +bi_decl(bi_program_url((uint32_t)BI_PROGRAM_URL)); +#endif + +#ifdef CONFIG_RPI_PICO_BINARY_INFO_PROGRAM_BUILD_DATE +bi_decl(bi_program_build_date_string((uint32_t)BI_PROGRAM_BUILD_DATE)); +#endif + +#ifdef CONFIG_RPI_PICO_BINARY_INFO_PICO_BOARD +bi_decl(bi_string(BINARY_INFO_TAG_RASPBERRY_PI, BINARY_INFO_ID_RP_PICO_BOARD, + (uint32_t)BI_PICO_BOARD)); +#endif + +#ifdef CONFIG_RPI_PICO_BINARY_INFO_SDK_VERSION_STRING +bi_decl(bi_string(BINARY_INFO_TAG_RASPBERRY_PI, BINARY_INFO_ID_RP_SDK_VERSION, + (uint32_t)BI_SDK_VERSION_STRING)); +#endif + +#ifdef CONFIG_RPI_PICO_BINARY_INFO_BOOT_STAGE2_NAME +bi_decl(bi_string(BINARY_INFO_TAG_RASPBERRY_PI, BINARY_INFO_ID_RP_BOOT2_NAME, + (uint32_t)BI_BOOT_STAGE2_NAME)); +#endif + +#ifdef CONFIG_RPI_PICO_BINARY_INFO_ATTRIBUTE_BUILD_TYPE +#ifdef CONFIG_DEBUG +bi_decl(bi_program_build_attribute((uint32_t)"Debug")); +#else +bi_decl(bi_program_build_attribute((uint32_t)"Release")); +#endif +#endif diff --git a/soc/raspberrypi/rpi_pico/common/binary_info.h b/soc/raspberrypi/rpi_pico/common/binary_info.h new file mode 100644 index 0000000000000..9b2966cea7b4c --- /dev/null +++ b/soc/raspberrypi/rpi_pico/common/binary_info.h @@ -0,0 +1,130 @@ +/* + * Copyright (c) 2025 TOKITA Hiroshi + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef ZEPHYR_SOC_RASPBERRYPI_RPI_PICO_COMMON_BINARY_INFO_H_ +#define ZEPHYR_SOC_RASPBERRYPI_RPI_PICO_COMMON_BINARY_INFO_H_ + +#include +#include +#include + +#include + +#include + +#include +#include + +#include + +#define BI_PROGRAM_NAME CONFIG_RPI_PICO_BINARY_INFO_OVERRIDE_PROGRAM_NAME +#define BI_PROGRAM_DESCRIPTION CONFIG_RPI_PICO_BINARY_INFO_OVERRIDE_PROGRAM_DESCRIPTION +#define BI_PROGRAM_URL CONFIG_RPI_PICO_BINARY_INFO_OVERRIDE_PROGRAM_URL +#define BI_PROGRAM_VERSION_STRING CONFIG_RPI_PICO_BINARY_INFO_OVERRIDE_PROGRAM_VERSION_STRING + +#ifdef CONFIG_RPI_PICO_BINARY_INFO_PICO_BOARD +#define BI_PICO_BOARD CONFIG_RPI_PICO_BINARY_INFO_OVERRIDE_PICO_BOARD +#else +#define BI_PICO_BOARD CONFIG_BOARD +#endif + +#ifdef CONFIG_RPI_PICO_BINARY_INFO_SDK_VERSION_STRING_OVERRIDDEN +#define BI_SDK_VERSION_STRING CONFIG_RPI_PICO_BINARY_INFO_OVERRIDE_SDK_VERSION_STRING +#else +#define BI_SDK_VERSION_STRING "zephyr-" STRINGIFY(BUILD_VERSION) +#endif + +#ifdef CONFIG_RPI_PICO_BINARY_INFO_PROGRAM_BUILD_DATE_OVERRIDDEN +#define BI_PROGRAM_BUILD_DATE CONFIG_RPI_PICO_BINARY_INFO_OVERRIDE_PROGRAM_BUILD_DATE +#else +#define BI_PROGRAM_BUILD_DATE __DATE__ +#endif + +#ifdef CONFIG_RPI_PICO_BINARY_INFO_BOOT_STAGE2_NAME +#define BI_BOOT_STAGE2_NAME CONFIG_RPI_PICO_BINARY_INFO_OVERRIDE_BOOT_STAGE2_NAME +#else +#define BI_BOOT_STAGE2_NAME PICO_BOOT_STAGE2_NAME +#endif + +/* Utilities for pin encoding calcluation */ + +#ifdef CONFIG_SOC_RP2040 +#define MAX_PIN_ENTRIES 4 +#define ENCODE_BASE_IDX 1 +#define ENCODE_BYTES 5 +#define ENCODE_PADDING 2 +#define ENCODE_PINS_WITH_FUNC __bi_encoded_pins_with_func +#else +#define MAX_PIN_ENTRIES 6 +#define ENCODE_BASE_IDX 1 +#define ENCODE_BYTES 8 +#define ENCODE_PADDING 0 +#define ENCODE_PINS_WITH_FUNC __bi_encoded_pins_64_with_func +#endif + +/* Get group-wide pin functions */ + +#define PIN_FUNC_OFFSET 3 +#define PIN_FUNC(n, _, idx) ((DT_PROP_BY_IDX(n, pinmux, idx)) & RP2_ALT_FUNC_MASK) +#define PIN_GROUP_FUNC(n) (DT_FOREACH_PROP_ELEM_SEP(n, pinmux, PIN_FUNC, (|))) +#define PIN_GROUP_HEADER(n) (BI_PINS_ENCODING_MULTI | (PIN_GROUP_FUNC(n) << PIN_FUNC_OFFSET)) + +/* Encode the pins in a group */ + +#define PINMUX_COUNT(n) COND_CODE_1(DT_NODE_HAS_PROP(n, pinmux), (DT_PROP_LEN(n, pinmux)), (0)) +#define PIN_NUM(n, idx) (((DT_PROP_BY_IDX(n, pinmux, idx)) >> RP2_PIN_NUM_POS) & RP2_PIN_NUM_MASK) + +#define ENCODE_OFFSET(idx) (((idx + ENCODE_BASE_IDX) * ENCODE_BYTES) + ENCODE_PADDING) +#define ENCODE_PIN(n, idx) ((uint64_t)PIN_NUM(n, idx) << ENCODE_OFFSET(idx)) +#define ENCODE_TERMINATE(n, i, end) ((((i) + 1) == (end)) ? ENCODE_PIN(n, i + 1) : 0) +#define ENCODE_EACH_PIN(n, p, i, end) \ + (DT_PROP_HAS_IDX(n, p, i) ? ENCODE_PIN(n, i) : 0) | ENCODE_TERMINATE(n, i, end) +#define ENCODE_PIN_GROUP(n) \ + DT_FOREACH_PROP_ELEM_SEP_VARGS(n, pinmux, ENCODE_EACH_PIN, (|), PINMUX_COUNT(n)) + +/* + * Macro for checking pin settings + * Checks that a group consists of a single pin-function. + */ + +#define PIN_FUNC_IS(n, p, i, func) (PIN_FUNC(n, p, i) == func) +#define ALL_PINS_FUNC_IS_SAME(n) \ + (DT_FOREACH_PROP_ELEM_SEP_VARGS(n, pinmux, PIN_FUNC_IS, (&&), PIN_GROUP_FUNC(n))) + +/* + * Create binary info for pin-cfg group. + */ + +#define DECLARE_PINCFG_GROUP(n) \ + BUILD_ASSERT(PINMUX_COUNT(n) > 0, "Group must contain at least one pin"); \ + BUILD_ASSERT(PINMUX_COUNT(n) <= MAX_PIN_ENTRIES, "Too many pins in group"); \ + BUILD_ASSERT(ALL_PINS_FUNC_IS_SAME(n), "Group pins must share identical function"); \ + bi_decl(ENCODE_PINS_WITH_FUNC(PIN_GROUP_HEADER(n) | ENCODE_PIN_GROUP(n))) + +/* + * Scan pin-cfg and the groups it contains. + * Each enumerates its child elements, but since the same macro cannot be used within nesting, + * DT_FOREACH_CHILD_VARGS and DT_FOREACH_CHILD_SEP_VARGS are used accordingly. + */ + +#define PINMUX_NUM_IF_MATCH_GROUP(node, g_idx) \ + COND_CODE_1(IS_EQ(DT_NODE_CHILD_IDX(node), g_idx), (DT_PROP_LEN(node, pinmux)), ()) +#define PINMUX_NUM_IF_MATCH_PINCFG(node, pcfg_idx, g_idx) \ + COND_CODE_1(IS_EQ(DT_NODE_CHILD_IDX(node), pcfg_idx), \ + (DT_FOREACH_CHILD_SEP_VARGS(node, PINMUX_NUM_IF_MATCH_GROUP, (), g_idx)), ()) +#define PINMUX_NUM_OF_PINCFG_GROUP(node, pcfg_idx, g_idx) \ + DT_FOREACH_CHILD_VARGS(node, PINMUX_NUM_IF_MATCH_PINCFG, pcfg_idx, g_idx) + +#define BINARY_INFO_IF_MATCH_GROUP(node, g_idx) \ + COND_CODE_1(IS_EQ(DT_NODE_CHILD_IDX(node), g_idx), (DECLARE_PINCFG_GROUP(node)), ()) +#define BINARY_INFO_IF_MATCH_PINCFG(node, pcfg_idx, g_idx) \ + COND_CODE_1(IS_EQ(DT_NODE_CHILD_IDX(node), pcfg_idx), \ + (DT_FOREACH_CHILD_SEP_VARGS(node, BINARY_INFO_IF_MATCH_GROUP, (), g_idx)), ()) +#define BINARY_INFO_FROM_PINCFG_GROUP(node, pcfg_idx, g_idx) \ + COND_CODE_1(IS_EMPTY(PINMUX_NUM_OF_PINCFG_GROUP(node, pcfg_idx, g_idx)), (), \ + (DT_FOREACH_CHILD_VARGS(node, BINARY_INFO_IF_MATCH_PINCFG, pcfg_idx, g_idx))) + +#endif /* ZEPHYR_SOC_RASPBERRYPI_RPI_PICO_COMMON_BINARY_INFO_H_ */ diff --git a/soc/raspberrypi/rpi_pico/common/binary_info.ld b/soc/raspberrypi/rpi_pico/common/binary_info.ld new file mode 100644 index 0000000000000..002c2360b1096 --- /dev/null +++ b/soc/raspberrypi/rpi_pico/common/binary_info.ld @@ -0,0 +1,11 @@ +/* + * Copyright (c) 2023 TOKITA Hiroshi + * + * SPDX-License-Identifier: Apache-2.0 + */ + +. = ALIGN(4); +__binary_info_start = .; +KEEP(*(.binary_info.keep.*)) +*(.binary_info.*) +__binary_info_end = .; diff --git a/soc/raspberrypi/rpi_pico/common/binary_info_header.S b/soc/raspberrypi/rpi_pico/common/binary_info_header.S new file mode 100644 index 0000000000000..63c0f27728c44 --- /dev/null +++ b/soc/raspberrypi/rpi_pico/common/binary_info_header.S @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2023 TOKITA Hiroshi + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "pico/binary_info/defs.h" + +.section .binary_info_header + +/* binary_info_header */ +binary_info_header: +.word BINARY_INFO_MARKER_START +.word __binary_info_start +.word __binary_info_end +.word data_cpy_table /* we may need to decode pointers that are in RAM at runtime.*/ +.word BINARY_INFO_MARKER_END + +.align 2 + +/* data_cpy_table */ +data_cpy_table: +.word 0 /* centinel */ diff --git a/soc/raspberrypi/rpi_pico/common/binary_info_header.ld b/soc/raspberrypi/rpi_pico/common/binary_info_header.ld new file mode 100644 index 0000000000000..9e8741d3c428d --- /dev/null +++ b/soc/raspberrypi/rpi_pico/common/binary_info_header.ld @@ -0,0 +1,7 @@ +/* + * Copyright (c) 2023 TOKITA Hiroshi + * + * SPDX-License-Identifier: Apache-2.0 + */ + +KEEP (*(.binary_info_header)) diff --git a/soc/raspberrypi/rpi_pico/common/binary_info_pins.c b/soc/raspberrypi/rpi_pico/common/binary_info_pins.c new file mode 100644 index 0000000000000..59fbd2da21f6a --- /dev/null +++ b/soc/raspberrypi/rpi_pico/common/binary_info_pins.c @@ -0,0 +1,1109 @@ +/* + * Copyright (c) 2025 TOKITA Hiroshi + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "binary_info.h" + +#ifdef CONFIG_RPI_PICO_BINARY_INFO_PIN_CONFIGURATIONS +#if DT_NODE_EXISTS(DT_NODELABEL(pinctrl)) + +/* + * Extract pin info from pinctrl + * + * The bi_decl macro derives unique symbol names from __LINE__. + * We need to keep each instantiation on a dedicated source line. + */ + +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 0 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 0, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 1 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 1, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 2 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 2, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 3 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 3, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 4 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 4, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 5 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 5, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 6 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 6, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 7 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 7, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 8 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 8, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 9 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 9, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 10 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 10, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 11 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 11, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 12 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 12, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 13 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 13, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 14 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 14, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 15 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 15, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 16 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 16, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 17 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 17, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 18 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 18, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 19 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 19, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 20 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 20, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 21 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 21, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 22 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 22, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 23 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 23, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 24 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 24, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 25 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 25, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 26 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 26, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 27 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 27, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 28 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 28, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 29 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 29, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 30 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 30, 31); +#endif +#if DT_CHILD_NUM(DT_NODELABEL(pinctrl)) > 31 +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 0); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 1); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 2); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 3); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 4); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 5); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 6); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 7); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 8); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 9); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 10); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 11); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 12); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 13); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 14); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 15); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 16); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 17); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 18); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 19); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 20); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 21); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 22); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 23); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 24); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 25); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 26); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 27); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 28); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 29); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 30); +BINARY_INFO_FROM_PINCFG_GROUP(DT_NODELABEL(pinctrl), 31, 31); +#endif + +#endif +#endif