Skip to contentSkip to conversation

spi: npcm-pspi: add Arbel NPCM8XX support

PATCH In review Tomer Maimon 4 participants 15 messages Jul 22, 2022 – Aug 15, 2022

Subsystems (3)
lore
Share & tools
lore

Tomer Maimon

author maintainer
#0 lore raw

v2 cover spi: npcm-pspi: add Arbel NPCM8XX support

This patch set adds Arbel NPCM8XX Peripheral SPI (PSPI) support to PSPI NPCM driver.

This patch set was separated from the full duplex patch.
https://lore.kernel.org/lkml/[email protected]/

Addressed comments from:
- Mark Brown : https://www.spinics.net/lists/kernel/msg4447178.html

Changes since version 1:
- Adding comptible npcm845 in the driver.

The NPCM PSPI driver tested on NPCM845 evaluation board.

Tomer Maimon (2):
dt-binding: spi: npcm-pspi: Add npcm845 compatible
spi: npcm-pspi: Add NPCM845 peripheral SPI support

 Documentation/devicetree/bindings/spi/nuvoton,npcm-pspi.txt | 3 ++-
 drivers/spi/spi-npcm-pspi.c                                 | 1 +
 2 files changed, 3 insertions(+), 1 deletion(-)
Signature · 1 line
2.33.0
author maintainer
#1 lore raw

PATCH v2 1/2 dt-binding: spi: npcm-pspi: Add npcm845 compatible

Add a compatible string for Nuvoton BMC NPCM845 PSPI.

---
 Documentation/devicetree/bindings/spi/nuvoton,npcm-pspi.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
Documentation/devicetree/bindings/spi/nuvoton,npcm-pspi.txt +2 -1
index b98203ca656d..a4e72e52af59 100644
@@ -3,7 +3,8 @@ Nuvoton NPCM Peripheral Serial Peripheral Interface(PSPI) controller driver
 Nuvoton NPCM7xx SOC support two PSPI channels.
 
 Required properties:
- - compatible : "nuvoton,npcm750-pspi" for NPCM7XX BMC
+ - compatible : "nuvoton,npcm750-pspi" for Poleg NPCM7XX.
+				"nuvoton,npcm845-pspi" for Arbel NPCM8XX.
  - #address-cells : should be 1. see spi-bus.txt
  - #size-cells : should be 0. see spi-bus.txt
  - specifies physical base address and size of the register.
Signature · 1 line
2.33.0
maintainer
#2 lore raw

Re: [PATCH v2 1/2] dt-binding: spi: npcm-pspi: Add npcm845 compatible

Quoted 12 lines · Tomer Maimon

Add a compatible string for Nuvoton BMC NPCM845 PSPI.

---
 Documentation/devicetree/bindings/spi/nuvoton,npcm-pspi.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
Documentation/devicetree/bindings/spi/nuvoton,npcm-pspi.txt +0 -0
index b98203ca656d..a4e72e52af59 100644

Documentation/devicetree/bindings/spi/nuvoton,npcm-pspi.txt Nuvoton NPCM Peripheral Serial Peripheral Interface(PSPI) controller driver · line 6

Quoted 5 lines
Documentation/devicetree/bindings/spi/nuvoton,npcm-pspi.txt +1 -1
@@ -3,7 +3,8 @@ Nuvoton NPCM Peripheral Serial Peripheral Interface(PSPI) controller driver
 Nuvoton NPCM7xx SOC support two PSPI channels.
 
 Required properties:
- - compatible : "nuvoton,npcm750-pspi" for NPCM7XX BMC
+ - compatible : "nuvoton,npcm750-pspi" for Poleg NPCM7XX.

Who/What is Polog? Board/BMC vendor? If so, that should not be in SoC bindings.

Documentation/devicetree/bindings/spi/nuvoton,npcm-pspi.txt Nuvoton NPCM Peripheral Serial Peripheral Interface(PSPI) controller driver · line 7

