mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
236bd27134
Currently, we pull up cs io for spi flash/ram to reduce current leakage during light sleep. But some kind of spi flash/ram chip need all io pull up. Otherwise, current leakage will still exist.
32 lines
946 B
C
32 lines
946 B
C
/*
|
||
* SPDX-FileCopyrightText: 2019-2022 Espressif Systems (Shanghai) CO LTD
|
||
*
|
||
* SPDX-License-Identifier: Apache-2.0
|
||
*/
|
||
|
||
#include "soc/soc.h"
|
||
#include "soc/efuse_reg.h"
|
||
|
||
#if CONFIG_IDF_TARGET_ESP32S3
|
||
/**
|
||
* Since rom of esp32s3 does not export function ets_efuse_get_opiconfig,
|
||
* patch this function here.
|
||
*/
|
||
uint32_t esp_rom_efuse_get_opiconfig(void)
|
||
{
|
||
uint64_t spiconfig1 = REG_GET_FIELD(EFUSE_RD_MAC_SPI_SYS_2_REG, EFUSE_SPI_PAD_CONF_1);
|
||
uint64_t spiconfig2 = REG_GET_FIELD(EFUSE_RD_MAC_SPI_SYS_3_REG, EFUSE_SPI_PAD_CONF_2);
|
||
uint64_t opiconfig = (spiconfig2 << 12) | (spiconfig1 >> 20);
|
||
if (opiconfig == 0 || opiconfig == 0x3fffffffllu) {
|
||
return 0;
|
||
}
|
||
// (MSB)EFUSE_SPI_PAD_CONF_2(18bit) + EFUSE_SPI_PAD_CONF_1(32bit) + EFUSE_SPI_PAD_CONF_0(16bit) (LSB)
|
||
// [36:41] -- DQS
|
||
// [42:47] -- D4
|
||
// [48:53] -- D5
|
||
// [54:59] -- D6
|
||
// [60:65] -- D7
|
||
return opiconfig & 0x3fffffff;
|
||
}
|
||
#endif
|