Skip to content

Commit 66bed18

Browse files
committed
feat(rng): add regi2c control ref_count
1 parent 4e44853 commit 66bed18

File tree

4 files changed

+36
-0
lines changed

4 files changed

+36
-0
lines changed

components/bootloader_support/src/bootloader_random_esp32c5.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include "hal/regi2c_ctrl_ll.h"
99
#include "hal/adc_ll.h"
1010
#include "hal/adc_types.h"
11+
#include "esp_private/regi2c_ctrl.h"
1112

1213
void bootloader_random_enable(void)
1314
{
@@ -18,7 +19,12 @@ void bootloader_random_enable(void)
1819
adc_ll_digi_controller_clk_div(0, 0, 0);
1920

2021
// some ADC sensor registers are in power group PERIF_I2C and need to be enabled via PMU
22+
#ifndef BOOTLOADER_BUILD
23+
regi2c_saradc_enable();
24+
#else
2125
regi2c_ctrl_ll_i2c_sar_periph_enable();
26+
#endif
27+
2228
// enable analog i2c master clock for RNG runtime
2329
ANALOG_CLOCK_ENABLE();
2430

@@ -51,6 +57,9 @@ void bootloader_random_disable(void)
5157
adc_ll_set_calibration_param(ADC_UNIT_1, 0x0);
5258
adc_ll_set_calibration_param(ADC_UNIT_2, 0x0);
5359
adc_ll_regi2c_adc_deinit();
60+
#ifndef BOOTLOADER_BUILD
61+
regi2c_saradc_disable();
62+
#endif
5463

5564
// disable analog i2c master clock
5665
ANALOG_CLOCK_DISABLE();

components/bootloader_support/src/bootloader_random_esp32c6.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include "hal/regi2c_ctrl_ll.h"
99
#include "hal/adc_ll.h"
1010
#include "hal/adc_types.h"
11+
#include "esp_private/regi2c_ctrl.h"
1112

1213
void bootloader_random_enable(void)
1314
{
@@ -18,7 +19,12 @@ void bootloader_random_enable(void)
1819
adc_ll_digi_controller_clk_div(0, 0, 0);
1920

2021
// some ADC sensor registers are in power group PERIF_I2C and need to be enabled via PMU
22+
#ifndef BOOTLOADER_BUILD
23+
regi2c_saradc_enable();
24+
#else
2125
regi2c_ctrl_ll_i2c_sar_periph_enable();
26+
#endif
27+
2228
// enable analog i2c master clock for RNG runtime
2329
ANALOG_CLOCK_ENABLE();
2430

@@ -49,6 +55,9 @@ void bootloader_random_disable(void)
4955
adc_ll_set_calibration_param(ADC_UNIT_1, 0x0);
5056
adc_ll_set_calibration_param(ADC_UNIT_2, 0x0);
5157
adc_ll_regi2c_adc_deinit();
58+
#ifndef BOOTLOADER_BUILD
59+
regi2c_saradc_disable();
60+
#endif
5261

5362
// disable analog i2c master clock
5463
ANALOG_CLOCK_DISABLE();

components/bootloader_support/src/bootloader_random_esp32c61.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include "hal/regi2c_ctrl_ll.h"
99
#include "hal/adc_ll.h"
1010
#include "hal/adc_types.h"
11+
#include "esp_private/regi2c_ctrl.h"
1112

1213
void bootloader_random_enable(void)
1314
{
@@ -18,7 +19,12 @@ void bootloader_random_enable(void)
1819
adc_ll_digi_controller_clk_div(0, 0, 0);
1920

2021
// some ADC sensor registers are in power group PERIF_I2C and need to be enabled via PMU
22+
#ifndef BOOTLOADER_BUILD
23+
regi2c_saradc_enable();
24+
#else
2125
regi2c_ctrl_ll_i2c_sar_periph_enable();
26+
#endif
27+
2228
// enable analog i2c master clock for RNG runtime
2329
ANALOG_CLOCK_ENABLE();
2430

@@ -49,6 +55,9 @@ void bootloader_random_disable(void)
4955
adc_ll_set_calibration_param(ADC_UNIT_1, 0x0);
5056
adc_ll_set_calibration_param(ADC_UNIT_2, 0x0);
5157
adc_ll_regi2c_adc_deinit();
58+
#ifndef BOOTLOADER_BUILD
59+
regi2c_saradc_disable();
60+
#endif
5261

5362
// disable analog i2c master clock
5463
ANALOG_CLOCK_DISABLE();

components/bootloader_support/src/bootloader_random_esp32h2.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include "hal/regi2c_ctrl_ll.h"
99
#include "hal/adc_ll.h"
1010
#include "hal/adc_types.h"
11+
#include "esp_private/regi2c_ctrl.h"
1112

1213
void bootloader_random_enable(void)
1314
{
@@ -18,7 +19,12 @@ void bootloader_random_enable(void)
1819
adc_ll_digi_controller_clk_div(0, 0, 0);
1920

2021
// some ADC sensor registers are in power group PERIF_I2C and need to be enabled via PMU
22+
#ifndef BOOTLOADER_BUILD
23+
regi2c_saradc_enable();
24+
#else
2125
regi2c_ctrl_ll_i2c_sar_periph_enable();
26+
#endif
27+
2228
// enable analog i2c master clock for RNG runtime
2329
ANALOG_CLOCK_ENABLE();
2430

@@ -47,6 +53,9 @@ void bootloader_random_disable(void)
4753
adc_ll_set_calibration_param(ADC_UNIT_1, 0x0);
4854
adc_ll_set_calibration_param(ADC_UNIT_2, 0x0);
4955
adc_ll_regi2c_adc_deinit();
56+
#ifndef BOOTLOADER_BUILD
57+
regi2c_saradc_disable();
58+
#endif
5059

5160
// disable analog i2c master clock
5261
ANALOG_CLOCK_DISABLE();

0 commit comments

Comments
 (0)