spi: atmel-quadspi: add support for SAM9X7 QSPI controller
authorVarshini Rajendran <varshini.rajendran@microchip.com>
Mon, 8 Sep 2025 04:14:19 +0000 (09:44 +0530)
committerMark Brown <broonie@kernel.org>
Thu, 18 Sep 2025 21:26:41 +0000 (22:26 +0100)
Add support for the QuadSPI controller found on the SAM9X7 SoC.

This controller does not implement pad calibration. It supports
operation up to 100 MHz, and requires the GCK to run at twice
the data rate.

Signed-off-by: Varshini Rajendran <varshini.rajendran@microchip.com>
Signed-off-by: Dharma Balasubiramani <dharma.b@microchip.com>
Link: https://patch.msgid.link/20250908-microchip-qspi-v2-4-8f3d69fdd5c9@microchip.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/atmel-quadspi.c

index 83cea5f..342cdd6 100644 (file)
@@ -63,6 +63,7 @@
 
 #define SAMA7G5_QSPI0_MAX_SPEED_HZ     200000000
 #define SAMA7G5_QSPI1_SDR_MAX_SPEED_HZ 133000000
+#define SAM9X7_QSPI_MAX_SPEED_HZ       100000000
 
 /* Bitfields in QSPI_CR (Control Register) */
 #define QSPI_CR_QSPIEN                  BIT(0)
@@ -1627,6 +1628,16 @@ static const struct atmel_qspi_caps atmel_sam9x60_qspi_caps = {
        .has_ricr = true,
 };
 
+static const struct atmel_qspi_caps atmel_sam9x7_ospi_caps = {
+       .max_speed_hz = SAM9X7_QSPI_MAX_SPEED_HZ,
+       .has_gclk = true,
+       .octal = true,
+       .has_dma = true,
+       .has_2xgclk = true,
+       .has_padcalib = false,
+       .has_dllon = false,
+};
+
 static const struct atmel_qspi_caps atmel_sama7g5_ospi_caps = {
        .max_speed_hz = SAMA7G5_QSPI0_MAX_SPEED_HZ,
        .has_gclk = true,
@@ -1660,6 +1671,10 @@ static const struct of_device_id atmel_qspi_dt_ids[] = {
                .compatible = "microchip,sama7g5-qspi",
                .data = &atmel_sama7g5_qspi_caps,
        },
+       {
+               .compatible = "microchip,sam9x7-ospi",
+               .data = &atmel_sam9x7_ospi_caps,
+       },
 
        { /* sentinel */ }
 };