lkml.org 
[lkml]   [2022]   [Mar]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 07/11] spi: aspeed: Workaround AST2500 limitations
    Date
    It is not possible to configure a full 128MB window for a chip of the
    same size on the AST2500 SPI controller. For this case, the maximum
    window size is restricted to 120MB for CE0.

    Reviewed-by: Joel Stanley <joel@jms.id.au>
    Tested-by: Joel Stanley <joel@jms.id.au>
    Tested-by: Tao Ren <rentao.bupt@gmail.com>
    Signed-off-by: Cédric Le Goater <clg@kaod.org>
    ---
    drivers/spi/spi-aspeed-smc.c | 12 ++++++++++++
    1 file changed, 12 insertions(+)

    diff --git a/drivers/spi/spi-aspeed-smc.c b/drivers/spi/spi-aspeed-smc.c
    index 9f7910e79ae8..ab6fa5cfad9c 100644
    --- a/drivers/spi/spi-aspeed-smc.c
    +++ b/drivers/spi/spi-aspeed-smc.c
    @@ -443,6 +443,8 @@ static int aspeed_spi_set_window(struct aspeed_spi *aspi,
    * - ioremap each window, not strictly necessary since the overall window
    * is correct.
    */
    +static const struct aspeed_spi_data ast2500_spi_data;
    +
    static int aspeed_spi_chip_adjust_window(struct aspeed_spi_chip *chip,
    u32 local_offset, u32 size)
    {
    @@ -451,6 +453,16 @@ static int aspeed_spi_chip_adjust_window(struct aspeed_spi_chip *chip,
    struct aspeed_spi_window *win = &windows[chip->cs];
    int ret;

    + /*
    + * Due to an HW issue on the AST2500 SPI controller, the CE0
    + * window size should be smaller than the maximum 128MB.
    + */
    + if (aspi->data == &ast2500_spi_data && chip->cs == 0 && size == SZ_128M) {
    + size = 120 << 20;
    + dev_info(aspi->dev, "CE%d window resized to %dMB (AST2500 HW quirk)",
    + chip->cs, size >> 20);
    + }
    +
    aspeed_spi_get_windows(aspi, windows);

    /* Adjust this chip window */
    --
    2.34.1
    \
     
     \ /
      Last update: 2022-03-04 09:38    [W:2.361 / U:0.228 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site