xref: /linux/drivers/mtd/spi-nor/eon.c (revision c02ce1735b150cf7c3b43790b48e23dcd17c0d46)
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Copyright (C) 2005, Intec Automation Inc.
4  * Copyright (C) 2014, Freescale Semiconductor, Inc.
5  */
6 
7 #include <linux/mtd/spi-nor.h>
8 
9 #include "core.h"
10 
11 static const struct flash_info eon_nor_parts[] = {
12 	{
13 		.id = SNOR_ID(0x1c, 0x20, 0x16),
14 		.name = "en25p32",
15 		.size = SZ_4M,
16 	}, {
17 		.id = SNOR_ID(0x1c, 0x20, 0x17),
18 		.name = "en25p64",
19 		.size = SZ_8M,
20 	}, {
21 		.id = SNOR_ID(0x1c, 0x30, 0x14),
22 		.name = "en25q80a",
23 		.size = SZ_1M,
24 		.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ,
25 	}, {
26 		.id = SNOR_ID(0x1c, 0x30, 0x16),
27 		.name = "en25q32b",
28 		.size = SZ_4M,
29 	}, {
30 		.id = SNOR_ID(0x1c, 0x30, 0x17),
31 		.name = "en25q64",
32 		.size = SZ_8M,
33 		.no_sfdp_flags = SECT_4K,
34 	}, {
35 		.id = SNOR_ID(0x1c, 0x31, 0x16),
36 		.name = "en25f32",
37 		.size = SZ_4M,
38 		.no_sfdp_flags = SECT_4K,
39 	}, {
40 		.name = "en25s64",
41 		.id = SNOR_ID(0x1c, 0x38, 0x17),
42 		.size = SZ_8M,
43 		.no_sfdp_flags = SECT_4K,
44 	}, {
45 		.id = SNOR_ID(0x1c, 0x70, 0x15),
46 		.name = "en25qh16",
47 		.size = SZ_2M,
48 		.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ,
49 	}, {
50 		.id = SNOR_ID(0x1c, 0x70, 0x16),
51 		.name = "en25qh32",
52 		.size = SZ_4M,
53 	}, {
54 		.id = SNOR_ID(0x1c, 0x70, 0x17),
55 		.name = "en25qh64",
56 		.size = SZ_8M,
57 		.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ,
58 	}, {
59 		.id = SNOR_ID(0x1c, 0x70, 0x18),
60 		.name = "en25qh128",
61 		.size = SZ_16M,
62 	}, {
63 		.id = SNOR_ID(0x1c, 0x70, 0x19),
64 		.name = "en25qh256",
65 	},
66 };
67 
68 const struct spi_nor_manufacturer spi_nor_eon = {
69 	.name = "eon",
70 	.parts = eon_nor_parts,
71 	.nparts = ARRAY_SIZE(eon_nor_parts),
72 };
73