public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [PATCH v5 0/7] Add AVS support for J721S2
@ 2024-10-15 10:52 Manorit Chawdhry
  2024-10-15 10:52 ` [PATCH v5 1/7] power: pmic: tps65941: Add DM_PMIC dependency Manorit Chawdhry
                   ` (8 more replies)
  0 siblings, 9 replies; 11+ messages in thread
From: Manorit Chawdhry @ 2024-10-15 10:52 UTC (permalink / raw)
  To: Jaehoon Chung
  Cc: u-boot, Neha Malcom Francis, Keerthy J, Udit Kumar, Aniket Limaye,
	Tom Rini, Vignesh Raghavendra, Andrew Davis, Nishanth Menon,
	Simon Glass, Manorit Chawdhry

This series adds support for Adaptive voltage scaling on J721S2 device [0].

[0]: https://www.ti.com/lit/pdf/spruj28 (Section 5.2.4.1 AVS Support)

AVS Test for J721S2: https://gist.github.com/manorit2001/b2fd9f6764a863294d4aa0755c83c84f
Boot Test results: https://gist.github.com/manorit2001/d44e035552cb19aadeb0d928d5cb5f26

Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
---
Changes in v5:
* Nishanth
- Update the commit message for defconfig update
- Add MPU clock to all devicetree node

* Simon
- Update the commit messages to be more helpful

- Link to v4: https://lore.kernel.org/r/20241004-b4-upstream-j721s2-avs-v4-0-6d71c6bab9f4@ti.com

---
Manorit Chawdhry (7):
      power: pmic: tps65941: Add DM_PMIC dependency
      drivers: misc: k3_avs: Check return code while programming AVS
      arm: dts: k3-*-r5: Add MPU clock in clocks property
      drivers: misc: k3_avs: Extract MPU clk and dev ID from DT
      arm: mach-k3: j721s2_init: Initialize AVS Class 0
      arm: dts: j721s2: Add VTM node in R5
      configs: j721s2_evm_r5_defconfig: Add AVS Configs

 arch/arm/dts/k3-am62-r5-lp-sk.dts               |  3 +-
 arch/arm/dts/k3-am625-r5-beagleplay.dts         |  3 +-
 arch/arm/dts/k3-am625-r5-sk.dts                 |  3 +-
 arch/arm/dts/k3-am62a7-r5-sk.dts                |  3 +-
 arch/arm/dts/k3-am62p5-r5-sk.dts                |  3 +-
 arch/arm/dts/k3-am642-r5-evm.dts                |  3 +-
 arch/arm/dts/k3-am642-r5-sk.dts                 |  3 +-
 arch/arm/dts/k3-am654-r5-base-board.dts         |  3 +-
 arch/arm/dts/k3-am69-r5-sk.dts                  |  3 +-
 arch/arm/dts/k3-j7200-r5-common-proc-board.dts  |  3 +-
 arch/arm/dts/k3-j721e-r5.dtsi                   |  3 +-
 arch/arm/dts/k3-j721s2-r5-common-proc-board.dts |  9 ++++++
 arch/arm/dts/k3-j721s2-r5.dtsi                  |  3 +-
 arch/arm/dts/k3-j722s-r5-evm.dts                |  3 +-
 arch/arm/dts/k3-j784s4-r5-evm.dts               |  3 +-
 arch/arm/mach-k3/j721s2/j721s2_init.c           | 10 +++++++
 configs/am68_sk_r5_defconfig                    |  4 +++
 configs/j721s2_evm_r5_defconfig                 |  6 ++++
 drivers/misc/k3_avs.c                           | 40 ++++++++++++++++++++++++-
 drivers/power/pmic/Kconfig                      |  1 +
 20 files changed, 97 insertions(+), 15 deletions(-)
---
base-commit: 28dc47038edc4e93f32d75a357131bcf01a18d85
change-id: 20240130-b4-upstream-j721s2-avs-8c187d3fe26a

Best regards,
-- 
Manorit Chawdhry <m-chawdhry@ti.com>


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

* [PATCH v5 1/7] power: pmic: tps65941: Add DM_PMIC dependency
  2024-10-15 10:52 [PATCH v5 0/7] Add AVS support for J721S2 Manorit Chawdhry
@ 2024-10-15 10:52 ` Manorit Chawdhry
  2024-10-22 23:20   ` Jaehoon Chung
  2024-10-15 10:52 ` [PATCH v5 2/7] drivers: misc: k3_avs: Check return code while programming AVS Manorit Chawdhry
                   ` (7 subsequent siblings)
  8 siblings, 1 reply; 11+ messages in thread
From: Manorit Chawdhry @ 2024-10-15 10:52 UTC (permalink / raw)
  To: Jaehoon Chung
  Cc: u-boot, Neha Malcom Francis, Keerthy J, Udit Kumar, Aniket Limaye,
	Tom Rini, Vignesh Raghavendra, Andrew Davis, Nishanth Menon,
	Simon Glass, Manorit Chawdhry

This Kconfig depends on DM_PMIC but hadn't be explicitly stated which
could cause config related issues.

Adds the dependency in Kconfig for tps65941.

Fixes: 6b86dd0c1ead ("power: pmic: tps65941: Add support for tps65941 family of PMICs")
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
---
 drivers/power/pmic/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/power/pmic/Kconfig b/drivers/power/pmic/Kconfig
index 562c1a3b122a..bbcbcee4c355 100644
--- a/drivers/power/pmic/Kconfig
+++ b/drivers/power/pmic/Kconfig
@@ -394,6 +394,7 @@ config SPL_PMIC_LP87565
 
 config PMIC_TPS65941
 	bool "Enable driver for Texas Instruments TPS65941 PMIC"
+	depends on DM_PMIC
 	help
 	The TPS65941 is a PMIC containing a bunch of SMPS & LDOs.
 	This driver binds the pmic children.

-- 
2.46.0


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

