mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-11-04 06:11:06 +00:00 
			
		
		
		
	refactor(spi_flash): Add spi_flash driver list linked check
This commit is contained in:
		@@ -17,6 +17,7 @@
 | 
				
			|||||||
#include "esp_private/spi_share_hw_ctrl.h"
 | 
					#include "esp_private/spi_share_hw_ctrl.h"
 | 
				
			||||||
#include "esp_ldo_regulator.h"
 | 
					#include "esp_ldo_regulator.h"
 | 
				
			||||||
#include "hal/spi_flash_hal.h"
 | 
					#include "hal/spi_flash_hal.h"
 | 
				
			||||||
 | 
					#include "spi_flash_chip_driver.h"
 | 
				
			||||||
#include "hal/gpio_hal.h"
 | 
					#include "hal/gpio_hal.h"
 | 
				
			||||||
#include "esp_flash_internal.h"
 | 
					#include "esp_flash_internal.h"
 | 
				
			||||||
#include "esp_rom_gpio.h"
 | 
					#include "esp_rom_gpio.h"
 | 
				
			||||||
@@ -370,6 +371,9 @@ esp_err_t esp_flash_init_default_chip(void)
 | 
				
			|||||||
    s_esp_flash_choose_correct_mode(&cfg);
 | 
					    s_esp_flash_choose_correct_mode(&cfg);
 | 
				
			||||||
    #endif
 | 
					    #endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #if !CONFIG_SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST
 | 
				
			||||||
 | 
					    spi_flash_chip_list_check(&default_chip, legacy_chip->device_id);
 | 
				
			||||||
 | 
					    #endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // For chips need time tuning, get value directly from system here.
 | 
					    // For chips need time tuning, get value directly from system here.
 | 
				
			||||||
    #if SOC_SPI_MEM_SUPPORT_TIMING_TUNING
 | 
					    #if SOC_SPI_MEM_SUPPORT_TIMING_TUNING
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
/*
 | 
					/*
 | 
				
			||||||
 * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
 | 
					 * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * SPDX-License-Identifier: Apache-2.0
 | 
					 * SPDX-License-Identifier: Apache-2.0
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@@ -80,3 +80,13 @@
 | 
				
			|||||||
#define SPI_FLASH_OPIDTR_DUMMY_BITLEN   40
 | 
					#define SPI_FLASH_OPIDTR_DUMMY_BITLEN   40
 | 
				
			||||||
#define SPI_FLASH_QIO_HPM_DUMMY_BITLEN  10
 | 
					#define SPI_FLASH_QIO_HPM_DUMMY_BITLEN  10
 | 
				
			||||||
#define SPI_FLASH_DIO_HPM_DUMMY_BITLEN  8
 | 
					#define SPI_FLASH_DIO_HPM_DUMMY_BITLEN  8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Flash vendors.
 | 
				
			||||||
 | 
					#define SPI_FLASH_GD                    0xC8
 | 
				
			||||||
 | 
					#define SPI_FLASH_ISSI                  0x9D
 | 
				
			||||||
 | 
					#define SPI_FLASH_MXIC                  0xC2
 | 
				
			||||||
 | 
					#define SPI_FLASH_XMC_1                 0x20
 | 
				
			||||||
 | 
					#define SPI_FLASH_XMC_2                 0x46
 | 
				
			||||||
 | 
					#define SPI_FLASH_WINBOND               0xEF
 | 
				
			||||||
 | 
					#define SPI_FLASH_TH                    0xCD
 | 
				
			||||||
 | 
					#define SPI_FLASH_BY                    0x68
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,21 +1,18 @@
 | 
				
			|||||||
// Copyright 2015-2021 Espressif Systems (Shanghai) PTE LTD
 | 
					/*
 | 
				
			||||||
//
 | 
					 * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
 | 
				
			||||||
// Licensed under the Apache License, Version 2.0 (the "License");
 | 
					 *
 | 
				
			||||||
// you may not use this file except in compliance with the License.
 | 
					 * SPDX-License-Identifier: Apache-2.0
 | 
				
			||||||
// You may obtain a copy of the License at
 | 
					 */
 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//     http://www.apache.org/licenses/LICENSE-2.0
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// Unless required by applicable law or agreed to in writing, software
 | 
					 | 
				
			||||||
