^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) // SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * Copyright (C) 2005, Intec Automation Inc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) * Copyright (C) 2014, Freescale Semiconductor, Inc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #include <linux/mtd/spi-nor.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #include "core.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) static const struct flash_info eon_parts[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) /* EON -- en25xxx */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) { "en25f32", INFO(0x1c3116, 0, 64 * 1024, 64, SECT_4K) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) { "en25p32", INFO(0x1c2016, 0, 64 * 1024, 64, 0) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) { "en25q32b", INFO(0x1c3016, 0, 64 * 1024, 64, 0) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) { "en25p64", INFO(0x1c2017, 0, 64 * 1024, 128, 0) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) { "en25q64", INFO(0x1c3017, 0, 64 * 1024, 128, SECT_4K) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) { "en25q80a", INFO(0x1c3014, 0, 64 * 1024, 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) SECT_4K | SPI_NOR_DUAL_READ) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) { "en25qh16", INFO(0x1c7015, 0, 64 * 1024, 32,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) SECT_4K | SPI_NOR_DUAL_READ) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) { "en25qh32", INFO(0x1c7016, 0, 64 * 1024, 64, 0) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) { "en25qh64", INFO(0x1c7017, 0, 64 * 1024, 128,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) { "en25qh128", INFO(0x1c7018, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_QUAD_READ) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) { "en25qh256", INFO(0x1c7019, 0, 64 * 1024, 512, SECT_4K) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) { "en25s64", INFO(0x1c3817, 0, 64 * 1024, 128, SECT_4K | SPI_NOR_QUAD_READ) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) const struct spi_nor_manufacturer spi_nor_eon = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) .name = "eon",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) .parts = eon_parts,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) .nparts = ARRAY_SIZE(eon_parts),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) };