* [PATCH v5 2/7] drivers: misc: k3_avs: Check return code while programming AVS
  2024-10-15 10:52 [PATCH v5 0/7] Add AVS support for J721S2 Manorit Chawdhry
  2024-10-15 10:52 ` [PATCH v5 1/7] power: pmic: tps65941: Add DM_PMIC dependency Manorit Chawdhry
@ 2024-10-15 10:52 ` Manorit Chawdhry
  2024-10-15 10:52 ` [PATCH v5 3/7] arm: dts: k3-*-r5: Add MPU clock in clocks property Manorit Chawdhry
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: Manorit Chawdhry @ 2024-10-15 10:52 UTC (permalink / raw)
  To: Jaehoon Chung
  Cc: u-boot, Neha Malcom Francis, Keerthy J, Udit Kumar, Aniket Limaye,
	Tom Rini, Vignesh Raghavendra, Andrew Davis, Nishanth Menon,
	Simon Glass, Manorit Chawdhry

Check if AVS could not be programmed and print a warning.

Fixes: 9d233b4e3ed6 ("misc: k3_avs: add driver for K3 Adaptive Voltage Scaling Class 0")
Reviewed-by: Udit Kumar <u-kumar1@ti.com>
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
---
 drivers/misc/k3_avs.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/misc/k3_avs.c b/drivers/misc/k3_avs.c
index 87471cc3b16a..66ad747f2dd8 100644
--- a/drivers/misc/k3_avs.c
+++ b/drivers/misc/k3_avs.c
@@ -391,7 +391,10 @@ static int k3_avs_probe(struct udevice *dev)
 		if (vd->flags & VD_FLAG_INIT_DONE)
 			continue;
 
-		k3_avs_program_voltage(priv, vd, vd->opp);
+		ret = k3_avs_program_voltage(priv, vd, vd->opp);
+		if (ret)
+			dev_warn(dev, "Could not program AVS voltage for VD%d, vd->opp=%d, ret=%d\n",
+				 vd->id, vd->opp, ret);
 	}
 
 	if (!device_is_compatible(priv->dev, "ti,am654-avs"))

-- 
2.46.0


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

* [PATCH v5 3/7] arm: dts: k3-*-r5: Add MPU clock in clocks property
  2024-10-15 10:52 [PATCH v5 0/7] Add AVS support for J721S2 Manorit Chawdhry
  2024-10-15 10:52 ` [PATCH v5 1/7] power: pmic: tps65941: Add DM_PMIC dependency Manorit Chawdhry
  2024-10-15 10:52 ` [PATCH v5 2/7] drivers: misc: k3_avs: Check return code while programming AVS Manorit Chawdhry
@ 2024-10-15 10:52 ` Manorit Chawdhry
  2024-10-15 10:52 ` [PATCH v5 4/7] drivers: misc: k3_avs: Extract MPU clk and dev ID from DT Manorit Chawdhry
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: Manorit Chawdhry @ 2024-10-15 10:52 UTC (permalink / raw)
  To: Jaehoon Chung
  Cc: u-boot, Neha Malcom Francis, Keerthy J, Udit Kumar, Aniket Limaye,
	Tom Rini, Vignesh Raghavendra, Andrew Davis, Nishanth Menon,
	Simon Glass, Manorit Chawdhry

MPU clock had been missing. Distinguish multiple clocks with clock-names
and add MPU clock as well.

Link: https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j721s2/clocks.html#clocks-for-a72ss0-core0-device
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
---
 arch/arm/dts/k3-am62-r5-lp-sk.dts              | 3 ++-
 arch/arm/dts/k3-am625-r5-beagleplay.dts        | 3 ++-
 arch/arm/dts/k3-am625-r5-sk.dts                | 3 ++-
 arch/arm/dts/k3-am62a7-r5-sk.dts               | 3 ++-
 arch/arm/dts/k3-am62p5-r5-sk.dts               | 3 ++-
 arch/arm/dts/k3-am642-r5-evm.dts               | 3 ++-
 arch/arm/dts/k3-am642-r5-sk.dts                | 3 ++-
 arch/arm/dts/k3-am654-r5-base-board.dts        | 3 ++-
 arch/arm/dts/k3-am69-r5-sk.dts                 | 3 ++-
 arch/arm/dts/k3-j7200-r5-common-proc-board.dts | 3 ++-
 arch/arm/dts/k3-j721e-r5.dtsi                  | 3 ++-
 arch/arm/dts/k3-j721s2-r5.dtsi                 | 3 ++-
 arch/arm/dts/k3-j722s-r5-evm.dts               | 3 ++-
 arch/arm/dts/k3-j784s4-r5-evm.dts              | 3 ++-
 14 files changed, 28 insertions(+), 14 deletions(-)

diff --git a/arch/arm/dts/k3-am62-r5-lp-sk.dts b/arch/arm/dts/k3-am62-r5-lp-sk.dts
index ec5d3f4ba2cb..b8e5f49a1fc7 100644
--- a/arch/arm/dts/k3-am62-r5-lp-sk.dts
+++ b/arch/arm/dts/k3-am62-r5-lp-sk.dts
@@ -25,7 +25,8 @@
 				<&k3_pds 135 TI_SCI_PD_EXCLUSIVE>,
 				<&k3_pds 166 TI_SCI_PD_EXCLUSIVE>;
 		resets = <&k3_reset 135 0>;
-		clocks = <&k3_clks 61 0>;
+		clocks = <&k3_clks 61 0>, <&k3_clks 135 0>;
+		clock-names = "gtc", "core";
 		assigned-clocks = <&k3_clks 61 0>, <&k3_clks 135 0>;
 		assigned-clock-parents = <&k3_clks 61 2>;
 		assigned-clock-rates = <200000000>, <1200000000>;
diff --git a/arch/arm/dts/k3-am625-r5-beagleplay.dts b/arch/arm/dts/k3-am625-r5-beagleplay.dts
index f0b66f0cb945..9e0a6ed67844 100644
--- a/arch/arm/dts/k3-am625-r5-beagleplay.dts
+++ b/arch/arm/dts/k3-am625-r5-beagleplay.dts
@@ -24,7 +24,8 @@
 		power-domains = <&k3_pds 61 TI_SCI_PD_EXCLUSIVE>,
 				<&k3_pds 135 TI_SCI_PD_EXCLUSIVE>;
 		resets = <&k3_reset 135 0>;
-		clocks = <&k3_clks 61 0>;
+		clocks = <&k3_clks 61 0>, <&k3_clks 135 0>;
+		clock-names = "gtc", "core";
 		assigned-clocks = <&k3_clks 61 0>, <&k3_clks 135 0>;
 		assigned-clock-parents = <&k3_clks 61 2>;
 		assigned-clock-rates = <200000000>, <1250000000>;
diff --git a/arch/arm/dts/k3-am625-r5-sk.dts b/arch/arm/dts/k3-am625-r5-sk.dts
index 0912b953db07..d2dd75469c1a 100644
--- a/arch/arm/dts/k3-am625-r5-sk.dts
+++ b/arch/arm/dts/k3-am625-r5-sk.dts
@@ -25,7 +25,8 @@
 				<&k3_pds 135 TI_SCI_PD_EXCLUSIVE>,
 				<&k3_pds 166 TI_SCI_PD_EXCLUSIVE>;
 		resets = <&k3_reset 135 0>;
-		clocks = <&k3_clks 61 0>;
+		clocks = <&k3_clks 61 0>, <&k3_clks 135 0>;
+		clock-names = "gtc", "core";
 		assigned-clocks = <&k3_clks 61 0>, <&k3_clks 135 0>;
 		assigned-clock-parents = <&k3_clks 61 2>;
 		assigned-clock-rates = <200000000>, <1200000000>;
diff --git a/arch/arm/dts/k3-am62a7-r5-sk.dts b/arch/arm/dts/k3-am62a7-r5-sk.dts
index bc05dcb5efbe..464227b3b25d 100644
--- a/arch/arm/dts/k3-am62a7-r5-sk.dts
+++ b/arch/arm/dts/k3-am62a7-r5-sk.dts
@@ -23,7 +23,8 @@
 				<&k3_pds 135 TI_SCI_PD_EXCLUSIVE>,
 				<&k3_pds 166 TI_SCI_PD_EXCLUSIVE>;
 		resets = <&k3_reset 135 0>;
-		clocks = <&k3_clks 61 0>;
+		clocks = <&k3_clks 61 0>, <&k3_clks 135 0>;
+		clock-names = "gtc", "core";
 		assigned-clocks = <&k3_clks 61 0>, <&k3_clks 135 0>;
 		assigned-clock-parents = <&k3_clks 61 2>;
 		assigned-clock-rates = <200000000>, <1200000000>;
diff --git a/arch/arm/dts/k3-am62p5-r5-sk.dts b/arch/arm/dts/k3-am62p5-r5-sk.dts
index 658f2cf730a7..baf1a83dc124 100644
--- a/arch/arm/dts/k3-am62p5-r5-sk.dts
+++ b/arch/arm/dts/k3-am62p5-r5-sk.dts
@@ -26,7 +26,8 @@
 			<&k3_pds 135 TI_SCI_PD_EXCLUSIVE>,
 			<&k3_pds 166 TI_SCI_PD_EXCLUSIVE>;
 		resets = <&k3_reset 135 0>;
-		clocks = <&k3_clks 61 0>;
+		clocks = <&k3_clks 61 0>, <&k3_clks 135 0>;
+		clock-names = "gtc", "core";
 		assigned-clocks = <&k3_clks 61 0>, <&k3_clks 135 0>;
 		assigned-clock-parents = <&k3_clks 61 2>;
 		assigned-clock-rates = <200000000>, <1200000000>;
diff --git a/arch/arm/dts/k3-am642-r5-evm.dts b/arch/arm/dts/k3-am642-r5-evm.dts
index be8596987bab..933f75095b11 100644
--- a/arch/arm/dts/k3-am642-r5-evm.dts
+++ b/arch/arm/dts/k3-am642-r5-evm.dts
@@ -22,7 +22,8 @@
 				<&k3_pds 135 TI_SCI_PD_EXCLUSIVE>,
 				<&k3_pds 137 TI_SCI_PD_EXCLUSIVE>;
 		resets = <&k3_reset 135 0>;
-		clocks = <&k3_clks 61 0>;
+		clocks = <&k3_clks 61 0>, <&k3_clks 135 0>;
+		clock-names = "gtc", "core";
 		assigned-clocks = <&k3_clks 61 0>, <&k3_clks 135 0>;
 		assigned-clock-parents = <&k3_clks 61 2>;
 		assigned-clock-rates = <200000000>, <1000000000>;
diff --git a/arch/arm/dts/k3-am642-r5-sk.dts b/arch/arm/dts/k3-am642-r5-sk.dts
index 2186152a0b8e..6e31dfd97c5e 100644
--- a/arch/arm/dts/k3-am642-r5-sk.dts
+++ b/arch/arm/dts/k3-am642-r5-sk.dts
@@ -22,7 +22,8 @@
 				<&k3_pds 135 TI_SCI_PD_EXCLUSIVE>,
 				<&k3_pds 137 TI_SCI_PD_EXCLUSIVE>;
 		resets = <&k3_reset 135 0>;
-		clocks = <&k3_clks 61 0>;
+		clocks = <&k3_clks 61 0>, <&k3_clks 135 0>;
+		clock-names = "gtc", "core";
 		assigned-clocks = <&k3_clks 61 0>, <&k3_clks 135 0>;
 		assigned-clock-parents = <&k3_clks 61 2>;
 		assigned-clock-rates = <200000000>, <1000000000>;
diff --git a/arch/arm/dts/k3-am654-r5-base-board.dts b/arch/arm/dts/k3-am654-r5-base-board.dts
index dea2ba85dcb3..ab5195eb15c5 100644
--- a/arch/arm/dts/k3-am654-r5-base-board.dts
+++ b/arch/arm/dts/k3-am654-r5-base-board.dts
@@ -22,7 +22,8 @@
 		power-domains = <&k3_pds 61 TI_SCI_PD_EXCLUSIVE>,
 				<&k3_pds 202 TI_SCI_PD_EXCLUSIVE>;
 		resets = <&k3_reset 202 0>;
-		clocks = <&k3_clks 61 0>;
+		clocks = <&k3_clks 61 0>, <&k3_clks 202 0>;
+		clock-names = "gtc", "core";
 		assigned-clocks = <&k3_clks 202 0>;
 		assigned-clock-rates = <800000000>;
 		ti,sci = <&dmsc>;
diff --git a/arch/arm/dts/k3-am69-r5-sk.dts b/arch/arm/dts/k3-am69-r5-sk.dts
index 4d6aab5ccc38..13809f82d99a 100644
--- a/arch/arm/dts/k3-am69-r5-sk.dts
+++ b/arch/arm/dts/k3-am69-r5-sk.dts
@@ -26,7 +26,8 @@
 		power-domains = <&k3_pds 61 TI_SCI_PD_EXCLUSIVE>,
 				<&k3_pds 202 TI_SCI_PD_EXCLUSIVE>;
 		resets = <&k3_reset 202 0>;
-		clocks = <&k3_clks 61 0>;
+		clocks = <&k3_clks 61 0>, <&k3_clks 202 0>;
+		clock-names = "gtc", "core";
 		assigned-clocks = <&k3_clks 61 0>, <&k3_clks 202 0>;
 		assigned-clock-parents = <&k3_clks 61 2>;
 		assigned-clock-rates = <200000000>, <2000000000>;
diff --git a/arch/arm/dts/k3-j7200-r5-common-proc-board.dts b/arch/arm/dts/k3-j7200-r5-common-proc-board.dts
index 94760c78dd35..f8df14935dbc 100644
--- a/arch/arm/dts/k3-j7200-r5-common-proc-board.dts
+++ b/arch/arm/dts/k3-j7200-r5-common-proc-board.dts
@@ -23,7 +23,8 @@
 				<&k3_pds 202 TI_SCI_PD_EXCLUSIVE>,
 				<&k3_pds 4 TI_SCI_PD_EXCLUSIVE>;
 		resets = <&k3_reset 202 0>;
-		clocks = <&k3_clks 61 1>;
+		clocks = <&k3_clks 61 1>, <&k3_clks 202 2>;
+		clock-names = "gtc", "core";
 		assigned-clocks = <&k3_clks 202 2>, <&k3_clks 61 1>, <&k3_clks 323 0>;
 		assigned-clock-parents= <0>, <0>, <&k3_clks 323 2>;
 		assigned-clock-rates = <2000000000>, <200000000>;
diff --git a/arch/arm/dts/k3-j721e-r5.dtsi b/arch/arm/dts/k3-j721e-r5.dtsi
index fd0d921272c5..688a6cf40892 100644
--- a/arch/arm/dts/k3-j721e-r5.dtsi
+++ b/arch/arm/dts/k3-j721e-r5.dtsi
@@ -20,7 +20,8 @@
 				<&k3_pds 202 TI_SCI_PD_EXCLUSIVE>,
 				<&k3_pds 4 TI_SCI_PD_EXCLUSIVE>;
 		resets = <&k3_reset 202 0>;
-		clocks = <&k3_clks 61 1>;
+		clocks = <&k3_clks 61 1>, <&k3_clks 202 2>;
+		clock-names = "gtc", "core";
 		assigned-clocks = <&k3_clks 202 2>, <&k3_clks 61 1>;
 		assigned-clock-rates = <2000000000>, <200000000>;
 		ti,sci = <&dmsc>;
diff --git a/arch/arm/dts/k3-j721s2-r5.dtsi b/arch/arm/dts/k3-j721s2-r5.dtsi
index caf696c2d960..634676c8491e 100644
--- a/arch/arm/dts/k3-j721s2-r5.dtsi
+++ b/arch/arm/dts/k3-j721s2-r5.dtsi
@@ -20,7 +20,8 @@
 				<&k3_pds 202 TI_SCI_PD_EXCLUSIVE>,
 				<&k3_pds 4 TI_SCI_PD_EXCLUSIVE>;
 		resets = <&k3_reset 202 0>;
-		clocks = <&k3_clks 61 1>;
+		clocks = <&k3_clks 61 1>, <&k3_clks 202 0>;
+		clock-names = "gtc", "core";
 		assigned-clocks = <&k3_clks 61 1>, <&k3_clks 202 0>;
 		assigned-clock-parents = <&k3_clks 61 3>;
 		assigned-clock-rates = <200000000>, <2000000000>;
diff --git a/arch/arm/dts/k3-j722s-r5-evm.dts b/arch/arm/dts/k3-j722s-r5-evm.dts
index aff83cd5d914..69785ec78e94 100644
--- a/arch/arm/dts/k3-j722s-r5-evm.dts
+++ b/arch/arm/dts/k3-j722s-r5-evm.dts
@@ -25,7 +25,8 @@
 			<&k3_pds 135 TI_SCI_PD_EXCLUSIVE>,
 			<&k3_pds 166 TI_SCI_PD_EXCLUSIVE>;
 		resets = <&k3_reset 135 0>;
-		clocks = <&k3_clks 61 0>;
+		clocks = <&k3_clks 61 0>, <&k3_clks 135 0>;
+		clock-names = "gtc", "core";
 		assigned-clocks = <&k3_clks 61 0>, <&k3_clks 135 0>;
 		assigned-clock-parents = <&k3_clks 61 2>;
 		assigned-clock-rates = <200000000>, <1200000000>;
diff --git a/arch/arm/dts/k3-j784s4-r5-evm.dts b/arch/arm/dts/k3-j784s4-r5-evm.dts
index d2c752293630..8b8b0e70047e 100644
--- a/arch/arm/dts/k3-j784s4-r5-evm.dts
+++ b/arch/arm/dts/k3-j784s4-r5-evm.dts
@@ -26,7 +26,8 @@
 		power-domains = <&k3_pds 61 TI_SCI_PD_EXCLUSIVE>,
 				<&k3_pds 202 TI_SCI_PD_EXCLUSIVE>;
 		resets = <&k3_reset 202 0>;
-		clocks = <&k3_clks 61 0>;
+		clocks = <&k3_clks 61 0>, <&k3_clks 202 0>;
+		clock-names = "gtc", "core";
 		assigned-clocks = <&k3_clks 61 0>, <&k3_clks 202 0>;
 		assigned-clock-parents = <&k3_clks 61 2>;
 		assigned-clock-rates = <200000000>, <2000000000>;

-- 
2.46.0


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

* [PATCH v5 4/7] drivers: misc: k3_avs: Extract MPU clk and dev ID from DT
  2024-10-15 10:52 [PATCH v5 0/7] Add AVS support for J721S2 Manorit Chawdhry
                   ` (2 preceding siblings ...)
  2024-10-15 10:52 ` [PATCH v5 3/7] arm: dts: k3-*-r5: Add MPU clock in clocks property Manorit Chawdhry
@ 2024-10-15 10:52 ` Manorit Chawdhry
  2024-10-15 10:52 ` [PATCH v5 5/7] arm: mach-k3: j721s2_init: Initialize AVS Class 0 Manorit Chawdhry
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: Manorit Chawdhry @ 2024-10-15 10:52 UTC (permalink / raw)
  To: Jaehoon Chung
  Cc: u-boot, Neha Malcom Francis, Keerthy J, Udit Kumar, Aniket Limaye,
	Tom Rini, Vignesh Raghavendra, Andrew Davis, Nishanth Menon,
	Simon Glass, Manorit Chawdhry

Different devices have different MPU clk and dev ID. Currently it had
been hardcoded. Move it to DT based extraction.

Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
---
 drivers/misc/k3_avs.c | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/drivers/misc/k3_avs.c b/drivers/misc/k3_avs.c
index 66ad747f2dd8..99a18a109b7c 100644
--- a/drivers/misc/k3_avs.c
+++ b/drivers/misc/k3_avs.c
@@ -352,6 +352,9 @@ static int k3_avs_probe(struct udevice *dev)
 	struct k3_avs_privdata *priv;
 	struct vd_data *vd;
 	int ret;
+	ofnode node;
+	struct ofnode_phandle_args phandle_args;
+	int i = 0;
 
 	priv = dev_get_priv(dev);
 	priv->dev = dev;
@@ -367,6 +370,32 @@ static int k3_avs_probe(struct udevice *dev)
 		return -ENODEV;
 
 	for (vd = priv->vd_config->vds; vd->id >= 0; vd++) {
+		/* Get the clock and dev id for Jacinto platforms */
+		if (vd->id == J721E_VDD_MPU) {
+			node = ofnode_by_compatible(ofnode_null(), "ti,am654-rproc");
+			if (!ofnode_valid(node))
+				return -ENODEV;
+
+			i = ofnode_stringlist_search(node, "clock-names", "core");
+			if (i < 0)
+				return -ENODEV;
+
+			ret = ofnode_parse_phandle_with_args(node, "clocks",
+							     "#clock-cells",
+							     0, i,
+							     &phandle_args);
+			if (ret) {
+				printf("Couldn't get the clock node, ret = %d\n", ret);
+				return ret;
+			}
+
+			vd->dev_id = phandle_args.args[0];
+			vd->clk_id = phandle_args.args[1];
+
+			debug("%s: MPU dev_id: %d, clk_id: %d", __func__,
+			      vd->dev_id, vd->clk_id);
+		}
+
 		if (!(readl(AM6_VTM_DEVINFO(vd->id)) &
 		      AM6_VTM_AVS0_SUPPORTED)) {
 			dev_warn(dev, "AVS-class 0 not supported for VD%d\n",
@@ -463,6 +492,12 @@ static struct vd_data j721e_vd_data[] = {
 	{
 		.id = J721E_VDD_MPU,
 		.opp = AM6_OPP_NOM,
+		/*
+		 * XXX: DEPRECATION WARNING: Around 2 u-boot versions
+		 *
+		 * These values will be picked up from DT, kept for backward
+		 * compatibility
+		 */
 		.dev_id = 202, /* J721E_DEV_A72SS0_CORE0 */
 		.clk_id = 2, /* ARM clock */
 		.opps = {

-- 
2.46.0


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

* [PATCH v5 5/7] arm: mach-k3: j721s2_init: Initialize AVS Class 0
  2024-10-15 10:52 [PATCH v5 0/7] Add AVS support for J721S2 Manorit Chawdhry
                   ` (3 preceding siblings ...)
  2024-10-15 10:52 ` [PATCH v5 4/7] drivers: misc: k3_avs: Extract MPU clk and dev ID from DT Manorit Chawdhry
@ 2024-10-15 10:52 ` Manorit Chawdhry
  2024-10-15 10:52 ` [PATCH v5 6/7] arm: dts: j721s2: Add VTM node in R5 Manorit Chawdhry
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: Manorit Chawdhry @ 2024-10-15 10:52 UTC (permalink / raw)
  To: Jaehoon Chung
  Cc: u-boot, Neha Malcom Francis, Keerthy J, Udit Kumar, Aniket Limaye,
	Tom Rini, Vignesh Raghavendra, Andrew Davis, Nishanth Menon,
	Simon Glass, Manorit Chawdhry

Adaptive Voltage Scaling (AVS) Class 0 is a procedure for lowering the
voltage on certain device power rails. Initialize AVS Class 0.

Link: https://www.ti.com/lit/pdf/spruj28 (Section 5.2.3.3.2.5 AVS-Class0)
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
---
 arch/arm/mach-k3/j721s2/j721s2_init.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/arch/arm/mach-k3/j721s2/j721s2_init.c b/arch/arm/mach-k3/j721s2/j721s2_init.c
index 05453fcad41a..5f5961a2c17a 100644
--- a/arch/arm/mach-k3/j721s2/j721s2_init.c
+++ b/arch/arm/mach-k3/j721s2/j721s2_init.c
@@ -315,6 +315,9 @@ void do_dt_magic(void)
 #ifdef CONFIG_SPL_BUILD
 void board_init_f(ulong dummy)
 {
+	struct udevice *dev;
+	int ret;
+
 	k3_spl_init();
 #if defined(CONFIG_SPL_OF_LIST) && defined(CONFIG_TI_I2C_BOARD_DETECT)
 	do_dt_magic();
@@ -325,6 +328,13 @@ void board_init_f(ulong dummy)
 		setup_navss_nb();
 
 	setup_qos();
+
+	if (IS_ENABLED(CONFIG_CPU_V7R) && IS_ENABLED(CONFIG_K3_AVS0)) {
+		ret = uclass_get_device_by_driver(UCLASS_MISC, DM_DRIVER_GET(k3_avs),
+						  &dev);
+		if (ret)
+			printf("AVS init failed: %d\n", ret);
+	}
 }
 #endif
 

-- 
2.46.0


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

* [PATCH v5 6/7] arm: dts: j721s2: Add VTM node in R5
  2024-10-15 10:52 [PATCH v5 0/7] Add AVS support for J721S2 Manorit Chawdhry
                   ` (4 preceding siblings ...)
  2024-10-15 10:52 ` [PATCH v5 5/7] arm: mach-k3: j721s2_init: Initialize AVS Class 0 Manorit Chawdhry
@ 2024-10-15 10:52 ` Manorit Chawdhry
  2024-10-15 10:52 ` [PATCH v5 7/7] configs: j721s2_evm_r5_defconfig: Add AVS Configs Manorit Chawdhry
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: Manorit Chawdhry @ 2024-10-15 10:52 UTC (permalink / raw)
  To: Jaehoon Chung
  Cc: u-boot, Neha Malcom Francis, Keerthy J, Udit Kumar, Aniket Limaye,
	Tom Rini, Vignesh Raghavendra, Andrew Davis, Nishanth Menon,
	Simon Glass, Manorit Chawdhry

Also adds bootph-pre-ram property to VTM node and the pmic node.

vdd-supply is used to assign the buck regulator that the AVS driver can
use to program the proper voltage which it picked up from e-fuse.

Reviewed-by: Udit Kumar <u-kumar1@ti.com>
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
---

Notes:
    Patches are posted to Linux [0]
    
    [0]: https://lore.kernel.org/linux-arm-kernel/20240814-b4-upstream-bootph-all-v4-0-f2b462000f25@ti.com/#

 arch/arm/dts/k3-j721s2-r5-common-proc-board.dts | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/arch/arm/dts/k3-j721s2-r5-common-proc-board.dts b/arch/arm/dts/k3-j721s2-r5-common-proc-board.dts
index e92b1917df4e..506ad9b7910d 100644
--- a/arch/arm/dts/k3-j721s2-r5-common-proc-board.dts
+++ b/arch/arm/dts/k3-j721s2-r5-common-proc-board.dts
@@ -10,3 +10,12 @@
 #include "k3-j721s2-ddr.dtsi"
 #include "k3-j721s2-common-proc-board-u-boot.dtsi"
 #include "k3-j721s2-r5.dtsi"
+
+&tps659411 {
+	bootph-pre-ram;
+};
+
+&wkup_vtm0 {
+	bootph-pre-ram;
+	vdd-supply-2 = <&bucka1234>;
+};

-- 
2.46.0


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

* [PATCH v5 7/7] configs: j721s2_evm_r5_defconfig: Add AVS Configs
  2024-10-15 10:52 [PATCH v5 0/7] Add AVS support for J721S2 Manorit Chawdhry
                   ` (5 preceding siblings ...)
  2024-10-15 10:52 ` [PATCH v5 6/7] arm: dts: j721s2: Add VTM node in R5 Manorit Chawdhry
@ 2024-10-15 10:52 ` Manorit Chawdhry
  2024-10-15 14:38 ` [PATCH v5 0/7] Add AVS support for J721S2 Aniket Limaye
  2024-10-22 16:27 ` Tom Rini
  8 siblings, 0 replies; 11+ messages in thread
