Skip to content

Commit f96e6cc

Browse files
sreeramIfxnashif
authored andcommitted
boards: arm: Introduce Infineon CYW920829M2EVK-02 board
- Add initial version of CYW920829M2EVK-02 board - [drivers: clock_control] Make it possible to set up both iho and imo clocks instead of just one or the other Signed-off-by: Sreeram Tatapudi <sreeram.praveen@infineon.com>
1 parent 33db820 commit f96e6cc

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+2952
-12
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# The Infineon AIROC™ CYW20829 Bluetooth® LE evaluation kit (CYW92089M2EVK-02)
2+
3+
# Copyright (c) 2024 Cypress Semiconductor Corporation.
4+
# SPDX-License-Identifier: Apache-2.0
5+
6+
config BOARD_CYW920829M2EVK_02
7+
select SOC_CYW20829B0LKML
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Copyright (c) 2024 Cypress Semiconductor Corporation.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
board:
2+
name: cyw920829m2evk_02
3+
vendor: infineon
4+
socs:
5+
- name: cyw20829b0lkml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/*
2+
* Copyright (c) 2024 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+
user_led0: led_0 {
19+
label = "LED_0";
20+
gpios = <&gpio_prt1 1 GPIO_ACTIVE_LOW>;
21+
};
22+
23+
user_led1: led_1 {
24+
label = "LED_1";
25+
gpios = <&gpio_prt5 2 GPIO_ACTIVE_LOW>;
26+
};
27+
};
28+
29+
gpio_keys {
30+
compatible = "gpio-keys";
31+
32+
user_bt0: user_btn0 {
33+
label = "SW_1";
34+
gpios = <&gpio_prt0 5 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
35+
zephyr,code = <INPUT_KEY_0>;
36+
};
37+
38+
user_bt1: user_btn1 {
39+
label = "SW_2";
40+
gpios = <&gpio_prt1 0 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
41+
zephyr,code = <INPUT_KEY_1>;
42+
};
43+
};
44+
};
45+
46+
&gpio_prt0 {
47+
status = "okay";
48+
};
49+
50+
&gpio_prt1 {
51+
status = "okay";
52+
};
53+
54+
&gpio_prt3 {
55+
status = "okay";
56+
};
57+
58+
&gpio_prt5 {
59+
status = "okay";
60+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
/*
2+
* Copyright (c) 2024 Cypress Semiconductor Corporation.
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
/* Configure pin control bias mode for uart2 pins */
7+
&p3_3_scb2_uart_tx {
8+
drive-push-pull;
9+
};
10+
11+
&p3_2_scb2_uart_rx {
12+
input-enable;
13+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
/*
2+
* Copyright (c) 2024 Cypress Semiconductor Corporation.
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
/dts-v1/;
7+
#include <arm/infineon/cat1b/mpns/CYW20829B0LKML.dtsi>
8+
#include <arm/infineon/cat1b/cyw20829/system_clocks.dtsi>
9+
#include "cyw920829m2evk_02-common.dtsi"
10+
#include "cyw920829m2evk_02-pinctrl.dtsi"
11+
12+
/ {
13+
model = "The Infineon AIROC™ CYW20829 Bluetooth® LE evaluation kit (CYW92089M2EVK-02)";
14+
compatible = "infineon,cyw920829m2evk_02", "infineon,CYW20829";
15+
16+
chosen {
17+
zephyr,sram = &sram0;
18+
zephyr,flash = &app_region;
19+
zephyr,console = &uart2;
20+
zephyr,shell-uart = &uart2;
21+
};
22+
};
23+
24+
&nvic {
25+
arm,num-irq-priority-bits = <3>;
26+
};
27+
28+
uart2: &scb2 {
29+
compatible = "infineon,cat1-uart";
30+
status = "okay";
31+
current-speed = <115200>;
32+
33+
pinctrl-0 = <&p3_3_scb2_uart_tx &p3_2_scb2_uart_rx>;
34+
pinctrl-names = "default";
35+
};
36+
37+
&fll0 {
38+
status = "okay";
39+
};
40+
41+
&path_mux0 {
42+
status = "okay";
43+
};
44+
45+
&path_mux1 {
46+
status = "okay";
47+
};
48+
49+
&path_mux2 {
50+
status = "okay";
51+
};
52+
53+
&path_mux3 {
54+
status = "okay";
55+
};
56+
57+
&clk_hf0 {
58+
status = "okay";
59+
clocks = <&fll0>;
60+
};
61+
62+
&clk_hf1 {
63+
status = "okay";
64+
};
65+
66+
&clk_hf2 {
67+
status = "okay";
68+
};
69+
70+
&clk_hf3 {
71+
status = "okay";
72+
};
73+
74+
&flash_controller {
75+
76+
flash0: flash@60000000 {
77+
compatible = "soc-nv-flash";
78+
reg = <0x60000000 DT_SIZE_K(512)>;
79+
write-block-size = <16>;
80+
erase-block-size = <256>;
81+
82+
partitions {
83+
compatible = "fixed-partitions";
84+
#address-cells = <1>;
85+
#size-cells = <1>;
86+
87+
toc2_region: flash@60000000 {
88+
compatible = "zephyr,memory-region", "soc-nv-flash";
89+
zephyr,memory-region = "APP_HEADER_FLASH";
90+
reg = <0x60000000 0x50>;
91+
};
92+
bootstrap_region: flash@60000050 {
93+
compatible = "zephyr,memory-region", "soc-nv-flash";
94+
zephyr,memory-region = "BOOTSTRAP_FLASH";
95+
reg = <0x60000050 0x2550>;
96+
};
97+
app_region: flash@60002600 {
98+
compatible = "soc-nv-flash";
99+
reg = <0x60002600 0x5da00>;
100+
};
101+
storage_partition: flash@60060000 {
102+
compatible = "soc-nv-flash";
103+
reg = <0x60060000 0x20000>;
104+
};
105+
};
106+
};
107+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#
2+
# Copyright (c) 2024 Cypress Semiconductor Corporation.
3+
# SPDX-License-Identifier: Apache-2.0
4+
#
5+
6+
identifier: cyw920829m2evk_02
7+
name: The Infineon AIROC™ CYW20829 Bluetooth® LE evaluation kit (CYW92089M2EVK-02)
8+
type: mcu
9+
arch: arm
10+
ram: 1024
11+
flash: 2048
12+
toolchain:
13+
- zephyr
14+
- gnuarmemb
15+
supported:
16+
- gpio
17+
- uart
18+
- clock_control
19+
- bluetooth
20+
21+
vendor: infineon
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#
2+
# Copyright (c) 2024 Cypress Semiconductor Corporation.
3+
# SPDX-License-Identifier: Apache-2.0
4+
#
5+
6+
# General configuration
7+
CONFIG_CORTEX_M_SYSTICK=y
8+
CONFIG_BUILD_OUTPUT_HEX=y
9+
CONFIG_BUILD_OUTPUT_BIN=y
10+
11+
CONFIG_ARM_MPU=y
12+
CONFIG_HW_STACK_PROTECTION=y
13+
14+
# Enable console
15+
CONFIG_CONSOLE=y
16+
CONFIG_UART_CONSOLE=y
17+
18+
# Enable UART driver
19+
CONFIG_SERIAL=y
20+
21+
# Enable pin controller
22+
CONFIG_PINCTRL=y
23+
24+
# Enable GPIO driver
25+
CONFIG_GPIO=y
26+
27+
# Enable clock controller
28+
CONFIG_CLOCK_CONTROL=y
29+
30+
# Main Stack Size
31+
CONFIG_MAIN_STACK_SIZE=2048
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
.. _cyw920829m2evk_02:
2+
3+
INFINEON CYW920829M2EVK-02
4+
############################
5+
6+
Overview
7+
********
8+
9+
The AIROC™ CYW20829 Bluetooth® LE MCU Evaluation Kit (CYW920829M2EVK-02) with its included on-board peripherals enables evaluation, prototyping, and development of a wide array of Bluetooth® Low Energy applications, all on Infineon's low power, high performance AIROC™ CYW20829. The AIROC™ CYW20829's robust RF performance and 10 dBm TX output power without an external power amplifier (PA). This provides enough link budget for the entire spectrum of Bluetooth® LE use cases including industrial IoT applications, smart home, asset tracking, beacons and sensors, and medical devices.
10+
11+
The system features Dual Arm® Cortex® - M33s for powering the MCU and Bluetooth subsystem with programmable and reconfigurable analog and digital blocks. In addition, on the kit, there is a suite of on-board peripherals including six-axis inertial measurement unit (IMU), thermistor, analog mic, user programmable buttons (2), LEDs (2), and RGB LED. There is also extensive GPIO support with extended headers and Arduino Uno R3 compatibility for third-party shields.
12+
13+
.. image:: img/cyw920829m2evk_02.webp
14+
:align: center
15+
:alt: CYW920829M2EVK_02
16+
17+
Hardware
18+
********
19+
20+
For more information about the CYW20829 SoC and CYW920829M2EVK-02 board:
21+
22+
- `CYW920829M2EVK-02 Website`_
23+
- `CYW920829M2EVK-02 BT User Guide`_
24+
25+
26+
Kit Features:
27+
=============
28+
29+
- AIROC™ CYW20829 Bluetooth® LE MCU in 56 pin QFN package
30+
- Arduino compatible headers for hardware expansion
31+
- On-board sensors - 6-axis IMU, Thermistor, Infineon analog microphone, and Infineon digital microphone
32+
- User switches, RGB LED and user LEDs
33+
- USB connector for power, programming and USB-UART bridge
34+
35+
Kit Contents:
36+
=============
37+
38+
- CYW20829 evaluation board (CYW9BTM2BASE3+CYW920829M2IPA2)
39+
- USB Type-A to Micro-B cable
40+
- Six jumper wires (five inches each)
41+
- Quick start guide
42+
43+
44+
Supported Features
45+
==================
46+
47+
The board configuration supports the following hardware features:
48+
49+
+-----------+------------+-----------------------+
50+
| Interface | Controller | Driver/Component |
51+
+===========+============+=======================+
52+
| NVIC | on-chip | nested vectored |
53+
| | | interrupt controller |
54+
+-----------+------------+-----------------------+
55+
| SYSTICK | on-chip | system clock |
56+
+-----------+------------+-----------------------+
57+
| GPIO | on-chip | GPIO |
58+
+-----------+------------+-----------------------+
59+
| UART | on-chip | serial port-polling; |
60+
| | | serial port-interrupt |
61+
+-----------+------------+-----------------------+
62+
63+
64+
The default configuration can be found in the Kconfig
65+
66+
:zephyr_file:`boards/infineon/cyw920829m2evk_02/cyw920829m2evk_02_defconfig`
67+
68+
System Clock
69+
============
70+
71+
The AIROC™ CYW20829 Bluetooth® MCU SoC is configured to use the internal IMO+FLL as a source for
72+
the system clock. Other sources for the system clock are provided in the SOC, depending on your
73+
system requirements.
74+
75+
Build blinking led sample
76+
*************************
77+
78+
Here is an example for the :zephyr:code-sample:`blinky` application.
79+
80+
.. zephyr-app-commands::
81+
:zephyr-app: samples/basic/blinky
82+
:board: cyw920829m2evk_02
83+
:goals: build flash
84+
85+
OpenOCD Installation
86+
====================
87+
88+
To get the OpenOCD package, it is required that you
89+
90+
1. Download and install the `ModusToolbox`_ software.
91+
2. After the installation, add the directory containing the OpenOCD scripts to your environment's PATH variable.
92+
93+
94+
Programming and Debugging
95+
*************************
96+
97+
The CYW920829M2EVK-02 includes an onboard programmer/debugger (KitProg3) to provide debugging, flash programming, and serial communication over USB. Flash and debug commands must be pointed to the Cypress OpenOCD you downloaded above.
98+
99+
On Windows:
100+
101+
.. code-block:: console
102+
103+
west flash --openocd path/to/infineon/openocd/bin/openocd.exe
104+
west debug --openocd path/to/infineon/openocd/bin/openocd.exe
105+
106+
On Linux:
107+
108+
.. code-block:: console
109+
110+
west flash --openocd path/to/infineon/openocd/bin/openocd
111+
west debug --openocd path/to/infineon/openocd/bin/openocd
112+
113+
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.
114+
115+
.. _CYW920829M2EVK-02 Website:
116+
https://www.infineon.com/cms/en/product/wireless-connectivity/airoc-bluetooth-le-bluetooth-multiprotocol/airoc-bluetooth-le/cyw20829/
117+
118+
.. _CYW920829M2EVK-02 BT User Guide:
119+
https://www.infineon.com/cms/en/product/wireless-connectivity/airoc-bluetooth-le-bluetooth-multiprotocol/airoc-bluetooth-le/cyw20829/#!?fileId=8ac78c8c8929aa4d018a16f726c46b26
120+
121+
.. _ModusToolbox:
122+
https://softwaretools.infineon.com/tools/com.ifx.tb.tool.modustoolbox
123+
124+
.. _Infineon OpenOCD:
125+
https://github.com/infineon/openocd/releases/tag/release-v4.3.0
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#
2+
# Copyright (c) 2018 Linaro Limited.
3+
#
4+
# SPDX-License-Identifier: Apache-2.0
5+
6+
source [find interface/kitprog3.cfg]
7+
8+
transport select swd
9+
10+
source [find target/cyw20829.cfg]

0 commit comments

Comments
 (0)