Commit Graph

35 Commits

Author SHA1 Message Date
xiongweichao
8f0c559c03 make bluetooth and wifi use the same low power clock 2022-08-05 11:22:22 +08:00
xiongweichao
9332413407 ESP32C3:bluetooth support use main XTAL in light sleep mode 2022-08-05 11:21:58 +08:00
xiongweichao
c85f71aee3 Fix wifi is initialized before bluetooth initialization, bluetooth can't stay connected 2022-07-12 14:35:32 +08:00
wangmengyang
4d5aa82cea 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 MAC bits to fix the issue of task watchdog triggered during controller initialization due to invalid hardware state
2022-07-11 11:06:11 +08:00
Jack
09b8af7398 fix the bug that some memory leaked in phy after wifi/ble deinit 2022-06-19 14:33:00 +00:00
Jack
af493beb76 deinit BB MAC back memory when they are not used 2022-06-19 14:33:00 +00:00
Karl Wang
5c24b7f75f components/bt: disable Bluetooth PLL track function for ESP32-C3/ESP32-S3 as it introduced coexistence issues 2022-05-17 20:54:51 +08:00
xiongweichao
39c63420ba Fix ESP32C3/S3 build error after enable light sleep 2022-05-07 06:19:33 +00:00
xiewenxiang
bf6b3ec0a8 component/bt: Support set HW CCA threshold value 2021-12-29 14:43:33 +08:00
baohongde
0c0d0f9b35 components/bt: Fix the issue caused by the power off the bt power domain 2021-11-11 11:33:15 +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
zwj
97188e8068 support hw recorrect 2021-06-25 15:30:02 +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
bd4e34b15a Merge branch 'bugfix/btdm_incorrectly_spelled' into 'master'
component/bt: fix Spelling mistakes

Closes IDFGH-4886, IDFGH-4910, and IDFGH-4635

See merge request espressif/esp-idf!12814
2021-03-29 05:07:54 +00:00
XieWenxiang
f9cdd1d6c9 component/bt: Modify some ambiguous descriptions 2021-03-23 23:08:05 +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
wangmengyang
2dd730d35c component/bt: [esp32c3] modify Bluetooth coexistence options 2021-02-05 09:16:29 +00:00
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