// distributed under the License is distributed on an "AS IS" BASIS,
 | 
					 | 
				
			||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
					 | 
				
			||||||
// See the License for the specific language governing permissions and
 | 
					 | 
				
			||||||
// limitations under the License.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma once
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <stdint.h>
 | 
					#include <stdint.h>
 | 
				
			||||||
#include "esp_flash.h"
 | 
					#include "esp_flash.h"
 | 
				
			||||||
#include "spi_flash_chip_driver.h"
 | 
					#include "spi_flash_chip_driver.h"
 | 
				
			||||||
 | 
					#include "sdkconfig.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP
 | 
				
			||||||
extern const spi_flash_chip_t esp_flash_chip_boya;
 | 
					extern const spi_flash_chip_t esp_flash_chip_boya;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern __attribute__((weak)) const spi_flash_chip_t esp_flash_chip_boya;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
/*
 | 
					/*
 | 
				
			||||||
 * SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
 | 
					 * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * SPDX-License-Identifier: Apache-2.0
 | 
					 * SPDX-License-Identifier: Apache-2.0
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@@ -212,3 +212,15 @@ struct spi_flash_chip_t {
 | 
				
			|||||||
   This pointer can be overwritten with a pointer to a new array, to update the list of known flash chips.
 | 
					   This pointer can be overwritten with a pointer to a new array, to update the list of known flash chips.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
extern const spi_flash_chip_t **esp_flash_registered_chips;
 | 
					extern const spi_flash_chip_t **esp_flash_registered_chips;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					* @brief Helper function to check if a specific flash chip driver is linked.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Logs a warning if the driver for the detected chip is not linked.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param chip       Pointer to an `esp_flash_t` structure representing the flash chip instance.
 | 
				
			||||||
 | 
					 *                   This structure typically contains information about the chip's characteristics and state.
 | 
				
			||||||
 | 
					 * @param device_id  A 24-bit value representing the unique identifier (ID) of the flash chip.
 | 
				
			||||||
 | 
					 *                   This ID is used to match the chip against known drivers.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					void spi_flash_chip_list_check(esp_flash_t *chip, uint32_t device_id);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,22 +1,15 @@
 | 
				
			|||||||
// Copyright 2015-2019 Espressif Systems (Shanghai) PTE LTD
 | 
					/*
 | 
				
			||||||
//
 | 
					 * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
 | 
				
			||||||
// Licensed under the Apache License, Version 2.0 (the "License");
 | 
					 *
 | 
				
			||||||
// you may not use this file except in compliance with the License.
 | 
					 * SPDX-License-Identifier: Apache-2.0
 | 
				
			||||||
// You may obtain a copy of the License at
 | 
					 */
 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//     http://www.apache.org/licenses/LICENSE-2.0
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// Unless required by applicable law or agreed to in writing, software
 | 
					 | 
				
			||||||
// distributed under the License is distributed on an "AS IS" BASIS,
 | 
					 | 
				
			||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
					 | 
				
			||||||
// See the License for the specific language governing permissions and
 | 
					 | 
				
			||||||
// limitations under the License.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma once
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <stdint.h>
 | 
					#include <stdint.h>
 | 
				
			||||||
#include "esp_flash.h"
 | 
					#include "esp_flash.h"
 | 
				
			||||||
#include "spi_flash_chip_driver.h"
 | 
					#include "spi_flash_chip_driver.h"
 | 
				
			||||||
 | 
					#include "sdkconfig.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@@ -33,4 +26,8 @@ esp_err_t spi_flash_chip_gd_probe(esp_flash_t *chip, uint32_t flash_id);
 | 
				
			|||||||
