drv_spiflash.c 1.0 KB
Newer Older
1
/*
2
 * Copyright (c) 2006-2018, RT-Thread Development Team
3
 *
4
 * SPDX-License-Identifier: Apache-2.0
5 6 7 8 9 10
 *
 * Change Logs:
 * Date           Author            Notes
 * 2017-11-08     ZYH            the first version
 */
#include <rtthread.h>
11 12
#if defined(RT_USING_W25QXX) || defined(RT_USING_SFUD)
    #include <drv_spi.h>
13
#ifdef RT_USING_W25QXX
14 15 16 17 18 19 20 21 22 23
    #include "spi_flash_w25qxx.h"
#elif defined(RT_USING_SFUD)
    #include "string.h"
    #include "spi_flash.h"
    #include "spi_flash_sfud.h"
    sfud_flash sfud_norflash0;
    rt_spi_flash_device_t spi_device;
#endif

int rt_nor_flash_init(void)
24
{
25 26 27 28 29 30 31 32 33 34 35 36
    stm32_spi_bus_attach_device(RT_FLASH_CS_PIN, RT_FLASH_SPI_BUS_NAME, "norspi");
#ifdef RT_USING_W25QXX
    return w25qxx_init("flash0", "norspi");
#elif defined(RT_USING_SFUD)
    spi_device = rt_sfud_flash_probe("flash0", "norspi");
    if (spi_device == RT_NULL)
    {
        return -RT_ERROR;
    }
    memcpy(&sfud_norflash0, spi_device->user_data, sizeof(sfud_flash));
    return 0;
#endif
37
}
38
INIT_DEVICE_EXPORT(rt_nor_flash_init);
39
#endif