linux-spi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] spi: spi-fsl-lpspi: Remove num_cs from device struct
@ 2023-07-05  9:01 Alexander Stein
  2023-07-05  9:01 ` [PATCH 2/3] spi: spi-fsl-lpspi: Move controller initialization further down Alexander Stein
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Alexander Stein @ 2023-07-05  9:01 UTC (permalink / raw)
  To: Mark Brown; +Cc: Alexander Stein, linux-spi

This is only used during probe() call, so there is no need to store it
longer than that.

Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
---
 drivers/spi/spi-fsl-lpspi.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/spi/spi-fsl-lpspi.c b/drivers/spi/spi-fsl-lpspi.c
index fb68c72df171..486f4bc488fd 100644
--- a/drivers/spi/spi-fsl-lpspi.c
+++ b/drivers/spi/spi-fsl-lpspi.c
@@ -98,7 +98,6 @@ struct fsl_lpspi_data {
 	struct clk *clk_ipg;
 	struct clk *clk_per;
 	bool is_slave;
-	u32 num_cs;
 	bool is_only_cs1;
 	bool is_first_byte;
 
@@ -826,6 +825,7 @@ static int fsl_lpspi_probe(struct platform_device *pdev)
 	struct spi_controller *controller;
 	struct resource *res;
 	int ret, irq;
+	u32 num_cs;
 	u32 temp;
 	bool is_slave;
 
@@ -848,8 +848,8 @@ static int fsl_lpspi_probe(struct platform_device *pdev)
 	fsl_lpspi->is_only_cs1 = of_property_read_bool((&pdev->dev)->of_node,
 						"fsl,spi-only-use-cs1-sel");
 	if (of_property_read_u32((&pdev->dev)->of_node, "num-cs",
-				 &fsl_lpspi->num_cs))
-		fsl_lpspi->num_cs = 1;
+				 &num_cs))
+		num_cs = 1;
 
 	controller->bits_per_word_mask = SPI_BPW_RANGE_MASK(8, 32);
 	controller->transfer_one = fsl_lpspi_transfer_one;
@@ -859,7 +859,7 @@ static int fsl_lpspi_probe(struct platform_device *pdev)
 	controller->flags = SPI_MASTER_MUST_RX | SPI_MASTER_MUST_TX;
 	controller->dev.of_node = pdev->dev.of_node;
 	controller->bus_num = pdev->id;
-	controller->num_chipselect = fsl_lpspi->num_cs;
+	controller->num_chipselect = num_cs;
 	controller->slave_abort = fsl_lpspi_slave_abort;
 	if (!fsl_lpspi->is_slave)
 		controller->use_gpio_descriptors = true;
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/3] spi: spi-fsl-lpspi: Move controller initialization further down
  2023-07-05  9:01 [PATCH 1/3] spi: spi-fsl-lpspi: Remove num_cs from device struct Alexander Stein
@ 2023-07-05  9:01 ` Alexander Stein
  2023-07-16 12:53   ` Mark Brown
  2023-07-05  9:01 ` [PATCH 3/3] spi: spi-fsl-lpspi: Read chip-select amount from hardware for i.MX93 Alexander Stein
  2023-07-18 11:47 ` [PATCH 1/3] spi: spi-fsl-lpspi: Remove num_cs from device struct Mark Brown
  2 siblings, 1 reply; 5+ messages in thread
From: Alexander Stein @ 2023-07-05  9:01 UTC (permalink / raw)
  To: Mark Brown; +Cc: Alexander Stein, linux-spi

This is a preparation for reading number of chip-selects from hardware.
This needs IO resources mapped and peripheral clocking enabled.
No functional changes intended.

Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
---
I opted to keep the controller assignments together for readability,
although not strictly necessary.

 drivers/spi/spi-fsl-lpspi.c | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/drivers/spi/spi-fsl-lpspi.c b/drivers/spi/spi-fsl-lpspi.c
index 486f4bc488fd..4b4d25e13ca4 100644
--- a/drivers/spi/spi-fsl-lpspi.c
+++ b/drivers/spi/spi-fsl-lpspi.c
@@ -847,22 +847,6 @@ static int fsl_lpspi_probe(struct platform_device *pdev)
 	fsl_lpspi->is_slave = is_slave;
 	fsl_lpspi->is_only_cs1 = of_property_read_bool((&pdev->dev)->of_node,
 						"fsl,spi-only-use-cs1-sel");
-	if (of_property_read_u32((&pdev->dev)->of_node, "num-cs",
-				 &num_cs))
-		num_cs = 1;
-
-	controller->bits_per_word_mask = SPI_BPW_RANGE_MASK(8, 32);
-	controller->transfer_one = fsl_lpspi_transfer_one;
-	controller->prepare_transfer_hardware = lpspi_prepare_xfer_hardware;
-	controller->unprepare_transfer_hardware = lpspi_unprepare_xfer_hardware;
-	controller->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH;
-	controller->flags = SPI_MASTER_MUST_RX | SPI_MASTER_MUST_TX;
-	controller->dev.of_node = pdev->dev.of_node;
-	controller->bus_num = pdev->id;
-	controller->num_chipselect = num_cs;
-	controller->slave_abort = fsl_lpspi_slave_abort;
-	if (!fsl_lpspi->is_slave)
-		controller->use_gpio_descriptors = true;
 
 	init_completion(&fsl_lpspi->xfer_done);
 
@@ -912,6 +896,22 @@ static int fsl_lpspi_probe(struct platform_device *pdev)
 	temp = readl(fsl_lpspi->base + IMX7ULP_PARAM);
 	fsl_lpspi->txfifosize = 1 << (temp & 0x0f);
 	fsl_lpspi->rxfifosize = 1 << ((temp >> 8) & 0x0f);
+	if (of_property_read_u32((&pdev->dev)->of_node, "num-cs",
+				 &num_cs))
+		num_cs = 1;
+
+	controller->bits_per_word_mask = SPI_BPW_RANGE_MASK(8, 32);
+	controller->transfer_one = fsl_lpspi_transfer_one;
+	controller->prepare_transfer_hardware = lpspi_prepare_xfer_hardware;
+	controller->unprepare_transfer_hardware = lpspi_unprepare_xfer_hardware;
+	controller->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH;
+	controller->flags = SPI_MASTER_MUST_RX | SPI_MASTER_MUST_TX;
+	controller->dev.of_node = pdev->dev.of_node;
+	controller->bus_num = pdev->id;
+	controller->num_chipselect = num_cs;
+	controller->slave_abort = fsl_lpspi_slave_abort;
+	if (!fsl_lpspi->is_slave)
+		controller->use_gpio_descriptors = true;
 
 	ret = fsl_lpspi_dma_init(&pdev->dev, fsl_lpspi, controller);
 	if (ret == -EPROBE_DEFER)
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 3/3] spi: spi-fsl-lpspi: Read chip-select amount from hardware for i.MX93
  2023-07-05  9:01 [PATCH 1/3] spi: spi-fsl-lpspi: Remove num_cs from device struct Alexander Stein
  2023-07-05  9:01 ` [PATCH 2/3] spi: spi-fsl-lpspi: Move controller initialization further down Alexander Stein