esp_err_t spi_flash_chip_gd_set_io_mode(esp_flash_t *chip);
 | 
					esp_err_t spi_flash_chip_gd_set_io_mode(esp_flash_t *chip);
 | 
				
			||||||
esp_err_t spi_flash_chip_gd_get_io_mode(esp_flash_t *chip, esp_flash_io_mode_t* out_io_mode);
 | 
					esp_err_t spi_flash_chip_gd_get_io_mode(esp_flash_t *chip, esp_flash_io_mode_t* out_io_mode);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef CONFIG_SPI_FLASH_SUPPORT_GD_CHIP
 | 
				
			||||||
extern const spi_flash_chip_t esp_flash_chip_gd;
 | 
					extern const spi_flash_chip_t esp_flash_chip_gd;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern __attribute__((weak)) const spi_flash_chip_t esp_flash_chip_gd;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,22 +1,15 @@
 | 
				
			|||||||
// Copyright 2015-2019 Espressif Systems (Shanghai) PTE LTD
 | 
					/*
 | 
				
			||||||
//
 | 
					 * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
 | 
				
			||||||
// Licensed under the Apache License, Version 2.0 (the "License");
 | 
					 *
 | 
				
			||||||
// you may not use this file except in compliance with the License.
 | 
					 * SPDX-License-Identifier: Apache-2.0
 | 
				
			||||||
// You may obtain a copy of the License at
 | 
					 */
 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//     http://www.apache.org/licenses/LICENSE-2.0
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// Unless required by applicable law or agreed to in writing, software
 | 
					 | 
				
			||||||
// distributed under the License is distributed on an "AS IS" BASIS,
 | 
					 | 
				
			||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
					 | 
				
			||||||
// See the License for the specific language governing permissions and
 | 
					 | 
				
			||||||
// limitations under the License.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma once
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <stdint.h>
 | 
					#include <stdint.h>
 | 
				
			||||||
#include "esp_flash.h"
 | 
					#include "esp_flash.h"
 | 
				
			||||||
#include "spi_flash_chip_driver.h"
 | 
					#include "spi_flash_chip_driver.h"
 | 
				
			||||||
 | 
					#include "sdkconfig.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@@ -28,4 +21,8 @@ esp_err_t spi_flash_chip_issi_probe(esp_flash_t *chip, uint32_t flash_id);
 | 
				
			|||||||
esp_err_t spi_flash_chip_issi_set_io_mode(esp_flash_t *chip);
 | 
					esp_err_t spi_flash_chip_issi_set_io_mode(esp_flash_t *chip);
 | 
				
			||||||
esp_err_t spi_flash_chip_issi_get_io_mode(esp_flash_t *chip, esp_flash_io_mode_t* out_io_mode);
 | 
					esp_err_t spi_flash_chip_issi_get_io_mode(esp_flash_t *chip, esp_flash_io_mode_t* out_io_mode);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP
 | 
				
			||||||
extern const spi_flash_chip_t esp_flash_chip_issi;
 | 
					extern const spi_flash_chip_t esp_flash_chip_issi;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern __attribute__((weak)) const spi_flash_chip_t esp_flash_chip_issi;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,34 +1,34 @@
 | 
				
			|||||||
// Copyright 2015-2019 Espressif Systems (Shanghai) PTE LTD
 | 
					/*
 | 
				
			||||||
//
 | 
					 * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
 | 
				
			||||||
// Licensed under the Apache License, Version 2.0 (the "License");
 | 
					 *
 | 
				
			||||||
// you may not use this file except in compliance with the License.
 | 
					 * SPDX-License-Identifier: Apache-2.0
 | 
				
			||||||
// You may obtain a copy of the License at
 | 
					 */
 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//     http://www.apache.org/licenses/LICENSE-2.0
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// Unless required by applicable law or agreed to in writing, software
 | 
					 | 
				
			||||||
