public inbox for linux-mmc@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/2] Add AST2700 support for aspeed sdhci
@ 2026-03-23  2:07 Ryan Chen
  2026-03-23  2:07 ` [PATCH v3 1/2] dt-bindings: mmc: sdhci-of-aspeed: Add AST2700 compatible Ryan Chen
  2026-03-23  2:07 ` [PATCH v3 2/2] mmc: sdhci-of-aspeed: Handle optional controller reset Ryan Chen
  0 siblings, 2 replies; 5+ messages in thread
From: Ryan Chen @ 2026-03-23  2:07 UTC (permalink / raw)
  To: Andrew Jeffery, Ulf Hansson, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Joel Stanley, Ryan Chen, Adrian Hunter,
	Philipp Zabel
  Cc: Andrew Jeffery, linux-aspeed, openbmc, linux-mmc, devicetree,
	linux-arm-kernel, linux-kernel, Ryan Chen

This series add aspeed sdhci support for AST2700. The AST2700 sdhci
requires an reset. This series updates the binding and driver to
support reset requirements.

Signed-off-by: Ryan Chen <ryan_chen@aspeedtech.com>
---
Changes in v3:
- 1/2 Add items list const for ast2700 ast2600 compatible
- 1/2 Move if/then/else block after required: (per example-schema)
- Link to v2: https://lore.kernel.org/r/20260317-sdhci-v2-0-39b1f063061b@aspeedtech.com

Changes in v2:
- 1/2 use items for ast2700 compatible.
- 2/2 use devm_reset_control_get_optional_exclusive_deasserted for
  reset.
- Link to v1: https://lore.kernel.org/r/20260313-sdhci-v1-0-91cea19c8a67@aspeedtech.com

---
Ryan Chen (2):
      dt-bindings: mmc: sdhci-of-aspeed: Add AST2700 compatible
      mmc: sdhci-of-aspeed: Handle optional controller reset

 .../devicetree/bindings/mmc/aspeed,sdhci.yaml      | 41 +++++++++++++++++-----
 drivers/mmc/host/sdhci-of-aspeed.c                 |  6 ++++
 2 files changed, 39 insertions(+), 8 deletions(-)
---
base-commit: 6de23f81a5e08be8fbf5e8d7e9febc72a5b5f27f
change-id: 20260313-sdhci-269d319fdbde

Best regards,
-- 
Ryan Chen <ryan_chen@aspeedtech.com>


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

* [PATCH v3 1/2] dt-bindings: mmc: sdhci-of-aspeed: Add AST2700 compatible
  2026-03-23  2:07 [PATCH v3 0/2] Add AST2700 support for aspeed sdhci Ryan Chen
@ 2026-03-23  2:07 ` Ryan Chen
  2026-03-23  2:07 ` [PATCH v3 2/2] mmc: sdhci-of-aspeed: Handle optional controller reset Ryan Chen
  1 sibling, 0 replies; 5+ messages in thread
From: Ryan Chen @ 2026-03-23  2:07 UTC (permalink / raw)
  To: Andrew Jeffery, Ulf Hansson, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Joel Stanley, Ryan Chen, Adrian Hunter,
	Philipp Zabel
  Cc: Andrew Jeffery, linux-aspeed, openbmc, linux-mmc, devicetree,
	linux-arm-kernel, linux-kernel, Ryan Chen

AST2700 SDHCI controller is fully compatible with AST2600.

However, it is necessary to take the AST2700 SD controller out of
reset, so require the 'resets' property.

Signed-off-by: Ryan Chen <ryan_chen@aspeedtech.com>
---
Changes in v3:
- Add items list const for ast2700 ast2600 compatible
- Move if/then/else block after required: (per example-schema)
Changes in v2:
- add missing blank line
- modify ast2700 compatible items const
---
 .../devicetree/bindings/mmc/aspeed,sdhci.yaml      | 41 +++++++++++++++++-----
 1 file changed, 33 insertions(+), 8 deletions(-)

diff --git a/Documentation/devicetree/bindings/mmc/aspeed,sdhci.yaml b/Documentation/devicetree/bindings/mmc/aspeed,sdhci.yaml
index d24950ccea95..e4a9c2810893 100644
--- a/Documentation/devicetree/bindings/mmc/aspeed,sdhci.yaml
+++ b/Documentation/devicetree/bindings/mmc/aspeed,sdhci.yaml
@@ -22,10 +22,15 @@ description: |+
 
 properties:
   compatible:
-    enum:
-      - aspeed,ast2400-sd-controller
-      - aspeed,ast2500-sd-controller
-      - aspeed,ast2600-sd-controller
+    oneOf:
+      - enum:
+          - aspeed,ast2400-sd-controller
+          - aspeed,ast2500-sd-controller
+          - aspeed,ast2600-sd-controller
+      - items:
+          - const: aspeed,ast2700-sd-controller
+          - const: aspeed,ast2600-sd-controller
+
   reg:
     maxItems: 1
     description: Common configuration registers
