]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
airoha: spi: update en7523 airoha snfi patches & dts
authorMikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Sun, 12 Oct 2025 12:00:13 +0000 (15:00 +0300)
committerChristian Marangi <ansuelsmth@gmail.com>
Thu, 20 Nov 2025 22:08:39 +0000 (23:08 +0100)
Use latest patch version

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Link: https://github.com/openwrt/openwrt/pull/20400
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
target/linux/airoha/dts/en7523.dtsi
target/linux/airoha/patches-6.12/029-14-spi-airoha-snfi-en7523-workaround-flash-damaging.patch [moved from target/linux/airoha/patches-6.12/029-15-spi-airoha-snfi-en7523-workaround-flash-damaging-if-.patch with 64% similarity]
target/linux/airoha/patches-6.12/029-14-spi-airoha-snfi-make-compatible-with-EN7523-SoC.patch [deleted file]

index c58cc7f4674c894e32c76e08ffd46414e8c65740..98c902f6f9db0a67d8b6bd768d5b88ea3dcdf0d5 100644 (file)
                };
        };
 
-       spi_ctrl: spi_controller@1fa10000 {
-               compatible = "airoha,en7523-snand";
+       spi_ctrl: spi@1fa10000 {
+               compatible = "airoha,en7523-snand", "airoha,en7581-snand";
                reg = <0x1fa10000 0x140>,
                      <0x1fa11000 0x160>;
 
similarity index 64%
rename from target/linux/airoha/patches-6.12/029-15-spi-airoha-snfi-en7523-workaround-flash-damaging-if-.patch
rename to target/linux/airoha/patches-6.12/029-14-spi-airoha-snfi-en7523-workaround-flash-damaging.patch
index 0b8fc4c0b0d5d8dc0cff08ee978246487cce7ee9..c40645b0021e414aee0dca3128a9a3eadbcd95df 100644 (file)
@@ -1,8 +1,8 @@
-From 0299de52cbb2274345e12518298a8014adb56411 Mon Sep 17 00:00:00 2001
+From 86f88e604305186aec1fb6eebbf8f0a42c2435d3 Mon Sep 17 00:00:00 2001
 From: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
 Date: Thu, 9 Oct 2025 19:33:23 +0300
-Subject: [PATCH 2/2] spi: airoha-snfi: en7523: workaround flash damaging if
- UART_TXD was short to GND
+Subject: [PATCH] spi: airoha-snfi: en7523: workaround flash damaging
if UART_TXD was short to GND
 
 We found that some serial console may pull TX line to GROUND during board
 boot time. Airoha uses TX line as one of it's BOOT pins. This will lead
@@ -27,8 +27,8 @@ fat warning.
 
 Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
 ---
- drivers/spi/spi-airoha-snfi.c | 38 ++++++++++++++++++++++++++++++++---
- 1 file changed, 35 insertions(+), 3 deletions(-)
+ drivers/spi/spi-airoha-snfi.c | 40 ++++++++++++++++++++++++++++++-----
+ 1 file changed, 35 insertions(+), 5 deletions(-)
 
 --- a/drivers/spi/spi-airoha-snfi.c
 +++ b/drivers/spi/spi-airoha-snfi.c
@@ -44,49 +44,49 @@ Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
  static int airoha_snand_setup(struct spi_device *spi)
  {
        struct airoha_snand_ctrl *as_ctrl;
-@@ -1059,7 +1064,10 @@ static int airoha_snand_probe(struct pla
+@@ -1058,7 +1063,8 @@ static int airoha_snand_probe(struct pla
        struct device *dev = &pdev->dev;
        struct spi_controller *ctrl;
        void __iomem *base;
 -      int err;
 +      int err, dma_enabled;
-+#if defined(CONFIG_ARM)
 +      u32 sfc_strap;
-+#endif
  
        ctrl = devm_spi_alloc_host(dev, sizeof(*as_ctrl));
        if (!ctrl)
-@@ -1093,12 +1101,36 @@ static int airoha_snand_probe(struct pla
+@@ -1092,12 +1098,36 @@ static int airoha_snand_probe(struct pla
                return dev_err_probe(dev, PTR_ERR(as_ctrl->spi_clk),
                                     "unable to get spi clk\n");
  
 -      err = dma_set_mask(as_ctrl->dev, DMA_BIT_MASK(32));
+-      if (err)
+-              return err;
 +      dma_enabled = 1;
-+#if defined(CONFIG_ARM)
-+      err = regmap_read(as_ctrl->regmap_ctrl,
-+                        REG_SPI_CTRL_SFC_STRAP, &sfc_strap);
-       if (err)
-               return err;
-+      if (!(sfc_strap & 0x04)) {
-+              dma_enabled = 0;
-+              printk(KERN_WARNING "\n"
-+                      "=== WARNING ======================================================\n"
-+                      "Detected booting in RESERVED mode (UART_TXD was short to GND).\n"
-+                      "This mode is known for incorrect DMA reading of some flashes.\n"
-+                      "Usage of DMA for flash operations will be disabled to prevent data\n"
-+                      "damage. Unplug your serial console and power cycle the board\n"
-+                      "to boot with full performance.\n"
-+                      "==================================================================\n\n");
++      if (device_is_compatible(dev, "airoha,en7523-snand")) {
++              err = regmap_read(as_ctrl->regmap_ctrl,
++                                REG_SPI_CTRL_SFC_STRAP, &sfc_strap);
++              if (err)
++                      return err;
++
++              if (!(sfc_strap & 0x04)) {
++                      dma_enabled = 0;
++                      printk(KERN_WARNING "\n"
++                              "=== WARNING ======================================================\n"
++                              "Detected booting in RESERVED mode (UART_TXD was short to GND).\n"
++                              "This mode is known for incorrect DMA reading of some flashes.\n"
++                              "Usage of DMA for flash operations will be disabled to prevent data\n"
++                              "damage. Unplug your serial console and power cycle the board\n"
++                              "to boot with full performance.\n"
++                              "==================================================================\n\n");
++              }
 +      }
-+#endif
 +
 +      if (dma_enabled) {
 +              err = dma_set_mask(as_ctrl->dev, DMA_BIT_MASK(32));
 +              if (err)
 +                      return err;
 +      }
-+
        ctrl->num_chipselect = 2;
 -      ctrl->mem_ops = &airoha_snand_mem_ops;
 +      ctrl->mem_ops = dma_enabled ?
diff --git a/target/linux/airoha/patches-6.12/029-14-spi-airoha-snfi-make-compatible-with-EN7523-SoC.patch b/target/linux/airoha/patches-6.12/029-14-spi-airoha-snfi-make-compatible-with-EN7523-SoC.patch
deleted file mode 100644 (file)
index 5e0c59e..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-From 12664d09a94bd0f50f31a3811447f70275ea9bb8 Mon Sep 17 00:00:00 2001
-From: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
-Date: Thu, 9 Oct 2025 19:49:18 +0300
-Subject: [PATCH 1/2] spi: airoha-snfi: make compatible with EN7523 SoC
-
-The driver is fully compatible with EN7523 based SoCs, so add
-corresponding compatible string.
-
-This driver is better than en7523-spi because it supports DMA.
-Measurements shows that DMA based flash reading is 4 times faster
-than non-dma one.
-
-Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
----
- drivers/spi/spi-airoha-snfi.c | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/drivers/spi/spi-airoha-snfi.c
-+++ b/drivers/spi/spi-airoha-snfi.c
-@@ -1047,6 +1047,7 @@ static const struct regmap_config spi_nf
- };
- static const struct of_device_id airoha_snand_ids[] = {
-+      { .compatible   = "airoha,en7523-snand" },
-       { .compatible   = "airoha,en7581-snand" },
-       { /* sentinel */ }
- };