From: Manorit Chawdhry @ 2024-10-15 10:52 UTC (permalink / raw)
  To: Jaehoon Chung
  Cc: u-boot, Neha Malcom Francis, Keerthy J, Udit Kumar, Aniket Limaye,
	Tom Rini, Vignesh Raghavendra, Andrew Davis, Nishanth Menon,
	Simon Glass, Manorit Chawdhry

Add AVS and PMIC regulator configs

Also, disable it explicitly in am68_sk_r5_defconfig as it includes
j721s2_evm_r5_defconfig for re-usability.

Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
---
 configs/am68_sk_r5_defconfig    | 4 ++++
 configs/j721s2_evm_r5_defconfig | 6 ++++++
 2 files changed, 10 insertions(+)

diff --git a/configs/am68_sk_r5_defconfig b/configs/am68_sk_r5_defconfig
index e9b6882c1f68..f4800ef1b8ac 100644
--- a/configs/am68_sk_r5_defconfig
+++ b/configs/am68_sk_r5_defconfig
@@ -5,6 +5,10 @@ CONFIG_ARCH_K3=y
 CONFIG_SOC_K3_J721S2=y
 CONFIG_TARGET_J721S2_R5_EVM=y
 
+CONFIG_K3_AVS0=n
+CONFIG_DM_REGULATOR_TPS65941=n
+CONFIG_PMIC_TPS65941=n
+
 CONFIG_DEFAULT_DEVICE_TREE="k3-am68-sk-r5-base-board"
 CONFIG_SPL_OF_LIST="k3-am68-sk-r5-base-board"
 CONFIG_OF_LIST="k3-am68-sk-r5-base-board"
