From: Brad Larson <brad@pensando.io> To: linux-arm-kernel@lists.infradead.org Cc: arnd@arndb.de, linus.walleij@linaro.org, bgolaszewski@baylibre.com, broonie@kernel.org, fancer.lancer@gmail.com, adrian.hunter@intel.com, ulf.hansson@linaro.org, olof@lixom.net, brad@pensando.io, linux-gpio@vger.kernel.org, linux-spi@vger.kernel.org, linux-mmc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 03/13] spi: dw: Add support for Pensando Elba SoC SPI Date: Sun, 28 Mar 2021 18:59:28 -0700 [thread overview] Message-ID: <20210329015938.20316-4-brad@pensando.io> (raw) In-Reply-To: <20210329015938.20316-1-brad@pensando.io> The Pensando Elba SoC uses a GPIO based chip select for two DW SPI busses with each bus having two chip selects. Signed-off-by: Brad Larson <brad@pensando.io> --- drivers/spi/spi-dw-mmio.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/drivers/spi/spi-dw-mmio.c b/drivers/spi/spi-dw-mmio.c index 17c06039a74d..c323a5ceecb8 100644 --- a/drivers/spi/spi-dw-mmio.c +++ b/drivers/spi/spi-dw-mmio.c @@ -56,7 +56,7 @@ struct dw_spi_mscc { /* * The Designware SPI controller (referred to as master in the documentation) * automatically deasserts chip select when the tx fifo is empty. The chip - * selects then needs to be either driven as GPIOs or, for the first 4 using the + * selects then needs to be either driven as GPIOs or, for the first 4 using * the SPI boot controller registers. the final chip select is an OR gate * between the Designware SPI controller and the SPI boot controller. */ @@ -237,6 +237,31 @@ static int dw_spi_canaan_k210_init(struct platform_device *pdev, return 0; } +static void dw_spi_elba_set_cs(struct spi_device *spi, bool enable) +{ + struct dw_spi *dws = spi_master_get_devdata(spi->master); + + if (!enable) { + /* + * Using a GPIO-based chip-select, the DW SPI + * controller still needs its own CS bit selected + * to start the serial engine. On Elba the specific + * CS doesn't matter to start the serial engine, + * so using CS0. + */ + dw_writel(dws, DW_SPI_SER, BIT(0)); + } else { + dw_writel(dws, DW_SPI_SER, 0); + } +} + +static int dw_spi_elba_init(struct platform_device *pdev, + struct dw_spi_mmio *dwsmmio) +{ + dwsmmio->dws.set_cs = dw_spi_elba_set_cs; + return 0; +} + static int dw_spi_mmio_probe(struct platform_device *pdev) { int (*init_func)(struct platform_device *pdev, @@ -351,6 +376,7 @@ static const struct of_device_id dw_spi_mmio_of_match[] = { { .compatible = "intel,keembay-ssi", .data = dw_spi_keembay_init}, { .compatible = "microchip,sparx5-spi", dw_spi_mscc_sparx5_init}, { .compatible = "canaan,k210-spi", dw_spi_canaan_k210_init}, + { .compatible = "pensando,elba-spi", .data = dw_spi_elba_init}, { /* end of table */} }; MODULE_DEVICE_TABLE(of, dw_spi_mmio_of_match); -- 2.17.1
WARNING: multiple messages have this Message-ID (diff)
From: Brad Larson <brad@pensando.io> To: linux-arm-kernel@lists.infradead.org Cc: arnd@arndb.de, linus.walleij@linaro.org, bgolaszewski@baylibre.com, broonie@kernel.org, fancer.lancer@gmail.com, adrian.hunter@intel.com, ulf.hansson@linaro.org, olof@lixom.net, brad@pensando.io, linux-gpio@vger.kernel.org, linux-spi@vger.kernel.org, linux-mmc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 03/13] spi: dw: Add support for Pensando Elba SoC SPI Date: Sun, 28 Mar 2021 18:59:28 -0700 [thread overview] Message-ID: <20210329015938.20316-4-brad@pensando.io> (raw) In-Reply-To: <20210329015938.20316-1-brad@pensando.io> The Pensando Elba SoC uses a GPIO based chip select for two DW SPI busses with each bus having two chip selects. Signed-off-by: Brad Larson <brad@pensando.io> --- drivers/spi/spi-dw-mmio.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/drivers/spi/spi-dw-mmio.c b/drivers/spi/spi-dw-mmio.c index 17c06039a74d..c323a5ceecb8 100644 --- a/drivers/spi/spi-dw-mmio.c +++ b/drivers/spi/spi-dw-mmio.c @@ -56,7 +56,7 @@ struct dw_spi_mscc { /* * The Designware SPI controller (referred to as master in the documentation) * automatically deasserts chip select when the tx fifo is empty. The chip - * selects then needs to be either driven as GPIOs or, for the first 4 using the + * selects then needs to be either driven as GPIOs or, for the first 4 using * the SPI boot controller registers. the final chip select is an OR gate * between the Designware SPI controller and the SPI boot controller. */ @@ -237,6 +237,31 @@ static int dw_spi_canaan_k210_init(struct platform_device *pdev, return 0; } +static void dw_spi_elba_set_cs(struct spi_device *spi, bool enable) +{ + struct dw_spi *dws = spi_master_get_devdata(spi->master); + + if (!enable) { + /* + * Using a GPIO-based chip-select, the DW SPI + * controller still needs its own CS bit selected + * to start the serial engine. On Elba the specific + * CS doesn't matter to start the serial engine, + * so using CS0. + */ + dw_writel(dws, DW_SPI_SER, BIT(0)); + } else { + dw_writel(dws, DW_SPI_SER, 0); + } +} + +static int dw_spi_elba_init(struct platform_device *pdev, + struct dw_spi_mmio *dwsmmio) +{ + dwsmmio->dws.set_cs = dw_spi_elba_set_cs; + return 0; +} + static int dw_spi_mmio_probe(struct platform_device *pdev) { int (*init_func)(struct platform_device *pdev, @@ -351,6 +376,7 @@ static const struct of_device_id dw_spi_mmio_of_match[] = { { .compatible = "intel,keembay-ssi", .data = dw_spi_keembay_init}, { .compatible = "microchip,sparx5-spi", dw_spi_mscc_sparx5_init}, { .compatible = "canaan,k210-spi", dw_spi_canaan_k210_init}, + { .compatible = "pensando,elba-spi", .data = dw_spi_elba_init}, { /* end of table */} }; MODULE_DEVICE_TABLE(of, dw_spi_mmio_of_match); -- 2.17.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2021-03-29 2:00 UTC|newest] Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-03-29 1:59 [PATCH v2 00/13] Support Pensando Elba SoC Brad Larson 2021-03-29 1:59 ` Brad Larson 2021-03-29 1:59 ` [PATCH v2 01/13] gpio: Add Elba SoC gpio driver for spi cs control Brad Larson 2021-03-29 1:59 ` Brad Larson 2021-03-29 10:41 ` Andy Shevchenko 2021-03-29 10:41 ` Andy Shevchenko 2021-08-23 1:22 ` Brad Larson 2021-08-23 1:22 ` Brad Larson 2021-03-29 13:46 ` Linus Walleij 2021-03-29 13:46 ` Linus Walleij 2021-03-31 18:10 ` Serge Semin 2021-03-31 18:10 ` Serge Semin 2021-08-23 1:24 ` Brad Larson 2021-08-23 1:24 ` Brad Larson 2021-03-29 1:59 ` [PATCH v2 02/13] spi: cadence-quadspi: Add QSPI support for Pensando Elba SoC Brad Larson 2021-03-29 1:59 ` Brad Larson 2021-03-30 11:13 ` Pratyush Yadav 2021-03-30 11:13 ` Pratyush Yadav 2021-03-29 1:59 ` Brad Larson [this message] 2021-03-29 1:59 ` [PATCH v2 03/13] spi: dw: Add support for Pensando Elba SoC SPI Brad Larson 2021-03-29 10:43 ` Andy Shevchenko 2021-03-29 10:43 ` Andy Shevchenko 2021-08-23 1:25 ` Brad Larson 2021-08-23 1:25 ` Brad Larson 2021-03-29 15:58 ` Mark Brown 2021-03-29 15:58 ` Mark Brown 2021-03-30 2:28 ` Brad Larson 2021-03-30 2:28 ` Brad Larson 2021-03-31 18:00 ` Serge Semin 2021-03-31 18:00 ` Serge Semin 2021-08-23 1:26 ` Brad Larson 2021-08-23 1:26 ` Brad Larson 2021-03-29 1:59 ` [PATCH v2 04/13] spidev: Add Pensando CPLD compatible Brad Larson 2021-03-29 1:59 ` Brad Larson 2021-03-29 10:44 ` Andy Shevchenko 2021-03-29 10:44 ` Andy Shevchenko 2021-03-30 3:27 ` Brad Larson 2021-03-30 3:27 ` Brad Larson 2021-03-29 1:59 ` [PATCH v2 05/13] mmc: sdhci-cadence: Add Pensando Elba SoC support Brad Larson 2021-03-29 1:59 ` Brad Larson 2021-03-30 10:30 ` Ulf Hansson 2021-03-30 10:30 ` Ulf Hansson 2021-04-09 8:24 ` Masahiro Yamada 2021-04-09 8:24 ` Masahiro Yamada 2021-08-23 1:31 ` Brad Larson 2021-08-23 1:31 ` Brad Larson 2021-08-23 1:28 ` Brad Larson 2021-08-23 1:28 ` Brad Larson 2021-03-29 1:59 ` [PATCH v2 06/13] arm64: Add config for Pensando SoC platforms Brad Larson 2021-03-29 1:59 ` Brad Larson 2021-03-29 1:59 ` [PATCH v2 07/13] arm64: dts: Add Pensando Elba SoC support Brad Larson 2021-03-29 1:59 ` Brad Larson 2021-03-30 21:55 ` Rob Herring 2021-03-30 21:55 ` Rob Herring 2021-08-23 1:36 ` Brad Larson 2021-08-23 1:36 ` Brad Larson 2021-03-31 17:51 ` Serge Semin 2021-03-31 17:51 ` Serge Semin 2021-08-23 1:55 ` Brad Larson 2021-08-23 1:55 ` Brad Larson 2021-03-29 1:59 ` [PATCH v2 08/13] dt-bindings: Add pensando vendor prefix Brad Larson 2021-03-29 1:59 ` Brad Larson 2021-03-30 21:56 ` Rob Herring 2021-03-30 21:56 ` Rob Herring 2021-03-29 1:59 ` [PATCH v2 09/13] dt-bindings: mmc: Add Pensando Elba SoC binding Brad Larson 2021-03-29 1:59 ` Brad Larson 2021-03-30 21:56 ` Rob Herring 2021-03-30 21:56 ` Rob Herring 2021-03-29 1:59 ` [PATCH v2 10/13] dt-bindings: spi: cadence-qspi: Add support for Pensando Elba SoC Brad Larson 2021-03-29 1:59 ` Brad Larson 2021-03-29 16:00 ` Mark Brown 2021-03-29 16:00 ` Mark Brown 2021-03-30 2:12 ` Brad Larson 2021-03-30 2:12 ` Brad Larson 2021-03-30 11:12 ` Pratyush Yadav 2021-03-30 11:12 ` Pratyush Yadav 2021-08-23 1:57 ` Brad Larson 2021-08-23 1:57 ` Brad Larson 2021-03-29 1:59 ` [PATCH v2 11/13] dt-bindings: gpio: Add Pensando Elba SoC support Brad Larson 2021-03-29 1:59 ` Brad Larson 2021-03-29 1:59 ` [PATCH v2 12/13] MAINTAINERS: Add entry for PENSANDO Brad Larson 2021-03-29 1:59 ` Brad Larson 2021-03-29 1:59 ` [PATCH v2 13/13] gpio: Use linux/gpio/driver.h Brad Larson 2021-03-29 1:59 ` Brad Larson 2021-03-29 6:48 ` Greg KH 2021-03-29 6:48 ` Greg KH 2021-03-30 2:20 ` Brad Larson 2021-03-30 2:20 ` Brad Larson 2021-03-29 13:44 ` Linus Walleij 2021-03-29 13:44 ` Linus Walleij 2021-03-30 2:21 ` Brad Larson 2021-03-30 2:21 ` Brad Larson 2021-03-31 16:17 ` [PATCH v2 00/13] Support Pensando Elba SoC Serge Semin 2021-03-31 16:17 ` Serge Semin 2021-08-23 1:18 ` Brad Larson 2021-08-23 1:18 ` Brad Larson
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210329015938.20316-4-brad@pensando.io \ --to=brad@pensando.io \ --cc=adrian.hunter@intel.com \ --cc=arnd@arndb.de \ --cc=bgolaszewski@baylibre.com \ --cc=broonie@kernel.org \ --cc=devicetree@vger.kernel.org \ --cc=fancer.lancer@gmail.com \ --cc=linus.walleij@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-gpio@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mmc@vger.kernel.org \ --cc=linux-spi@vger.kernel.org \ --cc=olof@lixom.net \ --cc=ulf.hansson@linaro.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.