Commit Graph

591 Commits

Author SHA1 Message Date
Darian Leung
3819d22e93 twai: Add errata workaround for listen only mode
This commit adds a workaround for the TWAI listen only mode errata which is
present on the ESP32, ESP32-S2, ESP32-S3, and ESP32-C3. twai_get_status_info()
has also been updated to account for the fact that TEC/REC are frozen in
listen only mode.

Errata Description:

When the TWAI controller is put into listen only mode, it should not influence
the TWAI bus in any way (i.e., should never send a dominant bit). However,
on the targets listed above, the TWAI controller will send dominant bits in an
error frame (i.e., active error frame), even if the controller is set to listen
only mode.

Workaround:

We can force the TWAI controller into the error passive state on startup (by
setting the REC to >= 128). Since the TEC/REC are frozen in listen only mode,
the TWAI controller will remain error passive and only send recessive bits
(i.e., passive error frames), thus will not influence the TWAI bus.

Closes https://github.com/espressif/esp-idf/issues/9157
2023-02-24 20:26:53 +08:00
morris
a43e796f60 rmt: force inline LL functions
Closes https://github.com/espressif/esp-idf/issues/9487
2023-02-14 15:11:35 +08:00
jingli
200dcce535 soc_caps: remove SOC_GPIO_SUPPORT_SLP_SWITCH
all esp chips support this feature
2023-02-09 17:52:49 +08:00
Zim Kalinowski
3cf24d8685 Merge branch 'feature/usb_host_feature_and_refactor_backports_v4.4' into 'release/v4.4'
USB Host: Backport multiple bugfixes/refactors to v4.4

See merge request espressif/esp-idf!21583
2023-02-07 17:54:35 +08:00
morris
969569dec0 Merge branch 'bugfix/i2s_update_regs_before_start_v4.4' into 'release/v4.4'
i2s: fixed rx update stuck bug (v4.4)

See merge request espressif/esp-idf!21777
2023-02-02 21:40:37 +08:00
morris
b58d463fdd Merge branch 'bugfix/fix_micro_error_SPI_HOST_MAX_v4.4' into 'release/v4.4'
spi: fix micro SPI_HOST_MAX error (v4.4)

See merge request espressif/esp-idf!22148
2023-02-02 21:40:14 +08:00
morris
854c55c61e Merge branch 'feature/_spi_slave_reset_trans_queue_api_v4.4' into 'release/v4.4'
spi: limit esp32 dma workaround only on esp32(v4.4)

See merge request espressif/esp-idf!21382
2023-02-02 21:39:51 +08:00
morris
46b66530ce gdma: prevent mutli-channels connect to the same peripheral
1. add check in the gdma driver, to prevent multiple channels connecting
   to the same peripheral
2. memory copy DMA ID will occupy the peripheral's DMA ID on some ESP
   targets (e.g. esp32c3/s3). We should search for a free one when
install async memcpy driver.

Closes https://github.com/espressif/esp-idf/issues/10575
2023-02-01 11:10:26 +08:00
wanlei
9526b100a4 spi: fix micro SPI_HOST_MAX error
Closes https://github.com/espressif/esp-idf/issues/10349
2023-01-29 16:32:45 +08:00
Jiang Jiang Jian
d4080633f9 Merge branch 'feature/efuse_rev_major_minor_v4.4' into 'release/v4.4'
efuse: Adds major and minor versions (v4.4)

See merge request espressif/esp-idf!19541
2023-01-12 16:24:59 +08:00
laokaiyao
85392e3ec9 i2s: fixed rx update stuck bug 2022-12-23 10:53:03 +08:00
Michael (XIAO Xufeng)
800d11c48f Merge branch 'contrib/github_pr_10106_v4.4' into 'release/v4.4'
hal/uart_ll.h: Fix compile with C++ (GitHub PR) (v4.4)

See merge request espressif/esp-idf!21455
2022-12-22 17:01:14 +08:00
Michael (XIAO Xufeng)
a5964c442f esp32s3: fixed bug chip v0.0 detected as vX.Y
A typical value is 2.8.

Previous commit 32ef2b321a doesn't fix the issue cleanly. The MSB of wafer_minor also has this problem.
2022-12-20 21:14:36 +08:00
Michael (XIAO Xufeng)
9e87d53fed esp32s3: fixed bug chip v0.0 detected as vX.0
A typical value is 2.0.
2022-12-20 16:30:13 +08:00
KonstantinKondrashov
26960f1734 efuse: Adds major and minor versions and others 2022-12-20 16:30:13 +08:00
Darian Leung
974b955cff hal: Fix USB DWC HAL host channel halt race condition
This commit fixes a race condtion bug with usb_dwc_hal_chan_request_halt()
where a channel the channel is halted if it has just completed a transfer
(i.e., finished processing a QTD with the "HOC" flag set) but the channel is
still pending interrupt handling. In this case...

