Commit Graph

48 Commits

Author SHA1 Message Date
zwj
0e5c6144b7 - Support ESP32C3 and ESP32S3 new BLE lib
- Disable controller 5.0 feature bits if host 5.0 feature is not enabled
- Fixed extend ADV parameters check for ADV_DIRECT_HI
2023-05-11 02:45:56 +00:00
zwj
c6942be321 Merge ESP32C3 and ESP32S3 BLE bt.c files to one 2023-05-11 02:45:56 +00:00
wangmengyang
ebb7650e63 bluetooth: fix that functions "coex_enable" and "coex_disable" are not used in pairs on ESP32-C3, ESP32-S3 and ESP32-C2 2023-01-20 10:47:58 +08:00
zwj
c656e7ec07 Fixed some memory was not released after bluetooth controller initialization failed on ESP32-C3 and ESP32-S3 2022-12-19 20:22:58 +08:00
liuning
7d16868e32 phy: only set phy_init_flag at power domain off, when all modems deinit 2022-12-15 10:45:09 +08:00
Jiang Jiang Jian
9406e80d5f Merge branch 'bugfix/fix_c3_s3_ble_temperature_performance_v5.0' into 'release/v5.0'
Fixed bluetooth disconnection caused by HW temperature rise or fall(backport v5.0)

See merge request espressif/esp-idf!21370
2022-12-02 20:39:17 +08:00
zhiweijian
9cfffd2915 - update phy lib
- Enable BLE pll track to fix bluetooth disconnection caused by temperature rise or fall on ESP32C3 and ESP32S3
- call pll track in controller task
2022-12-01 18:44:31 +08:00
zwj
1b4499046a support BLE memory release on ESP32C3 and ESP32S3 2022-11-21 10:33:55 +08:00
Li Shuai
b9a667b9f8 1. Wi-Fi: update tsf tick interval when lpclk is modified
2. Move register_lpclk_callback to coexistence
2022-08-15 21:16:11 +08:00
xiongweichao
555d72c90a make bluetooth and wifi use the same low power clock 2022-08-15 21:15:51 +08:00
xiongweichao
b8b7dcc159 ESP32C3:bluetooth support use main XTAL in light sleep mode 2022-08-15 21:15:13 +08:00
Jiang Jiang Jian
9ec829f352 Merge branch 'bugfix/wifi_sta_and_ble_disconnect_BCI-303_master' into 'master'
component_bt: Fix wifi is initialized before bluetooth initialization, bluetooth can't stay connected

Closes BCI-303

See merge request espressif/esp-idf!18643
2022-07-08 19:43:10 +08:00
wangmengyang
1d55f12c2d component/bt: reset Bluetooth hardware during controller inititalization on ESP32-C3/ESP32-S3
1. Rename MACROs SYSTEM_WIFI_RST_EN register bit fields to be more recognizable
2. reset Bluetooth baseband and clock bits to fix the issue of task watchdog triggered during controller initialization due to invalid hardware state
2022-07-06 16:23:48 +08:00
xiongweichao
155c4a5cb3 Fix wifi is initialized before bluetooth initialization, bluetooth can't stay connected 2022-07-06 14:42:46 +08:00
Jack
cb0dd5cc75 fix the bug that some memory leaked in phy after wifi/ble deinit 2022-06-16 20:42:20 +08:00
Jack
7a8b63869f deinit BB MAC back memory when they are not used 2022-05-29 00:13:32 +08:00
songruojing
a5b09cf015 rtc_clk: Clean up some clock related enum and macro in soc/rtc.h, replace with new ones in
soc/clk_tree_defs.h
2022-05-24 22:59:41 +08:00
Karl Wang
777dbb6c83 components/bt: disable Bluetooth PLL track function for ESP32-C3/ESP32-S3 as it introduced coexistence issues 2022-05-17 20:00:23 +08:00
Jiang Jiang Jian
baa5b8ed7d Merge branch 'bufix/esp32c3_s3_build_err' into 'master'
component_bt: Fix ESP32C3/S3 build error after enabled light sleep

Closes BT-2086

