• Cyrille Pitchen's avatar
    mtd: spi-nor: introduce SPI 1-2-2 and SPI 1-4-4 protocols · cfc5604c
    Cyrille Pitchen authored
    This patch changes the prototype of spi_nor_scan(): its 3rd parameter
    is replaced by a 'struct spi_nor_hwcaps' pointer, which tells the spi-nor
    framework about the actual hardware capabilities supported by the SPI
    controller and its driver.
    
    Besides, this patch also introduces a new 'struct spi_nor_flash_parameter'
    telling the spi-nor framework about the hardware capabilities supported by
    the SPI flash memory and the associated settings required to use those
    hardware caps.
    
    Then, to improve the readability of spi_nor_scan(), the discovery of the
    memory settings and the memory initialization are now split into two
    dedicated functions.
    
    1 - spi_nor_init_params()
    
    The spi_nor_init_params() function is responsible for initializing the
    'struct spi_nor_flash_parameter'. Currently this structure is filled with
    legacy values but further patches will allow to override some parameter
    values dynamically, for instance by reading the JESD216 Serial Flash
    Discoverable Parameter (SFDP) tables from the SPI memory.
    The spi_nor_init_params() function only deals with the hardware
    capabilities of the SPI flash memory: especially it doesn't care about
    the hardware capabilities supported by the SPI controller.
    
    2 - spi_nor_setup()
    
    The second function is called once the 'struct spi_nor_flash_parameter'
    has been initialized by spi_nor_init_params().
    With both 'struct spi_nor_flash_parameter' and 'struct spi_nor_hwcaps',
    the new argument of spi_nor_scan(), spi_nor_setup() computes the best
    match between hardware caps supported by both the (Q)SPI memory and
    controller hence selecting the relevant settings for (Fast) Read and Page
    Program operations.
    Signed-off-by: default avatarCyrille Pitchen <cyrille.pitchen@atmel.com>
    Reviewed-by: default avatarMarek Vasut <marek.vasut@gmail.com>
    cfc5604c
intel-spi.c 18.7 KB