aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/mtd/spi-nor/aspeed-smc.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/mtd/spi-nor/aspeed-smc.c b/drivers/mtd/spi-nor/aspeed-smc.c
index 0106357421bd..8d3cbe27efb6 100644
--- a/drivers/mtd/spi-nor/aspeed-smc.c
+++ b/drivers/mtd/spi-nor/aspeed-smc.c
@@ -621,19 +621,18 @@ static void aspeed_smc_chip_set_type(struct aspeed_smc_chip *chip, int type)
621} 621}
622 622
623/* 623/*
624 * The AST2500 FMC flash controller should be strapped by hardware, or 624 * The first chip of the AST2500 FMC flash controller is strapped by
625 * autodetected, but the AST2500 SPI flash needs to be set. 625 * hardware, or autodetected, but other chips need to be set. Enforce
626 * the 4B setting for all chips.
626 */ 627 */
627static void aspeed_smc_chip_set_4b(struct aspeed_smc_chip *chip) 628static void aspeed_smc_chip_set_4b(struct aspeed_smc_chip *chip)
628{ 629{
629 struct aspeed_smc_controller *controller = chip->controller; 630 struct aspeed_smc_controller *controller = chip->controller;
630 u32 reg; 631 u32 reg;
631 632
632 if (chip->controller->info == &spi_2500_info) { 633 reg = readl(controller->regs + CE_CONTROL_REG);
633 reg = readl(controller->regs + CE_CONTROL_REG); 634 reg |= 1 << chip->cs;
634 reg |= 1 << chip->cs; 635 writel(reg, controller->regs + CE_CONTROL_REG);
635 writel(reg, controller->regs + CE_CONTROL_REG);
636 }
637} 636}
638 637
639/* 638/*