Skip to content

Commit fda8048

Browse files
boards: infineon: add CY8CPROTO-041TP board support
Add board porting for the Infineon CY8CPROTO-041TP evaluation kit: - Board devicetree and pinctrl configuration - Kconfig and YAML definitions - Documentation - Support for west build, west flash, and west debug (OpenOCD) Signed-off-by: Manojkumar Konisetty <[email protected]> Signed-off-by: Sayooj K Karun <[email protected]> Signed-off-by: Deepika aerlync <[email protected]>
1 parent 4214b63 commit fda8048

File tree

9 files changed

+244
-0
lines changed

9 files changed

+244
-0
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Copyright (c) 2025 Infineon Technologies AG,
2+
# or an affiliate of Infineon Technologies AG.
3+
#
4+
# SPDX-License-Identifier: Apache-2.0
5+
6+
config BOARD_CY8CPROTO_041TP
7+
select SOC_CY8C4147AZQ_T495
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Copyright (c) 2025 Infineon Technologies AG,
2+
# or an affiliate of Infineon Technologies AG.
3+
#
4+
# SPDX-License-Identifier: Apache-2.0
5+
6+
# OpenOCD cfg
7+
board_runner_args(openocd "--config=${ZEPHYR_BASE}/boards/infineon/cy8cproto_041tp/support/openocd.cfg")
8+
9+
# Include standard OpenOCD runner helpers
10+
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Copyright (c) 2025 Infineon Technologies AG,
2+
# or an affiliate of Infineon Technologies AG.
3+
#
4+
# SPDX-License-Identifier: Apache-2.0
5+
6+
board:
7+
name: cy8cproto_041tp
8+
full_name: CY8CPROTO-041TP
9+
vendor: infineon
10+
socs:
11+
- name: cy8c4147azq_t495
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/*
2+
* Copyright (c) 2025 Infineon Technologies AG,
3+
* or an affiliate of Infineon Technologies AG.
4+
*
5+
* SPDX-License-Identifier: Apache-2.0
6+
*/
7+
8+
/* Configure pin drive mode for uart pins */
9+
&p5_2_scb0_uart_tx {
10+
drive-push-pull;
11+
};
12+
13+
&p5_1_scb0_uart_rx {
14+
input-enable;
15+
};
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/*
2+
* Copyright (c) 2025 Infineon Technologies AG,
3+
* or an affiliate of Infineon Technologies AG.
4+
*
5+
* SPDX-License-Identifier: Apache-2.0
6+
*/
7+
8+
/dts-v1/;
9+
#include <arm/infineon/psoc4/mpns/cy8c4147azq_t495.dtsi>
10+
#include <arm/infineon/psoc4/psoc4100tp/system_clocks.dtsi>
11+
#include "cy8cproto_041tp-pinctrl.dtsi"
12+
13+
/ {
14+
model = "CY8CPROTO-041TP Development Board";
15+
compatible = "infineon,cy8cproto-041tp", "infineon,psoc4100tp";
16+
17+
chosen {
18+
zephyr,sram = &sram0;
19+
zephyr,flash = &flash0;
20+
zephyr,console = &uart0;
21+
zephyr,shell-uart = &uart0;
22+
};
23+
};
24+
25+
uart0: &scb0 {
26+
compatible = "infineon,cat1-uart-pdl";
27+
status = "okay";
28+
current-speed = <115200>;
29+
clocks = <&peri0_group0_16bit_0>;
30+
pinctrl-0 = <&p5_2_scb0_uart_tx &p5_1_scb0_uart_rx>;
31+
pinctrl-names = "default";
32+
};
33+
34+
&peri0_group0_16bit_0 {
35+
status = "okay";
36+
resource-type = <IFX_RSC_SCB>;
37+
resource-instance = <0>;
38+
clock-div = <26>;
39+
};
40+
41+
&hf_clk_sel {
42+
status = "okay";
43+
};
44+
45+
&clk_hf0 {
46+
status = "okay";
47+
};
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Copyright (c) 2025 Infineon Technologies AG,
2+
# or an affiliate of Infineon Technologies AG.
3+
#
4+
# SPDX-License-Identifier: Apache-2.0
5+
6+
identifier: cy8cproto_041tp
7+
name: CY8CPROTO-041TP Development Board
8+
type: mcu
9+
arch: arm
10+
ram: 32
11+
flash: 128
12+
toolchain:
13+
- zephyr
14+
- gnuarmemb
15+
supported:
16+
- uart
17+
- clock_control
18+
- pin_ctrl
19+
vendor: infineon
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Copyright (c) 2025 Infineon Technologies AG,
2+
# or an affiliate of Infineon Technologies AG.
3+
#
4+
# SPDX-License-Identifier: Apache-2.0
5+
6+
# Console
7+
CONFIG_CONSOLE=y
8+
CONFIG_UART_CONSOLE=y
9+
10+
# UART driver
11+
CONFIG_SERIAL=y
12+
13+
# Clock controller
14+
CONFIG_CLOCK_CONTROL=y
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
.. zephyr:board:: cy8cproto_041tp
2+
3+
Overview
4+
********
5+
6+
The PSOC™ 4100T Plus evaluation kit enables you to evaluate and develop applications using the PSOC™ 4100T Plus microcontroller, part of Infineon’s PSOC™ 4 family.
7+
The device integrates an Arm Cortex-M0 CPU running up to 48 MHz, combining programmable analog and digital subsystems to support flexible mixed-signal designs. It features up to 128 KB Flash and 16 KB SRAM, and includes a wide range of configurable peripherals such as SAR ADC, comparators, opamps (CTBm), CapSense™ capacitive touch sensing, and TCPWM for timer/counter/PWM functionality.
8+
9+
32-bit MCU subsystem
10+
- 48-MHz Arm® Cortex®-M0+ CPU with single-cycle multiply
11+
- Up to 128 KB of flash with read accelerator
12+
- Up to 32 KB of SRAM
13+
- Direct memory access (DMA)
14+
- Low-power 1.71 V to 5.5 V operation
15+
- Deep sleep mode with 6 μA always-on touch sensing
16+
- Active touch detection and tracking with 200 μA (average)
17+
- Real Time clock-SW is available
18+
- Power supply: 3.3 V or 5 V operation
19+
20+
Programming and Debugging
21+
*************************
22+
23+
.. zephyr:board-supported-runners::
24+
25+
Building
26+
========
27+
28+
Here is an example for building the :zephyr:code-sample:`hello_world` sample application.
29+
30+
.. zephyr-app-commands::
31+
:zephyr-app: samples/hello_world
32+
:board: cy8cproto_041tp
33+
:goals: build
34+
35+
Flashing
36+
========
37+
38+
The KIT_XMC72_EVK includes an onboard programmer/debugger (`KitProg3`_) to provide debugging, flash programming, and serial communication over USB. Flash and debug commands use OpenOCD and require a custom Infineon OpenOCD version, that supports KitProg3, to be installed.
39+
40+
Infineon OpenOCD Installation
41+
=============================
42+
43+
Both the full `ModusToolbox`_ and the `ModusToolbox Programming Tools`_ packages include Infineon OpenOCD.
44+
Installing either of these packages will also install Infineon OpenOCD.
45+
46+
If neither package is installed, a minimal installation can be done by downloading the `Infineon OpenOCD`_ release for your system and manually extract the files to a location of your choice.
47+
48+
.. note:: Linux requires device access rights to be set up for KitProg3. This is handled automatically by the ModusToolbox and ModusToolbox Programming Tools installations. When doing a minimal installation, this can be done manually by executing the script ``openocd/udev_rules/install_rules.sh``.
49+
50+
West Commands
51+
=============
52+
53+
The path to the installed Infineon OpenOCD executable must be available to the ``west`` tool commands. There are multiple ways of doing this. The example below uses a permanent CMake argument to set the CMake variable ``OPENOCD``.
54+
55+
.. tabs::
56+
.. group-tab:: Windows
57+
58+
.. code-block:: shell
59+
60+
# Run west config once to set permanent CMake argument
61+
west config build.cmake-args -- -DOPENOCD=path/to/infineon/openocd/bin/openocd.exe
62+
63+
# Do a pristine build once after setting CMake argument
64+
west build -b cy8cproto_041tp -p always samples/hello_world
65+
66+
west flash
67+
west debug
68+
69+
.. group-tab:: Linux
70+
71+
.. code-block:: shell
72+
73+
# Run west config once to set permanent CMake argument
74+
west config build.cmake-args -- -DOPENOCD=path/to/infineon/openocd/bin/openocd
75+
76+
# Do a pristine build once after setting CMake argument
77+
west build -b cy8cproto_041tp -p always samples/hello_world
78+
79+
west flash
80+
west debug
81+
82+
Once the gdb console starts after executing the west debug command, you may now set breakpoints and perform other standard GDB debugging.
83+
84+
References
85+
**********
86+
87+
.. target-notes::
88+
89+
.. _cy8cproto_041tp Board Website:
90+
https://www.infineon.com/evaluation-board/CY8CPROTO-041TP
91+
92+
.. _ModusToolbox:
93+
https://www.infineon.com/design-resources/development-tools/sdk/modustoolbox-software
94+
95+
.. _ModusToolbox Programming Tools:
96+
https://www.infineon.com/design-resources/development-tools/sdk/modustoolbox-software/modustoolbox-programming-tools
97+
98+
.. _Infineon OpenOCD:
99+
https://github.com/Infineon/openocd/releases/latest
100+
101+
.. _KitProg3:
102+
https://github.com/Infineon/KitProg3
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Copyright (c) 2025 Infineon Technologies AG,
2+
# or an affiliate of Infineon Technologies AG.
3+
#
4+
# SPDX-License-Identifier: Apache-2.0
5+
6+
# Use KitProg3 interface
7+
source [find interface/kitprog3.cfg]
8+
9+
set ENABLE_ACQUIRE 0
10+
set PSOC4_USE_ACQUIRE 0
11+
transport select swd
12+
13+
# Target configuration for PSoC4
14+
source [find target/infineon/psoc4.cfg]
15+
16+
# Optional: specify a particular KitProg3 debugger if multiple are connected
17+
if { [info exists _ZEPHYR_BOARD_SERIAL] } {
18+
adapter serial $_ZEPHYR_BOARD_SERIAL
19+
}

0 commit comments

Comments
 (0)