Skip to contentSkip to conversation

add NPCM SDHCI driver support

PATCH Superseded Tomer Maimon 2 participants 5 messages Oct 2, 2023

Subsystems (4)

v4 of 5 Superseded Latest is v5 →

lore
Share & tools
lore

Tomer Maimon

author maintainer
#0 lore raw

v4 cover add NPCM SDHCI driver support

This patch set adds SDHCI support for the Nuvoton NPCM Baseboard Management Controller (BMC).

Deeply sorry it took that long until sending version three, promise to try to do better on the next versions (if needed) :-),

The NPCM SDHCI driver tested on NPCM750 and NPCM845 EVB.

Addressed comments from:
- Andy Shevchenko : https://www.spinics.net/lists/devicetree/msg637946.html

Changes since version 3:
- Use devm_clk_get_optional_enabled function.
- Add mod_devicetable.h.
- Modify copyright year.

Changes since version 2:
- Add data to handle architecture-specific SDHCI parameters.
- Change config place in make and kconfig files.
- Calling sdhci_pltfm_free to to avoid a memory leak on error.

Changes since version 1:
- Use correct spaces in the dt-bindings.
- Drop unused labels from dt-bindings.
- Order by module name in the make a configuration.
- Remove unnecessary blank lines.
- Using devm_clk_get_optional instead of devm_clk_get.

Tomer Maimon (2):
dt-bindings: mmc: npcm,sdhci: Document NPCM SDHCI controller
mmc: sdhci-npcm: Add NPCM SDHCI driver

 .../devicetree/bindings/mmc/npcm,sdhci.yaml   | 45 +++++++++
 drivers/mmc/host/Kconfig                      |  8 ++
 drivers/mmc/host/Makefile                     |  1 +
 drivers/mmc/host/sdhci-npcm.c                 | 96 +++++++++++++++++++
 4 files changed, 150 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mmc/npcm,sdhci.yaml
 create mode 100644 drivers/mmc/host/sdhci-npcm.c
Signature · 1 line
2.33.0
author maintainer
#1 lore raw

PATCH v4 1/2 dt-bindings: mmc: npcm,sdhci: Document NPCM SDHCI controller

Add binding for Nuvoton NPCM SDHCI controller.

---
 .../devicetree/bindings/mmc/npcm,sdhci.yaml   | 45 +++++++++++++++++++
 1 file changed, 45 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mmc/npcm,sdhci.yaml
Documentation/devicetree/bindings/mmc/npcm,sdhci.yaml new file +45 -0
new file mode 100644
index 000000000000..196fdbfa16ed
@@ -0,0 +1,45 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mmc/npcm,sdhci.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NPCM SDHCI Controller
+
+maintainers:
+  - Tomer Maimon <[email protected]>
+
+allOf:
+  - $ref: mmc-controller.yaml#
+
+properties:
+  compatible:
+    enum:
+      - nuvoton,npcm750-sdhci
+      - nuvoton,npcm845-sdhci
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    mmc@f0840000 {
+      compatible = "nuvoton,npcm750-sdhci";
+      reg = <0xf0840000 0x200>;
+      interrupts = <0 27 4>;
+      clocks = <&clk 4>;
+    };
Signature · 1 line
2.33.0
author maintainer
#2 lore raw

PATCH v4 2/2 mmc: sdhci-npcm: Add NPCM SDHCI driver

In reply to Tomer Maimon

Add Nuvoton NPCM BMC sdhci-pltfm controller driver.

---
 drivers/mmc/host/Kconfig      |  8 +++
 drivers/mmc/host/Makefile     |  1 +
 drivers/mmc/host/sdhci-npcm.c | 96 +++++++++++++++++++++++++++++++++++
 3 files changed, 105 insertions(+)
 create mode 100644 drivers/mmc/host/sdhci-npcm.c