diff --git a/configs/j721s2_evm_r5_defconfig b/configs/j721s2_evm_r5_defconfig
index b6adb6a77d7e..ad7653c8f99b 100644
--- a/configs/j721s2_evm_r5_defconfig
+++ b/configs/j721s2_evm_r5_defconfig
@@ -112,6 +112,7 @@ CONFIG_DM_MAILBOX=y
 CONFIG_K3_SEC_PROXY=y
 CONFIG_FS_LOADER=y
 CONFIG_SPL_FS_LOADER=y
+CONFIG_K3_AVS0=y
 CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_SPL_MMC_HS400_SUPPORT=y
 CONFIG_MMC_SDHCI=y
@@ -141,6 +142,11 @@ CONFIG_SPL_PINCTRL=y
 CONFIG_PINCTRL_SINGLE=y
 CONFIG_POWER_DOMAIN=y
 CONFIG_TI_POWER_DOMAIN=y
+CONFIG_DM_PMIC=y
+CONFIG_PMIC_TPS65941=y
+CONFIG_DM_REGULATOR=y
+CONFIG_SPL_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_TPS65941=y
 CONFIG_K3_SYSTEM_CONTROLLER=y
 CONFIG_REMOTEPROC_TI_K3_ARM64=y
 CONFIG_RESET_TI_SCI=y

