[PATCH v2 11/13] spi: spi-zynqmp-gqspi: Add stacked memories support in GQSPI driver
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- Subject: [PATCH v2 11/13] spi: spi-zynqmp-gqspi: Add stacked memories support in GQSPI driver
- From: Amit Kumar Mahapatra <amit.kumar-mahapatra@xxxxxxx>
- Date: Fri, 20 Jan 2023 00:23:40 +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>, <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>, <linux-media@xxxxxxxxxxxxxxx>, <dri-devel@xxxxxxxxxxxxxxxxxxxxx>, <greybus-dev@xxxxxxxxxxxxxxxx>, <linux-staging@xxxxxxxxxxxxxxx>, <amitrkcian2002@xxxxxxxxx>
- In-reply-to: <20230119185342.2093323-1-amit.kumar-mahapatra@amd.com>
- References: <20230119185342.2093323-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 319cdd5a0bdc..4759f704bf5c 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.17.1
[Index of Archives]
[Linux Kernel]
[Linux ARM (vger)]
[Linux ARM MSM]
[Linux Omap]
[Linux Arm]
[Linux Tegra]
[Fedora ARM]
[Linux for Samsung SOC]
[eCos]
[Linux Fastboot]
[Gcc Help]
[Git]
[DCCP]
[IETF Announce]
[Security]
[Linux MIPS]
[Yosemite Campsites]
|