drivers/mmc/host/Kconfig +8 -0
index 554e67103c1a..3999d4fddc73 100644
@@ -429,6 +429,14 @@ config MMC_SDHCI_IPROC
 
 	  If unsure, say N.
 
+config MMC_SDHCI_NPCM
+	tristate "Secure Digital Host Controller Interface support for NPCM"
+	depends on ARCH_NPCM || COMPILE_TEST
+	depends on MMC_SDHCI_PLTFM
+	help
+	  This provides support for the SD/eMMC controller found in
+	  NPCM BMC family SoCs.
+
 config MMC_MESON_GX
 	tristate "Amlogic S905/GX*/AXG SD/MMC Host Controller support"
 	depends on ARCH_MESON|| COMPILE_TEST
drivers/mmc/host/Makefile +1 -0
index a693fa3d3f1c..d0be4465f3ec 100644
@@ -89,6 +89,7 @@ obj-$(CONFIG_MMC_SDHCI_OF_DWCMSHC)	+= sdhci-of-dwcmshc.o
 obj-$(CONFIG_MMC_SDHCI_OF_SPARX5)	+= sdhci-of-sparx5.o
 obj-$(CONFIG_MMC_SDHCI_BCM_KONA)	+= sdhci-bcm-kona.o
 obj-$(CONFIG_MMC_SDHCI_IPROC)		+= sdhci-iproc.o
+obj-$(CONFIG_MMC_SDHCI_NPCM)		+= sdhci-npcm.o
 obj-$(CONFIG_MMC_SDHCI_MSM)		+= sdhci-msm.o
 obj-$(CONFIG_MMC_SDHCI_ST)		+= sdhci-st.o
 obj-$(CONFIG_MMC_SDHCI_MICROCHIP_PIC32)	+= sdhci-pic32.o
drivers/mmc/host/sdhci-npcm.c new file +96 -0

96 lines not on this page · raw message

Signature · 1 line
2.33.0
#3 lore raw

Re: [PATCH v4 2/2] mmc: sdhci-npcm: Add NPCM SDHCI driver

Quoted 2 lines · Tomer Maimon

Add Nuvoton NPCM BMC sdhci-pltfm controller driver.

...

Quoted 5 lines
drivers/mmc/host/sdhci-npcm.c new file +5 -0
+       pltfm_host->clk = devm_clk_get_optional_enabled(dev, NULL);
+       if (IS_ERR(pltfm_host->clk)) {
+               ret = PTR_ERR(pltfm_host->clk);
+               goto err_sdhci;
+       }

...

drivers/mmc/host/sdhci-npcm.c line 70

Quoted 2 lines
drivers/mmc/host/sdhci-npcm.c new file +2 -0
+err_sdhci_clk:
+       clk_disable_unprepare(pltfm_host->clk);

Now this is leftover that leads to unbalanced reference counting.

Signature · 2 lines
With Best Regards,
Andy Shevchenko
author maintainer
#4 lore raw

Re: [PATCH v4 2/2] mmc: sdhci-npcm: Add NPCM SDHCI driver

Hi Andy

Thank a lot Address in V5

Quoted 23 lines · Andy Shevchenko
Quoted 2 lines · Tomer Maimon

Add Nuvoton NPCM BMC sdhci-pltfm controller driver.

...

Quoted 5 lines
drivers/mmc/host/sdhci-npcm.c new file +5 -0
+       pltfm_host->clk = devm_clk_get_optional_enabled(dev, NULL);
+       if (IS_ERR(pltfm_host->clk)) {
+               ret = PTR_ERR(pltfm_host->clk);
+               goto err_sdhci;
+       }

...

drivers/mmc/host/sdhci-npcm.c line 70

Quoted 2 lines
drivers/mmc/host/sdhci-npcm.c new file +2 -0
+err_sdhci_clk:
+       clk_disable_unprepare(pltfm_host->clk);

Now this is leftover that leads to unbalanced reference counting.

--
With Best Regards,
Andy Shevchenko