-- 
2.46.0


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

* Re: [PATCH v5 0/7] Add AVS support for J721S2
  2024-10-15 10:52 [PATCH v5 0/7] Add AVS support for J721S2 Manorit Chawdhry
                   ` (6 preceding siblings ...)
  2024-10-15 10:52 ` [PATCH v5 7/7] configs: j721s2_evm_r5_defconfig: Add AVS Configs Manorit Chawdhry
@ 2024-10-15 14:38 ` Aniket Limaye
  2024-10-22 16:27 ` Tom Rini
  8 siblings, 0 replies; 11+ messages in thread
From: Aniket Limaye @ 2024-10-15 14:38 UTC (permalink / raw)
  To: Manorit Chawdhry, Jaehoon Chung
  Cc: u-boot, Neha Malcom Francis, Keerthy J, Udit Kumar, Tom Rini,
	Vignesh Raghavendra, Andrew Davis, Nishanth Menon, Simon Glass



On 15/10/24 16:22, Manorit Chawdhry wrote:
> This series adds support for Adaptive voltage scaling on J721S2 device [0].
> 
> [0]: https://www.ti.com/lit/pdf/spruj28 (Section 5.2.4.1 AVS Support)
> 
> AVS Test for J721S2: https://gist.github.com/manorit2001/b2fd9f6764a863294d4aa0755c83c84f
> Boot Test results: https://gist.github.com/manorit2001/d44e035552cb19aadeb0d928d5cb5f26
> 
> Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
> ---
> Changes in v5:
> * Nishanth
> - Update the commit message for defconfig update
> - Add MPU clock to all devicetree node
> 
> * Simon
> - Update the commit messages to be more helpful
> 
> - Link to v4: https://lore.kernel.org/r/20241004-b4-upstream-j721s2-avs-v4-0-6d71c6bab9f4@ti.com
> 
> ---
> Manorit Chawdhry (7):
>        power: pmic: tps65941: Add DM_PMIC dependency
>        drivers: misc: k3_avs: Check return code while programming AVS
>        arm: dts: k3-*-r5: Add MPU clock in clocks property
>        drivers: misc: k3_avs: Extract MPU clk and dev ID from DT
>        arm: mach-k3: j721s2_init: Initialize AVS Class 0
>        arm: dts: j721s2: Add VTM node in R5
>        configs: j721s2_evm_r5_defconfig: Add AVS Configs
> 

