[PATCH] mtd: spi-nor: aspeed: set 4B setting for all chips

Cyrille Pitchen cyrille.pitchen at wedev4u.fr
Mon Aug 14 08:28:05 PDT 2017


Le 02/08/2017 à 10:51, Cédric Le Goater a écrit :
> The driver made the wrong assumption that the 4B setting was
> autodetected for all chips of the AST2500 FMC flash controller. This
> is only the case for the CS0.
> 
> Signed-off-by: Cédric Le Goater <clg at kaod.org>

Applied to the spi-nor/next branch of l2-mtd

Thanks!
> ---
>  drivers/mtd/spi-nor/aspeed-smc.c | 13 ++++++-------
>  1 file changed, 6 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/mtd/spi-nor/aspeed-smc.c b/drivers/mtd/spi-nor/aspeed-smc.c
> index 23622bf62b6b..1b76fe14a435 100644
> --- a/drivers/mtd/spi-nor/aspeed-smc.c
> +++ b/drivers/mtd/spi-nor/aspeed-smc.c
> @@ -794,19 +794,18 @@ static void aspeed_smc_chip_set_type(struct aspeed_smc_chip *chip, int type)
>  }
>  
>  /*
> - * The AST2500 FMC flash controller should be strapped by hardware, or
> - * autodetected, but the AST2500 SPI flash needs to be set.
> + * The first chip of the AST2500 FMC flash controller is strapped by
> + * hardware, or autodetected, but other chips need to be set. Enforce
> + * the 4B setting for all chips.
>   */
>  static void aspeed_smc_chip_set_4b(struct aspeed_smc_chip *chip)
>  {
>  	struct aspeed_smc_controller *controller = chip->controller;
>  	u32 reg;
>  
> -	if (chip->controller->info == &spi_2500_info) {
> -		reg = readl(controller->regs + CE_CONTROL_REG);
> -		reg |= 1 << chip->cs;
> -		writel(reg, controller->regs + CE_CONTROL_REG);
> -	}
> +	reg = readl(controller->regs + CE_CONTROL_REG);
> +	reg |= 1 << chip->cs;
> +	writel(reg, controller->regs + CE_CONTROL_REG);
>  }
>  
>  /*
> 




More information about the linux-mtd mailing list