// distributed under the License is distributed on an "AS IS" BASIS,
 | 
					 | 
				
			||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
					 | 
				
			||||||
// See the License for the specific language governing permissions and
 | 
					 | 
				
			||||||
// limitations under the License.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma once
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <stdint.h>
 | 
					#include <stdint.h>
 | 
				
			||||||
#include "esp_flash.h"
 | 
					#include "esp_flash.h"
 | 
				
			||||||
#include "spi_flash_chip_driver.h"
 | 
					#include "spi_flash_chip_driver.h"
 | 
				
			||||||
 | 
					#include "sdkconfig.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * MXIC SPI flash chip_drv, uses all the above functions for its operations. In
 | 
					 * MXIC SPI flash chip_drv, uses all the above functions for its operations. In
 | 
				
			||||||
 * default autodetection, this is used as a catchall if a more specific chip_drv
 | 
					 * default autodetection, this is used as a catchall if a more specific chip_drv
 | 
				
			||||||
 * is not found.
 | 
					 * is not found.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					#ifdef CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP
 | 
				
			||||||
extern const spi_flash_chip_t esp_flash_chip_mxic;
 | 
					extern const spi_flash_chip_t esp_flash_chip_mxic;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern __attribute__((weak)) const spi_flash_chip_t esp_flash_chip_mxic;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * MXIC OPI flash chip_drv, uses all the above functions for its operations. In
 | 
					 * MXIC OPI flash chip_drv, uses all the above functions for its operations. In
 | 
				
			||||||
 * default autodetection, this is used as a catchall if a more specific chip_drv
 | 
					 * default autodetection, this is used as a catchall if a more specific chip_drv
 | 
				
			||||||
 * is not found.
 | 
					 * is not found.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					#ifdef CONFIG_SPI_FLASH_SUPPORT_MXIC_OPI_CHIP
 | 
				
			||||||
extern const spi_flash_chip_t esp_flash_chip_mxic_opi;
 | 
					extern const spi_flash_chip_t esp_flash_chip_mxic_opi;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern __attribute__((weak)) const spi_flash_chip_t esp_flash_chip_mxic_opi;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
/*
 | 
					/*
 | 
				
			||||||
 * SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
 | 
					 * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * SPDX-License-Identifier: Apache-2.0
 | 
					 * SPDX-License-Identifier: Apache-2.0
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@@ -9,5 +9,10 @@
 | 
				
			|||||||
#include <stdint.h>
 | 
					#include <stdint.h>
 | 
				
			||||||
#include "esp_flash.h"
 | 
					#include "esp_flash.h"
 | 
				
			||||||
#include "spi_flash_chip_driver.h"
 | 
					#include "spi_flash_chip_driver.h"
 | 
				
			||||||
 | 
					#include "sdkconfig.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef CONFIG_SPI_FLASH_SUPPORT_TH_CHIP
 | 
				
			||||||
extern const spi_flash_chip_t esp_flash_chip_th;
 | 
					extern const spi_flash_chip_t esp_flash_chip_th;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern __attribute__((weak)) const spi_flash_chip_t esp_flash_chip_th;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,27 +1,24 @@
 | 
				
			|||||||
// Copyright 2015-2020 Espressif Systems (Shanghai) PTE LTD
 | 
					/*
 | 
				
			||||||
//
 | 
					 * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
 | 
				
			||||||
// Licensed under the Apache License, Version 2.0 (the "License");
 | 
					 *
 | 
				
			||||||
// you may not use this file except in compliance with the License.
 | 
					 * SPDX-License-Identifier: Apache-2.0
 | 
				
			||||||
// You may obtain a copy of the License at
 | 
					 */
 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//     http://www.apache.org/licenses/LICENSE-2.0
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// Unless required by applicable law or agreed to in writing, software
 | 
					 | 
				
			||||||