- usb_dwc_hal_chan_request_halt() would simply read the channel's underlying
register, determine it is not active, not set the "halt_requested" flag, and
simply return true.
- The caller assumes of usb_dwc_hal_chan_request_halt() will assume that the
channel has halted, and may proceed to reconfigure the pipe/port
- When usb_dwc_hal_chan_decode_intr() comes to process the pending interrupt
it will simply return USB_DWC_HAL_CHAN_EVENT_CPLT not knowing a halt has been
requested.

This commit updates the implementation of usb_dwc_hal_chan_request_halt() so
that a halt is properly requested even if the underlying channel has already
physically halted.
2022-12-13 22:27:54 +08:00
Darian Leung
7295933f5f usb_host: Rename struct/ll/hal symbols to use "usb_dwc" prefix
Following the file renaming to use the "usb_dwc" prefix, this commit
updates the symbol names of those files to use the "usb_dwc" as well.

Some LL functions were also renamed so that the register name is
mentioned.
2022-12-13 21:36:00 +08:00
Darian Leung
c06346da35 usb_host: Rename struct/ll/hal files to use "usb_dwc" prefix
This commit updates the DWC_OTG based struct/ll/hal file names to
use the prefix "usb_dwc". This naming scheme reduces ambiguity if
another USB controller implementation is added.

As a result, "hcd.c" has been renamed to "hcd_dwc.c"
2022-12-13 21:36:00 +08:00
Omar Chebib
622fb9e906 CI: check_public_headers script will detect the use of static asserts in headers
When a public header contains _Static_assert or static_assert, check_public_headers.py script will detect it and report it as an issue.
Indeed, public headers shall now use ESP_STATIC_ASSERT.
2022-12-06 19:28:51 +08:00
Simon Arlott
731486ad33 hal/uart_ll.h: Fix compile with C++
I'm including <hal/uart_ll.h> in my C++ application because I need to
bypass the uart driver. The inline functions in the header file fail to
compile as C++.

All of the enums need explicit casts for conversion to/from integers.

Merges https://github.com/espressif/esp-idf/pull/10106
2022-12-06 10:18:32 +08:00
Omar Chebib
049d21bb12 C/Cxx: unify static assertions with the macro ESP_STATIC_ASSERT
Closes https://github.com/espressif/esp-idf/issues/9938
2022-12-05 18:16:08 +08:00
Armando
b23a2b0a75 spi: limit esp32 dma workaround only on esp32 2022-12-01 20:57:09 +08:00
Cao Sen Miao
9a6a28734b I2C: put some interrupt used functions into IRAM,
closes https://github.com/espressif/esp-idf/issues/10079
2022-12-01 16:20:56 +08:00
Jiang Jiang Jian
86d29d566b Merge branch 'bugfix/fix_current_leakage_when_hold_digital_io_during_deep_sleep_backport_v4.4' into 'release/v4.4'
esp_hw_support/sleep: fix current leakage when hold digital io during deep sleep(backport v4.4)

See merge request espressif/esp-idf!20945
2022-11-11 16:33:43 +08:00
jingli
fbf7261531 wifi/bt: fix part of modem module not reset when power up 2022-11-10 16:00:02 +08:00
morris
7a82764c49 Merge branch 'bugfix/rtc_function_needs_disable_usj_pads_esp32s3_v4.4' into 'release/v4.4'
rtcio: Disable USB Serial JTAG pad when setting pins 19 and 20 as RTC function on ESP32S3 (backport v4.4)

See merge request espressif/esp-idf!20551
2022-11-10 10:03:46 +08:00
Jiang Jiang Jian
d7ba7c3b19 Merge branch 'bugfix/fix_esprv_intc_int_set_type_err_parameter_backportv4.4' into 'release/v4.4'
bugfix: esprv_intc_int_set_type should not use bitmap parameter(backport v4.4)

See merge request espressif/esp-idf!20609
2022-11-09 18:03:25 +08:00
Jiang Jiang Jian
770b787072 Merge branch 'bugfix/add_protection_for_mac_rst_v4.4' into 'release/v4.4'
esp_wifi: add protection for mac reset (backport 4.4)

