--- Begin Message ---
- To: <broonie@xxxxxxxxxx>, <miquel.raynal@xxxxxxxxxxx>, <richard@xxxxxx>, <vigneshr@xxxxxx>, <jic23@xxxxxxxxxx>, <tudor.ambarus@xxxxxxxxxxxxx>, <pratyush@xxxxxxxxxx>, <Sanju.Mehta@xxxxxxx>, <chin-ting_kuo@xxxxxxxxxxxxxx>, <clg@xxxxxxxx>, <kdasu.kdev@xxxxxxxxx>, <f.fainelli@xxxxxxxxx>, <rjui@xxxxxxxxxxxx>, <sbranden@xxxxxxxxxxxx>, <eajames@xxxxxxxxxxxxx>, <olteanv@xxxxxxxxx>, <han.xu@xxxxxxx>, <john.garry@xxxxxxxxxx>, <shawnguo@xxxxxxxxxx>, <s.hauer@xxxxxxxxxxxxxx>, <narmstrong@xxxxxxxxxxxx>, <khilman@xxxxxxxxxxxx>, <matthias.bgg@xxxxxxxxx>, <haibo.chen@xxxxxxx>, <linus.walleij@xxxxxxxxxx>, <daniel@xxxxxxxxxx>, <haojian.zhuang@xxxxxxxxx>, <robert.jarzmik@xxxxxxx>, <agross@xxxxxxxxxx>, <bjorn.andersson@xxxxxxxxxx>, <heiko@xxxxxxxxx>, <krzysztof.kozlowski@xxxxxxxxxx>, <andi@xxxxxxxxxxx>, <mcoquelin.stm32@xxxxxxxxx>, <alexandre.torgue@xxxxxxxxxxx>, <wens@xxxxxxxx>, <jernej.skrabec@xxxxxxxxx>, <samuel@xxxxxxxxxxxx>, <masahisa.kojima@xxxxxxxxxx>, <jaswinder.singh@xxxxxxxxxx>, <rostedt@xxxxxxxxxxx>, <mingo@xxxxxxxxxx>, <l.stelmach@xxxxxxxxxxx>, <davem@xxxxxxxxxxxxx>, <edumazet@xxxxxxxxxx>, <kuba@xxxxxxxxxx>, <pabeni@xxxxxxxxxx>, <alex.aring@xxxxxxxxx>, <stefan@xxxxxxxxxxxxxxxxxx>, <kvalo@xxxxxxxxxx>, <james.schulman@xxxxxxxxxx>, <david.rhodes@xxxxxxxxxx>, <tanureal@xxxxxxxxxxxxxxxxxxxxx>, <rf@xxxxxxxxxxxxxxxxxxxxx>, <perex@xxxxxxxx>, <tiwai@xxxxxxxx>, <npiggin@xxxxxxxxx>, <christophe.leroy@xxxxxxxxxx>, <mpe@xxxxxxxxxxxxxx>, <oss@xxxxxxxxxxxx>, <windhl@xxxxxxx>, <yangyingliang@xxxxxxxxxx>, <william.zhang@xxxxxxxxxxxx>, <kursad.oney@xxxxxxxxxxxx>, <jonas.gorski@xxxxxxxxx>, <anand.gore@xxxxxxxxxxxx>, <rafal@xxxxxxxxxx>
- Subject: [PATCH V6 13/15] spi: spi-zynqmp-gqspi: Add stacked memories support in GQSPI driver
- From: Amit Kumar Mahapatra <amit.kumar-mahapatra@xxxxxxx>
- Date: Fri, 10 Mar 2023 23:02:15 +0530
- Cc: git@xxxxxxx, linux-spi@xxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, joel@xxxxxxxxx, andrew@xxxxxxxx, radu_nicolae.pirea@xxxxxx, nicolas.ferre@xxxxxxxxxxxxx, alexandre.belloni@xxxxxxxxxxx, claudiu.beznea@xxxxxxxxxxxxx, bcm-kernel-feedback-list@xxxxxxxxxxxx, fancer.lancer@xxxxxxxxx, kernel@xxxxxxxxxxxxxx, festevam@xxxxxxxxx, linux-imx@xxxxxxx, jbrunet@xxxxxxxxxxxx, martin.blumenstingl@xxxxxxxxxxxxxx, avifishman70@xxxxxxxxx, tmaimon77@xxxxxxxxx, tali.perry1@xxxxxxxxx, venture@xxxxxxxxxx, yuenn@xxxxxxxxxx, benjaminfair@xxxxxxxxxx, yogeshgaur.83@xxxxxxxxx, konrad.dybcio@xxxxxxxxxxxxxx, alim.akhtar@xxxxxxxxxxx, ldewangan@xxxxxxxxxx, thierry.reding@xxxxxxxxx, jonathanh@xxxxxxxxxx, michal.simek@xxxxxxx, linux-aspeed@xxxxxxxxxxxxxxxx, openbmc@xxxxxxxxxxxxxxxx, linux-arm-kernel@xxxxxxxxxxxxxxxxxxx, linux-rpi-kernel@xxxxxxxxxxxxxxxxxxx, linux-amlogic@xxxxxxxxxxxxxxxxxxx, linux-mediatek@xxxxxxxxxxxxxxxxxxx, linux-arm-msm@xxxxxxxxxxxxxxx, linux-rockchip@xxxxxxxxxxxxxxxxxxx, linux-samsung-soc@xxxxxxxxxxxxxxx, linux-stm32@xxxxxxxxxxxxxxxxxxxxxxxxxxxx, linux-sunxi@xxxxxxxxxxxxxxx, linux-tegra@xxxxxxxxxxxxxxx, netdev@xxxxxxxxxxxxxxx, linux-wpan@xxxxxxxxxxxxxxx, libertas-dev@xxxxxxxxxxxxxxxxxxx, linux-wireless@xxxxxxxxxxxxxxx, linux-mtd@xxxxxxxxxxxxxxxxxxx, lars@xxxxxxxxxx, Michael.Hennerich@xxxxxxxxxx, linux-iio@xxxxxxxxxxxxxxx, michael@xxxxxxxx, palmer@xxxxxxxxxxx, linux-riscv@xxxxxxxxxxxxxxxxxxx, alsa-devel@xxxxxxxxxxxxxxxx, patches@xxxxxxxxxxxxxxxxxxxxx, linuxppc-dev@xxxxxxxxxxxxxxxx, amitrkcian2002@xxxxxxxxx, amit.kumar-mahapatra@xxxxxxx
- In-reply-to: <20230310173217.3429788-1-amit.kumar-mahapatra@amd.com>
- References: <20230310173217.3429788-1-amit.kumar-mahapatra@amd.com>
GQSPI supports two chip select CS0 & CS1. Update the driver to
assert/de-assert the appropriate chip select as per the bits set in
qspi->cs_index_mask.
Signed-off-by: Amit Kumar Mahapatra <amit.kumar-mahapatra@xxxxxxx>
---
drivers/spi/spi-zynqmp-gqspi.c | 21 +++++++++++++--------
1 file changed, 13 insertions(+), 8 deletions(-)
diff --git a/drivers/spi/spi-zynqmp-gqspi.c b/drivers/spi/spi-zynqmp-gqspi.c
index fb2ca9b90eab..3d2b92a88e8a 100644
--- a/drivers/spi/spi-zynqmp-gqspi.c
+++ b/drivers/spi/spi-zynqmp-gqspi.c
@@ -156,6 +156,9 @@
#define GQSPI_FREQ_100MHZ 100000000
#define GQSPI_FREQ_150MHZ 150000000
+#define GQSPI_SELECT_LOWER_CS BIT(0)
+#define GQSPI_SELECT_UPPER_CS BIT(1)
+
#define SPI_AUTOSUSPEND_TIMEOUT 3000
enum mode_type {GQSPI_MODE_IO, GQSPI_MODE_DMA};
@@ -467,15 +470,17 @@ static void zynqmp_qspi_chipselect(struct spi_device *qspi, bool is_high)
genfifoentry |= GQSPI_GENFIFO_MODE_SPI;
+ if (qspi->cs_index_mask & GQSPI_SELECT_UPPER_CS) {
+ zynqmp_gqspi_selectslave(xqspi,
+ GQSPI_SELECT_FLASH_CS_UPPER,
+ GQSPI_SELECT_FLASH_BUS_LOWER);
+ } else if (qspi->cs_index_mask & GQSPI_SELECT_LOWER_CS) {
+ zynqmp_gqspi_selectslave(xqspi,
+ GQSPI_SELECT_FLASH_CS_LOWER,
+ GQSPI_SELECT_FLASH_BUS_LOWER);
+ }
+ genfifoentry |= xqspi->genfifobus;
if (!is_high) {
- if (!spi_get_chipselect(qspi, 0)) {
- xqspi->genfifobus = GQSPI_GENFIFO_BUS_LOWER;
- xqspi->genfifocs = GQSPI_GENFIFO_CS_LOWER;
- } else {
- xqspi->genfifobus = GQSPI_GENFIFO_BUS_UPPER;
- xqspi->genfifocs = GQSPI_GENFIFO_CS_UPPER;
- }
- genfifoentry |= xqspi->genfifobus;
genfifoentry |= xqspi->genfifocs;
genfifoentry |= GQSPI_GENFIFO_CS_SETUP;
} else {
--
2.25.1
--- End Message ---