spi: s3c64xx: change polling mode to optional
authorJaewon Kim <jaewon02.kim@samsung.com>
Tue, 2 May 2023 06:28:11 +0000 (15:28 +0900)
committerMark Brown <broonie@kernel.org>
Mon, 8 May 2023 00:10:50 +0000 (09:10 +0900)
Previously, Polling mode was supported as quirk for SOC without DMA.
To provide more flexible support for polling mode, it changed to polling
mode when the 'dmas' property is not present in the devicetree, rather than
using a quirk.

Signed-off-by: Jaewon Kim <jaewon02.kim@samsung.com
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org
Link: https://lore.kernel.org/r/20230502062813.112434-2-jaewon02.kim@samsung.com
Signed-off-by: Mark Brown <broonie@kernel.org
drivers/spi/spi-s3c64xx.c
include/linux/platform_data/spi-s3c64xx.h

index 7ac17f0..5f59d6f 100644 (file)
@@ -19,7 +19,6 @@
 #include <linux/platform_data/spi-s3c64xx.h>
 
 #define MAX_SPI_PORTS          12
-#define S3C64XX_SPI_QUIRK_POLL         (1 << 0)
 #define S3C64XX_SPI_QUIRK_CS_AUTO      (1 << 1)
 #define AUTOSUSPEND_TIMEOUT    2000
 
 #define S3C64XX_SPI_TRAILCNT           S3C64XX_SPI_MAX_TRAILCNT
 
 #define msecs_to_loops(t) (loops_per_jiffy / 1000 * HZ * t)
-#define is_polling(x)  (x->port_conf->quirks & S3C64XX_SPI_QUIRK_POLL)
+#define is_polling(x)  (x->cntrlr_info->polling)
 
 #define RXBUSY    (1<<2)
 #define TXBUSY    (1<<3)
@@ -1068,6 +1067,7 @@ static struct s3c64xx_spi_info *s3c64xx_spi_parse_dt(struct device *dev)
        }
 
        sci->no_cs = of_property_read_bool(dev->of_node, "no-cs-readback");
+       sci->polling = !of_property_present(dev->of_node, "dmas");
 
        return sci;
 }
index 3101152..1d6e6c4 100644 (file)
@@ -36,6 +36,7 @@ struct s3c64xx_spi_info {
        int src_clk_nr;
        int num_cs;
        bool no_cs;
+       bool polling;
        int (*cfg_gpio)(void);
 };