Devicetree
 help / color / mirror / Atom feed
* [PATCH v2 0/3] i3c: dw: Add apb reset support
@ 2026-05-11  3:19 Jisheng Zhang
  2026-05-11  3:19 ` [PATCH v2 1/3] dt-bindings: i3c: dw: Describe core reset Jisheng Zhang
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Jisheng Zhang @ 2026-05-11  3:19 UTC (permalink / raw)
  To: Alexandre Belloni, Frank Li, Philipp Zabel, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: linux-i3c, devicetree, linux-kernel

Add support of apb reset which is to reset the APB interface.
The first patch is to document the exisiting reset dt-binding. 2nd patch
is to add apb reset dt-binding. The last patch is to add apb reset
support.

Hi Frank,

comments to question "why not name the reset as "apb" instead of "apb_rst":
exisiting core reset is named as "core_rst", this is to align with its
style.

Thanks

Since v1:
  - add dt-binding


Jisheng Zhang (3):
  dt-bindings: i3c: dw: Describe core reset
  dt-bindings: i3c: dw: Add apb reset
  i3c: dw: Add apb reset support

 .../devicetree/bindings/i3c/snps,dw-i3c-master.yaml    | 10 ++++++++++
 drivers/i3c/master/dw-i3c-master.c                     |  7 +++++++
 drivers/i3c/master/dw-i3c-master.h                     |  1 +
 3 files changed, 18 insertions(+)

-- 
2.53.0


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

* [PATCH v2 1/3] dt-bindings: i3c: dw: Describe core reset
  2026-05-11  3:19 [PATCH v2 0/3] i3c: dw: Add apb reset support Jisheng Zhang
@ 2026-05-11  3:19 ` Jisheng Zhang
  2026-05-11  3:19 ` [PATCH v2 2/3] dt-bindings: i3c: dw: Add apb reset Jisheng Zhang
  2026-05-11  3:19 ` [PATCH v2 3/3] i3c: dw: Add apb reset support Jisheng Zhang
  2 siblings, 0 replies; 4+ messages in thread
From: Jisheng Zhang @ 2026-05-11  3:19 UTC (permalink / raw)
  To: Alexandre Belloni, Frank Li, Philipp Zabel, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: linux-i3c, devicetree, linux-kernel

The core reset support has been in the code from day1, but the
dt-binding doesn't exist. Add dt-binding to describe reset property.

Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
---
 .../devicetree/bindings/i3c/snps,dw-i3c-master.yaml       | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/Documentation/devicetree/bindings/i3c/snps,dw-i3c-master.yaml b/Documentation/devicetree/bindings/i3c/snps,dw-i3c-master.yaml
index e803457d3f55..613dce7757bc 100644
--- a/Documentation/devicetree/bindings/i3c/snps,dw-i3c-master.yaml
+++ b/Documentation/devicetree/bindings/i3c/snps,dw-i3c-master.yaml
@@ -35,6 +35,14 @@ properties:
       - const: core
       - const: apb
 
+  resets:
+    items:
+      - description: Reset signal
+
+  reset-names:
+    items:
+      - const: core_rst
+
   interrupts:
     maxItems: 1
 
-- 
2.53.0


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

* [PATCH v2 2/3] dt-bindings: i3c: dw: Add apb reset
  2026-05-11  3:19 [PATCH v2 0/3] i3c: dw: Add apb reset support Jisheng Zhang
  2026-05-11  3:19 ` [PATCH v2 1/3] dt-bindings: i3c: dw: Describe core reset Jisheng Zhang
@ 2026-05-11  3:19 ` Jisheng Zhang
  2026-05-11  3:19 ` [PATCH v2 3/3] i3c: dw: Add apb reset support Jisheng Zhang
  2 siblings, 0 replies; 4+ messages in thread
From: Jisheng Zhang @ 2026-05-11  3:19 UTC (permalink / raw)
  To: Alexandre Belloni, Frank Li, Philipp Zabel, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: linux-i3c, devicetree, linux-kernel

Add dt-binding for support of apb reset which is to reset the APB
interface.

Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
---
 Documentation/devicetree/bindings/i3c/snps,dw-i3c-master.yaml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/i3c/snps,dw-i3c-master.yaml b/Documentation/devicetree/bindings/i3c/snps,dw-i3c-master.yaml
index 613dce7757bc..2575442b28ff 100644
--- a/Documentation/devicetree/bindings/i3c/snps,dw-i3c-master.yaml
+++ b/Documentation/devicetree/bindings/i3c/snps,dw-i3c-master.yaml
@@ -38,10 +38,12 @@ properties:
   resets:
     items:
       - description: Reset signal
+      - description: APB interface reset signal
 
   reset-names:
     items:
       - const: core_rst
+      - const: apb_rst
 
   interrupts:
     maxItems: 1
-- 
2.53.0


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

* [PATCH v2 3/3] i3c: dw: Add apb reset support
  2026-05-11  3:19 [PATCH v2 0/3] i3c: dw: Add apb reset support Jisheng Zhang
  2026-05-11  3:19 ` [PATCH v2 1/3] dt-bindings: i3c: dw: Describe core reset Jisheng Zhang
  2026-05-11  3:19 ` [PATCH v2 2/3] dt-bindings: i3c: dw: Add apb reset Jisheng Zhang
@ 2026-05-11  3:19 ` Jisheng Zhang
  2 siblings, 0 replies; 4+ messages in thread