@@ -38,6 +43,9 @@ properties:
     maxItems: 1
     description: The SD/SDIO controller clock gate
 
+  resets:
+    maxItems: 1
+
 patternProperties:
   "^sdhci@[0-9a-f]+$":
     type: object
@@ -46,10 +54,15 @@ patternProperties:
 
     properties:
       compatible:
-        enum:
-          - aspeed,ast2400-sdhci
-          - aspeed,ast2500-sdhci
-          - aspeed,ast2600-sdhci
+        oneOf:
+          - enum:
+              - aspeed,ast2400-sdhci
+              - aspeed,ast2500-sdhci
+              - aspeed,ast2600-sdhci
+          - items:
+              - const: aspeed,ast2700-sdhci
+              - const: aspeed,ast2600-sdhci
+
       reg:
         maxItems: 1
         description: The SDHCI registers
@@ -78,6 +91,18 @@ required:
   - ranges
   - clocks
 
+if:
+  properties:
+    compatible:
+      contains:
+        const: aspeed,ast2700-sd-controller
+then:
+  required:
+    - resets
+else:
+  properties:
+    resets: false
+
 examples:
   - |
     #include <dt-bindings/clock/aspeed-clock.h>

-- 
2.34.1


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

* [PATCH v3 2/2] mmc: sdhci-of-aspeed: Handle optional controller reset
  2026-03-23  2:07 [PATCH v3 0/2] Add AST2700 support for aspeed sdhci Ryan Chen
  2026-03-23  2:07 ` [PATCH v3 1/2] dt-bindings: mmc: sdhci-of-aspeed: Add AST2700 compatible Ryan Chen
@ 2026-03-23  2:07 ` Ryan Chen
  2026-03-23  7:46   ` Krzysztof Kozlowski
  2026-03-23 13:33   ` Adrian Hunter
  1 sibling, 2 replies; 5+ messages in thread
From: Ryan Chen @ 2026-03-23  2:07 UTC (permalink / raw)
  To: Andrew Jeffery, Ulf Hansson, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Joel Stanley, Ryan Chen, Adrian Hunter,
	Philipp Zabel
  Cc: Andrew Jeffery, linux-aspeed, openbmc, linux-mmc, devicetree,
	linux-arm-kernel, linux-kernel, Ryan Chen

Get the optional reset line for the ASPEED SD controller during probe by
using devm_reset_control_get_optional_exclusive_deasserted().

This allows platforms such as AST2700, which require the SD controller
to be taken out of reset before use, to work with the existing driver.

Signed-off-by: Ryan Chen <ryan_chen@aspeedtech.com>
---
Changes in v2:
- use devm_reset_control_get_optional_exclusive_deasserted replace
  reset_control_get_optional_exclusive.
- add include reset.h
---
 drivers/mmc/host/sdhci-of-aspeed.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/mmc/host/sdhci-of-aspeed.c b/drivers/mmc/host/sdhci-of-aspeed.c
index ca97b01996b1..8f638ffb55ae 100644
--- a/drivers/mmc/host/sdhci-of-aspeed.c
+++ b/drivers/mmc/host/sdhci-of-aspeed.c
@@ -13,6 +13,7 @@
 #include <linux/of.h>
 #include <linux/of_platform.h>
 #include <linux/platform_device.h>
+#include <linux/reset.h>
 #include <linux/spinlock.h>
 
 #include "sdhci-pltfm.h"