@ 2023-07-05  9:01 ` Alexander Stein
  2023-07-18 11:47 ` [PATCH 1/3] spi: spi-fsl-lpspi: Remove num_cs from device struct Mark Brown
  2 siblings, 0 replies; 5+ messages in thread
From: Alexander Stein @ 2023-07-05  9:01 UTC (permalink / raw)
  To: Mark Brown; +Cc: Alexander Stein, linux-spi

PARAM.PCSNUM register on i.MX93 indicates the number of supported
(hw) chip-selects. LPSPI4 has 3 while others have only 2.
Still allow overwriting from DT.

Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
---
I've checked i.MX7ULP and i.MX8QM reference manuals and only i.MX93 has
these PCSNUM bits defined in PARAM register.

 drivers/spi/spi-fsl-lpspi.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/spi/spi-fsl-lpspi.c b/drivers/spi/spi-fsl-lpspi.c
index 4b4d25e13ca4..540495dc4bc9 100644
--- a/drivers/spi/spi-fsl-lpspi.c
+++ b/drivers/spi/spi-fsl-lpspi.c
@@ -897,8 +897,12 @@ static int fsl_lpspi_probe(struct platform_device *pdev)
 	fsl_lpspi->txfifosize = 1 << (temp & 0x0f);
 	fsl_lpspi->rxfifosize = 1 << ((temp >> 8) & 0x0f);
 	if (of_property_read_u32((&pdev->dev)->of_node, "num-cs",
-				 &num_cs))
-		num_cs = 1;
+				 &num_cs)) {
+		if (of_device_is_compatible(pdev->dev.of_node, "fsl,imx93-spi"))
+			num_cs = ((temp >> 16) & 0xf);
+		else
+			num_cs = 1;
+	}
 
 	controller->bits_per_word_mask = SPI_BPW_RANGE_MASK(8, 32);
 	controller->transfer_one = fsl_lpspi_transfer_one;
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/3] spi: spi-fsl-lpspi: Move controller initialization further down
  2023-07-05  9:01 ` [PATCH 2/3] spi: spi-fsl-lpspi: Move controller initialization further down Alexander Stein
@ 2023-07-16 12:53   ` Mark Brown
  0 siblings, 0 replies; 5+ messages in thread
