Samuel Obuch
23d4dcbebc
fix(lp_core): fix build for CONFIG_ULP_NORESET_UNDER_DEBUG=n
2026-06-22 11:17:43 +02:00
Jiang Jiang Jian
d627f319af
Merge branch 'bugfix/ulp_lp_core_wakeup_race_v5.5' into 'release/v5.5'
...
fix(ulp): fix LP core wakeup race with LP timer (v5.5)
See merge request espressif/esp-idf!49563
2026-06-17 12:02:24 +08:00
hebinglin
ab7f6a6d95
fix(ulp): fix lp uart keep wakeup triggered
2026-06-15 15:18:31 +08:00
Marius Vikhammer
6124c9c153
fix(ulp): fixes potential race-condition for lp-timer wakeup with lp-core
...
Reconfigure wakeup time before enabling the wakeup source to avoid
a wakeup from potentially stale values.
Closes https://github.com/espressif/esp-idf/issues/17009
2026-06-11 09:02:47 +08:00
Jiang Jiang Jian
c987c21dbc
Merge branch 'bugfix/esp_idf_ulp_wakeupcauses_record_v5.5' into 'release/v5.5'
...
fix(ulp): record wakeup causes before lp core request sleep v5.5
See merge request espressif/esp-idf!49121
2026-06-03 10:51:04 +08:00
hebinglin
c0f21a426d
fix(esp_hw_support): fix LP core exception interrupt not being cleared
2026-06-02 17:01:24 +08:00
hebinglin
45ea59b0c9
change(ulp): add lp periph intr enable apis
2026-06-02 11:44:10 +08:00
hebinglin
4a42a8847b
fix(ulp): record wakeup causes before lp core request sleep
2026-06-01 21:11:48 +08:00
Song Ruo Jing
5b7db25db1
refactor(rtcio): split rtcio/gpio switch with rtc iomux func sel func
...
This allows rtc_gpio_deinit to always switch the pad back to GPIO,
regardless of lp io clock enabled or not, so that gpio_config can
always switch the IO back to GPIO use after wakeup from deep sleep.
2026-05-22 15:35:21 +08:00
Konstantin Kondrashov
325ebb8021
feat(ulp): Improved ULP delay API accuracy and removed floating point operations
...
Closes https://github.com/espressif/esp-idf/issues/17494
Closes https://github.com/espressif/esp-idf/issues/16891
2026-04-30 15:17:34 +03:00
Meet Patel
f562a2bdef
fix(spinlock): Added fence instruction in spinlock acquire and release
...
The existing spinlock mechanism possibly has an overlap of memory
operations during multi core execution, as visible in CI testing. When
running the example inter_cpu_critical_section, shared count increment
stops at 299999 instead of reaching 300000, but this only happens
randomly 1 out of 10 times. It is suspected that a memory operation
happens simultaneously from both core, even though spinlock protection
is in place.
To handle this problem, a memory barrier (fence instruction) is added
at critical places during spinlock acquire and release, to ensure that
all memory operations upto that point are completed and synchronised
before proceeding further.
2026-03-20 11:46:37 +05:30
Sudeep Mohanty
66c76d0c34
change(lp_adc): Cleanup LP ADC driver and example
2026-02-09 12:36:18 +01:00
Sudeep Mohanty
0ebd2fd79e
feat(lp_adc): Set LP ADC calibration params
...
This commit sets the calibration parameters for a a given LP ADC unit
and channel to improve the raw LP ADC reading when read from the LP
core. The calibration params are set from the HP core.
2026-02-09 12:36:17 +01:00
Meet Patel
9bcf41fa6e
refactor(lp_core_i2c): Modify lp_core_i2c header to support ESP32C5
...
lp_core_i2c.h header file has sda and scl pins hardcoded to GPIO6 and
GPIO7 which works only for ESP32C6. ESP32C5 uses GPIO2 and GPIO3 for
I2C SDA and SCL. Hence, added LP_I2C_SCL_IO and LP_I2C_SDA_IO macros
under conditional compilation in library header file, so there is no
need to hardcode I2C GPIO pins and any other test apps or examples
that are including the LP I2C header file can also use Macro directly.
2025-09-16 11:19:32 +05:30
Jiang Jiang Jian
bf1fe556ee
Merge branch 'feat/esp32c5_lp_debug_example_v5.5' into 'release/v5.5'
...
feat(ulp): esp32c5 and esp32p4 support in debugging example (v5.5)
See merge request espressif/esp-idf!41006
2025-09-02 14:19:46 +08:00
Marius Vikhammer
19f91cfad9
fix(lp_core): fixed array-bound warning when compiling on P4 with -Os
...
Closes https://github.com/espressif/esp-idf/issues/17054
2025-08-29 09:57:05 +08:00
Samuel Obuch
92feb8c4f8
fix(lp_core): dont reset lp cpu with debug attached
2025-08-27 13:28:09 +02:00
Sudeep Mohanty
a544a33131
change(lp-core): Update LP I2C and LP UART drivers to use raw interrupt status
...
This commit updates the LP I2C and LP UART drivers to use the raw
interrupt status without enabling the interrupts.
2025-05-19 10:33:10 +02:00
Sudeep Mohanty
692512c0b3
Merge branch 'contrib/github_pr_15717' into 'master'
...
feat(ulp): LP Timer interrupt support (GitHub PR)
Closes IDFGH-15026
See merge request espressif/esp-idf!38613
2025-04-25 16:07:31 +08:00
X-Ryl669
4c3fa95c94
fix(ulp): Add missing wake up enable and disable functions for LP core
...
This commit adds wrapper APIs to enable and disable LP IO as a wakeup
source for the LP Core.
Merges https://github.com/espressif/esp-idf/pull/15837
2025-04-24 11:14:12 +02:00
jath03
a9eba4058e
feat(ulp): LP Timer interrupt support
...
This commit adds support for the LP Timer interrupt to be used by the LP
Core.
Merges https://github.com/espressif/esp-idf/pull/15717
2025-04-23 09:52:45 +02:00
morris
a4d32bb460
Merge branch 'feature/esp32c5_eco2_gpio_update' into 'master'
...
feat(gpio): esp32c5 eco2 gpio update
Closes IDF-12653, IDF-12710, and IO22-24
See merge request espressif/esp-idf!38358
2025-04-21 14:29:51 +08:00
Song Ruo Jing
ec5176e95a
fix(gpio): IO7 is not a LP IO anymore on C5 ECO2 chip
2025-04-18 19:03:08 +08:00
Konstantin Kondrashov
44983e6496
fix(ulp): Fix accumulation of wakeup cause bits in ULP
...
Closes https://github.com/espressif/esp-idf/issues/15794
2025-04-18 12:14:07 +03:00
morris
122d122c64
refactor(gpio): reuse gpio_int_type_t in the rtc io driver
2025-04-01 18:21:57 +08:00
laokaiyao
c9cc7bb216
feat(ulp_touch): add example for lp_touch
2025-03-14 21:56:05 +08:00
laokaiyao
ffb8adcf49
feat(ulp_touch): support ulp touch driver on p4
2025-03-14 21:10:16 +08:00
Song Ruo Jing
1b09bb3037
fix(uart): LP UART does not have the pre-divider for its clock source
...
Closes https://github.com/espressif/esp-idf/issues/15427
2025-03-06 20:35:48 +08:00
Sudeep Mohanty
b4f59dae9c
fix(lp_uart): Update the lp_core_uart_tx_flush() API to wait for Tx idle
...
This commit updates the lp_core_uart_tx_flush() API to wait for the Tx line
to become idle, therefore confirming that all bytes are sent out.
Closes https://github.com/espressif/esp-idf/issues/15433
2025-02-28 10:40:38 +01:00
wuzhenghui
c0f98621d7
fix(examples): fix esp32c5 ulp examples
2025-02-08 16:04:49 +08:00
igor.udot
f742a05b28
feat: supports lp uart wakeup
2025-02-05 14:54:48 +08:00
morris
8da529e5eb
Merge branch 'refactor/i2c_ll_trm_sync' into 'master'
...
refactor(i2c): rename some LL functions according to TRM descriptions
See merge request espressif/esp-idf!35049
2024-11-22 10:13:29 +08:00
Armando
0cbcd652a3
doc(lp_vad): lp vad programming guide
2024-11-21 11:08:11 +08:00
morris
3fb7461eb0
refactor(i2c): rename some LL functions according to TRM descriptions
2024-11-20 19:16:23 +08:00
Marius Vikhammer
1f1954378e
Merge branch 'feature/lp_core_gpio_wakeup' into 'master'
...
feat(lp_core): added support for LP-IO as LP-core wakeup source
Closes IDF-10200
See merge request espressif/esp-idf!31828
2024-10-18 09:32:49 +08:00
Armando
1792aba1dc
feat(vad): lp vad driver and wakeup feature
2024-10-16 17:27:27 +08:00
Marius Vikhammer
b4c501374f
feat(lp_core): added support for LP-IO as LP-core wakeup source
2024-10-16 09:34:20 +08:00
morris
39d6f35594
refactor(lp_core): unify LL functions of ETM wake up lp system
2024-09-26 11:48:15 +08:00
Liu Xiao Yu
e051b921b8
Merge branch 'feat/lp_spinlock' into 'master'
...
feat(ulp): implement inter-hp-lp-cpu spinlock/critical section
Closes IDF-10206
See merge request espressif/esp-idf!32775
2024-09-20 17:09:50 +08:00
Marius Vikhammer
564d777018
Merge branch 'feature/lp_core_40_mhz' into 'master'
...
feat(system): support choosing xtal as rtc-fast clock src on P4 and C5
Closes IDF-10203
See merge request espressif/esp-idf!32450
2024-09-20 10:57:15 +08:00
Xiaoyu Liu
446528d40f
feat(ulp): implement ulp lp core spinlock
2024-09-20 10:22:45 +08:00
Marius Vikhammer
00eb97725b
feat(system): support choosing xtal as rtc-fast clock src on P4 and C5
...
With xtal as rtc-fast clock source the LP-Core can run at twice the default
clock frequency. 40 MHz as opposed to 20 MHz.
2024-09-19 17:30:44 +08:00
Sudeep Mohanty
3c65f1b654
fix(lp_uart): Added lp_uart flush feature
...
This commit adds the lp_core_uart_flush() API to flush the LP UART Tx
FIFO. This API is automatically called once the program returns from the
main function().
Closes https://github.com/espressif/esp-idf/issues/14530
2024-09-19 09:36:04 +02:00
Wu Zheng Hui
6abe40e590
Merge branch 'feature/optimize_esp32p4_active_power_eco1' into 'master'
...
feat(system): Optimize esp32p4 active state power consumption
Closes PM-103 and IDF-7688
See merge request espressif/esp-idf!32950
2024-09-11 23:15:29 +08:00
wuzhenghui
05e74480f5
feat(esp_system): gate some clock by default to optmize esp32p4 active power
2024-09-11 10:53:00 +08:00
Sudeep Mohanty
1e5efd7fa7
feat(lp_adc): Added support to read LP ADC from the LP core
...
This commit adds APIs to initialize and configure the LP ADC from the HP
core and also adds APIs to read the raw and converted ADC values from the LP core.
2024-09-10 08:45:11 +02:00
Alexey Gerenkov
625c437412
feat(ulp): Add LP core debugging support
2024-09-03 18:28:14 +03:00
andylinpersonal
0dbb6d94ec
fix(ulp): Add the missing extern "C" guard to ulp_lp_core_print.h
...
This commit adds the missing extern `C` guards the ulp_lp_core_print.h
header file.
Closes https://github.com/espressif/esp-idf/pull/14329
2024-08-08 23:23:08 +08:00
Xiaoyu Liu
1216dd1abd
change(ulp): bu lp i2c on esp32c5
2024-08-01 14:48:31 +08:00
Marius Vikhammer
b825aa9f95
change(lp_core): changed wakeup time calc to use a precomputed tick value
...
Previously we would calculate the wakeup ticks upon every wakeup using the lp-timer clock frequency,
but this caused the binary to pull in software division functions, increasing the binary size.
This value is now precalculated by the hp-core when we configure the ULP. This saves about 1k bytes.
2024-07-23 14:14:20 +08:00