@@ -520,6 +521,7 @@ static int aspeed_sdc_probe(struct platform_device *pdev)
 
 {
 	struct device_node *parent, *child;
+	struct reset_control *reset;
 	struct aspeed_sdc *sdc;
 	int ret;
 
@@ -529,6 +531,10 @@ static int aspeed_sdc_probe(struct platform_device *pdev)
 
 	spin_lock_init(&sdc->lock);
 
+	reset = devm_reset_control_get_optional_exclusive_deasserted(&pdev->dev, NULL);
+	if (IS_ERR(reset))
+		return dev_err_probe(&pdev->dev, PTR_ERR(reset), "unable to acquire reset\n");
+
 	sdc->clk = devm_clk_get(&pdev->dev, NULL);
 	if (IS_ERR(sdc->clk))
 		return PTR_ERR(sdc->clk);

-- 
2.34.1


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

* Re: [PATCH v3 2/2] mmc: sdhci-of-aspeed: Handle optional controller reset
  2026-03-23  2:07 ` [PATCH v3 2/2] mmc: sdhci-of-aspeed: Handle optional controller reset Ryan Chen
@ 2026-03-23  7:46   ` Krzysztof Kozlowski
  2026-03-23 13:33   ` Adrian Hunter
  1 sibling, 0 replies; 5+ messages in thread
From: Krzysztof Kozlowski @ 2026-03-23  7:46 UTC (permalink / raw)
  To: Ryan Chen
  Cc: Andrew Jeffery, Ulf Hansson, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Joel Stanley, Ryan Chen, Adrian Hunter,
	Philipp Zabel, Andrew Jeffery, linux-aspeed, openbmc, linux-mmc,
	devicetree, linux-arm-kernel, linux-kernel

On Mon, Mar 23, 2026 at 10:07:08AM +0800, Ryan Chen wrote:
> Get the optional reset line for the ASPEED SD controller during probe by
> using devm_reset_control_get_optional_exclusive_deasserted().
> 
> This allows platforms such as AST2700, which require the SD controller
> to be taken out of reset before use, to work with the existing driver.
> 
> Signed-off-by: Ryan Chen <ryan_chen@aspeedtech.com>
> ---
> Changes in v2:
> - use devm_reset_control_get_optional_exclusive_deasserted replace
>   reset_control_get_optional_exclusive.
> - add include reset.h

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>

Best regards,
Krzysztof


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

* Re: [PATCH v3 2/2] mmc: sdhci-of-aspeed: Handle optional controller reset
  2026-03-23  2:07 ` [PATCH v3 2/2] mmc: sdhci-of-aspeed: Handle optional controller reset Ryan Chen
  2026-03-23  7:46   ` Krzysztof Kozlowski
@ 2026-03-23 13:33   ` Adrian Hunter
  1 sibling, 0 replies; 5+ messages in thread
From: Adrian Hunter @ 2026-03-23 13:33 UTC (permalink / raw)
  To: Ryan Chen, Andrew Jeffery, Ulf Hansson, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Joel Stanley, Ryan Chen,
	Philipp Zabel
  Cc: Andrew Jeffery, linux-aspeed, openbmc, linux-mmc, devicetree,
	linux-arm-kernel, linux-kernel

On 23/03/2026 04:07, Ryan Chen wrote:
> Get the optional reset line for the ASPEED SD controller during probe by
> using devm_reset_control_get_optional_exclusive_deasserted().
> 
> This allows platforms such as AST2700, which require the SD controller
> to be taken out of reset before use, to work with the existing driver.
> 
> Signed-off-by: Ryan Chen <ryan_chen@aspeedtech.com>

No longer applies to 'next' branch of:

	git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc.git

Fix that and add:

Acked-by: Adrian Hunter <adrian.hunter@intel.com>

> ---
> Changes in v2:
> - use devm_reset_control_get_optional_exclusive_deasserted replace
>   reset_control_get_optional_exclusive.
> - add include reset.h
> ---
>  drivers/mmc/host/sdhci-of-aspeed.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/drivers/mmc/host/sdhci-of-aspeed.c b/drivers/mmc/host/sdhci-of-aspeed.c
> index ca97b01996b1..8f638ffb55ae 100644
> --- a/drivers/mmc/host/sdhci-of-aspeed.c
> +++ b/drivers/mmc/host/sdhci-of-aspeed.c
> @@ -13,6 +13,7 @@
>  #include <linux/of.h>
>  #include <linux/of_platform.h>
>  #include <linux/platform_device.h>
> +#include <linux/reset.h>
>  #include <linux/spinlock.h>
>  
>  #include "sdhci-pltfm.h"
> @@ -520,6 +521,7 @@ static int aspeed_sdc_probe(struct platform_device *pdev)
>  
>  {
>  	struct device_node *parent, *child;
> +	struct reset_control *reset;
>  	struct aspeed_sdc *sdc;
>  	int ret;
>  
> @@ -529,6 +531,10 @@ static int aspeed_sdc_probe(struct platform_device *pdev)
>  
>  	spin_lock_init(&sdc->lock);
>  
> +	reset = devm_reset_control_get_optional_exclusive_deasserted(&pdev->dev, NULL);
> +	if (IS_ERR(reset))
> +		return dev_err_probe(&pdev->dev, PTR_ERR(reset), "unable to acquire reset\n");
> +
>  	sdc->clk = devm_clk_get(&pdev->dev, NULL);
>  	if (IS_ERR(sdc->clk))
>  		return PTR_ERR(sdc->clk);
> 


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

end of thread, other threads:[~2026-03-23 13:33 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-23  2:07 [PATCH v3 0/2] Add AST2700 support for aspeed sdhci Ryan Chen
2026-03-23  2:07 ` [PATCH v3 1/2] dt-bindings: mmc: sdhci-of-aspeed: Add AST2700 compatible Ryan Chen
2026-03-23  2:07 ` [PATCH v3 2/2] mmc: sdhci-of-aspeed: Handle optional controller reset Ryan Chen
2026-03-23  7:46   ` Krzysztof Kozlowski
2026-03-23 13:33   ` Adrian Hunter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox