Skip to content

Commit b3e165e

Browse files
sreeramIfxfabiobaltieri
authored andcommitted
boards: infineon: psc3m5_evk: Adding folder structure for PSC3M5_EVK
* Adding folder structure and first pass config for PCS3M5_EVK * Adding dtsi, kconfig, and other files for KIT_PSC3M5_EVK evaluation board. Signed-off-by: Sreeram Tatapudi <[email protected]>
1 parent 01972a1 commit b3e165e

15 files changed

+440
-0
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# The Infineon PSOC™ Control C3M5 Evaluation Kit (KIT_PSC3M5_EVK)
2+
3+
# Copyright (c) 2025 Cypress Semiconductor Corporation.
4+
# SPDX-License-Identifier: Apache-2.0
5+
6+
config BOARD_KIT_PSC3M5_EVK
7+
select SOC_PSC3M5FDS2AFQ1
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Copyright (c) 2025 Cypress Semiconductor Corporation.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
board_runner_args(openocd "--target-handle=TARGET.cm33")
5+
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
board:
2+
name: kit_psc3m5_evk
3+
full_name: PSOC Control C3M5 Evaluation Kit
4+
vendor: infineon
5+
socs:
6+
- name: psc3m5fds2afq1
7+
variants:
8+
- name: 'ns'
Binary file not shown.
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
.. zephyr:board:: kit_psc3m5_evk
2+
3+
Overview
4+
********
5+
6+
This is the standard evaluation board for the PSOC™ Control C3 family of MCU's. PSOC™ Control C3M5
7+
is a high-performance and low-power 32-bit single-core Arm® Cortex® M33-based MCU.
8+
In addition to the CPU subsystem, the devices contain advanced real-time control peripherals,
9+
such as a high-performance programmable analog subsystem, comparators, advanced timers with
10+
high-resolution capability, up to six SCBs, and two CAN FDs for communication.
11+
12+
Hardware
13+
********
14+
15+
For more information about the PSC3M5 SoC and KIT_PSC3M5_EVK board:
16+
17+
- `PSOC Control C3 SoC Website`_
18+
- `KIT_PSC3M5_EVK Board Website`_
19+
20+
Kit Features:
21+
=============
22+
23+
- Onboard programmer/debugger (KitProg3)
24+
- PSC3M5FDS2AFQ1
25+
- Type-C USB device interface
26+
- Operating voltage of 3.3 V
27+
- CAN FD interface
28+
- Headers for MIKROE's mikroBUS shields
29+
- Headers compatible with Arduino Uno R3
30+
- Mode button and a mode LED for KitProg3
31+
- Potentionmeter to simulate analog output
32+
- Two (40-pin) expansion headers
33+
34+
Kit Contents:
35+
=============
36+
37+
- EVK board
38+
- Type C to USB A cable
39+
- Quick Start Guide
40+
41+
42+
Supported Features
43+
==================
44+
45+
.. zephyr:board-supported-hw::
46+
47+
48+
Build blinking led sample
49+
*************************
50+
51+
Here is an example for building the :zephyr:code-sample:`blinky` sample application.
52+
53+
.. zephyr-app-commands::
54+
:zephyr-app: samples/basic/blinky
55+
:board: kit_psc3m5_evk
56+
:goals: build
57+
58+
Programming and Debugging
59+
*************************
60+
61+
.. zephyr:board-supported-runners::
62+
63+
The KIT_PSC3M5_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.
64+
65+
Infineon OpenOCD Installation
66+
=============================
67+
68+
Both the full `ModusToolbox`_ and the `ModusToolbox Programming Tools`_ packages include Infineon OpenOCD. Installing either of these packages will also install Infineon OpenOCD. 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.
69+
70+
.. 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``.
71+
72+
West Commands
73+
=============
74+
75+
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``.
76+
77+
.. tabs::
78+
.. group-tab:: Windows
79+
80+
.. code-block:: shell
81+
82+
# Run west config once to set permanent CMake argument
83+
west config build.cmake-args -- -DOPENOCD=path/to/infineon/openocd/bin/openocd.exe
84+
85+
# Do a pristine build once after setting CMake argument
86+
west build -b kit_psc3m5_evk -p always samples/basic/blinky
87+
88+
west flash
89+
west debug
90+
91+
.. group-tab:: Linux
92+
93+
.. code-block:: shell
94+
95+
# Run west config once to set permanent CMake argument
96+
west config build.cmake-args -- -DOPENOCD=path/to/infineon/openocd/bin/openocd
97+
98+
# Do a pristine build once after setting CMake argument
99+
west build -b kit_psc3m5_evk -p always samples/basic/blinky
100+
101+
west flash
102+
west debug
103+
104+
Once the gdb console starts after executing the west debug command, you may now set breakpoints and perform other standard GDB debugging on the CYW20829 CM33 core.
105+
106+
.. _PSOC Control C3 SoC Website:
107+
https://www.infineon.com/cms/en/product/microcontroller/32-bit-psoc-arm-cortex-microcontroller/32-bit-psoc-control-arm-cortex-m33-mcu/
108+
109+
.. _KIT_PSC3M5_EVK Board Website:
110+
https://www.infineon.com/cms/en/product/evaluation-boards/kit_psc3m5_evk/
111+
112+
.. _ModusToolbox:
113+
https://softwaretools.infineon.com/tools/com.ifx.tb.tool.modustoolbox
114+
115+
.. _ModusToolbox Programming Tools:
116+
https://softwaretools.infineon.com/tools/com.ifx.tb.tool.modustoolboxprogtools
117+
118+
.. _Infineon OpenOCD:
119+
https://github.com/Infineon/openocd/releases/latest
120+
121+
.. _KitProg3:
122+
https://github.com/Infineon/KitProg3
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
/*
2+
* Copyright (c) 2025 Cypress Semiconductor Corporation.
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
#include <zephyr/dt-bindings/input/input-event-codes.h>
7+
8+
/ {
9+
aliases {
10+
led0 = &user_led0;
11+
led1 = &user_led1;
12+
sw0 = &user_bt0;
13+
sw1 = &user_bt1;
14+
};
15+
16+
leds {
17+
compatible = "gpio-leds";
18+
19+
user_led0: led_0 {
20+
label = "LED_0";
21+
gpios = <&gpio_prt8 5 GPIO_ACTIVE_LOW>;
22+
};
23+
24+
user_led1: led_1 {
25+
label = "LED_1";
26+
gpios = <&gpio_prt8 4 GPIO_ACTIVE_LOW>;
27+
};
28+
};
29+
30+
gpio_keys {
31+
compatible = "gpio-keys";
32+
33+
user_bt0: user_btn0 {
34+
label = "SW_1";
35+
gpios = <&gpio_prt5 0 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
36+
zephyr,code = <INPUT_KEY_0>;
37+
};
38+
39+
user_bt1: user_btn1 {
40+
label = "SW_2";
41+
gpios = <&gpio_prt2 0 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
42+
zephyr,code = <INPUT_KEY_1>;
43+
};
44+
};
45+
};
46+
47+
&gpio_prt0 {
48+
status = "okay";
49+
};
50+
51+
&gpio_prt1 {
52+
status = "okay";
53+
};
54+
55+
&gpio_prt2 {
56+
status = "okay";
57+
};
58+
59+
&gpio_prt3 {
60+
status = "okay";
61+
};
62+
63+
&gpio_prt5 {
64+
status = "okay";
65+
};
66+
67+
&gpio_prt8 {
68+
status = "okay";
69+
};
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
/*
2+
* Copyright (c) 2025 Cypress Semiconductor Corporation.
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
/dts-v1/;
7+
#include <arm/infineon/cat1b/mpns/psc3m5fds2afq1_s.dtsi>
8+
#include <arm/infineon/cat1b/psc3/system_clocks.dtsi>
9+
#include <arm/infineon/cat1b/psc3/psc3_partition.dtsi>
10+
#include "kit_psc3m5_evk-common.dtsi"
11+
12+
/ {
13+
model = "The Infineon PSOC™ Control C3M5 Evaluation Kit";
14+
compatible = "infineon,kit_psc3m5_evk", "infineon,PSC3M5";
15+
16+
aliases {
17+
watchdog0 = &watchdog0;
18+
};
19+
20+
chosen {
21+
zephyr,sram = &sram0;
22+
zephyr,flash = &slot0_partition;
23+
zephyr,console = &uart1;
24+
zephyr,shell-uart = &uart1;
25+
};
26+
};
27+
28+
uart1: &scb3 {
29+
compatible = "infineon,cat1-uart";
30+
status = "okay";
31+
current-speed = <115200>;
32+
33+
pinctrl-0 = <&p6_3_scb3_uart_tx &p6_2_scb3_uart_rx &p6_1_scb3_uart_rts &p6_0_scb3_uart_cts>;
34+
pinctrl-names = "default";
35+
};
36+
37+
&path_mux0 {
38+
status = "okay";
39+
};
40+
41+
&path_mux1 {
42+
status = "okay";
43+
};
44+
45+
&path_mux2 {
46+
status = "okay";
47+
};
48+
49+
&path_mux3 {
50+
status = "okay";
51+
};
52+
53+
&clk_hf0 {
54+
status = "okay";
55+
clocks = <&fll0>;
56+
};
57+
58+
&clk_hf1 {
59+
status = "okay";
60+
};
61+
62+
&clk_hf2 {
63+
status = "okay";
64+
};
65+
66+
&clk_hf3 {
67+
status = "okay";
68+
};
69+
70+
&watchdog0 {
71+
status = "okay";
72+
};
73+
74+
&mcwdt0 {
75+
status = "okay";
76+
};
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#
2+
# Copyright (c) 2025 Cypress Semiconductor Corporation.
3+
# SPDX-License-Identifier: Apache-2.0
4+
#
5+
6+
identifier: kit_psc3m5_evk
7+
name: The Infineon PSOC™ Control C3M5 Evaluation Kit (KIT_PSC3M5_EVK)
8+
type: mcu
9+
arch: arm
10+
ram: 64
11+
flash: 256
12+
toolchain:
13+
- zephyr
14+
- gnuarmemb
15+
supported:
16+
- gpio
17+
vendor: infineon
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#
2+
# Copyright (c) 2025 Cypress Semiconductor Corporation.
3+
# SPDX-License-Identifier: Apache-2.0
4+
#
5+
6+
# General configuration
7+
CONFIG_ARM_MPU=y
8+
CONFIG_HW_STACK_PROTECTION=y
9+
CONFIG_TRUSTED_EXECUTION_SECURE=y

0 commit comments

Comments
 (0)