// distributed under the License is distributed on an "AS IS" BASIS,
 | 
					 | 
				
			||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
					 | 
				
			||||||
// See the License for the specific language governing permissions and
 | 
					 | 
				
			||||||
// limitations under the License.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma once
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <stdint.h>
 | 
					#include <stdint.h>
 | 
				
			||||||
#include "esp_flash.h"
 | 
					#include "esp_flash.h"
 | 
				
			||||||
#include "spi_flash_chip_driver.h"
 | 
					#include "spi_flash_chip_driver.h"
 | 
				
			||||||
 | 
					#include "sdkconfig.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Winbond SPI flash chip_drv, uses all the above functions for its operations. In
 | 
					 * Winbond SPI flash chip_drv, uses all the above functions for its operations. In
 | 
				
			||||||
 * default autodetection, this is used as a catchall if a more specific chip_drv
 | 
					 * default autodetection, this is used as a catchall if a more specific chip_drv
 | 
				
			||||||
 * is not found.
 | 
					 * is not found.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP
 | 
				
			||||||
extern const spi_flash_chip_t esp_flash_chip_winbond;
 | 
					extern const spi_flash_chip_t esp_flash_chip_winbond;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern __attribute__((weak)) const spi_flash_chip_t esp_flash_chip_winbond;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