See merge request espressif/esp-idf!17546
2022-05-01 17:48:18 +08:00
songruo
60bb5c913d clk_tree: prework of introducing clk subsystem control
1. Clean up clk usage in IDF, replace rtc_clk_xtal/apb_freq_get with
   upper level API esp_clk_xtal/apb_freq
2. Fix small errors and wrong comments related to clock
3. Add clk_tree_defs.h to provide an unified clock id for each chip
   Modify the NGed drivers to adopt new clock ids
2022-04-11 12:09:06 +08:00
xiongweichao
2be8875fd7 Fix ESP32C3/S3 build error after enable light sleep 2022-03-24 11:43:04 +08:00
Anton Maklakov
68e5d9d585 Remove IRAM_ATTR from any function declarations
IRAM_ATTR expands to a unique section attribute. Applying it to both
declaration and definition results in a section conflict.
2022-03-22 09:58:50 +00:00
Sudeep Mohanty
a9fda54d39 esp_hw_support/esp_system: Re-evaluate header inclusions and include directories
This commit updates the visibility of various header files and cleans up
some unnecessary inclusions. Also, this commit removes certain header
include paths which were maintained for backward compatibility.
2022-03-07 11:18:08 +05:30
Cao Sen Miao
eddc196081 esp_clk: refactor target/clk.h to private/esp_clk.h 2021-11-26 14:56:30 +08:00
Jiang Jiang Jian
c6ad0e4658 Merge branch 'bugfix/power_down_bluetooth_module_when_deinit' into 'master'
component/bt: Power down bluetooth module when deinit

Closes WIFI-4180

See merge request espressif/esp-idf!15716
2021-11-11 03:23:46 +00:00
baohongde
11656377af components/bt: Fix the issue caused by the power off the bt power domain 2021-11-09 12:03:49 +08:00
morris
16677b0d3c global: make periph enable/disable APIs private
peripheral enable/disable usually should be managed by driver itself,
so make it as espressif private APIs, not recommended for user to use it
in application code.
However, if user want to re-write the driver or ports to other platform,
this is still possible by including the header in this way:
"esp_private/peripheral_ctrl.h"
2021-11-08 10:37:47 +08:00
Li Shuai
46dedca23c ci: replace old header with new SPDX header style 2021-10-14 10:51:10 +08:00
baohongde
e684b3f2a6 Power Management: Initialize backup memory for MAC and Baseband power up/down 2021-10-14 10:51:10 +08:00
baohongde
17d719bad7 Power Management: power up/down BT power domain when BT init/deinit 2021-10-14 10:51:09 +08:00
xiongweichao
ba7252d2ea Fix that when EXT CRYS is configured but not detected, light sleep is still allowed to be used 2021-08-16 16:51:54 +08:00
wangmengyang
a024de7cac component/bt: fixed the assert in checking hardware sleep state during wake-up
The hardware sleep state change can take some time after wake-up interrupt. Use busy waiting instead of directly assert
2021-06-24 10:35:40 +08:00
Renz Bagaporo
e6edf34e82 esp32: move esp_clk functions 2021-03-31 19:17:33 +08:00
Jiang Jiang Jian
5978352cf9 Merge branch 'bugfix/ble_tx_power_mapping' into 'master'
Bluetooth: Tx power level for ESP32C3 and IRAM_ATTR fix for ESP32S3 controller

See merge request espressif/esp-idf!12651
2021-03-23 03:04:30 +00:00
KonstantinKondrashov
aa1338bf23 wdt: Fix timeout and RTC_SLOW_CLK
RTC_SLOW_CLK
ESP32:    150kHz
ESP32-S2:  90kHz
ESP32-S3: 150kHz
ESP32-C3: 150kHz
2021-03-19 00:15:18 +08:00
wangmengyang
528964f12c fixed incorrect Tx power mappings for ESP32C3 chip 2021-03-17 16:52:26 +08:00
baohongde
33df1358ef Fix issues during light sleep and DFS 2021-03-09 13:49:59 +08:00
Angus Gratton
70e13752ae Merge branch 'feature/rtc_time_get' into 'master'
rtc: Clean up for S2,S3,C3

