soc: arm: infineon_xmc: Add XMC4700 MCU series

Adds XMC4700 MCU series.

Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com>
This commit is contained in:
Andriy Gelman 2022-09-06 10:53:26 -04:00 committed by Carles Cufí
commit f2b61595f0
7 changed files with 774 additions and 1 deletions

View file

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

View file

@ -0,0 +1,596 @@
/*
* Copyright (c) 2023 Schlumberger
* SPDX-License-Identifier: Apache-2.0
*/
#include <infineon/xmc4xxx.dtsi>
#include <zephyr/dt-bindings/pinctrl/xmc4xxx-pinctrl.h>
&pinctrl {
/omit-if-no-ref/ uart_tx_p0_1_u1c1: uart_tx_p0_1_u1c1 {
pinmux = <XMC4XXX_PINMUX_SET(0, 1, 2)>;
};
/omit-if-no-ref/ uart_tx_p0_5_u1c0: uart_tx_p0_5_u1c0 {
pinmux = <XMC4XXX_PINMUX_SET(0, 5, 2)>;
};
/omit-if-no-ref/ uart_tx_p1_5_u0c0: uart_tx_p1_5_u0c0 {
pinmux = <XMC4XXX_PINMUX_SET(1, 5, 2)>;
};
/omit-if-no-ref/ uart_tx_p1_7_u0c0: uart_tx_p1_7_u0c0 {
pinmux = <XMC4XXX_PINMUX_SET(1, 7, 2)>;
};
/omit-if-no-ref/ uart_tx_p1_9_u1c1: uart_tx_p1_9_u1c1 {
pinmux = <XMC4XXX_PINMUX_SET(1, 9, 4)>;
};
/omit-if-no-ref/ uart_tx_p1_15_u1c0: uart_tx_p1_15_u1c0 {
pinmux = <XMC4XXX_PINMUX_SET(1, 15, 4)>;
};
/omit-if-no-ref/ uart_tx_p2_5_u0c1: uart_tx_p2_5_u0c1 {
pinmux = <XMC4XXX_PINMUX_SET(2, 5, 2)>;
};
/omit-if-no-ref/ uart_tx_p2_14_u1c0: uart_tx_p2_14_u1c0 {
pinmux = <XMC4XXX_PINMUX_SET(2, 14, 2)>;
};
/omit-if-no-ref/ uart_tx_p3_5_u2c1: uart_tx_p3_5_u2c1 {
pinmux = <XMC4XXX_PINMUX_SET(3, 5, 1)>;
};
/omit-if-no-ref/ uart_tx_p3_5_u0c1: uart_tx_p3_5_u0c1 {
pinmux = <XMC4XXX_PINMUX_SET(3, 5, 4)>;
};
/omit-if-no-ref/ uart_tx_p3_8_u2c0: uart_tx_p3_8_u2c0 {
pinmux = <XMC4XXX_PINMUX_SET(3, 8, 1)>;
};
/omit-if-no-ref/ uart_tx_p3_11_u2c1: uart_tx_p3_11_u2c1 {
pinmux = <XMC4XXX_PINMUX_SET(3, 11, 1)>;
};
/omit-if-no-ref/ uart_tx_p3_13_u0c1: uart_tx_p3_13_u0c1 {
pinmux = <XMC4XXX_PINMUX_SET(3, 13, 2)>;
};
/omit-if-no-ref/ uart_tx_p3_15_u1c1: uart_tx_p3_15_u1c1 {
pinmux = <XMC4XXX_PINMUX_SET(3, 15, 2)>;
};
/omit-if-no-ref/ uart_tx_p4_2_u1c1: uart_tx_p4_2_u1c1 {
pinmux = <XMC4XXX_PINMUX_SET(4, 2, 2)>;
};
/omit-if-no-ref/ uart_tx_p4_7_u2c1: uart_tx_p4_7_u2c1 {
pinmux = <XMC4XXX_PINMUX_SET(4, 7, 1)>;
};
/omit-if-no-ref/ uart_tx_p5_0_u2c0: uart_tx_p5_0_u2c0 {
pinmux = <XMC4XXX_PINMUX_SET(5, 0, 1)>;
};
/omit-if-no-ref/ uart_tx_p5_1_u0c0: uart_tx_p5_1_u0c0 {
pinmux = <XMC4XXX_PINMUX_SET(5, 1, 1)>;
};
/omit-if-no-ref/ uart_tx_p6_4_u0c1: uart_tx_p6_4_u0c1 {
pinmux = <XMC4XXX_PINMUX_SET(6, 4, 2)>;
};
/omit-if-no-ref/ uart_tx_p6_6_u2c0: uart_tx_p6_6_u2c0 {
pinmux = <XMC4XXX_PINMUX_SET(6, 6, 1)>;
};
/omit-if-no-ref/ uart_rx_p1_4_u0c0: uart_rx_p1_4_u0c0 {
pinmux = <XMC4XXX_PINMUX_SET(1, 4, 0)>; /* USIC input src = DX0B */
};
/omit-if-no-ref/ uart_rx_p1_5_u0c0: uart_rx_p1_5_u0c0 {
pinmux = <XMC4XXX_PINMUX_SET(1, 5, 0)>; /* USIC input src = DX0A */
};
/omit-if-no-ref/ uart_rx_p4_7_u0c0: uart_rx_p4_7_u0c0 {
pinmux = <XMC4XXX_PINMUX_SET(4, 7, 0)>; /* USIC input src = DX0C */
};
/omit-if-no-ref/ uart_rx_p5_0_u0c0: uart_rx_p5_0_u0c0 {
pinmux = <XMC4XXX_PINMUX_SET(5, 0, 0)>; /* USIC input src = DX0D */
};
/omit-if-no-ref/ uart_rx_p2_2_u0c1: uart_rx_p2_2_u0c1 {
pinmux = <XMC4XXX_PINMUX_SET(2, 2, 0)>; /* USIC input src = DX0A */
};
/omit-if-no-ref/ uart_rx_p2_5_u0c1: uart_rx_p2_5_u0c1 {
pinmux = <XMC4XXX_PINMUX_SET(2, 5, 0)>; /* USIC input src = DX0B */
};
/omit-if-no-ref/ uart_rx_p3_13_u0c1: uart_rx_p3_13_u0c1 {
pinmux = <XMC4XXX_PINMUX_SET(3, 13, 0)>; /* USIC input src = DX0D */
};
/omit-if-no-ref/ uart_rx_p4_0_u0c1: uart_rx_p4_0_u0c1 {
pinmux = <XMC4XXX_PINMUX_SET(4, 0, 0)>; /* USIC input src = DX0E */
};
/omit-if-no-ref/ uart_rx_p6_3_u0c1: uart_rx_p6_3_u0c1 {
pinmux = <XMC4XXX_PINMUX_SET(6, 3, 0)>; /* USIC input src = DX0C */
};
/omit-if-no-ref/ uart_rx_p0_4_u1c0: uart_rx_p0_4_u1c0 {
pinmux = <XMC4XXX_PINMUX_SET(0, 4, 0)>; /* USIC input src = DX0A */
};
/omit-if-no-ref/ uart_rx_p0_5_u1c0: uart_rx_p0_5_u1c0 {
pinmux = <XMC4XXX_PINMUX_SET(0, 5, 0)>; /* USIC input src = DX0B */
};
/omit-if-no-ref/ uart_rx_p1_14_u1c0: uart_rx_p1_14_u1c0 {
pinmux = <XMC4XXX_PINMUX_SET(1, 14, 0)>; /* USIC input src = DX0E */
};
/omit-if-no-ref/ uart_rx_p2_14_u1c0: uart_rx_p2_14_u1c0 {
pinmux = <XMC4XXX_PINMUX_SET(2, 14, 0)>; /* USIC input src = DX0D */
};
/omit-if-no-ref/ uart_rx_p2_15_u1c0: uart_rx_p2_15_u1c0 {
pinmux = <XMC4XXX_PINMUX_SET(2, 15, 0)>; /* USIC input src = DX0C */
};
/omit-if-no-ref/ uart_rx_p0_0_u1c1: uart_rx_p0_0_u1c1 {
pinmux = <XMC4XXX_PINMUX_SET(0, 0, 0)>; /* USIC input src = DX0D */
};
/omit-if-no-ref/ uart_rx_p3_14_u1c1: uart_rx_p3_14_u1c1 {
pinmux = <XMC4XXX_PINMUX_SET(3, 14, 0)>; /* USIC input src = DX0B */
};
/omit-if-no-ref/ uart_rx_p3_15_u1c1: uart_rx_p3_15_u1c1 {
pinmux = <XMC4XXX_PINMUX_SET(3, 15, 0)>; /* USIC input src = DX0A */
};
/omit-if-no-ref/ uart_rx_p4_2_u1c1: uart_rx_p4_2_u1c1 {
pinmux = <XMC4XXX_PINMUX_SET(4, 2, 0)>; /* USIC input src = DX0C */
};
/omit-if-no-ref/ uart_rx_p3_7_u2c0: uart_rx_p3_7_u2c0 {
pinmux = <XMC4XXX_PINMUX_SET(3, 7, 0)>; /* USIC input src = DX0C */
};
/omit-if-no-ref/ uart_rx_p5_0_u2c0: uart_rx_p5_0_u2c0 {
pinmux = <XMC4XXX_PINMUX_SET(5, 0, 0)>; /* USIC input src = DX0B */
};
/omit-if-no-ref/ uart_rx_p5_1_u2c0: uart_rx_p5_1_u2c0 {
pinmux = <XMC4XXX_PINMUX_SET(5, 1, 0)>; /* USIC input src = DX0A */
};
/omit-if-no-ref/ uart_rx_p6_5_u2c0: uart_rx_p6_5_u2c0 {
pinmux = <XMC4XXX_PINMUX_SET(6, 5, 0)>; /* USIC input src = DX0D */
};
/omit-if-no-ref/ uart_rx_p3_12_u2c1: uart_rx_p3_12_u2c1 {
pinmux = <XMC4XXX_PINMUX_SET(3, 12, 0)>; /* USIC input src = DX0D */
};
/omit-if-no-ref/ uart_rx_p3_4_u2c1: uart_rx_p3_4_u2c1 {
pinmux = <XMC4XXX_PINMUX_SET(3, 4, 0)>; /* USIC input src = DX0B */
};
/omit-if-no-ref/ uart_rx_p3_5_u2c1: uart_rx_p3_5_u2c1 {
pinmux = <XMC4XXX_PINMUX_SET(3, 5, 0)>; /* USIC input src = DX0A */
};
/omit-if-no-ref/ uart_rx_p4_0_u2c1: uart_rx_p4_0_u2c1 {
pinmux = <XMC4XXX_PINMUX_SET(4, 0, 0)>; /* USIC input src = DX0C */
};
/omit-if-no-ref/ uart_rx_p4_6_u2c1: uart_rx_p4_6_u2c1 {
pinmux = <XMC4XXX_PINMUX_SET(4, 6, 0)>; /* USIC input src = DX0E */
};
/omit-if-no-ref/ spi_mosi_p0_1_u1c1: spi_mosi_p0_1_u1c1 {
pinmux = <XMC4XXX_PINMUX_SET(0, 1, 2)>;
};
/omit-if-no-ref/ spi_mosi_p0_5_u1c0: spi_mosi_p0_5_u1c0 {
pinmux = <XMC4XXX_PINMUX_SET(0, 5, 2)>;
};
/omit-if-no-ref/ spi_mosi_p1_5_u0c0: spi_mosi_p1_5_u0c0 {
pinmux = <XMC4XXX_PINMUX_SET(1, 5, 2)>;
};
/omit-if-no-ref/ spi_mosi_p1_7_u0c0: spi_mosi_p1_7_u0c0 {
pinmux = <XMC4XXX_PINMUX_SET(1, 7, 2)>;
};
/omit-if-no-ref/ spi_mosi_p1_9_u1c1: spi_mosi_p1_9_u1c1 {
pinmux = <XMC4XXX_PINMUX_SET(1, 9, 4)>;
};
/omit-if-no-ref/ spi_mosi_p1_15_u1c0: spi_mosi_p1_15_u1c0 {
pinmux = <XMC4XXX_PINMUX_SET(1, 15, 4)>;
};
/omit-if-no-ref/ spi_mosi_p2_5_u0c1: spi_mosi_p2_5_u0c1 {
pinmux = <XMC4XXX_PINMUX_SET(2, 5, 2)>;
};
/omit-if-no-ref/ spi_mosi_p2_14_u1c0: spi_mosi_p2_14_u1c0 {
pinmux = <XMC4XXX_PINMUX_SET(2, 14, 2)>;
};
/omit-if-no-ref/ spi_mosi_p3_5_u2c1: spi_mosi_p3_5_u2c1 {
pinmux = <XMC4XXX_PINMUX_SET(3, 5, 1)>;
};
/omit-if-no-ref/ spi_mosi_p3_5_u0c1: spi_mosi_p3_5_u0c1 {
pinmux = <XMC4XXX_PINMUX_SET(3, 5, 4)>;
};
/omit-if-no-ref/ spi_mosi_p3_8_u2c0: spi_mosi_p3_8_u2c0 {
pinmux = <XMC4XXX_PINMUX_SET(3, 8, 1)>;
};
/omit-if-no-ref/ spi_mosi_p3_11_u2c1: spi_mosi_p3_11_u2c1 {
pinmux = <XMC4XXX_PINMUX_SET(3, 11, 1)>;
};
/omit-if-no-ref/ spi_mosi_p3_13_u0c1: spi_mosi_p3_13_u0c1 {
pinmux = <XMC4XXX_PINMUX_SET(3, 13, 2)>;
};
/omit-if-no-ref/ spi_mosi_p3_15_u1c1: spi_mosi_p3_15_u1c1 {
pinmux = <XMC4XXX_PINMUX_SET(3, 15, 2)>;
};
/omit-if-no-ref/ spi_mosi_p4_2_u1c1: spi_mosi_p4_2_u1c1 {
pinmux = <XMC4XXX_PINMUX_SET(4, 2, 2)>;
};
/omit-if-no-ref/ spi_mosi_p4_7_u2c1: spi_mosi_p4_7_u2c1 {
pinmux = <XMC4XXX_PINMUX_SET(4, 7, 1)>;
};
/omit-if-no-ref/ spi_mosi_p5_0_u2c0: spi_mosi_p5_0_u2c0 {
pinmux = <XMC4XXX_PINMUX_SET(5, 0, 1)>;
};
/omit-if-no-ref/ spi_mosi_p5_1_u0c0: spi_mosi_p5_1_u0c0 {
pinmux = <XMC4XXX_PINMUX_SET(5, 1, 1)>;
};
/omit-if-no-ref/ spi_mosi_p6_4_u0c1: spi_mosi_p6_4_u0c1 {
pinmux = <XMC4XXX_PINMUX_SET(6, 4, 2)>;
};
/omit-if-no-ref/ spi_mosi_p6_6_u2c0: spi_mosi_p6_6_u2c0 {
pinmux = <XMC4XXX_PINMUX_SET(6, 6, 1)>;
};
/omit-if-no-ref/ spi_miso_p1_4_u0c0: spi_miso_p1_4_u0c0 {
pinmux = <XMC4XXX_PINMUX_SET(1, 4, 0)>; /* USIC input src = DX0B */
};
/omit-if-no-ref/ spi_miso_p1_5_u0c0: spi_miso_p1_5_u0c0 {
pinmux = <XMC4XXX_PINMUX_SET(1, 5, 0)>; /* USIC input src = DX0A */
};
/omit-if-no-ref/ spi_miso_p4_7_u0c0: spi_miso_p4_7_u0c0 {
pinmux = <XMC4XXX_PINMUX_SET(4, 7, 0)>; /* USIC input src = DX0C */
};
/omit-if-no-ref/ spi_miso_p5_0_u0c0: spi_miso_p5_0_u0c0 {
pinmux = <XMC4XXX_PINMUX_SET(5, 0, 0)>; /* USIC input src = DX0D */
};
/omit-if-no-ref/ spi_miso_p2_2_u0c1: spi_miso_p2_2_u0c1 {
pinmux = <XMC4XXX_PINMUX_SET(2, 2, 0)>; /* USIC input src = DX0A */
};
/omit-if-no-ref/ spi_miso_p2_5_u0c1: spi_miso_p2_5_u0c1 {
pinmux = <XMC4XXX_PINMUX_SET(2, 5, 0)>; /* USIC input src = DX0B */
};
/omit-if-no-ref/ spi_miso_p3_13_u0c1: spi_miso_p3_13_u0c1 {
pinmux = <XMC4XXX_PINMUX_SET(3, 13, 0)>; /* USIC input src = DX0D */
};
/omit-if-no-ref/ spi_miso_p4_0_u0c1: spi_miso_p4_0_u0c1 {
pinmux = <XMC4XXX_PINMUX_SET(4, 0, 0)>; /* USIC input src = DX0E */
};
/omit-if-no-ref/ spi_miso_p6_3_u0c1: spi_miso_p6_3_u0c1 {
pinmux = <XMC4XXX_PINMUX_SET(6, 3, 0)>; /* USIC input src = DX0C */
};
/omit-if-no-ref/ spi_miso_p0_4_u1c0: spi_miso_p0_4_u1c0 {
pinmux = <XMC4XXX_PINMUX_SET(0, 4, 0)>; /* USIC input src = DX0A */
};
/omit-if-no-ref/ spi_miso_p0_5_u1c0: spi_miso_p0_5_u1c0 {
pinmux = <XMC4XXX_PINMUX_SET(0, 5, 0)>; /* USIC input src = DX0B */
};
/omit-if-no-ref/ spi_miso_p1_14_u1c0: spi_miso_p1_14_u1c0 {
pinmux = <XMC4XXX_PINMUX_SET(1, 14, 0)>; /* USIC input src = DX0E */
};
/omit-if-no-ref/ spi_miso_p2_14_u1c0: spi_miso_p2_14_u1c0 {
pinmux = <XMC4XXX_PINMUX_SET(2, 14, 0)>; /* USIC input src = DX0D */
};
/omit-if-no-ref/ spi_miso_p2_15_u1c0: spi_miso_p2_15_u1c0 {
pinmux = <XMC4XXX_PINMUX_SET(2, 15, 0)>; /* USIC input src = DX0C */
};
/omit-if-no-ref/ spi_miso_p0_0_u1c1: spi_miso_p0_0_u1c1 {
pinmux = <XMC4XXX_PINMUX_SET(0, 0, 0)>; /* USIC input src = DX0D */
};
/omit-if-no-ref/ spi_miso_p3_14_u1c1: spi_miso_p3_14_u1c1 {
pinmux = <XMC4XXX_PINMUX_SET(3, 14, 0)>; /* USIC input src = DX0B */
};
/omit-if-no-ref/ spi_miso_p3_15_u1c1: spi_miso_p3_15_u1c1 {
pinmux = <XMC4XXX_PINMUX_SET(3, 15, 0)>; /* USIC input src = DX0A */
};
/omit-if-no-ref/ spi_miso_p4_2_u1c1: spi_miso_p4_2_u1c1 {
pinmux = <XMC4XXX_PINMUX_SET(4, 2, 0)>; /* USIC input src = DX0C */
};
/omit-if-no-ref/ spi_miso_p3_7_u2c0: spi_miso_p3_7_u2c0 {
pinmux = <XMC4XXX_PINMUX_SET(3, 7, 0)>; /* USIC input src = DX0C */
};
/omit-if-no-ref/ spi_miso_p5_0_u2c0: spi_miso_p5_0_u2c0 {
pinmux = <XMC4XXX_PINMUX_SET(5, 0, 0)>; /* USIC input src = DX0B */
};
/omit-if-no-ref/ spi_miso_p5_1_u2c0: spi_miso_p5_1_u2c0 {
pinmux = <XMC4XXX_PINMUX_SET(5, 1, 0)>; /* USIC input src = DX0A */
};
/omit-if-no-ref/ spi_miso_p6_5_u2c0: spi_miso_p6_5_u2c0 {
pinmux = <XMC4XXX_PINMUX_SET(6, 5, 0)>; /* USIC input src = DX0D */
};
/omit-if-no-ref/ spi_miso_p3_12_u2c1: spi_miso_p3_12_u2c1 {
pinmux = <XMC4XXX_PINMUX_SET(3, 12, 0)>; /* USIC input src = DX0D */
};
/omit-if-no-ref/ spi_miso_p3_4_u2c1: spi_miso_p3_4_u2c1 {
pinmux = <XMC4XXX_PINMUX_SET(3, 4, 0)>; /* USIC input src = DX0B */
};
/omit-if-no-ref/ spi_miso_p3_5_u2c1: spi_miso_p3_5_u2c1 {
pinmux = <XMC4XXX_PINMUX_SET(3, 5, 0)>; /* USIC input src = DX0A */
};
/omit-if-no-ref/ spi_miso_p4_0_u2c1: spi_miso_p4_0_u2c1 {
pinmux = <XMC4XXX_PINMUX_SET(4, 0, 0)>; /* USIC input src = DX0C */
};
/omit-if-no-ref/ spi_miso_p4_6_u2c1: spi_miso_p4_6_u2c1 {
pinmux = <XMC4XXX_PINMUX_SET(4, 6, 0)>; /* USIC input src = DX0E */
};
/omit-if-no-ref/ spi_sclk_p0_8_u0c0: spi_sclk_p0_8_u0c0 {
pinmux = <XMC4XXX_PINMUX_SET(0, 8, 2)>;
};
/omit-if-no-ref/ spi_sclk_p0_10_u1c1: spi_sclk_p0_10_u1c1 {
pinmux = <XMC4XXX_PINMUX_SET(0, 10, 2)>;
};
/omit-if-no-ref/ spi_sclk_p0_11_u1c0: spi_sclk_p0_11_u1c0 {
pinmux = <XMC4XXX_PINMUX_SET(0, 11, 2)>;
};
/omit-if-no-ref/ spi_sclk_p0_13_u1c1: spi_sclk_p0_13_u1c1 {
pinmux = <XMC4XXX_PINMUX_SET(0, 13, 2)>;
};
/omit-if-no-ref/ spi_sclk_p1_1_u0c0: spi_sclk_p1_1_u0c0 {
pinmux = <XMC4XXX_PINMUX_SET(1, 1, 2)>;
};
/omit-if-no-ref/ spi_sclk_p1_6_u0c0: spi_sclk_p1_6_u0c0 {
pinmux = <XMC4XXX_PINMUX_SET(1, 6, 2)>;
};
/omit-if-no-ref/ spi_sclk_p1_8_u1c1: spi_sclk_p1_8_u1c1 {
pinmux = <XMC4XXX_PINMUX_SET(1, 8, 4)>;
};
/omit-if-no-ref/ spi_sclk_p1_9_u0c0: spi_sclk_p1_9_u0c0 {
pinmux = <XMC4XXX_PINMUX_SET(1, 9, 1)>;
};
/omit-if-no-ref/ spi_sclk_p1_10_u0c0: spi_sclk_p1_10_u0c0 {
pinmux = <XMC4XXX_PINMUX_SET(1, 10, 2)>;
};
/omit-if-no-ref/ spi_sclk_p2_4_u0c1: spi_sclk_p2_4_u0c1 {
pinmux = <XMC4XXX_PINMUX_SET(2, 4, 2)>;
};
/omit-if-no-ref/ spi_sclk_p3_0_u0c1: spi_sclk_p3_0_u0c1 {
pinmux = <XMC4XXX_PINMUX_SET(3, 0, 2)>;
};
/omit-if-no-ref/ spi_sclk_p3_6_u2c1: spi_sclk_p3_6_u2c1 {
pinmux = <XMC4XXX_PINMUX_SET(3, 6, 1)>;
};
/omit-if-no-ref/ spi_sclk_p3_6_u0c1: spi_sclk_p3_6_u0c1 {
pinmux = <XMC4XXX_PINMUX_SET(3, 6, 4)>;
};
/omit-if-no-ref/ spi_sclk_p3_9_u2c0: spi_sclk_p3_9_u2c0 {
pinmux = <XMC4XXX_PINMUX_SET(3, 9, 1)>;
};
/omit-if-no-ref/ spi_sclk_p3_13_u2c1: spi_sclk_p3_13_u2c1 {
pinmux = <XMC4XXX_PINMUX_SET(3, 13, 1)>;
};
/omit-if-no-ref/ spi_sclk_p4_0_u1c0: spi_sclk_p4_0_u1c0 {
pinmux = <XMC4XXX_PINMUX_SET(4, 0, 4)>;
};
/omit-if-no-ref/ spi_sclk_p4_2_u2c1: spi_sclk_p4_2_u2c1 {
pinmux = <XMC4XXX_PINMUX_SET(4, 2, 4)>;
};
/omit-if-no-ref/ spi_sclk_p5_2_u2c0: spi_sclk_p5_2_u2c0 {
pinmux = <XMC4XXX_PINMUX_SET(5, 2, 1)>;
};
/omit-if-no-ref/ spi_sclk_p5_8_u1c0: spi_sclk_p5_8_u1c0 {
pinmux = <XMC4XXX_PINMUX_SET(5, 8, 2)>;
};
/omit-if-no-ref/ spi_sclk_p6_2_u0c1: spi_sclk_p6_2_u0c1 {
pinmux = <XMC4XXX_PINMUX_SET(6, 2, 2)>;
};
/omit-if-no-ref/ ebu_p0_2_ad0: ebu_p0_2_ad0 {
pinmux = <XMC4XXX_PINMUX_SET(0, 2, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p0_3_ad1: ebu_p0_3_ad1 {
pinmux = <XMC4XXX_PINMUX_SET(0, 3, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p0_4_ad2: ebu_p0_4_ad2 {
pinmux = <XMC4XXX_PINMUX_SET(0, 4, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p0_5_ad3: ebu_p0_5_ad3 {
pinmux = <XMC4XXX_PINMUX_SET(0, 5, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p0_6_adv: ebu_p0_6_adv {
pinmux = <XMC4XXX_PINMUX_SET(0, 6, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p0_7_ad6: ebu_p0_7_ad6 {
pinmux = <XMC4XXX_PINMUX_SET(0, 7, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p0_8_ad7: ebu_p0_8_ad7 {
pinmux = <XMC4XXX_PINMUX_SET(0, 8, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p0_9_cs1: ebu_p0_9_cs1 {
pinmux = <XMC4XXX_PINMUX_SET(0, 9, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p0_11_breq: ebu_p0_11_breq {
pinmux = <XMC4XXX_PINMUX_SET(0, 11, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p0_12_hlda_out: ebu_p0_12_hlda_out {
pinmux = <XMC4XXX_PINMUX_SET(0, 12, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p1_2_ad14: ebu_p1_2_ad14 {
pinmux = <XMC4XXX_PINMUX_SET(1, 2, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p1_3_ad15: ebu_p1_3_ad15 {
pinmux = <XMC4XXX_PINMUX_SET(1, 3, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p1_6_ad10: ebu_p1_6_ad10 {
pinmux = <XMC4XXX_PINMUX_SET(1, 6, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p1_7_ad11: ebu_p1_7_ad11 {
pinmux = <XMC4XXX_PINMUX_SET(1, 7, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p1_8_ad12: ebu_p1_8_ad12 {
pinmux = <XMC4XXX_PINMUX_SET(1, 8, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p1_9_ad13: ebu_p1_9_ad13 {
pinmux = <XMC4XXX_PINMUX_SET(1, 9, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p1_12_ad16: ebu_p1_12_ad16 {
pinmux = <XMC4XXX_PINMUX_SET(1, 12, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p1_13_ad17: ebu_p1_13_ad17 {
pinmux = <XMC4XXX_PINMUX_SET(1, 13, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p1_14_ad18: ebu_p1_14_ad18 {
pinmux = <XMC4XXX_PINMUX_SET(1, 14, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p1_15_ad19: ebu_p1_15_ad19 {
pinmux = <XMC4XXX_PINMUX_SET(1, 15, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p2_0_ad20: ebu_p2_0_ad20 {
pinmux = <XMC4XXX_PINMUX_SET(2, 0, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p2_1_ad21: ebu_p2_1_ad21 {
pinmux = <XMC4XXX_PINMUX_SET(2, 1, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p2_2_ad22: ebu_p2_2_ad22 {
pinmux = <XMC4XXX_PINMUX_SET(2, 2, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p2_3_ad23: ebu_p2_3_ad23 {
pinmux = <XMC4XXX_PINMUX_SET(2, 3, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p2_4_ad24: ebu_p2_4_ad24 {
pinmux = <XMC4XXX_PINMUX_SET(2, 4, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p2_5_ad25: ebu_p2_5_ad25 {
pinmux = <XMC4XXX_PINMUX_SET(2, 5, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p2_8_ad26: ebu_p2_8_ad26 {
pinmux = <XMC4XXX_PINMUX_SET(2, 8, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p2_9_ad27: ebu_p2_9_ad27 {
pinmux = <XMC4XXX_PINMUX_SET(2, 9, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p2_10_ad28: ebu_p2_10_ad28 {
pinmux = <XMC4XXX_PINMUX_SET(2, 10, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p2_11_ad29: ebu_p2_11_ad29 {
pinmux = <XMC4XXX_PINMUX_SET(2, 11, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p2_12_ad30: ebu_p2_12_ad30 {
pinmux = <XMC4XXX_PINMUX_SET(2, 12, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p2_13_ad31: ebu_p2_13_ad31 {
pinmux = <XMC4XXX_PINMUX_SET(2, 13, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p2_14_bc0: ebu_p2_14_bc0 {
pinmux = <XMC4XXX_PINMUX_SET(2, 14, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p2_15_bc1: ebu_p2_15_bc1 {
pinmux = <XMC4XXX_PINMUX_SET(2, 15, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p3_0_rd: ebu_p3_0_rd {
pinmux = <XMC4XXX_PINMUX_SET(3, 0, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p3_1_rd_nwr: ebu_p3_1_rd_nwr {
pinmux = <XMC4XXX_PINMUX_SET(3, 1, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p3_2_cs0: ebu_p3_2_cs0 {
pinmux = <XMC4XXX_PINMUX_SET(3, 2, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p3_5_ad4: ebu_p3_5_ad4 {
pinmux = <XMC4XXX_PINMUX_SET(3, 5, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p3_6_ad5: ebu_p3_6_ad5 {
pinmux = <XMC4XXX_PINMUX_SET(3, 6, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p4_0_ad8: ebu_p4_0_ad8 {
pinmux = <XMC4XXX_PINMUX_SET(4, 0, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p4_1_ad9: ebu_p4_1_ad9 {
pinmux = <XMC4XXX_PINMUX_SET(4, 1, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p5_3_cke: ebu_p5_3_cke {
pinmux = <XMC4XXX_PINMUX_SET(5, 3, 0)>;
hwctrl = "periph1";
};
/omit-if-no-ref/ ebu_p5_3_a20: ebu_p5_3_a20 {
pinmux = <XMC4XXX_PINMUX_SET(5, 3, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p5_4_ras: ebu_p5_4_ras {
pinmux = <XMC4XXX_PINMUX_SET(5, 4, 0)>;
hwctrl = "periph1";
};
/omit-if-no-ref/ ebu_p5_4_a21: ebu_p5_4_a21 {
pinmux = <XMC4XXX_PINMUX_SET(5, 4, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p5_5_cas: ebu_p5_5_cas {
pinmux = <XMC4XXX_PINMUX_SET(5, 5, 0)>;
hwctrl = "periph1";
};
/omit-if-no-ref/ ebu_p5_5_a22: ebu_p5_5_a22 {
pinmux = <XMC4XXX_PINMUX_SET(5, 5, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p5_6_bfclko: ebu_p5_6_bfclko {
pinmux = <XMC4XXX_PINMUX_SET(5, 6, 0)>;
hwctrl = "periph1";
};
/omit-if-no-ref/ ebu_p5_6_a23: ebu_p5_6_a23 {
pinmux = <XMC4XXX_PINMUX_SET(5, 6, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p5_8_sdclko: ebu_p5_8_sdclko {
pinmux = <XMC4XXX_PINMUX_SET(5, 8, 0)>;
hwctrl = "periph1";
};
/omit-if-no-ref/ ebu_p5_8_cs2: ebu_p5_8_cs2 {
pinmux = <XMC4XXX_PINMUX_SET(5, 8, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p5_9_bfclko: ebu_p5_9_bfclko {
pinmux = <XMC4XXX_PINMUX_SET(5, 9, 0)>;
hwctrl = "periph1";
};
/omit-if-no-ref/ ebu_p5_9_cs3: ebu_p5_9_cs3 {
pinmux = <XMC4XXX_PINMUX_SET(5, 9, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p6_0_a16: ebu_p6_0_a16 {
pinmux = <XMC4XXX_PINMUX_SET(6, 0, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p6_1_a17: ebu_p6_1_a17 {
pinmux = <XMC4XXX_PINMUX_SET(6, 1, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p6_2_a18: ebu_p6_2_a18 {
pinmux = <XMC4XXX_PINMUX_SET(6, 2, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p6_4_sdclko: ebu_p6_4_sdclko {
pinmux = <XMC4XXX_PINMUX_SET(6, 4, 0)>;
hwctrl = "periph1";
};
/omit-if-no-ref/ ebu_p6_4_a19: ebu_p6_4_a19 {
pinmux = <XMC4XXX_PINMUX_SET(6, 4, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p6_5_bc2: ebu_p6_5_bc2 {
pinmux = <XMC4XXX_PINMUX_SET(6, 5, 0)>;
hwctrl = "periph2";
};
/omit-if-no-ref/ ebu_p6_6_bc3: ebu_p6_6_bc3 {
pinmux = <XMC4XXX_PINMUX_SET(6, 6, 0)>;
hwctrl = "periph2";
};
};

View file

@ -0,0 +1,103 @@
/*
* Copyright (c) 2023 Schlumberger
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <mem.h>
#include <infineon/xmc4xxx.dtsi>
/ {
psram1: memory@1ffe8000 {
compatible = "mmio-sram";
reg = <0x1ffe8000 DT_SIZE_K(96)>;
};
dsram1: memory@20000000 {
compatible = "mmio-sram";
reg = <0x20000000 DT_SIZE_K(128)>;
};
dsram2: memory@20020000 {
compatible = "mmio-sram";
reg = <0x20020000 DT_SIZE_K(128)>;
};
};
&flash0 {
reg = <0xc000000 DT_SIZE_M(2)>;
pages_layout: pages_layout {
pages_layout_16k: pages_layout_16k {
pages-count = <8>;
pages-size = <DT_SIZE_K(16)>;
};
pages_layout_128k: pages_layout_128k {
pages-count = <1>;
pages-size = <DT_SIZE_K(128)>;
};
pages_layout_256k: pages_layout_256k {
pages-count = <7>;
pages-size = <DT_SIZE_K(256)>;
};
};
};
&gpio0 {
ngpios = <16>;
};
&gpio1 {
ngpios = <16>;
};
&gpio2 {
ngpios = <16>;
};
&gpio14 {
ngpios = <16>;
gpio-reserved-ranges = <10 2>;
};
&gpio15 {
ngpios = <16>;
gpio-reserved-ranges = <0 2>, <10 2>;
};
&pinctrl {
gpio3: gpio@48028300 {
compatible = "infineon,xmc4xxx-gpio";
gpio-controller;
#gpio-cells = <2>;
reg = <0x48028300 0x100>;
ngpios = <16>;
status = "disabled";
};
gpio4: gpio@48028400 {
compatible = "infineon,xmc4xxx-gpio";
gpio-controller;
#gpio-cells = <2>;
reg = <0x48028400 0x100>;
ngpios = <8>;
status = "disabled";
};
gpio5: gpio@48028500 {
compatible = "infineon,xmc4xxx-gpio";
gpio-controller;
#gpio-cells = <2>;
reg = <0x48028500 0x100>;
ngpios = <12>;
status = "disabled";
};
gpio6: gpio@48028600 {
compatible = "infineon,xmc4xxx-gpio";
gpio-controller;
#gpio-cells = <2>;
reg = <0x48028600 0x100>;
ngpios = <7>;
status = "disabled";
};
};

View file

@ -0,0 +1,17 @@
# Infineon XMC4700 relax kit platform configuration options
#
# Copyright (c) 2023 Schlumberger
# SPDX-License-Identifier: Apache-2.0
if SOC_XMC4700
config SOC
default "XMC4700"
config SYS_CLOCK_HW_CYCLES_PER_SEC
default 144000000
config NUM_IRQS
default 112
endif # SOC_XMC4700

View file

@ -12,6 +12,10 @@ config SOC_XMC4500
bool "SOC_XMC4500" bool "SOC_XMC4500"
select HAS_XMCLIB select HAS_XMCLIB
config SOC_XMC4700
bool "SOC_XMC4700"
select HAS_XMCLIB
endchoice endchoice
if SOC_SERIES_XMC_4XXX if SOC_SERIES_XMC_4XXX
@ -19,9 +23,13 @@ if SOC_SERIES_XMC_4XXX
config SOC_PART_NUMBER_F100X1024 config SOC_PART_NUMBER_F100X1024
bool bool
config SOC_PART_NUMBER_F144X2048
bool
config SOC_PART_NUMBER_XMC_4XXX config SOC_PART_NUMBER_XMC_4XXX
string string
default "F100x1024" if SOC_PART_NUMBER_F100X1024 default "F100x1024" if SOC_PART_NUMBER_F100X1024
default "F144x2048" if SOC_PART_NUMBER_F144X2048
help help
This string holds the full part number of the SoC. It is a hidden option This string holds the full part number of the SoC. It is a hidden option
that you should not set directly. The part number selection choice defines that you should not set directly. The part number selection choice defines

View file

@ -11,7 +11,11 @@
#include <zephyr/init.h> #include <zephyr/init.h>
#include <soc.h> #include <soc.h>
#ifdef CONFIG_SOC_XMC4500
#define PMU_FLASH_WS (0x3U) #define PMU_FLASH_WS (0x3U)
#elif CONFIG_SOC_XMC4700
#define PMU_FLASH_WS (0x4U)
#endif
void z_arm_platform_init(void) void z_arm_platform_init(void)
{ {

View file

@ -80,7 +80,7 @@ manifest:
groups: groups:
- hal - hal
- name: hal_infineon - name: hal_infineon
revision: 15d8a4278611fb2dc6ca52108c36ec1f4caab14e revision: 03d6f5563552022fb53f149640b127889fb3c01f
path: modules/hal/infineon path: modules/hal/infineon
groups: groups:
- hal - hal