mirror of
https://github.com/espressif/esp-idf.git
synced 2025-09-30 19:19:21 +00:00
fix(lp_io): w1ts/w1tc register access performance is improved
by avoiding "read-modify-write" operation. The registers designed to be write only.
This commit is contained in:
@@ -93,7 +93,7 @@ static inline void rtcio_ll_function_select(int rtcio_num, rtcio_ll_func_t func)
|
||||
*/
|
||||
static inline void rtcio_ll_output_enable(int rtcio_num)
|
||||
{
|
||||
RTCIO.enable_w1ts.w1ts = (1U << rtcio_num);
|
||||
RTCIO.enable_w1ts.val = (1U << (rtcio_num + RTC_GPIO_ENABLE_W1TS_S));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -103,7 +103,7 @@ static inline void rtcio_ll_output_enable(int rtcio_num)
|
||||
*/
|
||||
static inline void rtcio_ll_output_disable(int rtcio_num)
|
||||
{
|
||||
RTCIO.enable_w1tc.w1tc = (1U << rtcio_num);
|
||||
RTCIO.enable_w1tc.val = (1U << (rtcio_num + RTC_GPIO_ENABLE_W1TC_S));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -115,9 +115,9 @@ static inline void rtcio_ll_output_disable(int rtcio_num)
|
||||
static inline void rtcio_ll_set_level(int rtcio_num, uint32_t level)
|
||||
{
|
||||
if (level) {
|
||||
RTCIO.out_w1ts.w1ts = (1U << rtcio_num);
|
||||
RTCIO.out_w1ts.val = (1U << (rtcio_num + RTC_GPIO_OUT_DATA_W1TS_S));
|
||||
} else {
|
||||
RTCIO.out_w1tc.w1tc = (1U << rtcio_num);
|
||||
RTCIO.out_w1tc.val = (1U << (rtcio_num + RTC_GPIO_OUT_DATA_W1TC_S));
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user