Quoted 1 line
Documentation/devicetree/bindings/spi/nuvoton,npcm-pspi.txt +1 -0
+				"nuvoton,npcm845-pspi" for Arbel NPCM8XX.

Same for Arbel.

To answer your question on fallback, just put:

    "nuvoton,npcm845-pspi", "nuvoton,npcm750-pspi" for NPCM8XX BMC
Quoted 7 lines
Documentation/devicetree/bindings/spi/nuvoton,npcm-pspi.txt +0 -0
  - #address-cells : should be 1. see spi-bus.txt
  - #size-cells : should be 0. see spi-bus.txt
  - specifies physical base address and size of the register.
Signature · 1 line
2.33.0
author maintainer
#3 lore raw

Re: [PATCH v2 1/2] dt-binding: spi: npcm-pspi: Add npcm845 compatible

Hi Rob,

Thanks for your comments.

Quoted 23 lines · Rob Herring
Quoted 12 lines · Tomer Maimon

Add a compatible string for Nuvoton BMC NPCM845 PSPI.

---
 Documentation/devicetree/bindings/spi/nuvoton,npcm-pspi.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
Documentation/devicetree/bindings/spi/nuvoton,npcm-pspi.txt +0 -0
index b98203ca656d..a4e72e52af59 100644

Documentation/devicetree/bindings/spi/nuvoton,npcm-pspi.txt Nuvoton NPCM Peripheral Serial Peripheral Interface(PSPI) controller driver · line 6

Quoted 5 lines
Documentation/devicetree/bindings/spi/nuvoton,npcm-pspi.txt +1 -1
@@ -3,7 +3,8 @@ Nuvoton NPCM Peripheral Serial Peripheral Interface(PSPI) controller driver
 Nuvoton NPCM7xx SOC support two PSPI channels.
 
 Required properties:
- - compatible : "nuvoton,npcm750-pspi" for NPCM7XX BMC
+ - compatible : "nuvoton,npcm750-pspi" for Poleg NPCM7XX.

Who/What is Polog? Board/BMC vendor? If so, that should not be in SoC bindings.

Quoted 3 lines

Documentation/devicetree/bindings/spi/nuvoton,npcm-pspi.txt Nuvoton NPCM Peripheral Serial Peripheral Interface(PSPI) controller driver · line 7

Quoted 1 line
Documentation/devicetree/bindings/spi/nuvoton,npcm-pspi.txt +1 -0
+                             "nuvoton,npcm845-pspi" for Arbel NPCM8XX.

Same for Arbel.

Poleg and Arbel are the name of the BMC SoC, will be removed next version.

Quoted 4 lines

To answer your question on fallback, just put:

    "nuvoton,npcm845-pspi", "nuvoton,npcm750-pspi" for NPCM8XX BMC

In the document?
because I don't remember doing so in other documents that I use fallback. I need to do it in ymal files as well?

Quoted 9 lines
Quoted 9 lines
Documentation/devicetree/bindings/spi/nuvoton,npcm-pspi.txt +0 -1
  - #address-cells : should be 1. see spi-bus.txt
  - #size-cells : should be 0. see spi-bus.txt
  - specifies physical base address and size of the register.
--

2.33.0

Best regards,

Tomer

#4 lore raw

Re: [PATCH v2 1/2] dt-binding: spi: npcm-pspi: Add npcm845 compatible

Quoted 5 lines · Tomer Maimon
Quoted 3 lines

To answer your question on fallback, just put:

    "nuvoton,npcm845-pspi", "nuvoton,npcm750-pspi" for NPCM8XX BMC

In the document?
because I don't remember doing so in other documents that I use fallback.

If they also you fallbacks, then the other documents have now incorrect text.

Quoted 1 line

I need to do it in ymal files as well?

Depends on what you want to add and what you actually added... Let's be specific - point to specific commits or files in linux-next. If they were not applied - give lore.kernel.org link.

Best regards,
Krzysztof

author maintainer
#5 lore raw

PATCH v2 2/2 spi: npcm-pspi: Add NPCM845 peripheral SPI support

In reply to Tomer Maimon