See merge request espressif/esp-idf!20970
2022-11-09 17:58:48 +08:00
liuning
25abb74284 esp_wifi: add protection for mac reset (backport 4.4) 2022-11-08 11:01:51 +08:00
jingli
6e7c8f18b9 hal/gpio_ll: fix digital gpio can not enable hold during deep sleep when force_unhold set(32/s2/s3) 2022-11-05 17:51:13 +08:00
jingli
87ad0e8c97 hal/gpio_ll: fix digital gpio can not disable hold during deep sleep 2022-11-05 17:51:13 +08:00
jingli
4b71ebbe49 esp_hw_support/sleep: fix current leakage when hold digital io during deep sleep 2022-11-05 17:51:08 +08:00
wuzhenghui
0fd3824f91 bugfix: esprv_intc_int_set_type should not use bitmap parameter 2022-10-14 15:33:53 +08:00
Song Ruo Jing
5f5ce49ff6 rtcio: Disable USB Serial JTAG pad when setting pins 19 and 20 as RTC function on ESP32S3
Similar to the fix in gpio lower layers, USB Serial JTAG pad should be disabled when the DM and DP pins want to be used as rtcio pins.

(cherry picked from commit de0401047c)
2022-10-12 12:00:05 +08:00
morris
741d35d528 rgb_lcd: added yuv converter LL driver 2022-09-27 13:42:56 +08:00
morris
e66a72b452 rgb_lcd: workaround pclk polarity bug by setting mo>=2 2022-09-27 13:22:18 +08:00
morris
3a6831b1b4 rgb_lcd: support fractional clock divisor 2022-09-27 10:27:36 +08:00
Ivan Grokhotkov
17214c2db6 hal: fix CONFIG_TWAI_ISR_IN_IRAM not taking effect for C3/H2 2022-09-21 08:35:54 +00:00
Michael (XIAO Xufeng)
0f630acf43 Merge branch 'bugfix/spi_hd_quad_issue_4.4' into 'release/v4.4'
SPI : fix wrong dummy cycle on quad mode and put get-command function in spi_ll.h(backport v4.4)

See merge request espressif/esp-idf!19816
2022-09-21 12:06:40 +08:00
songruojing
4bee8a84e2 gpio: fix USB D+ pin cannot disable pullup
Internally, disable usb serial jtag DP pin's pullup when calling gpio_ll_pullup_dis and rtcio_ll_pullup_disable
At usb serial jtag setup/install, re-enable DP pin's pullup

Closes https://github.com/espressif/esp-idf/issues/9495
2022-09-20 15:23:01 +08:00
gaoxu
ce1e8350b4 SPI: Fixed Quad SPI wrong dummy cycle issue on ESP32C3/ESP32S3 and put get-command/dummy-bits functions in spi_ll.h 2022-09-07 18:55:38 +08:00
Cao Sen Miao
22b222b762 I2C: Make I2C clock frequency accurate 2022-08-29 09:07:30 +00:00
Jan Procházka
bff89fd71b added missing call to set hold register bit
This commit fixes gpio_hold_en(pin) function for ESP32, where after wakeup from deep sleep, the pin gets reset to default state and stop holding the pin level.
2022-08-29 10:18:09 +08:00
laokaiyao
53a5d51aea i2s: fix PDM TX stereo mode for c3 and s3 2022-08-09 18:28:09 +08:00
laokaiyao
76cdab5f42 i2s: fixed pdm rx sample rate doubled issue
Closes: https://github.com/espressif/esp-idf/issues/8660
2022-08-09 18:28:09 +08:00
laokaiyao
482a37612d i2s: fix 16bit slot sequence on esp32 2022-08-09 18:28:09 +08:00
Marius Vikhammer
f8f93d936e ulp-riscv: add support for using ADC as well as an example show-casing it. 2022-08-09 09:21:15 +08:00
Jiang Jiang Jian
9f9021a221 Merge branch 'bugfix/multiple_adc_bugfix_v4.4' into 'release/v4.4'
adc: fix multiple bugs (v4.4)

See merge request espressif/esp-idf!19142
2022-08-04 14:42:53 +08:00
Armando
cb62457f6d adc: fix esp32 continuous mode sampling freq issue 2022-07-20 16:43:38 +08:00
Armando
ad8862fa19 adc: fix esp32s2 continuous mode converted bytes issue
When working in continuous mode, hardware will continuously trigger
ADC to do conversions. On esp32s2, 2 bytes will be generated per
conversion. Prior to this commit, driver assumes 4 bytes per conversion
(on s2). This commit fixed this issue.
2022-07-20 16:43:38 +08:00