drivers/spi/spi_flash: introduce common spi_flash_part_id object

To further drive to a common approach for describing the spi flash
parts in the drivers add spi_flash_part_id object. All the drivers
are updated to utilize the new object. Additionally, the driver_private
is also not needed in the spi_flash object.

A Chrome OS build of Aleena provides 960 byte saving of text. A subsequent
patch will save more memory.

Change-Id: I9c0cc75f188ac004ab647805b9551bf06a0c646b
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/38378
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
Aaron Durbin
2020-01-11 23:18:51 -07:00
parent ae43f32458
commit a6c73c8987
12 changed files with 679 additions and 1035 deletions

View File

@@ -93,4 +93,18 @@ int spi_flash_probe_gigadevice(const struct spi_slave *spi, u8 *idcode,
int spi_flash_probe_adesto(const struct spi_slave *spi, u8 *idcode,
struct spi_flash *flash);
struct spi_flash_part_id {
uint32_t id;
const char *name;
/* Log based 2 total number of sectors. */
uint16_t nr_sectors_shift: 4;
/* Log based 2 sector size */
uint16_t sector_size_kib_shift: 4;
uint16_t fast_read_dual_output_support : 1;
uint16_t _reserved_for_flags: 7;
/* Block protection. Currently used by Winbond. */
uint16_t protection_granularity_shift : 5;
uint16_t bp_bits : 3;
};
#endif /* SPI_FLASH_INTERNAL_H */