Add Nuvoton BMC NPCM845 NPCM Peripheral SPI (PSPI) support.

---
 drivers/spi/spi-npcm-pspi.c | 1 +
 1 file changed, 1 insertion(+)
drivers/spi/spi-npcm-pspi.c +1 -0
index 1668a347e003..7f2e4d1b0d43 100644
@@ -443,6 +443,7 @@ static int npcm_pspi_remove(struct platform_device *pdev)
 
 static const struct of_device_id npcm_pspi_match[] = {
 	{ .compatible = "nuvoton,npcm750-pspi", .data = NULL },
+	{ .compatible = "nuvoton,npcm845-pspi", .data = NULL },
 	{}
 };
 MODULE_DEVICE_TABLE(of, npcm_pspi_match);
Signature · 1 line
2.33.0
#6 lore raw

Re: [PATCH v2 2/2] spi: npcm-pspi: Add NPCM845 peripheral SPI support

Quoted 12 lines · Tomer Maimon

Add Nuvoton BMC NPCM845 NPCM Peripheral SPI (PSPI) support.

---
 drivers/spi/spi-npcm-pspi.c | 1 +
 1 file changed, 1 insertion(+)
drivers/spi/spi-npcm-pspi.c +0 -0
index 1668a347e003..7f2e4d1b0d43 100644

drivers/spi/spi-npcm-pspi.c static int npcm_pspi_remove(struct platform_device *pdev) · line 446

Quoted 4 lines
drivers/spi/spi-npcm-pspi.c +1 -0
@@ -443,6 +443,7 @@ static int npcm_pspi_remove(struct platform_device *pdev)
 
 static const struct of_device_id npcm_pspi_match[] = {
 	{ .compatible = "nuvoton,npcm750-pspi", .data = NULL },
+	{ .compatible = "nuvoton,npcm845-pspi", .data = NULL },

The devices look compatible, so why not reusing 750 compatible and adding more specific upfront only in the bindings instead?

Best regards,
Krzysztof

maintainer
#7 lore raw

Re: [PATCH v2 2/2] spi: npcm-pspi: Add NPCM845 peripheral SPI support

Quoted 8 lines · Krzysztof Kozlowski

drivers/spi/spi-npcm-pspi.c static int npcm_pspi_remove(struct platform_device *pdev) · line 446

Quoted 3 lines · Tomer Maimon

static const struct of_device_id npcm_pspi_match[] = {

drivers/spi/spi-npcm-pspi.c +1 -0
 	{ .compatible = "nuvoton,npcm750-pspi", .data = NULL },
+	{ .compatible = "nuvoton,npcm845-pspi", .data = NULL },

The devices look compatible, so why not reusing 750 compatible and adding more specific upfront only in the bindings instead?

...with a fallback list required by the bindings so the driver actually binds. Note that bindings are currently not in YAML format so there'd be even less enforcement of that than normal, and as they're currently written the bindings don't require fallback.

#8 lore raw

Re: [PATCH v2 2/2] spi: npcm-pspi: Add NPCM845 peripheral SPI support

Quoted 10 lines · Mark Brown
Quoted 8 lines · Krzysztof Kozlowski

drivers/spi/spi-npcm-pspi.c static int npcm_pspi_remove(struct platform_device *pdev) · line 446

Quoted 3 lines · Tomer Maimon

static const struct of_device_id npcm_pspi_match[] = {

drivers/spi/spi-npcm-pspi.c +1 -0
 	{ .compatible = "nuvoton,npcm750-pspi", .data = NULL },
+	{ .compatible = "nuvoton,npcm845-pspi", .data = NULL },

The devices look compatible, so why not reusing 750 compatible and adding more specific upfront only in the bindings instead?

Quoted 4 lines

...with a fallback list required by the bindings so the driver actually binds. Note that bindings are currently not in YAML format so there'd be even less enforcement of that than normal, and as they're currently written the bindings don't require fallback.

Yes, the bindings document should be rephrased but we were living like that for few years. :)

Best regards,
Krzysztof

maintainer
#9 lore raw

Re: [PATCH v2 2/2] spi: npcm-pspi: Add NPCM845 peripheral SPI support

Quoted 9 lines · Krzysztof Kozlowski
Quoted 4 lines · Mark Brown

...with a fallback list required by the bindings so the driver actually binds. Note that bindings are currently not in YAML format so there'd be even less enforcement of that than normal, and as they're currently written the bindings don't require fallback.

Yes, the bindings document should be rephrased but we were living like that for few years. :)

The binding document as it stands only has one compatible, there's no existing problem with it other than the YAML conversion. If we're adding something new that requires a fallback we should be explicit about that rather than have something that's actively misleading where previously things were clear. I don't mind if we add the compatible to the driver or document the requirement for the fallback but we should do one of the two.

author maintainer
#10 lore raw

Re: [PATCH v2 2/2] spi: npcm-pspi: Add NPCM845 peripheral SPI support

Hi Mark and Krzysztof,

Thanks for your reply,

Quoted 12 lines · Mark Brown
Quoted 9 lines · Krzysztof Kozlowski
Quoted 4 lines · Mark Brown

...with a fallback list required by the bindings so the driver actually binds. Note that bindings are currently not in YAML format so there'd be even less enforcement of that than normal, and as they're currently written the bindings don't require fallback.

Yes, the bindings document should be rephrased but we were living like that for few years. :)

