mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-11-04 09:01:40 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			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
 |