For the series,

Reviewed-by: Aniket Limaye <a-limaye@ti.com>

>   arch/arm/dts/k3-am62-r5-lp-sk.dts               |  3 +-
>   arch/arm/dts/k3-am625-r5-beagleplay.dts         |  3 +-
>   arch/arm/dts/k3-am625-r5-sk.dts                 |  3 +-
>   arch/arm/dts/k3-am62a7-r5-sk.dts                |  3 +-
>   arch/arm/dts/k3-am62p5-r5-sk.dts                |  3 +-
>   arch/arm/dts/k3-am642-r5-evm.dts                |  3 +-
>   arch/arm/dts/k3-am642-r5-sk.dts                 |  3 +-
>   arch/arm/dts/k3-am654-r5-base-board.dts         |  3 +-
>   arch/arm/dts/k3-am69-r5-sk.dts                  |  3 +-
>   arch/arm/dts/k3-j7200-r5-common-proc-board.dts  |  3 +-
>   arch/arm/dts/k3-j721e-r5.dtsi                   |  3 +-
>   arch/arm/dts/k3-j721s2-r5-common-proc-board.dts |  9 ++++++
>   arch/arm/dts/k3-j721s2-r5.dtsi                  |  3 +-
>   arch/arm/dts/k3-j722s-r5-evm.dts                |  3 +-
>   arch/arm/dts/k3-j784s4-r5-evm.dts               |  3 +-
>   arch/arm/mach-k3/j721s2/j721s2_init.c           | 10 +++++++
>   configs/am68_sk_r5_defconfig                    |  4 +++
>   configs/j721s2_evm_r5_defconfig                 |  6 ++++
>   drivers/misc/k3_avs.c                           | 40 ++++++++++++++++++++++++-
>   drivers/power/pmic/Kconfig                      |  1 +
>   20 files changed, 97 insertions(+), 15 deletions(-)
> ---
> base-commit: 28dc47038edc4e93f32d75a357131bcf01a18d85
> change-id: 20240130-b4-upstream-j721s2-avs-8c187d3fe26a
> 
> Best regards,

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