Quoted 7 lines

The binding document as it stands only has one compatible, there's no existing problem with it other than the YAML conversion. If we're adding something new that requires a fallback we should be explicit about that rather than have something that's actively misleading where previously things were clear. I don't mind if we add the compatible to the driver or document the requirement for the fallback but we should do one of the two.

is V2 good enough? adding the compatible to the driver and the document? Or should we use fallback?
If fallback is choosen, can you explain how I should do it?

Best regards,

Tomer

#11 lore raw

Re: [PATCH v2 2/2] spi: npcm-pspi: Add NPCM845 peripheral SPI support

Quoted 25 lines · Tomer Maimon

Hi Mark and Krzysztof,

Thanks for your reply,

Quoted 12 lines · Mark Brown
Quoted 9 lines · Krzysztof Kozlowski
Quoted 4 lines · Mark Brown

...with a fallback list required by the bindings so the driver actually binds. Note that bindings are currently not in YAML format so there'd be even less enforcement of that than normal, and as they're currently written the bindings don't require fallback.

Yes, the bindings document should be rephrased but we were living like that for few years. :)

Quoted 7 lines

The binding document as it stands only has one compatible, there's no existing problem with it other than the YAML conversion. If we're adding something new that requires a fallback we should be explicit about that rather than have something that's actively misleading where previously things were clear. I don't mind if we add the compatible to the driver or document the requirement for the fallback but we should do one of the two.

Quoted 3 lines

is V2 good enough? adding the compatible to the driver and the document? Or should we use fallback?
If fallback is choosen, can you explain how I should do it?

I propose to use fallback. The preferred way is to convert it to DT schema and then add new device support (so two commits). Other acceptable way is to rephrase the TXT so it clearly states desired compatibles - one for old device, two for new devices. There are plenty of examples in current sources.

Best regards,
Krzysztof

author maintainer
#12 lore raw

Re: [PATCH v2 2/2] spi: npcm-pspi: Add NPCM845 peripheral SPI support

Hi Krzysztof,

Thanks for your explanation.

Quoted 31 lines · Krzysztof Kozlowski
Quoted 25 lines · Tomer Maimon

Hi Mark and Krzysztof,

Thanks for your reply,

Quoted 12 lines · Mark Brown
Quoted 9 lines · Krzysztof Kozlowski
Quoted 4 lines · Mark Brown

...with a fallback list required by the bindings so the driver actually binds. Note that bindings are currently not in YAML format so there'd be even less enforcement of that than normal, and as they're currently written the bindings don't require fallback.

Yes, the bindings document should be rephrased but we were living like that for few years. :)

Quoted 7 lines