/*
 | 
					/*
 | 
				
			||||||
 * SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
 | 
					 * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * SPDX-License-Identifier: Apache-2.0
 | 
					 * SPDX-License-Identifier: Apache-2.0
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@@ -13,7 +13,11 @@
 | 
				
			|||||||
#include "spi_flash_chip_winbond.h"
 | 
					#include "spi_flash_chip_winbond.h"
 | 
				
			||||||
#include "spi_flash_chip_boya.h"
 | 
					#include "spi_flash_chip_boya.h"
 | 
				
			||||||
#include "spi_flash_chip_th.h"
 | 
					#include "spi_flash_chip_th.h"
 | 
				
			||||||
 | 
					#include "spi_flash_defs.h"
 | 
				
			||||||
#include "sdkconfig.h"
 | 
					#include "sdkconfig.h"
 | 
				
			||||||
 | 
					#include "esp_log.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define TAG "spi_flash"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if !CONFIG_SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST
 | 
					#if !CONFIG_SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
@@ -52,6 +56,56 @@ static const spi_flash_chip_t *default_registered_chips[] = {
 | 
				
			|||||||
    &esp_flash_chip_generic,
 | 
					    &esp_flash_chip_generic,
 | 
				
			||||||
    NULL,
 | 
					    NULL,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#pragma GCC diagnostic push
 | 
				
			||||||
 | 
					#pragma GCC diagnostic ignored "-Waddress"
 | 
				
			||||||
 | 
					void spi_flash_chip_list_check(esp_flash_t *chip, uint32_t device_id) {
 | 
				
			||||||
 | 
					    uint8_t vendor_id = device_id >> 16;
 | 
				
			||||||
 | 
					    switch (vendor_id)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					    case SPI_FLASH_GD:
 | 
				
			||||||
 | 
					        if (&esp_flash_chip_gd == NULL) {
 | 
				
			||||||
 | 
					            ESP_EARLY_LOGW(TAG, "GigaDevice detected but related driver is not linked, please check option `SPI_FLASH_SUPPORT_GD_CHIP`");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					    case SPI_FLASH_ISSI:
 | 
				
			||||||
 | 
					        if (&esp_flash_chip_issi == NULL) {
 | 
				
			||||||
 | 
					            ESP_EARLY_LOGW(TAG, "ISSI detected but related driver is not linked, please check option `SPI_FLASH_SUPPORT_ISSI_CHIP`");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					    case SPI_FLASH_TH:
 | 
				
			||||||
 | 
					        if (&esp_flash_chip_th == NULL) {
 | 
				
			||||||
 | 
					            ESP_EARLY_LOGW(TAG, "TH detected but related driver is not linked, please check option `SPI_FLASH_SUPPORT_TH_CHIP`");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					    case SPI_FLASH_WINBOND:
 | 
				
			||||||
 | 
					        if (&esp_flash_chip_winbond == NULL) {
 | 
				
			||||||
 | 
					            ESP_EARLY_LOGW(TAG, "winbond detected but related driver is not linked, please check option `SPI_FLASH_SUPPORT_WINBOND_CHIP`");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					    case SPI_FLASH_MXIC:
 | 
				
			||||||
 | 
					        // Need to tell the difference between octal and quad flash.
 | 
				
			||||||
 | 
					        if (chip->read_mode < SPI_FLASH_OPI_FLAG) {
 | 
				
			||||||
 | 
					            if (&esp_flash_chip_mxic == NULL) {
 | 
				
			||||||
 | 
					                ESP_EARLY_LOGW(TAG, "MXIC detected but related driver is not linked, please check option `SPI_FLASH_SUPPORT_MXIC_CHIP`");
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            if (&esp_flash_chip_mxic_opi == NULL) {
 | 
				
			||||||
 | 
					                ESP_EARLY_LOGW(TAG, "MXIC detected but related driver is not linked, please check option `SPI_FLASH_SUPPORT_MXIC_OPI_CHIP`");
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					    case SPI_FLASH_BY:
 | 
				
			||||||
 | 
					        if (&esp_flash_chip_boya == NULL) {
 | 
				
			||||||
 | 
					            ESP_EARLY_LOGW(TAG, "boya detected but related driver is not linked, please check option `SPI_FLASH_SUPPORT_BOYA_CHIP`");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					    default:
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#pragma GCC diagnostic pop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
//When the config option is enabled, user should provide this struct themselves.
 | 
					//When the config option is enabled, user should provide this struct themselves.
 | 
				
			||||||
extern const spi_flash_chip_t *default_registered_chips[];
 | 
					extern const spi_flash_chip_t *default_registered_chips[];
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -515,12 +515,7 @@ components/soc/esp32s2/include/soc/nrx_reg.h
 | 
				
			|||||||
components/soc/esp32s2/include/soc/soc_ulp.h
 | 
					components/soc/esp32s2/include/soc/soc_ulp.h
 | 
				
			||||||
components/soc/esp32s2/include/soc/touch_sensor_channel.h
 | 
					components/soc/esp32s2/include/soc/touch_sensor_channel.h
 | 
				
			||||||
components/soc/esp32s2/include/soc/touch_sensor_pins.h
 | 
					components/soc/esp32s2/include/soc/touch_sensor_pins.h
 | 
				
			||||||
components/spi_flash/include/spi_flash_chip_boya.h
 | 
					 | 
				
			||||||
components/spi_flash/include/spi_flash_chip_gd.h
 | 
					 | 
				
			||||||
components/spi_flash/include/spi_flash_chip_generic.h
 | 
					components/spi_flash/include/spi_flash_chip_generic.h
 | 
				
			||||||
components/spi_flash/include/spi_flash_chip_issi.h
 | 
					 | 
				
			||||||
components/spi_flash/include/spi_flash_chip_mxic.h
 | 
					 | 
				
			||||||
components/spi_flash/include/spi_flash_chip_winbond.h
 | 
					 | 
				
			||||||
components/spi_flash/spi_flash_chip_boya.c
 | 
					components/spi_flash/spi_flash_chip_boya.c
 | 
				
			||||||
components/spi_flash/spi_flash_chip_issi.c
 | 
					components/spi_flash/spi_flash_chip_issi.c
 | 
				
			||||||
components/tcp_transport/include/esp_transport_ws.h
 | 
					components/tcp_transport/include/esp_transport_ws.h
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user