* Re: [PATCH v5 0/7] Add AVS support for J721S2
  2024-10-15 10:52 [PATCH v5 0/7] Add AVS support for J721S2 Manorit Chawdhry
                   ` (7 preceding siblings ...)
  2024-10-15 14:38 ` [PATCH v5 0/7] Add AVS support for J721S2 Aniket Limaye
@ 2024-10-22 16:27 ` Tom Rini
  8 siblings, 0 replies; 11+ messages in thread
From: Tom Rini @ 2024-10-22 16:27 UTC (permalink / raw)
  To: Jaehoon Chung, Manorit Chawdhry
  Cc: u-boot, Neha Malcom Francis, Keerthy J, Udit Kumar, Aniket Limaye,
	Vignesh Raghavendra, Andrew Davis, Nishanth Menon, Simon Glass

On Tue, 15 Oct 2024 16:22:16 +0530, Manorit Chawdhry wrote:

> This series adds support for Adaptive voltage scaling on J721S2 device [0].
> 
> [0]: https://www.ti.com/lit/pdf/spruj28 (Section 5.2.4.1 AVS Support)
> 
> AVS Test for J721S2: https://gist.github.com/manorit2001/b2fd9f6764a863294d4aa0755c83c84f
> Boot Test results: https://gist.github.com/manorit2001/d44e035552cb19aadeb0d928d5cb5f26
> 
> [...]

Applied to u-boot/master, thanks!

-- 
Tom



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

* RE: [PATCH v5 1/7] power: pmic: tps65941: Add DM_PMIC dependency
  2024-10-15 10:52 ` [PATCH v5 1/7] power: pmic: tps65941: Add DM_PMIC dependency Manorit Chawdhry