Closes IDF-2569

See merge request espressif/esp-idf!12336
2021-03-05 01:16:15 +00:00
Angus Gratton
d6f4d99d93 core system: Fix warnings in compilation when assertions are disabled
Adds a CI config for hello world that sets this, to catch future regressions
2021-03-03 10:26:57 +11:00
KonstantinKondrashov
b31bf01484 rtc: Clean up for S2,S3,C3 2021-03-01 16:51:15 +08:00
Chinmay Chhajed
5596f37af1 bt: removed esp_bt_get_mac()
There was no need for this function as there is already a way present to
fetch own mac address. Own mac addr can be fetched by calling
controller_get_interface().
2021-02-09 12:09:15 +05:30
baohongde
eef66789d4 Mac BB power down in light sleep
components/bt: Do not use feature: timer support isr dispatch method

disable controller after wake up finished.

protect critical section of power down

choose clk in sleep

components/coex: mac bb power down in light sleep

components/coex: Macro changed

components/os: protect reserved interrupt number

update phy to phy_version 300,6e46ba7,Jan 25 2021

some bugfix
2021-01-28 22:28:04 +08:00
wangmengyang
ee480b7776 Refactor Bluetooth init/deinit mechanism
free osi_funcs struct memory duiring failure of controller_init when necessary

components/bt: use s_lp_stat.phy_enabled to control the on/off of phy module

clean up style for controller_disable

clean up some empty functions and unnecessary comments

Added async wakeup src "BTDM_ASYNC_WAKEUP_SRC_TMR"

remove use of assert in controller_init, set error code upon some exceptions

move stop esp_timer early to phase0, add state variable wakeup_timer_started
2021-01-28 19:27:17 +08:00
wangmengyang
06ea8a3028 remove use of macro "CONFIG_SPIRAM_USE_MALLOC" 2021-01-28 19:25:03 +08:00
wangmengyang
086b36d737 Refactor Bluetooth sleep mechanism
Refactor bluetooth hardware PowerUp/PowerDown functions

component/bt: fix use of a deprecated MACRO "CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE"

component/bt: fix sleep wakeup in controller disable procedure

remove use of s_pm_lock_sem

1. Modified the waking up approach from async to sync: post a message to controller task upon vhci downstream packets or controller disable, and in response, controller task goes through the wake-up procedure
2. Added Controller status check for the esp_vhci APIs
3. Adjust the procedure during controller_init, check the validity of arguments first

Some minor modifications for bluetooth sleep control and configuration

1. use variable flag s_btdm_allow_light_sleep to control the use of s_light_sleep_pm_lock
2. use variable btdm_lpclk_sel to choose bluetooth sleep clock, support only for external 32kHz crystal temporarily

component/bt: improve async_wakeup function

1. check power state first and then decide if wakeup needs to be performed
2. change the meaning of the return value, if wakeup request is posted to controller task, then return true, otherwise return false

put sleep control logics in controller init/deinit/enable/disable together

Use s_lp_cntl struct: replace bool-typed variable sleep_backup_en with s_lp_cntl.mac_bb_pd

Use s_lp_cntl struct: replace bool-typed variable s_btdm_allow_light_sleep with s_lp_cntl.no_light_sleep

Use s_lp_cntl struct: replace global variable btdm_lpclk_sel with s_lp_cntl.lpclk_sel

create semaphore s_wakeup_req_sem only when low power mode is required

Use s_lp_cntl struct: use s_lp_cntl.wakeup_timer_required to control the wakeup timer

use s_lp_stat to replace original state variable sleep_backup_done and s_pm_lock_acquired

one minor change for mac_bb_pd settings init: return error status if memeory allocation failed
2021-01-28 19:23:09 +08:00
wangmengyang
9742aa6f05 component/bt: handle sleep wakeup event in the context of controller task instead of timer task 2021-01-28 16:04:21 +08:00
wangmengyang
51be1af028 add coexist hook functions and fix bugs for coexistence 2021-01-27 06:37:04 +00:00
zwj
7c1c669799 component/bt: add BLE v5.0 feature for bluedroid host 2021-01-15 17:55:12 +08:00