Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:22:50

0001 /* SPDX-License-Identifier: BSD-2-Clause */
0002 
0003 /*
0004  * Copyright (C) 2020 embedded brains GmbH & Co. KG
0005  *
0006  * Redistribution and use in source and binary forms, with or without
0007  * modification, are permitted provided that the following conditions
0008  * are met:
0009  * 1. Redistributions of source code must retain the above copyright
0010  *    notice, this list of conditions and the following disclaimer.
0011  * 2. Redistributions in binary form must reproduce the above copyright
0012  *    notice, this list of conditions and the following disclaimer in the
0013  *    documentation and/or other materials provided with the distribution.
0014  *
0015  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
0016  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
0017  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
0018  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
0019  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
0020  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
0021  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
0022  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
0023  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
0024  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
0025  * POSSIBILITY OF SUCH DAMAGE.
0026  */
0027 
0028 #include <bsp/flash-headers.h>
0029 #include <bspopts.h>
0030 
0031 const flexspi_nor_config_t imxrt_flexspi_config = {
0032   .memConfig = {
0033     .tag = FLEXSPI_CFG_BLK_TAG,
0034     .version = FLEXSPI_CFG_BLK_VERSION,
0035     .readSampleClkSrc = kFlexSPIReadSampleClk_ExternalInputFromDqsPad,
0036     .csHoldTime = 3u,
0037     .csSetupTime = 3u,
0038     .columnAddressWidth = 3u,
0039     .controllerMiscOption = (1 << kFlexSpiMiscOffset_DdrModeEnable) |
0040                             (1 << kFlexSpiMiscOffset_WordAddressableEnable) |
0041                             (1 << kFlexSpiMiscOffset_SafeConfigFreqEnable) |
0042                             (1 << kFlexSpiMiscOffset_DiffClkEnable),
0043     .deviceType = kFlexSpiDeviceType_SerialRAM,
0044     .sflashPadType = kSerialFlash_8Pads,
0045     .serialClkFreq = kFlexSpiSerialClk_133MHz,
0046     .sflashA1Size = IMXRT_MEMORY_FLASH_SIZE,
0047     .dataValidTime = {16u, 16u},
0048     .lookupTable = {
0049       FLEXSPI_LUT_SEQ(CMD_DDR, FLEXSPI_8PAD, 0xA0, RADDR_DDR, FLEXSPI_8PAD, 0x18),
0050       FLEXSPI_LUT_SEQ(CADDR_DDR, FLEXSPI_8PAD, 0x10, DUMMY_DDR, FLEXSPI_8PAD, 0x06),
0051       FLEXSPI_LUT_SEQ(READ_DDR, FLEXSPI_8PAD, 0x04, STOP, FLEXSPI_1PAD, 0x0),
0052     },
0053     .lutCustomSeq = {{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},
0054                      {0,0},{0,0},{0,0},{0,0},{0,0},{0,0}},
0055   },
0056   .pageSize = 0x200,
0057   .sectorSize = 0x40000,
0058   .blockSize = 0x40000,
0059   .isUniformBlockSize = 1,
0060 };