]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
spi: meson-spicc: add spicc loopback mode
authorXianwei Zhao <xianwei.zhao@amlogic.com>
Wed, 12 Jun 2024 09:44:50 +0000 (17:44 +0800)
committerMark Brown <broonie@kernel.org>
Wed, 12 Jun 2024 15:19:59 +0000 (16:19 +0100)
Add spicc loopback mode for debugging convenience.

Signed-off-by: Sunny Luo <sunny.luo@amlogic.com>
Signed-off-by: Xianwei Zhao <xianwei.zhao@amlogic.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20240612-spi_lbc-v1-1-d52e8c8011bd@amlogic.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-meson-spicc.c

index 8a4a8ba9dfede1f20d15404fa176f2b90ee3043e..8838a98b04c23491eeda413344a7cd7c258678e1 100644 (file)
@@ -514,7 +514,9 @@ static int meson_spicc_prepare_message(struct spi_controller *host,
        /* Setup no wait cycles by default */
        writel_relaxed(0, spicc->base + SPICC_PERIODREG);
 
-       writel_bits_relaxed(SPICC_LBC_W1, 0, spicc->base + SPICC_TESTREG);
+       writel_bits_relaxed(SPICC_LBC_W1,
+                           spi->mode & SPI_LOOP ? SPICC_LBC_W1 : 0,
+                           spicc->base + SPICC_TESTREG);
 
        return 0;
 }
@@ -850,7 +852,7 @@ static int meson_spicc_probe(struct platform_device *pdev)
 
        host->num_chipselect = 4;
        host->dev.of_node = pdev->dev.of_node;
-       host->mode_bits = SPI_CPHA | SPI_CPOL | SPI_CS_HIGH;
+       host->mode_bits = SPI_CPHA | SPI_CPOL | SPI_CS_HIGH | SPI_LOOP;
        host->bits_per_word_mask = SPI_BPW_MASK(32) |
                                   SPI_BPW_MASK(24) |
                                   SPI_BPW_MASK(16) |