/*
 * Copyright (c) 2023 Schlumberger
 * SPDX-License-Identifier: Apache-2.0
 */

#include <zephyr/dt-bindings/interrupt-controller/infineon-xmc4xxx-intc.h>

&intc {
	port-line-mapping = <
	XMC4XXX_INTC_SET_LINE_MAP(0, 1, 0, 0)     /* ERU0_ETL0_INPUTA_P0_1   XMC_ERU_ETL_INPUT_A0 */
	XMC4XXX_INTC_SET_LINE_MAP(2, 5, 2, 0)     /* ERU0_ETL0_INPUTA_P2_5   XMC_ERU_ETL_INPUT_A2 */
	XMC4XXX_INTC_SET_LINE_MAP(3, 2, 1, 0)     /* ERU0_ETL0_INPUTA_P3_2   XMC_ERU_ETL_INPUT_A1 */
	XMC4XXX_INTC_SET_LINE_MAP(0, 0, 4, 0)     /* ERU0_ETL0_INPUTB_P0_0   XMC_ERU_ETL_INPUT_B0 */
	XMC4XXX_INTC_SET_LINE_MAP(2, 0, 7, 0)     /* ERU0_ETL0_INPUTB_P2_0   XMC_ERU_ETL_INPUT_B3 */
	XMC4XXX_INTC_SET_LINE_MAP(2, 4, 6, 0)     /* ERU0_ETL0_INPUTB_P2_4   XMC_ERU_ETL_INPUT_B2 */
	XMC4XXX_INTC_SET_LINE_MAP(3, 1, 5, 0)     /* ERU0_ETL0_INPUTB_P3_1   XMC_ERU_ETL_INPUT_B1 */
	XMC4XXX_INTC_SET_LINE_MAP(0, 10, 0, 1)    /* ERU0_ETL1_INPUTA_P0_10  XMC_ERU_ETL_INPUT_A0 */
	XMC4XXX_INTC_SET_LINE_MAP(2, 3, 2, 1)     /* ERU0_ETL1_INPUTA_P2_3   XMC_ERU_ETL_INPUT_A2 */
	XMC4XXX_INTC_SET_LINE_MAP(0, 9, 4, 1)     /* ERU0_ETL1_INPUTB_P0_9   XMC_ERU_ETL_INPUT_B0 */
	XMC4XXX_INTC_SET_LINE_MAP(2, 2, 6, 1)     /* ERU0_ETL1_INPUTB_P2_2   XMC_ERU_ETL_INPUT_B2 */
	XMC4XXX_INTC_SET_LINE_MAP(2, 6, 7, 1)     /* ERU0_ETL1_INPUTB_P2_6   XMC_ERU_ETL_INPUT_B3 */
	XMC4XXX_INTC_SET_LINE_MAP(0, 13, 2, 2)    /* ERU0_ETL2_INPUTA_P0_13  XMC_ERU_ETL_INPUT_A2 */
	XMC4XXX_INTC_SET_LINE_MAP(0, 8, 1, 2)     /* ERU0_ETL2_INPUTA_P0_8   XMC_ERU_ETL_INPUT_A1 */
	XMC4XXX_INTC_SET_LINE_MAP(1, 5, 0, 2)     /* ERU0_ETL2_INPUTA_P1_5   XMC_ERU_ETL_INPUT_A0 */
	XMC4XXX_INTC_SET_LINE_MAP(0, 12, 6, 2)    /* ERU0_ETL2_INPUTB_P0_12  XMC_ERU_ETL_INPUT_B2 */
	XMC4XXX_INTC_SET_LINE_MAP(0, 4, 7, 2)     /* ERU0_ETL2_INPUTB_P0_4   XMC_ERU_ETL_INPUT_B3 */
	XMC4XXX_INTC_SET_LINE_MAP(0, 7, 5, 2)     /* ERU0_ETL2_INPUTB_P0_7   XMC_ERU_ETL_INPUT_B1 */
	XMC4XXX_INTC_SET_LINE_MAP(1, 4, 4, 2)     /* ERU0_ETL2_INPUTB_P1_4   XMC_ERU_ETL_INPUT_B0 */
	XMC4XXX_INTC_SET_LINE_MAP(0, 11, 2, 3)    /* ERU0_ETL3_INPUTA_P0_11  XMC_ERU_ETL_INPUT_A2 */
	XMC4XXX_INTC_SET_LINE_MAP(1, 1, 0, 3)     /* ERU0_ETL3_INPUTA_P1_1   XMC_ERU_ETL_INPUT_A0 */
	XMC4XXX_INTC_SET_LINE_MAP(3, 6, 1, 3)     /* ERU0_ETL3_INPUTA_P3_6   XMC_ERU_ETL_INPUT_A1 */
	XMC4XXX_INTC_SET_LINE_MAP(0, 2, 7, 3)     /* ERU0_ETL3_INPUTB_P0_2   XMC_ERU_ETL_INPUT_B3 */
	XMC4XXX_INTC_SET_LINE_MAP(0, 6, 6, 3)     /* ERU0_ETL3_INPUTB_P0_6   XMC_ERU_ETL_INPUT_B2 */
	XMC4XXX_INTC_SET_LINE_MAP(1, 0, 4, 3)     /* ERU0_ETL3_INPUTB_P1_0   XMC_ERU_ETL_INPUT_B0 */
	XMC4XXX_INTC_SET_LINE_MAP(3, 5, 5, 3)     /* ERU0_ETL3_INPUTB_P3_5   XMC_ERU_ETL_INPUT_B1 */
	XMC4XXX_INTC_SET_LINE_MAP(1, 5, 0, 4)     /* ERU1_ETL0_INPUTA_P1_5   XMC_ERU_ETL_INPUT_A0 */
	XMC4XXX_INTC_SET_LINE_MAP(2, 1, 4, 4)     /* ERU1_ETL0_INPUTB_P2_1   XMC_ERU_ETL_INPUT_B0 */
	XMC4XXX_INTC_SET_LINE_MAP(1, 15, 0, 5)    /* ERU1_ETL1_INPUTA_P1_15  XMC_ERU_ETL_INPUT_A0 */
	XMC4XXX_INTC_SET_LINE_MAP(2, 7, 4, 5)     /* ERU1_ETL1_INPUTB_P2_7   XMC_ERU_ETL_INPUT_B0 */
	XMC4XXX_INTC_SET_LINE_MAP(1, 3, 0, 6)     /* ERU1_ETL2_INPUTA_P1_3   XMC_ERU_ETL_INPUT_A0 */
	XMC4XXX_INTC_SET_LINE_MAP(1, 2, 4, 6)     /* ERU1_ETL2_INPUTB_P1_2   XMC_ERU_ETL_INPUT_B0 */
	XMC4XXX_INTC_SET_LINE_MAP(0, 5, 0, 7)     /* ERU1_ETL3_INPUTA_P0_5   XMC_ERU_ETL_INPUT_A0 */
	XMC4XXX_INTC_SET_LINE_MAP(0, 3, 4, 7)     /* ERU1_ETL3_INPUTB_P0_3   XMC_ERU_ETL_INPUT_B0 */
	>;
};
