// SPDX-License-Identifier: GPL-2.0 /* * Copyright (C) 2005, Intec Automation Inc. * Copyright (C) 2014, Freescale Semiconductor, Inc. */ #include #include "core.h" static const struct flash_info everspin_nor_parts[] = { { .name = "mr25h128", .size = SZ_16K, .sector_size = SZ_16K, .addr_nbytes = 2, .flags = SPI_NOR_NO_ERASE, }, { .name = "mr25h256", .size = SZ_32K, .sector_size = SZ_32K, .addr_nbytes = 2, .flags = SPI_NOR_NO_ERASE, }, { .name = "mr25h10", .size = SZ_128K, .sector_size = SZ_128K, .flags = SPI_NOR_NO_ERASE, }, { .name = "mr25h40", .size = SZ_512K, .sector_size = SZ_512K, .flags = SPI_NOR_NO_ERASE, } }; static void everspin_nor_default_init(struct spi_nor *nor) { /* Everspin FRAMs don't support the fast read opcode. */ nor->params->hwcaps.mask &= ~SNOR_HWCAPS_READ_FAST; } static const struct spi_nor_fixups everspin_nor_fixups = { .default_init = everspin_nor_default_init, }; const struct spi_nor_manufacturer spi_nor_everspin = { .name = "everspin", .parts = everspin_nor_parts, .nparts = ARRAY_SIZE(everspin_nor_parts), .fixups = &everspin_nor_fixups, };