From: Mark Brown @ 2023-07-16 12:53 UTC (permalink / raw)
  To: Alexander Stein; +Cc: linux-spi

[-- Attachment #1: Type: text/plain, Size: 306 bytes --]

On Wed, Jul 05, 2023 at 11:01:44AM +0200, Alexander Stein wrote:
> This is a preparation for reading number of chip-selects from hardware.
> This needs IO resources mapped and peripheral clocking enabled.
> No functional changes intended.

This doesn't apply against current code, please check and resend.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/3] spi: spi-fsl-lpspi: Remove num_cs from device struct
  2023-07-05  9:01 [PATCH 1/3] spi: spi-fsl-lpspi: Remove num_cs from device struct Alexander Stein
  2023-07-05  9:01 ` [PATCH 2/3] spi: spi-fsl-lpspi: Move controller initialization further down Alexander Stein
  2023-07-05  9:01 ` [PATCH 3/3] spi: spi-fsl-lpspi: Read chip-select amount from hardware for i.MX93 Alexander Stein
@ 2023-07-18 11:47 ` Mark Brown
  2 siblings, 0 replies; 5+ messages in thread
From: Mark Brown @ 2023-07-18 11:47 UTC (permalink / raw)
  To: Alexander Stein; +Cc: linux-spi

On Wed, 05 Jul 2023 11:01:43 +0200, Alexander Stein wrote:
> This is only used during probe() call, so there is no need to store it
> longer than that.
> 
> 

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next

Thanks!

[1/3] spi: spi-fsl-lpspi: Remove num_cs from device struct
      commit: a55265eeedafee12d9743196ce5bb43266509c31
[2/3] spi: spi-fsl-lpspi: Move controller initialization further down
      (no commit info)
[3/3] spi: spi-fsl-lpspi: Read chip-select amount from hardware for i.MX93
      (no commit info)

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-07-18 11:47 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-05  9:01 [PATCH 1/3] spi: spi-fsl-lpspi: Remove num_cs from device struct Alexander Stein
2023-07-05  9:01 ` [PATCH 2/3] spi: spi-fsl-lpspi: Move controller initialization further down Alexander Stein
2023-07-16 12:53   ` Mark Brown
2023-07-05  9:01 ` [PATCH 3/3] spi: spi-fsl-lpspi: Read chip-select amount from hardware for i.MX93 Alexander Stein
2023-07-18 11:47 ` [PATCH 1/3] spi: spi-fsl-lpspi: Remove num_cs from device struct Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).