Skip to content

Commit c9c9706

Browse files
committed
Merge branch 'esp-matter/add_esp32c61_support' into 'main'
Target: add esp32c61 support See merge request app-frameworks/esp-matter!1241
2 parents 99f263e + f5b2c6b commit c9c9706

File tree

15 files changed

+119
-18
lines changed

15 files changed

+119
-18
lines changed

.gitlab-ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -680,7 +680,7 @@ build_docs:
680680
script:
681681
- cd docs
682682
- pip install -r requirements.txt
683-
- build-docs -bs html latex -t esp32 esp32s3 esp32c2 esp32c3 esp32c6 esp32h2 esp32p4 esp32c5 -l en
683+
- build-docs -bs html latex -t esp32 esp32s3 esp32c2 esp32c3 esp32c6 esp32h2 esp32p4 esp32c5 esp32c61 -l en
684684
# disable link checks for now, as it is failing due to some links taking longer time to respond
685685
# - build-docs -t esp32 -l en linkcheck
686686

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ section in the ESP-Matter Programming Guide.
3131

3232
- This SDK currently works with commit [bdc38cd772] (https://github.com/project-chip/connectedhomeip/tree/bdc38cd772) of connectedhomeip.
3333
- For Matter projects development with this SDK, it is recommended to utilize ESP-IDF [v5.4.1](https://github.com/espressif/esp-idf/tree/v5.4.1).
34-
- For ESP32C5, it is recommended to utilize ESP-IDF [98cd765953](https://github.com/espressif/esp-idf/commit/98cd765953dfe0e7bb1c5df8367e1b54bd966cce).
34+
- For ESP32C5 and ESP32C61, it is recommended to utilize ESP-IDF [v5.5.1](https://github.com/espressif/esp-idf/tree/v5.5.1).
3535

3636
## Documentation
3737

device_hal/device/esp32c5_devkit_c/esp_matter_device.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cmake_minimum_required(VERSION 3.5)
22
if (NOT ("${IDF_TARGET}" STREQUAL "esp32c5" ))
3-
message(FATAL_ERROR "please set esp32c5 as the IDF_TARGET using 'idf.py --preview set-target esp32c5'")
3+
message(FATAL_ERROR "please set esp32c5 as the IDF_TARGET using 'idf.py set-target esp32c5'")
44
endif()
55

66
SET(device_type esp32c5_devkit_c)
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
// Copyright 2025 Espressif Systems (Shanghai) CO LTD
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License");
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
// http://www.apache.org/licenses/LICENSE-2.0
7+
//
8+
// Unless required by applicable law or agreed to in writing, software
9+
// distributed under the License is distributed on an "AS IS" BASIS,
10+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11+
// See the License for the specific language governing permissions and
12+
// limitations under the License
13+
14+
#include <esp_log.h>
15+
#include <iot_button.h>
16+
#include <button_gpio.h>
17+
#include <driver/gpio.h>
18+
#include <led_driver.h>
19+
20+
#define LED_GPIO_PIN GPIO_NUM_8
21+
#define LED_CHANNEL 0 /* RMT_CHANNEL_0 */
22+
#define BUTTON_GPIO_PIN GPIO_NUM_9
23+
24+
static const char *TAG = "device";
25+
26+
led_driver_config_t led_driver_get_config()
27+
{
28+
led_driver_config_t config = {
29+
.gpio = LED_GPIO_PIN,
30+
.channel = LED_CHANNEL,
31+
};
32+
return config;
33+
}
34+
35+
button_gpio_config_t button_driver_get_config()
36+
{
37+
button_gpio_config_t config = {
38+
.gpio_num = BUTTON_GPIO_PIN,
39+
.active_level = 0,
40+
};
41+
return config;
42+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
cmake_minimum_required(VERSION 3.5)
2+
if (NOT ("${IDF_TARGET}" STREQUAL "esp32c61" ))
3+
message(FATAL_ERROR "please set esp32c61 as the IDF_TARGET using 'idf.py set-target esp32c61'")
4+
endif()
5+
6+
SET(device_type esp32c61_devkit_c)
7+
SET(led_type gpio)
8+
SET(button_type iot)
9+
10+
SET(extra_components_dirs_append "$ENV{ESP_MATTER_DEVICE_PATH}/../../led_driver"
11+
"$ENV{ESP_MATTER_DEVICE_PATH}/../../button_driver/iot_button")

docs/_static/esp_sdk_matter_version.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,13 @@ var DOCUMENTATION_VERSIONS = {
33
supported_targets: [ "esp32" ]
44
},
55
VERSIONS: [
6-
{ name: "latest", has_targets: true, supported_targets: [ "esp32", "esp32c2", "esp32c3", "esp32c5", "esp32c6", "esp32s3", "esp32h2", "esp32p4" ] },
6+
{ name: "latest", has_targets: true, supported_targets: [ "esp32", "esp32c2", "esp32c3", "esp32c5", "esp32c6", "esp32c61", "esp32s3", "esp32h2", "esp32p4" ] },
77
{ name: "release-v1.4.2", old: false, end_of_life: false, has_targets: true, supported_targets: [ "esp32", "esp32c2", "esp32c3", "esp32c5", "esp32c6", "esp32s3", "esp32h2", "esp32p4" ]},
88
{ name: "release-v1.4", old: false, end_of_life: false, has_targets: true, supported_targets: [ "esp32", "esp32c2", "esp32c3", "esp32c6", "esp32s3", "esp32h2", "esp32p4" ]},
99
{ name: "release-v1.3", old: false, end_of_life: false, has_targets: true, supported_targets: [ "esp32", "esp32c2", "esp32c3", "esp32c6", "esp32h2", "esp32s3" ]},
1010
{ name: "release-v1.2", old: false, end_of_life: false, has_targets: true, supported_targets: [ "esp32", "esp32c2", "esp32c3", "esp32c6", "esp32h2", "esp32s3" ]},
1111
{ name: "release-v1.1", old: true, end_of_life: true, has_targets: true, supported_targets: [ "esp32", "esp32c2", "esp32c3", "esp32c6", "esp32h2", "esp32s3" ]},
1212
{ name: "release-v1.0", old: true, end_of_life: true, has_targets: true, supported_targets: [ "esp32", "esp32c3", "esp32h2", "esp32s3" ]},
13-
1413
],
1514
IDF_TARGETS: [
1615
{ text: "ESP32", value: "esp32" },
@@ -19,6 +18,7 @@ var DOCUMENTATION_VERSIONS = {
1918
{ text: "ESP32-C3", value: "esp32c3" },
2019
{ text: "ESP32-C5", value: "esp32c5" },
2120
{ text: "ESP32-C6", value: "esp32c6" },
21+
{ text: "ESP32-C61", value: "esp32c61" },
2222
{ text: "ESP32-H2", value: "esp32h2" },
2323
{ text: "ESP32-P4", value: "esp32p4" },
2424
]

docs/conf_common.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import subprocess
33

44
languages = ['en']
5-
idf_targets = ['esp32', 'esp32s3', 'esp32c2', 'esp32c3', 'esp32c5', 'esp32c6', 'esp32h2', 'esp32p4']
5+
idf_targets = ['esp32', 'esp32s3', 'esp32c2', 'esp32c3', 'esp32c5', 'esp32c6', 'esp32c61', 'esp32h2', 'esp32p4']
66

77
extensions += ['sphinx_copybutton',
88
# Needed as a trigger for running doxygen

docs/en/certification.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ The option ``-n`` (count) is the number of generated binaries. In the above comm
9999

100100
The option ``--paa-trust-store-path`` should be added when using chip-tool to pair the device for manual tests.
101101

102-
.. only:: esp32 or esp32s3 or esp32c3 or esp32c2 or esp32c6 or esp32c5
102+
.. only:: esp32 or esp32s3 or esp32c3 or esp32c2 or esp32c6 or esp32c5 or esp32c61
103103

104104
::
105105

docs/en/developing.rst

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -52,16 +52,16 @@ The Prerequisites for ESP-IDF:
5252

5353
- Please get the `Prerequisites for ESP-IDF`_. For beginners, please check `step by step installation guide`_ for esp-idf.
5454

55-
.. only:: esp32c5
55+
.. only:: esp32c5 or esp32c61
5656

57-
- For ``ESP32C5``, the IDF version should be `98cd765953 <https://github.com/espressif/esp-idf/commit/98cd765953dfe0e7bb1c5df8367e1b54bd966cce>`__ or newer.
57+
- For ``ESP32C5`` and ``ESP32C61``, the IDF version should be `v5.5.1 <https://github.com/espressif/esp-idf/tree/v5.5.1>`__ or newer.
5858

5959
.. note::
6060

6161
``git clone`` command accepts the optional argument ``--jobs N``, which can significantly speed up the
6262
process by parallelizing submodule cloning. Consider using this option when cloning repositories.
6363

64-
.. only:: not esp32c5
64+
.. only:: not esp32c5 and not esp32c61
6565

6666
Cloning esp-idf:
6767

@@ -72,14 +72,14 @@ The Prerequisites for ESP-IDF:
7272
./install.sh
7373
cd ..
7474

75-
.. only:: esp32c5
75+
.. only:: esp32c5 or esp32c61
7676

7777
Cloning esp-idf:
7878

7979
::
8080

8181
git clone --recursive https://github.com/espressif/esp-idf.git
82-
cd esp-idf; git checkout 98cd765953; git submodule update --init --recursive;
82+
cd esp-idf; git checkout v5.5.1; git submodule update --init --recursive;
8383
./install.sh
8484
cd ..
8585

@@ -283,7 +283,13 @@ Choose IDF target.
283283

284284
::
285285

286-
idf.py --preview set-target esp32c5
286+
idf.py set-target esp32c5
287+
288+
.. only:: esp32c61
289+
290+
::
291+
292+
idf.py set-target esp32c61
287293

288294
.. only:: esp32p4
289295

@@ -387,7 +393,7 @@ Use ``chip-tool`` in interactive mode to commission the device:
387393
chip-tool interactive start
388394

389395

390-
.. only:: esp32 or esp32s3 or esp32c3 or esp32c2 or esp32c6 or esp32p4 or esp32c5
396+
.. only:: esp32 or esp32s3 or esp32c3 or esp32c2 or esp32c6 or esp32p4 or esp32c5 or esp32c61
391397

392398
::
393399

@@ -414,7 +420,7 @@ Above method commissions the device using setup passcode and discriminator. Devi
414420

415421
To Commission the device using manual pairing code 34970112332
416422

417-
.. only:: esp32 or esp32s3 or esp32c3 or esp32c2 or esp32c6 or esp32p4 or esp32c5
423+
.. only:: esp32 or esp32s3 or esp32c3 or esp32c2 or esp32c6 or esp32p4 or esp32c5 or esp32c61
418424

419425
::
420426

@@ -441,7 +447,7 @@ Above default manual pairing code contains following values:
441447

442448
To commission the device using QR code MT:Y.K9042C00KA0648G00
443449

444-
.. only:: esp32 or esp32s3 or esp32c3 or esp32c2 or esp32c6 or esp32p4 or esp32c5
450+
.. only:: esp32 or esp32s3 or esp32c3 or esp32c2 or esp32c6 or esp32p4 or esp32c5 or esp32c61
445451

446452
::
447453

@@ -913,7 +919,7 @@ For example: Thermostat cluster has O.a+ conformance for Heating and Cooling fea
913919
thermostat_config.features.heating.occupied_heating_setpoint = 2200;
914920
thermostat_config.feature_flags = thermostat::feature::heating::get_id();
915921
cluster::thermostat::create(endpoint, &(config->thermostat_config), CLUSTER_FLAG_SERVER);
916-
922+
917923
Optional features which are applicable to a cluster can also be added.
918924

919925
- feature: tag_list: Descriptor cluster:

docs/en/security.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ DAC private needs to be protected from remote as well as physical attacks in the
5959

6060
Recommended ways for DAC private key protection:
6161

62-
.. only:: esp32h2 or esp32c5
62+
.. only:: esp32h2 or esp32c5 or esp32c61
6363

6464
- {IDF_TARGET_NAME} supports ECDSA hardware peripheral with the ECDSA key programmed in the eFuse. This key is software read protected (in default mode). This peripheral can help to protect the identity of the DAC private key on the device.
6565

0 commit comments

Comments
 (0)