From: Jisheng Zhang @ 2026-05-11  3:19 UTC (permalink / raw)
  To: Alexandre Belloni, Frank Li, Philipp Zabel, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: linux-i3c, devicetree, linux-kernel

Add support of apb reset which is to reset the APB interface.

Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
---
 drivers/i3c/master/dw-i3c-master.c | 7 +++++++
 drivers/i3c/master/dw-i3c-master.h | 1 +
 2 files changed, 8 insertions(+)

diff --git a/drivers/i3c/master/dw-i3c-master.c b/drivers/i3c/master/dw-i3c-master.c
index 655693a2187e..9de54d584bc3 100644
--- a/drivers/i3c/master/dw-i3c-master.c
+++ b/drivers/i3c/master/dw-i3c-master.c
@@ -1591,6 +1591,11 @@ int dw_i3c_common_probe(struct dw_i3c_master *master,
 	if (IS_ERR(master->core_rst))
 		return PTR_ERR(master->core_rst);
 
+	master->apb_rst = devm_reset_control_get_optional_exclusive_deasserted(&pdev->dev,
+									       "apb_rst");
+	if (IS_ERR(master->apb_rst))
+		return PTR_ERR(master->apb_rst);
+
 	spin_lock_init(&master->xferqueue.lock);
 	INIT_LIST_HEAD(&master->xferqueue.list);
 
@@ -1765,6 +1770,7 @@ static int __maybe_unused dw_i3c_master_runtime_suspend(struct device *dev)
 	dw_i3c_master_disable(master);
 
 	reset_control_assert(master->core_rst);
+	reset_control_assert(master->apb_rst);
 	dw_i3c_master_disable_clks(master);
 	pinctrl_pm_select_sleep_state(dev);
 	return 0;
@@ -1777,6 +1783,7 @@ static int __maybe_unused dw_i3c_master_runtime_resume(struct device *dev)
 	pinctrl_pm_select_default_state(dev);
 	dw_i3c_master_enable_clks(master);
 	reset_control_deassert(master->core_rst);
+	reset_control_deassert(master->apb_rst);
 
 	dw_i3c_master_set_intr_regs(master);
 	dw_i3c_master_restore_timing_regs(master);
diff --git a/drivers/i3c/master/dw-i3c-master.h b/drivers/i3c/master/dw-i3c-master.h
index c5cb695c16ab..a4ba60043288 100644
--- a/drivers/i3c/master/dw-i3c-master.h
+++ b/drivers/i3c/master/dw-i3c-master.h
@@ -37,6 +37,7 @@ struct dw_i3c_master {
 	struct dw_i3c_master_caps caps;
 	void __iomem *regs;
 	struct reset_control *core_rst;
+	struct reset_control *apb_rst;
 	struct clk *core_clk;
 	struct clk *pclk;
 	char version[5];
-- 
2.53.0


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

end of thread, other threads:[~2026-05-11  3:38 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-11  3:19 [PATCH v2 0/3] i3c: dw: Add apb reset support Jisheng Zhang
2026-05-11  3:19 ` [PATCH v2 1/3] dt-bindings: i3c: dw: Describe core reset Jisheng Zhang
2026-05-11  3:19 ` [PATCH v2 2/3] dt-bindings: i3c: dw: Add apb reset Jisheng Zhang
2026-05-11  3:19 ` [PATCH v2 3/3] i3c: dw: Add apb reset support Jisheng Zhang

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