Skip to content

Commit bb2d5c6

Browse files
mwalleambarus
authored andcommitted
mtd: spi-nor: spansion: convert flash_info to new format
The INFOx() macros are going away. Convert the flash_info database to the new format. Signed-off-by: Michael Walle <mwalle@kernel.org> Link: https://lore.kernel.org/r/20230807-mtd-flash-info-db-rework-v3-26-e60548861b10@kernel.org Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
1 parent 8eb4eb8 commit bb2d5c6

1 file changed

Lines changed: 241 additions & 129 deletions

File tree

drivers/mtd/spi-nor/spansion.c

Lines changed: 241 additions & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -756,140 +756,252 @@ static const struct spi_nor_fixups s25fs_s_nor_fixups = {
756756
};
757757

758758
static const struct flash_info spansion_nor_parts[] = {
759-
{ "s25sl032p", INFO(0x010215, 0x4d00, 64 * 1024, 64)
760-
NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
761-
{ "s25sl064p", INFO(0x010216, 0x4d00, 64 * 1024, 128)
762-
NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
763-
{ "s25fl128s0", INFO6(0x012018, 0x4d0080, 256 * 1024, 64)
764-
NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ)
765-
MFR_FLAGS(USE_CLSR)
766-
},
767-
{ "s25fl128s1", INFO6(0x012018, 0x4d0180, 64 * 1024, 256)
768-
NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ)
769-
MFR_FLAGS(USE_CLSR)
770-
},
771-
{ "s25fl256s0", INFO6(0x010219, 0x4d0080, 256 * 1024, 128)
772-
NO_SFDP_FLAGS(SPI_NOR_SKIP_SFDP | SPI_NOR_DUAL_READ |
773-
SPI_NOR_QUAD_READ)
774-
MFR_FLAGS(USE_CLSR)
775-
},
776-
{ "s25fl256s1", INFO6(0x010219, 0x4d0180, 64 * 1024, 512)
777-
NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ)
778-
MFR_FLAGS(USE_CLSR)
779-
},
780-
{ "s25fl512s", INFO6(0x010220, 0x4d0080, 256 * 1024, 256)
781-
FLAGS(SPI_NOR_HAS_LOCK)
782-
NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ)
783-
MFR_FLAGS(USE_CLSR)
784-
},
785-
{ "s25fs128s1", INFO6(0x012018, 0x4d0181, 64 * 1024, 256)
786-
NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ)
787-
MFR_FLAGS(USE_CLSR)
788-
.fixups = &s25fs_s_nor_fixups, },
789-
{ "s25fs256s0", INFO6(0x010219, 0x4d0081, 256 * 1024, 128)
790-
NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ)
791-
MFR_FLAGS(USE_CLSR)
792-
},
793-
{ "s25fs256s1", INFO6(0x010219, 0x4d0181, 64 * 1024, 512)
794-
NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ)
795-
MFR_FLAGS(USE_CLSR)
796-
},
797-
{ "s25fs512s", INFO6(0x010220, 0x4d0081, 256 * 1024, 256)
798-
NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ)
799-
MFR_FLAGS(USE_CLSR)
800-
.fixups = &s25fs_s_nor_fixups, },
801-
{ "s25sl12800", INFO(0x012018, 0x0300, 256 * 1024, 64) },
802-
{ "s25sl12801", INFO(0x012018, 0x0301, 64 * 1024, 256) },
803-
{ "s25fl129p0", INFO(0x012018, 0x4d00, 256 * 1024, 64)
804-
NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ)
805-
MFR_FLAGS(USE_CLSR)
806-
},
807-
{ "s25fl129p1", INFO(0x012018, 0x4d01, 64 * 1024, 256)
808-
NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ)
809-
MFR_FLAGS(USE_CLSR)
810-
},
811-
{ "s25sl004a", INFO(0x010212, 0, 64 * 1024, 8) },
812-
{ "s25sl008a", INFO(0x010213, 0, 64 * 1024, 16) },
813-
{ "s25sl016a", INFO(0x010214, 0, 64 * 1024, 32) },
814-
{ "s25sl032a", INFO(0x010215, 0, 64 * 1024, 64) },
815-
{ "s25sl064a", INFO(0x010216, 0, 64 * 1024, 128) },
816-
{ "s25fl004k", INFO(0xef4013, 0, 64 * 1024, 8)
817-
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
818-
SPI_NOR_QUAD_READ) },
819-
{ "s25fl008k", INFO(0xef4014, 0, 64 * 1024, 16)
820-
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
821-
SPI_NOR_QUAD_READ) },
822-
{ "s25fl016k", INFO(0xef4015, 0, 64 * 1024, 32)
823-
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
824-
SPI_NOR_QUAD_READ) },
825-
{ "s25fl064k", INFO(0xef4017, 0, 64 * 1024, 128)
826-
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
827-
SPI_NOR_QUAD_READ) },
828-
{ "s25fl116k", INFO(0x014015, 0, 64 * 1024, 32)
829-
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
830-
SPI_NOR_QUAD_READ) },
831-
{ "s25fl132k", INFO(0x014016, 0, 64 * 1024, 64)
832-
NO_SFDP_FLAGS(SECT_4K) },
833-
{ "s25fl164k", INFO(0x014017, 0, 64 * 1024, 128)
834-
NO_SFDP_FLAGS(SECT_4K) },
835-
{ "s25fl204k", INFO(0x014013, 0, 64 * 1024, 8)
836-
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ) },
837-
{ "s25fl208k", INFO(0x014014, 0, 64 * 1024, 16)
838-
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ) },
839-
{ "s25fl064l", INFO(0x016017, 0, 64 * 1024, 128)
840-
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ)
841-
FIXUP_FLAGS(SPI_NOR_4B_OPCODES) },
842-
{ "s25fl128l", INFO(0x016018, 0, 64 * 1024, 256)
843-
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ)
844-
FIXUP_FLAGS(SPI_NOR_4B_OPCODES) },
845-
{ "s25fl256l", INFO(0x016019, 0, 64 * 1024, 512)
846-
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ)
847-
FIXUP_FLAGS(SPI_NOR_4B_OPCODES) },
848-
{ "s25fs256t", INFO6(0x342b19, 0x0f0890, 0, 0)
849-
MFR_FLAGS(USE_CLPEF)
850-
.fixups = &s25fs256t_fixups },
851-
{ "s25hl512t", INFO6(0x342a1a, 0x0f0390, 0, 0)
852-
MFR_FLAGS(USE_CLPEF)
853-
.fixups = &s25hx_t_fixups },
854-
{ "s25hl01gt", INFO6(0x342a1b, 0x0f0390, 0, 0)
855-
MFR_FLAGS(USE_CLPEF)
856-
.fixups = &s25hx_t_fixups },
857-
{ "s25hl02gt", INFO6(0x342a1c, 0x0f0090, 0, 0)
858-
MFR_FLAGS(USE_CLPEF)
859-
FLAGS(NO_CHIP_ERASE)
860-
.fixups = &s25hx_t_fixups },
861-
{ "s25hs512t", INFO6(0x342b1a, 0x0f0390, 0, 0)
862-
MFR_FLAGS(USE_CLPEF)
863-
.fixups = &s25hx_t_fixups },
864-
{ "s25hs01gt", INFO6(0x342b1b, 0x0f0390, 0, 0)
865-
MFR_FLAGS(USE_CLPEF)
866-
.fixups = &s25hx_t_fixups },
867-
{ "s25hs02gt", INFO6(0x342b1c, 0x0f0090, 0, 0)
868-
MFR_FLAGS(USE_CLPEF)
869-
FLAGS(NO_CHIP_ERASE)
870-
.fixups = &s25hx_t_fixups },
871-
{ "cy15x104q", INFO6(0x042cc2, 0x7f7f7f, 512 * 1024, 1)
872-
FLAGS(SPI_NOR_NO_ERASE) },
873-
{ "s28hl512t", INFO(0x345a1a, 0, 0, 0)
874-
MFR_FLAGS(USE_CLPEF)
759+
{
760+
.id = SNOR_ID(0x01, 0x02, 0x15, 0x4d, 0x00),
761+
.name = "s25sl032p",
762+
.size = SZ_4M,
763+
.no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
764+
}, {
765+
.id = SNOR_ID(0x01, 0x02, 0x16, 0x4d, 0x00),
766+
.name = "s25sl064p",
767+
.size = SZ_8M,
768+
.no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
769+
}, {
770+
.id = SNOR_ID(0x01, 0x20, 0x18, 0x4d, 0x00, 0x80),
771+
.name = "s25fl128s0",
772+
.size = SZ_16M,
773+
.sector_size = SZ_256K,
774+
.no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
775+
.mfr_flags = USE_CLSR,
776+
}, {
777+
.id = SNOR_ID(0x01, 0x20, 0x18, 0x4d, 0x01, 0x80),
778+
.name = "s25fl128s1",
779+
.size = SZ_16M,
780+
.no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
781+
.mfr_flags = USE_CLSR,
782+
}, {
783+
.id = SNOR_ID(0x01, 0x02, 0x19, 0x4d, 0x00, 0x80),
784+
.name = "s25fl256s0",
785+
.size = SZ_32M,
786+
.sector_size = SZ_256K,
787+
.no_sfdp_flags = SPI_NOR_SKIP_SFDP | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
788+
.mfr_flags = USE_CLSR,
789+
}, {
790+
.id = SNOR_ID(0x01, 0x02, 0x19, 0x4d, 0x01, 0x80),
791+
.name = "s25fl256s1",
792+
.size = SZ_32M,
793+
.no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
794+
.mfr_flags = USE_CLSR,
795+
}, {
796+
.id = SNOR_ID(0x01, 0x02, 0x20, 0x4d, 0x00, 0x80),
797+
.name = "s25fl512s",
798+
.size = SZ_64M,
799+
.sector_size = SZ_256K,
800+
.flags = SPI_NOR_HAS_LOCK,
801+
.no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
802+
.mfr_flags = USE_CLSR,
803+
}, {
804+
.id = SNOR_ID(0x01, 0x20, 0x18, 0x4d, 0x01, 0x81),
805+
.name = "s25fs128s1",
806+
.size = SZ_16M,
807+
.no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
808+
.mfr_flags = USE_CLSR,
809+
.fixups = &s25fs_s_nor_fixups,
810+
}, {
811+
.id = SNOR_ID(0x01, 0x02, 0x19, 0x4d, 0x00, 0x81),
812+
.name = "s25fs256s0",
813+
.size = SZ_32M,
814+
.sector_size = SZ_256K,
815+
.no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
816+
.mfr_flags = USE_CLSR,
817+
}, {
818+
.id = SNOR_ID(0x01, 0x02, 0x19, 0x4d, 0x01, 0x81),
819+
.name = "s25fs256s1",
820+
.size = SZ_32M,
821+
.no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
822+
.mfr_flags = USE_CLSR,
823+
}, {
824+
.id = SNOR_ID(0x01, 0x02, 0x20, 0x4d, 0x00, 0x81),
825+
.name = "s25fs512s",
826+
.size = SZ_64M,
827+
.sector_size = SZ_256K,
828+
.no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
829+
.mfr_flags = USE_CLSR,
830+
.fixups = &s25fs_s_nor_fixups,
831+
}, {
832+
.id = SNOR_ID(0x01, 0x20, 0x18, 0x03, 0x00),
833+
.name = "s25sl12800",
834+
.size = SZ_16M,
835+
.sector_size = SZ_256K,
836+
}, {
837+
.id = SNOR_ID(0x01, 0x20, 0x18, 0x03, 0x01),
838+
.name = "s25sl12801",
839+
.size = SZ_16M,
840+
}, {
841+
.id = SNOR_ID(0x01, 0x20, 0x18, 0x4d, 0x00),
842+
.name = "s25fl129p0",
843+
.size = SZ_16M,
844+
.sector_size = SZ_256K,
845+
.no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
846+
.mfr_flags = USE_CLSR,
847+
}, {
848+
.id = SNOR_ID(0x01, 0x20, 0x18, 0x4d, 0x01),
849+
.name = "s25fl129p1",
850+
.size = SZ_16M,
851+
.no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
852+
.mfr_flags = USE_CLSR,
853+
}, {
854+
.id = SNOR_ID(0x01, 0x02, 0x12),
855+
.name = "s25sl004a",
856+
.size = SZ_512K,
857+
}, {
858+
.id = SNOR_ID(0x01, 0x02, 0x13),
859+
.name = "s25sl008a",
860+
.size = SZ_1M,
861+
}, {
862+
.id = SNOR_ID(0x01, 0x02, 0x14),
863+
.name = "s25sl016a",
864+
.size = SZ_2M,
865+
}, {
866+
.id = SNOR_ID(0x01, 0x02, 0x15),
867+
.name = "s25sl032a",
868+
.size = SZ_4M,
869+
}, {
870+
.id = SNOR_ID(0x01, 0x02, 0x16),
871+
.name = "s25sl064a",
872+
.size = SZ_8M,
873+
}, {
874+
.id = SNOR_ID(0xef, 0x40, 0x13),
875+
.name = "s25fl004k",
876+
.size = SZ_512K,
877+
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
878+
}, {
879+
.id = SNOR_ID(0xef, 0x40, 0x14),
880+
.name = "s25fl008k",
881+
.size = SZ_1M,
882+
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
883+
}, {
884+
.id = SNOR_ID(0xef, 0x40, 0x15),
885+
.name = "s25fl016k",
886+
.size = SZ_2M,
887+
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
888+
}, {
889+
.id = SNOR_ID(0xef, 0x40, 0x17),
890+
.name = "s25fl064k",
891+
.size = SZ_8M,
892+
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
893+
}, {
894+
.id = SNOR_ID(0x01, 0x40, 0x15),
895+
.name = "s25fl116k",
896+
.size = SZ_2M,
897+
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
898+
}, {
899+
.id = SNOR_ID(0x01, 0x40, 0x16),
900+
.name = "s25fl132k",
901+
.size = SZ_4M,
902+
.no_sfdp_flags = SECT_4K,
903+
}, {
904+
.id = SNOR_ID(0x01, 0x40, 0x17),
905+
.name = "s25fl164k",
906+
.size = SZ_8M,
907+
.no_sfdp_flags = SECT_4K,
908+
}, {
909+
.id = SNOR_ID(0x01, 0x40, 0x13),
910+
.name = "s25fl204k",
911+
.size = SZ_512K,
912+
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ,
913+
}, {
914+
.id = SNOR_ID(0x01, 0x40, 0x14),
915+
.name = "s25fl208k",
916+
.size = SZ_1M,
917+
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ,
918+
}, {
919+
.id = SNOR_ID(0x01, 0x60, 0x17),
920+
.name = "s25fl064l",
921+
.size = SZ_8M,
922+
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
923+
.fixup_flags = SPI_NOR_4B_OPCODES,
924+
}, {
925+
.id = SNOR_ID(0x01, 0x60, 0x18),
926+
.name = "s25fl128l",
927+
.size = SZ_16M,
928+
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
929+
.fixup_flags = SPI_NOR_4B_OPCODES,
930+
}, {
931+
.id = SNOR_ID(0x01, 0x60, 0x19),
932+
.name = "s25fl256l",
933+
.size = SZ_32M,
934+
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
935+
.fixup_flags = SPI_NOR_4B_OPCODES,
936+
}, {
937+
.id = SNOR_ID(0x34, 0x2b, 0x19, 0x0f, 0x08, 0x90),
938+
.name = "s25fs256t",
939+
.mfr_flags = USE_CLPEF,
940+
.fixups = &s25fs256t_fixups
941+
}, {
942+
.id = SNOR_ID(0x34, 0x2a, 0x1a, 0x0f, 0x03, 0x90),
943+
.name = "s25hl512t",
944+
.mfr_flags = USE_CLPEF,
945+
.fixups = &s25hx_t_fixups
946+
}, {
947+
.id = SNOR_ID(0x34, 0x2a, 0x1b, 0x0f, 0x03, 0x90),
948+
.name = "s25hl01gt",
949+
.mfr_flags = USE_CLPEF,
950+
.fixups = &s25hx_t_fixups
951+
}, {
952+
.id = SNOR_ID(0x34, 0x2a, 0x1c, 0x0f, 0x00, 0x90),
953+
.name = "s25hl02gt",
954+
.mfr_flags = USE_CLPEF,
955+
.flags = NO_CHIP_ERASE,
956+
.fixups = &s25hx_t_fixups
957+
}, {
958+
.id = SNOR_ID(0x34, 0x2b, 0x1a, 0x0f, 0x03, 0x90),
959+
.name = "s25hs512t",
960+
.mfr_flags = USE_CLPEF,
961+
.fixups = &s25hx_t_fixups
962+
}, {
963+
.id = SNOR_ID(0x34, 0x2b, 0x1b, 0x0f, 0x03, 0x90),
964+
.name = "s25hs01gt",
965+
.mfr_flags = USE_CLPEF,
966+
.fixups = &s25hx_t_fixups
967+
}, {
968+
.id = SNOR_ID(0x34, 0x2b, 0x1c, 0x0f, 0x00, 0x90),
969+
.name = "s25hs02gt",
970+
.mfr_flags = USE_CLPEF,
971+
.flags = NO_CHIP_ERASE,
972+
.fixups = &s25hx_t_fixups
973+
}, {
974+
.id = SNOR_ID(0x04, 0x2c, 0xc2, 0x7f, 0x7f, 0x7f),
975+
.name = "cy15x104q",
976+
.size = SZ_512K,
977+
.sector_size = SZ_512K,
978+
.flags = SPI_NOR_NO_ERASE,
979+
}, {
980+
.id = SNOR_ID(0x34, 0x5a, 0x1a),
981+
.name = "s28hl512t",
982+
.mfr_flags = USE_CLPEF,
875983
.fixups = &s28hx_t_fixups,
876-
},
877-
{ "s28hl01gt", INFO(0x345a1b, 0, 0, 0)
878-
MFR_FLAGS(USE_CLPEF)
984+
}, {
985+
.id = SNOR_ID(0x34, 0x5a, 0x1b),
986+
.name = "s28hl01gt",
987+
.mfr_flags = USE_CLPEF,
879988
.fixups = &s28hx_t_fixups,
880-
},
881-
{ "s28hs512t", INFO(0x345b1a, 0, 0, 0)
882-
MFR_FLAGS(USE_CLPEF)
989+
}, {
990+
.id = SNOR_ID(0x34, 0x5b, 0x1a),
991+
.name = "s28hs512t",
992+
.mfr_flags = USE_CLPEF,
883993
.fixups = &s28hx_t_fixups,
884-
},
885-
{ "s28hs01gt", INFO(0x345b1b, 0, 0, 0)
886-
MFR_FLAGS(USE_CLPEF)
994+
}, {
995+
.id = SNOR_ID(0x34, 0x5b, 0x1b),
996+
.name = "s28hs01gt",
997+
.mfr_flags = USE_CLPEF,
887998
.fixups = &s28hx_t_fixups,
888-
},
889-
{ "s28hs02gt", INFO(0x345b1c, 0, 0, 0)
890-
MFR_FLAGS(USE_CLPEF)
999+
}, {
1000+
.id = SNOR_ID(0x34, 0x5b, 0x1c),
1001+
.name = "s28hs02gt",
1002+
.mfr_flags = USE_CLPEF,
8911003
.fixups = &s28hx_t_fixups,
892-
},
1004+
}
8931005
};
8941006

8951007
/**

0 commit comments

Comments
 (0)