The binding document as it stands only has one compatible, there's no existing problem with it other than the YAML conversion. If we're adding something new that requires a fallback we should be explicit about that rather than have something that's actively misleading where previously things were clear. I don't mind if we add the compatible to the driver or document the requirement for the fallback but we should do one of the two.

Quoted 3 lines

is V2 good enough? adding the compatible to the driver and the document? Or should we use fallback?
If fallback is choosen, can you explain how I should do it?

Quoted 5 lines

I propose to use fallback. The preferred way is to convert it to DT schema and then add new device support (so two commits). Other acceptable way is to rephrase the TXT so it clearly states desired compatibles - one for old device, two for new devices. There are plenty of examples in current sources.

Appreciate if you could clarify.
in case we use DT-schema, we dont describe the fallback like we doing in txt document?
I mean that in the yaml file we should describe the NPCM PSPI compatible property as follow:
compatible:
enum:
- nuvoton,npcm750-pspi
- nuvoton,npcm845-pspi

If yes, how should the user know that he needs to use fallback incase is using nuvoton,npcm845-pspi? only from the device tree?

Quoted 4 lines

Best regards,
Krzysztof

Best regards,

Tomer

#13 lore raw

Re: [PATCH v2 2/2] spi: npcm-pspi: Add NPCM845 peripheral SPI support

Quoted 52 lines · Tomer Maimon

Hi Krzysztof,

Thanks for your explanation.

Quoted 31 lines · Krzysztof Kozlowski
Quoted 25 lines · Tomer Maimon

Hi Mark and Krzysztof,

Thanks for your reply,

Quoted 12 lines · Mark Brown
Quoted 9 lines · Krzysztof Kozlowski
Quoted 4 lines · Mark Brown

...with a fallback list required by the bindings so the driver actually binds. Note that bindings are currently not in YAML format so there'd be even less enforcement of that than normal, and as they're currently written the bindings don't require fallback.

Yes, the bindings document should be rephrased but we were living like that for few years. :)

Quoted 7 lines

The binding document as it stands only has one compatible, there's no existing problem with it other than the YAML conversion. If we're adding something new that requires a fallback we should be explicit about that rather than have something that's actively misleading where previously things were clear. I don't mind if we add the compatible to the driver or document the requirement for the fallback but we should do one of the two.

Quoted 3 lines

is V2 good enough? adding the compatible to the driver and the document? Or should we use fallback?
If fallback is choosen, can you explain how I should do it?

Quoted 5 lines

I propose to use fallback. The preferred way is to convert it to DT schema and then add new device support (so two commits). Other acceptable way is to rephrase the TXT so it clearly states desired compatibles - one for old device, two for new devices. There are plenty of examples in current sources.

Appreciate if you could clarify.
in case we use DT-schema, we dont describe the fallback like we doing in txt document?
I mean that in the yaml file we should describe the NPCM PSPI compatible property as follow:
compatible:
enum:
- nuvoton,npcm750-pspi
- nuvoton,npcm845-pspi

Quoted 3 lines

If yes, how should the user know that he needs to use fallback incase is using nuvoton,npcm845-pspi? only from the device tree?

If you use DT schema format, you must code it as with fallback (so items). This is the most popular setup for SoC components so you will easily find such examples.

Best regards,
Krzysztof

maintainer
#14 lore raw
In reply to Tomer Maimon
Quoted 10 lines · Tomer Maimon

This patch set adds Arbel NPCM8XX Peripheral SPI (PSPI) support to PSPI NPCM driver.

This patch set was separated from the full duplex patch.
https://lore.kernel.org/lkml/[email protected]/

Addressed comments from:
- Mark Brown : https://www.spinics.net/lists/kernel/msg4447178.html

[...]

Applied to

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

Thanks!

[1/2] dt-binding: spi: npcm-pspi: Add npcm845 compatible

      commit: ac2c55e2260e0ae019119e1b2a52dda138039841
[2/2] spi: npcm-pspi: Add NPCM845 peripheral SPI support
      commit: 6db8595a3e1996654a130760d363912cdd28706d

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