@ 2024-10-22 23:20   ` Jaehoon Chung
  0 siblings, 0 replies; 11+ messages in thread
From: Jaehoon Chung @ 2024-10-22 23:20 UTC (permalink / raw)
  To: 'Manorit Chawdhry'
  Cc: u-boot, 'Neha Malcom Francis', 'Keerthy	J',
	'Udit Kumar', 'Aniket Limaye', 'Tom Rini',
	'Vignesh Raghavendra', 'Andrew Davis',
	'Nishanth Menon', 'Simon Glass'



> -----Original Message-----
> From: Manorit Chawdhry <m-chawdhry@ti.com>
> Sent: Tuesday, October 15, 2024 7:52 PM
> To: Jaehoon Chung <jh80.chung@samsung.com>
> Cc: u-boot@lists.denx.de; Neha Malcom Francis <n-francis@ti.com>; Keerthy J <j-keerthy@ti.com>; Udit
> Kumar <u-kumar1@ti.com>; Aniket Limaye <a-limaye@ti.com>; Tom Rini <trini@konsulko.com>; Vignesh
> Raghavendra <vigneshr@ti.com>; Andrew Davis <afd@ti.com>; Nishanth Menon <nm@ti.com>; Simon Glass
> <sjg@chromium.org>; Manorit Chawdhry <m-chawdhry@ti.com>
> Subject: [PATCH v5 1/7] power: pmic: tps65941: Add DM_PMIC dependency
>
> This Kconfig depends on DM_PMIC but hadn't be explicitly stated which
> could cause config related issues.
>
> Adds the dependency in Kconfig for tps65941.
>
> Fixes: 6b86dd0c1ead ("power: pmic: tps65941: Add support for tps65941 family of PMICs")
> Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
> Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>


Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>

Best Regards,
Jaehoon Chung

> ---
>  drivers/power/pmic/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/power/pmic/Kconfig b/drivers/power/pmic/Kconfig
> index 562c1a3b122a..bbcbcee4c355 100644
> --- a/drivers/power/pmic/Kconfig
> +++ b/drivers/power/pmic/Kconfig
> @@ -394,6 +394,7 @@ config SPL_PMIC_LP87565
>
>  config PMIC_TPS65941
>  	bool "Enable driver for Texas Instruments TPS65941 PMIC"
> +	depends on DM_PMIC
>  	help
>  	The TPS65941 is a PMIC containing a bunch of SMPS & LDOs.
>  	This driver binds the pmic children.
>
> --
> 2.46.0




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

end of thread, other threads:[~2024-10-22 23:20 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-15 10:52 [PATCH v5 0/7] Add AVS support for J721S2 Manorit Chawdhry
2024-10-15 10:52 ` [PATCH v5 1/7] power: pmic: tps65941: Add DM_PMIC dependency Manorit Chawdhry
2024-10-22 23:20   ` Jaehoon Chung
2024-10-15 10:52 ` [PATCH v5 2/7] drivers: misc: k3_avs: Check return code while programming AVS Manorit Chawdhry
2024-10-15 10:52 ` [PATCH v5 3/7] arm: dts: k3-*-r5: Add MPU clock in clocks property Manorit Chawdhry
2024-10-15 10:52 ` [PATCH v5 4/7] drivers: misc: k3_avs: Extract MPU clk and dev ID from DT Manorit Chawdhry
2024-10-15 10:52 ` [PATCH v5 5/7] arm: mach-k3: j721s2_init: Initialize AVS Class 0 Manorit Chawdhry
2024-10-15 10:52 ` [PATCH v5 6/7] arm: dts: j721s2: Add VTM node in R5 Manorit Chawdhry
2024-10-15 10:52 ` [PATCH v5 7/7] configs: j721s2_evm_r5_defconfig: Add AVS Configs Manorit Chawdhry
2024-10-15 14:38 ` [PATCH v5 0/7] Add AVS support for J721S2 Aniket Limaye
2024-10-22 16:27 ` Tom Rini

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