summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rini <[email protected]>2025-12-02 12:23:15 -0600
committerTom Rini <[email protected]>2025-12-02 13:00:47 -0600
commitd35a98834db52de89916fdc0aaa608061cae0e3f (patch)
tree75dde0aa7d1a31f11cdbe45e0f45f971b2af6ccf
parent30a9f675e562669de614b26956dcb1ec75837a64 (diff)
parentba7721badf08a1e52d8f76b406c52070d2aa9320 (diff)
Merge tag 'u-boot-at91-fixes-2026.01-a' of https://source.denx.de/u-boot/custodians/u-boot-at91
First set of u-boot-at91 fixes for the 2026.01 cycle: This small fixes set includes a fix on the mtd pmecc driver.
-rw-r--r--drivers/mtd/nand/raw/atmel/pmecc.c11
-rw-r--r--drivers/mtd/nand/raw/atmel/pmecc.h1
2 files changed, 7 insertions, 5 deletions
diff --git a/drivers/mtd/nand/raw/atmel/pmecc.c b/drivers/mtd/nand/raw/atmel/pmecc.c
index e500a0fe3f8..1acaa5d0e07 100644
--- a/drivers/mtd/nand/raw/atmel/pmecc.c
+++ b/drivers/mtd/nand/raw/atmel/pmecc.c
@@ -142,6 +142,7 @@ struct atmel_pmecc_caps {
int nstrengths;
int el_offset;
bool correct_erased_chunks;
+ bool clk_ctrl;
};
struct atmel_pmecc_user_conf_cache {
@@ -819,8 +820,7 @@ EXPORT_SYMBOL_GPL(atmel_pmecc_wait_rdy);
static struct atmel_pmecc *
atmel_pmecc_create(struct udevice *dev,
const struct atmel_pmecc_caps *caps,
- int pmecc_res_idx, int errloc_res_idx,
- int timing_res_idx)
+ int pmecc_res_idx, int errloc_res_idx)
{
struct atmel_pmecc *pmecc;
struct resource res;
@@ -838,7 +838,9 @@ atmel_pmecc_create(struct udevice *dev,
ofnode_read_resource(dev->node_, 1, &res);
pmecc->regs.errloc = (void *)res.start;
- pmecc->regs.timing = 0;
+ /* pmecc data setup time */
+ if (caps->clk_ctrl)
+ writel(PMECC_CLK_133MHZ, pmecc->regs.base + ATMEL_PMECC_CLK);
/* Disable all interrupts before registering the PMECC handler. */
writel(0xffffffff, pmecc->regs.base + ATMEL_PMECC_IDR);
@@ -884,6 +886,7 @@ static struct atmel_pmecc_caps at91sam9g45_caps = {
.strengths = atmel_pmecc_strengths,
.nstrengths = 5,
.el_offset = 0x8c,
+ .clk_ctrl = true,
};
static struct atmel_pmecc_caps sama5d4_caps = {
@@ -946,7 +949,7 @@ static int atmel_pmecc_probe(struct udevice *dev)
return -EINVAL;
}
- pmecc = atmel_pmecc_create(dev, caps, 0, 1, 2);
+ pmecc = atmel_pmecc_create(dev, caps, 0, 1);
if (IS_ERR(pmecc))
return PTR_ERR(pmecc);
diff --git a/drivers/mtd/nand/raw/atmel/pmecc.h b/drivers/mtd/nand/raw/atmel/pmecc.h
index 43f96b2f168..88b0d18040e 100644
--- a/drivers/mtd/nand/raw/atmel/pmecc.h
+++ b/drivers/mtd/nand/raw/atmel/pmecc.h
@@ -65,7 +65,6 @@ struct atmel_pmecc {
struct {
void __iomem *base;
void __iomem *errloc;
- void __iomem *timing;
} regs;
/* Mutex used for pmecc enable/disable */