mirror of https://lore.kernel.org/linux-amlogic/
 help / color / mirror / Atom feed
* [PATCH v2 00/12] soc: amlogic: clk-measure: Add support for more SoCs
@ 2026-09-20 10:25 Chuan Liu via B4 Relay
  2026-09-20 10:25 ` [PATCH v2 01/12] dt-bindings: soc: amlogic: Reordering compatible of clk-measure Chuan Liu via B4 Relay
                   ` (12 more replies)
  0 siblings, 13 replies; 16+ messages in thread
From: Chuan Liu via B4 Relay @ 2026-09-20 10:25 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Neil Armstrong,
	Kevin Hilman, Jerome Brunet, Martin Blumenstingl
  Cc: devicetree, linux-arm-kernel, linux-amlogic, linux-kernel, Chuan Liu

This patch series adds clk-measure support for the Amlogic A5, A4, S7,
S7D, S6 and A9 SoCs, listed in the order of their release.

The clock names for the clk-measure channels are kept consistent with
those used by the clock driver as much as possible, making it easier to
identify the relationship between the clk-measure channels and the
corresponding clocks in the clock driver.

This patchset also includes an additional patch to optimize memory usage:
  - soc: amlogic: clk-measure: Optimize CLK_MSR_ID to reduce memory usage

To avoid requiring everyone to spend additional effort on a separate
patchset, I have included it in this series. Please feel free to point
out if this is not appropriate for this series.

To improve maintainability, this patchset also includes a patch to reorder
the dt-binding and the compatible entries in the driver.

To minimize unrelated changes, the existing clk-measure channel tables in
the driver are left in their original order. The tables for the newly
supported SoCs are ordered alphabetically.

Signed-off-by: Chuan Liu <chuan.liu@amlogic.com>
---
Changes in v2:
- Reorder the dt-binding and the compatible entries in the driver
  alphabetically.
- Order the clk-measure channel tables for the newly supported SoCs
  alphabetically.
- Add the const qualifier to the A9 clk-measure channel table.
- Rename "exit_Tsin_B_CLK_IN" to "ext_Tsin_B_CLK_IN" in the A9 clk-measure
  channel table.
- Link to v1: https://lore.kernel.org/r/20260911-more-socs-to-support-clk_measure-v1-0-940e269aa52f@amlogic.com

---
Chuan Liu (12):
      dt-bindings: soc: amlogic: Reordering compatible of clk-measure
      dt-bindings: soc: amlogic: Add clk-measure compatible to support more SoCs
      soc: amlogic: clk-measure: Support more measurement channels
      soc: amlogic: clk-measure: Align compatible entries with DT bindings
      soc: amlogic: clk-measure: Add support for more SoCs
      soc: amlogic: clk-measure: Optimize CLK_MSR_ID to reduce memory usage
      arm64: dts: amlogic: a5: Add clk-measure controller node
      arm64: dts: amlogic: a4: Add clk-measure controller node
      arm64: dts: amlogic: s7: Add clk-measure controller node
      arm64: dts: amlogic: s7d: Add clk-measure controller node
      arm64: dts: amlogic: s6: Add clk-measure controller node
      arm64: dts: amlogic: a9: Add clk-measure controller node

 .../soc/amlogic/amlogic,meson-gx-clk-measure.yaml  |  16 +-
 arch/arm64/boot/dts/amlogic/amlogic-a4.dtsi        |   5 +
 arch/arm64/boot/dts/amlogic/amlogic-a5.dtsi        |   5 +
 arch/arm64/boot/dts/amlogic/amlogic-a9.dtsi        |   5 +
 arch/arm64/boot/dts/amlogic/amlogic-s6.dtsi        |   5 +
 arch/arm64/boot/dts/amlogic/amlogic-s7.dtsi        |   5 +
 arch/arm64/boot/dts/amlogic/amlogic-s7d.dtsi       |   5 +
 drivers/soc/amlogic/meson-clk-measure.c            | 927 ++++++++++++++++++++-
 8 files changed, 953 insertions(+), 20 deletions(-)
---
base-commit: a2530c83c458a503e55219966217dfd1c36a385e
change-id: 20260710-more-socs-to-support-clk_measure-c826f8ab9e68

Best regards,
-- 
Chuan Liu <chuan.liu@amlogic.com>



_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* [PATCH v2 01/12] dt-bindings: soc: amlogic: Reordering compatible of clk-measure
  2026-09-20 10:25 [PATCH v2 00/12] soc: amlogic: clk-measure: Add support for more SoCs Chuan Liu via B4 Relay
@ 2026-09-20 10:25 ` Chuan Liu via B4 Relay
  2026-09-24 12:56   ` Krzysztof Kozlowski
  2026-09-20 10:25 ` [PATCH v2 02/12] dt-bindings: soc: amlogic: Add clk-measure compatible to support more SoCs Chuan Liu via B4 Relay
                   ` (11 subsequent siblings)
  12 siblings, 1 reply; 16+ messages in thread
From: Chuan Liu via B4 Relay @ 2026-09-20 10:25 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Neil Armstrong,
	Kevin Hilman, Jerome Brunet, Martin Blumenstingl
  Cc: devicetree, linux-arm-kernel, linux-amlogic, linux-kernel, Chuan Liu

From: Chuan Liu <chuan.liu@amlogic.com>

Sort the compatible properties defined by clk-measure in alphabetical
order.

Signed-off-by: Chuan Liu <chuan.liu@amlogic.com>
---
 .../bindings/soc/amlogic/amlogic,meson-gx-clk-measure.yaml     | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-clk-measure.yaml b/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-clk-measure.yaml
index b1200e6940ac..ad37eca48103 100644
--- a/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-clk-measure.yaml
+++ b/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-clk-measure.yaml
@@ -16,15 +16,15 @@ maintainers:
 properties:
   compatible:
     enum:
-      - amlogic,meson-gx-clk-measure
-      - amlogic,meson8-clk-measure
-      - amlogic,meson8b-clk-measure
+      - amlogic,a1-clk-measure
+      - amlogic,c3-clk-measure
       - amlogic,meson-axg-clk-measure
       - amlogic,meson-g12a-clk-measure
+      - amlogic,meson-gx-clk-measure
       - amlogic,meson-sm1-clk-measure
-      - amlogic,c3-clk-measure
+      - amlogic,meson8-clk-measure
+      - amlogic,meson8b-clk-measure
       - amlogic,s4-clk-measure
-      - amlogic,a1-clk-measure
       - amlogic,t7-clk-measure
 
   reg:

-- 
2.42.0



_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* [PATCH v2 02/12] dt-bindings: soc: amlogic: Add clk-measure compatible to support more SoCs
  2026-09-20 10:25 [PATCH v2 00/12] soc: amlogic: clk-measure: Add support for more SoCs Chuan Liu via B4 Relay
  2026-09-20 10:25 ` [PATCH v2 01/12] dt-bindings: soc: amlogic: Reordering compatible of clk-measure Chuan Liu via B4 Relay
@ 2026-09-20 10:25 ` Chuan Liu via B4 Relay
  2026-09-24 12:57   ` Krzysztof Kozlowski
  2026-09-20 10:25 ` [PATCH v2 03/12] soc: amlogic: clk-measure: Support more measurement channels Chuan Liu via B4 Relay
                   ` (10 subsequent siblings)
  12 siblings, 1 reply; 16+ messages in thread
From: Chuan Liu via B4 Relay @ 2026-09-20 10:25 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Neil Armstrong,
	Kevin Hilman, Jerome Brunet, Martin Blumenstingl
  Cc: devicetree, linux-arm-kernel, linux-amlogic, linux-kernel, Chuan Liu

From: Chuan Liu <chuan.liu@amlogic.com>

Add clk-measure compatible for amlogic A5, A4, S7, S7D, S6 and A9 SoCs.

Although the clk-measure IP itself has little hardware difference across
SoCs, the clock inputs connected to the clk-measure block vary between
SoCs. Therefore, it is difficult to fall back to the configuration used
by previous SoCs.

Signed-off-by: Chuan Liu <chuan.liu@amlogic.com>
---
 .../bindings/soc/amlogic/amlogic,meson-gx-clk-measure.yaml          | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-clk-measure.yaml b/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-clk-measure.yaml
index ad37eca48103..16893f427532 100644
--- a/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-clk-measure.yaml
+++ b/Documentation/devicetree/bindings/soc/amlogic/amlogic,meson-gx-clk-measure.yaml
@@ -17,6 +17,9 @@ properties:
   compatible:
     enum:
       - amlogic,a1-clk-measure
+      - amlogic,a4-clk-measure
+      - amlogic,a5-clk-measure
+      - amlogic,a9-clk-measure
       - amlogic,c3-clk-measure
       - amlogic,meson-axg-clk-measure
       - amlogic,meson-g12a-clk-measure
@@ -25,6 +28,9 @@ properties:
       - amlogic,meson8-clk-measure
       - amlogic,meson8b-clk-measure
       - amlogic,s4-clk-measure
+      - amlogic,s6-clk-measure
+      - amlogic,s7-clk-measure
+      - amlogic,s7d-clk-measure
       - amlogic,t7-clk-measure
 
   reg:

-- 
2.42.0



_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* [PATCH v2 03/12] soc: amlogic: clk-measure: Support more measurement channels
  2026-09-20 10:25 [PATCH v2 00/12] soc: amlogic: clk-measure: Add support for more SoCs Chuan Liu via B4 Relay
  2026-09-20 10:25 ` [PATCH v2 01/12] dt-bindings: soc: amlogic: Reordering compatible of clk-measure Chuan Liu via B4 Relay
  2026-09-20 10:25 ` [PATCH v2 02/12] dt-bindings: soc: amlogic: Add clk-measure compatible to support more SoCs Chuan Liu via B4 Relay
@ 2026-09-20 10:25 ` Chuan Liu via B4 Relay
  2026-09-20 10:25 ` [PATCH v2 04/12] soc: amlogic: clk-measure: Align compatible entries with DT bindings Chuan Liu via B4 Relay
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 16+ messages in thread
From: Chuan Liu via B4 Relay @ 2026-09-20 10:25 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Neil Armstrong,
	Kevin Hilman, Jerome Brunet, Martin Blumenstingl
  Cc: devicetree, linux-arm-kernel, linux-amlogic, linux-kernel, Chuan Liu

From: Chuan Liu <chuan.liu@amlogic.com>

On S4 and C3, as well as later SoCs, the clk-measure IP expands the
number of supported measurement channels from 128 to 256. Accordingly,
the MSR_CLK_SRC field in the register is extended from 7 bits to 8 bits.

To support both the old and new implementations, the driver now
uniformly defines the valid MSR_CLK_SRC field as bits[27:20].

For SoCs where MSR_CLK_SRC is only 7 bits wide, the driver never sets
bit27, and on those SoCs bit27 is read-only. Therefore, using
bits[27:20] as the unified field definition does not introduce any
behavioral change or compatibility issue for existing SoCs.

Signed-off-by: Chuan Liu <chuan.liu@amlogic.com>
---
 drivers/soc/amlogic/meson-clk-measure.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/soc/amlogic/meson-clk-measure.c b/drivers/soc/amlogic/meson-clk-measure.c
index 8a1a9fed0e74..0d4ba2555d17 100644
--- a/drivers/soc/amlogic/meson-clk-measure.c
+++ b/drivers/soc/amlogic/meson-clk-measure.c
@@ -20,7 +20,7 @@ static DEFINE_MUTEX(measure_lock);
 #define MSR_CONT		BIT(17) /* continuous measurement */
 #define MSR_INTR		BIT(18) /* interrupts */
 #define MSR_RUN			BIT(19)
-#define MSR_CLK_SRC		GENMASK(26, 20)
+#define MSR_CLK_SRC		GENMASK(27, 20)
 #define MSR_BUSY		BIT(31)
 
 #define MSR_VAL_MASK		GENMASK(15, 0)

-- 
2.42.0



_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* [PATCH v2 04/12] soc: amlogic: clk-measure: Align compatible entries with DT bindings
  2026-09-20 10:25 [PATCH v2 00/12] soc: amlogic: clk-measure: Add support for more SoCs Chuan Liu via B4 Relay
                   ` (2 preceding siblings ...)
  2026-09-20 10:25 ` [PATCH v2 03/12] soc: amlogic: clk-measure: Support more measurement channels Chuan Liu via B4 Relay
@ 2026-09-20 10:25 ` Chuan Liu via B4 Relay
  2026-09-20 10:25 ` [PATCH v2 05/12] soc: amlogic: clk-measure: Add support for more SoCs Chuan Liu via B4 Relay
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 16+ messages in thread
From: Chuan Liu via B4 Relay @ 2026-09-20 10:25 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Neil Armstrong,
	Kevin Hilman, Jerome Brunet, Martin Blumenstingl
  Cc: devicetree, linux-arm-kernel, linux-amlogic, linux-kernel, Chuan Liu

From: Chuan Liu <chuan.liu@amlogic.com>

Reorder the meson_msr_match_table entries to match the order of the
compatible strings in the DT binding.

Move the newly added clk_msr_a1_data entry accordingly, while keeping
the existing SoC-specific data order unchanged.

Signed-off-by: Chuan Liu <chuan.liu@amlogic.com>
---
 drivers/soc/amlogic/meson-clk-measure.c | 40 ++++++++++++++++-----------------
 1 file changed, 20 insertions(+), 20 deletions(-)

diff --git a/drivers/soc/amlogic/meson-clk-measure.c b/drivers/soc/amlogic/meson-clk-measure.c
index 0d4ba2555d17..d58c8d9629ea 100644
--- a/drivers/soc/amlogic/meson-clk-measure.c
+++ b/drivers/soc/amlogic/meson-clk-measure.c
@@ -1279,6 +1279,12 @@ static const struct msr_reg_offset msr_reg_offset_v2 = {
 	.duty_val = 0x18,
 };
 
+static const struct meson_msr_data clk_msr_a1_data = {
+	.msr_table = (void *)clk_msr_a1,
+	.msr_count = ARRAY_SIZE(clk_msr_a1),
+	.reg = &msr_reg_offset_v2,
+};
+
 static const struct meson_msr_data clk_msr_c3_data = {
 	.msr_table = (void *)clk_msr_c3,
 	.msr_count = ARRAY_SIZE(clk_msr_c3),
@@ -1291,12 +1297,6 @@ static const struct meson_msr_data clk_msr_s4_data = {
 	.reg = &msr_reg_offset_v2,
 };
 
-static const struct meson_msr_data clk_msr_a1_data = {
-	.msr_table = (void *)clk_msr_a1,
-	.msr_count = ARRAY_SIZE(clk_msr_a1),
-	.reg = &msr_reg_offset_v2,
-};
-
 static const struct meson_msr_data clk_msr_t7_data = {
 	.msr_table = (void *)clk_msr_t7,
 	.msr_count = ARRAY_SIZE(clk_msr_t7),
@@ -1305,16 +1305,12 @@ static const struct meson_msr_data clk_msr_t7_data = {
 
 static const struct of_device_id meson_msr_match_table[] = {
 	{
-		.compatible = "amlogic,meson-gx-clk-measure",
-		.data = &clk_msr_gx_data,
-	},
-	{
-		.compatible = "amlogic,meson8-clk-measure",
-		.data = &clk_msr_m8_data,
+		.compatible = "amlogic,a1-clk-measure",
+		.data = &clk_msr_a1_data,
 	},
 	{
-		.compatible = "amlogic,meson8b-clk-measure",
-		.data = &clk_msr_m8_data,
+		.compatible = "amlogic,c3-clk-measure",
+		.data = &clk_msr_c3_data,
 	},
 	{
 		.compatible = "amlogic,meson-axg-clk-measure",
@@ -1324,21 +1320,25 @@ static const struct of_device_id meson_msr_match_table[] = {
 		.compatible = "amlogic,meson-g12a-clk-measure",
 		.data = &clk_msr_g12a_data,
 	},
+	{
+		.compatible = "amlogic,meson-gx-clk-measure",
+		.data = &clk_msr_gx_data,
+	},
 	{
 		.compatible = "amlogic,meson-sm1-clk-measure",
 		.data = &clk_msr_sm1_data,
 	},
 	{
-		.compatible = "amlogic,c3-clk-measure",
-		.data = &clk_msr_c3_data,
+		.compatible = "amlogic,meson8-clk-measure",
+		.data = &clk_msr_m8_data,
 	},
 	{
-		.compatible = "amlogic,s4-clk-measure",
-		.data = &clk_msr_s4_data,
+		.compatible = "amlogic,meson8b-clk-measure",
+		.data = &clk_msr_m8_data,
 	},
 	{
-		.compatible = "amlogic,a1-clk-measure",
-		.data = &clk_msr_a1_data,
+		.compatible = "amlogic,s4-clk-measure",
+		.data = &clk_msr_s4_data,
 	},
 	{
 		.compatible = "amlogic,t7-clk-measure",

-- 
2.42.0



_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* [PATCH v2 05/12] soc: amlogic: clk-measure: Add support for more SoCs
  2026-09-20 10:25 [PATCH v2 00/12] soc: amlogic: clk-measure: Add support for more SoCs Chuan Liu via B4 Relay
                   ` (3 preceding siblings ...)
  2026-09-20 10:25 ` [PATCH v2 04/12] soc: amlogic: clk-measure: Align compatible entries with DT bindings Chuan Liu via B4 Relay
@ 2026-09-20 10:25 ` Chuan Liu via B4 Relay
  2026-09-20 10:25 ` [PATCH v2 06/12] soc: amlogic: clk-measure: Optimize CLK_MSR_ID to reduce memory usage Chuan Liu via B4 Relay
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 16+ messages in thread
From: Chuan Liu via B4 Relay @ 2026-09-20 10:25 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Neil Armstrong,
	Kevin Hilman, Jerome Brunet, Martin Blumenstingl
  Cc: devicetree, linux-arm-kernel, linux-amlogic, linux-kernel, Chuan Liu

From: Chuan Liu <chuan.liu@amlogic.com>

Add clk-measure driver support for Amlogic A5, A4, S7, S7D, S6 and A9
SoCs.

Signed-off-by: Chuan Liu <chuan.liu@amlogic.com>
---
 drivers/soc/amlogic/meson-clk-measure.c | 897 ++++++++++++++++++++++++++++++++
 1 file changed, 897 insertions(+)

diff --git a/drivers/soc/amlogic/meson-clk-measure.c b/drivers/soc/amlogic/meson-clk-measure.c
index d58c8d9629ea..50928ac14f86 100644
--- a/drivers/soc/amlogic/meson-clk-measure.c
+++ b/drivers/soc/amlogic/meson-clk-measure.c
@@ -1041,6 +1041,843 @@ static const struct meson_msr_id clk_msr_t7[] = {
 	CLK_MSR_ID(222, "enc0")
 };
 
+static const struct meson_msr_id clk_msr_a4[] = {
+	CLK_MSR_ID(0, "sys_clk"),
+	CLK_MSR_ID(1, "axi_clk"),
+	CLK_MSR_ID(2, "rtc_clk"),
+	CLK_MSR_ID(3, "p22_usb2_ckout"),
+	CLK_MSR_ID(4, "p21_usb2_ckout"),
+	CLK_MSR_ID(5, "p20_usb2_ckout"),
+	CLK_MSR_ID(6, "cpu_clk_div16"),
+	CLK_MSR_ID(8, "eth_mpll_test"),
+	CLK_MSR_ID(10, "fclk_div5"),
+	CLK_MSR_ID(15, "fclk_50m"),
+	CLK_MSR_ID(16, "sys_oscin32k_i"),
+	CLK_MSR_ID(17, "rtc_pll"),
+	CLK_MSR_ID(19, "hifi_pll"),
+	CLK_MSR_ID(20, "gp0_pll"),
+	CLK_MSR_ID(21, "gp1_pll"),
+	CLK_MSR_ID(22, "eth_mppll_50m_ckout"),
+	CLK_MSR_ID(23, "sys_pll_div16"),
+	CLK_MSR_ID(24, "ddr_dpll_pt_clk"),
+	CLK_MSR_ID(27, "rtc_sec_pulse_out"),
+	CLK_MSR_ID(28, "rtc_osc_clk_out"),
+	CLK_MSR_ID(30, "mod_eth_phy_ref_clk"),
+	CLK_MSR_ID(31, "mod_eth_tx_clk"),
+	CLK_MSR_ID(32, "eth_125m"),
+	CLK_MSR_ID(33, "eth_rmii"),
+	CLK_MSR_ID(34, "co_clkin_to_mac"),
+	CLK_MSR_ID(35, "mod_eth_rx_clk_rmii"),
+	CLK_MSR_ID(36, "co_rx_clk"),
+	CLK_MSR_ID(37, "co_tx_clk"),
+	CLK_MSR_ID(38, "eth_phy_rxclk"),
+	CLK_MSR_ID(39, "eth_phy_plltxclk"),
+	CLK_MSR_ID(40, "ephy_test_clk"),
+	CLK_MSR_ID(41, "audio_core"),
+	CLK_MSR_ID(51, "cts_vout_venc_clk_ph"),
+	CLK_MSR_ID(52, "cts_vout_venc_clk"),
+	CLK_MSR_ID(106, "deskew_pll_test_clk"),
+	CLK_MSR_ID(111, "sar_adc"),
+	CLK_MSR_ID(112, "ts"),
+	CLK_MSR_ID(113, "sd_emmc_c"),
+	CLK_MSR_ID(115, "sd_emmc_a"),
+	CLK_MSR_ID(116, "gpio_msr_clk"),
+	CLK_MSR_ID(117, "spicc1"),
+	CLK_MSR_ID(118, "spicc0"),
+	CLK_MSR_ID(119, "o_mst_sclk_vad"),
+	CLK_MSR_ID(120, "o_mst_mclk_vad"),
+	CLK_MSR_ID(121, "o_pdm_sysclk"),
+	CLK_MSR_ID(122, "mod_audio_pdm_dclk_o"),
+	CLK_MSR_ID(123, "o_vad_clk"),
+	CLK_MSR_ID(124, "earcrx_dmac_clk"),
+	CLK_MSR_ID(125, "earcrx_cmdc_clk"),
+	CLK_MSR_ID(126, "earctx_dmac_clk"),
+	CLK_MSR_ID(127, "earctx_cmdc_clk"),
+	CLK_MSR_ID(128, "tohdmitx_bclk"),
+	CLK_MSR_ID(129, "tohdmitx_mclk"),
+	CLK_MSR_ID(130, "tohdmitx_spdif_clk"),
+	CLK_MSR_ID(131, "toacodec_bclk"),
+	CLK_MSR_ID(132, "toacodec_mclk"),
+	CLK_MSR_ID(133, "spdifout_b_mst_clk"),
+	CLK_MSR_ID(134, "spdifout_mst_clk"),
+	CLK_MSR_ID(135, "spdifin_mst_clk"),
+	CLK_MSR_ID(136, "audio_mclk"),
+	CLK_MSR_ID(137, "vad_clk"),
+	CLK_MSR_ID(138, "tdmout_d_sclk"),
+	CLK_MSR_ID(139, "tdmout_c_sclk"),
+	CLK_MSR_ID(140, "tdmout_b_sclk"),
+	CLK_MSR_ID(141, "tdmout_a_sclk"),
+	CLK_MSR_ID(142, "tdminb_lb_sclk"),
+	CLK_MSR_ID(143, "tdmin_lb_sclk"),
+	CLK_MSR_ID(144, "tdmin_d_sclk"),
+	CLK_MSR_ID(145, "tdmin_c_sclk"),
+	CLK_MSR_ID(146, "tdmin_b_sclk"),
+	CLK_MSR_ID(147, "tdmin_a_sclk"),
+	CLK_MSR_ID(148, "resampleb_clk"),
+	CLK_MSR_ID(149, "resamplea_clk"),
+	CLK_MSR_ID(150, "pdmb_sysclk"),
+	CLK_MSR_ID(151, "pdmb_dclk"),
+	CLK_MSR_ID(152, "pdm_sysclk"),
+	CLK_MSR_ID(153, "pdm_dclk"),
+	CLK_MSR_ID(154, "alockerb_out_clk"),
+	CLK_MSR_ID(155, "alockerb_in_clk"),
+	CLK_MSR_ID(156, "alocker_out_clk"),
+	CLK_MSR_ID(157, "alocker_in_clk"),
+	CLK_MSR_ID(158, "audio_mst_clk[34]"),
+	CLK_MSR_ID(159, "audio_mst_clk[35]"),
+	CLK_MSR_ID(162, "pwm_h"),
+	CLK_MSR_ID(163, "pwm_g"),
+	CLK_MSR_ID(164, "pwm_f"),
+	CLK_MSR_ID(165, "pwm_e"),
+	CLK_MSR_ID(166, "pwm_d"),
+	CLK_MSR_ID(167, "pwm_c"),
+	CLK_MSR_ID(168, "pwm_b"),
+	CLK_MSR_ID(169, "pwm_a"),
+	CLK_MSR_ID(170, "AU_ADC_CLK_G128X"),
+	CLK_MSR_ID(171, "AU_ADC_CLK_TO_GPIO"),
+	CLK_MSR_ID(172, "AU_DAC1_CLK_G128X"),
+	CLK_MSR_ID(173, "AU_DAC1_CLK_TO_GPIO"),
+	CLK_MSR_ID(176, "rng_ring_osc_clk[0]"),
+	CLK_MSR_ID(177, "rng_ring_osc_clk[1]"),
+	CLK_MSR_ID(178, "rng_ring_osc_clk[2]"),
+	CLK_MSR_ID(179, "rng_ring_osc_clk[3]"),
+	CLK_MSR_ID(180, "sys_cpu_osc_ring[0](ULVT16)"),
+	CLK_MSR_ID(181, "sys_cpu_osc_ring[1](ULVT20)"),
+	CLK_MSR_ID(182, "sys_cpu_osc_ring[2](ULVT16)"),
+	CLK_MSR_ID(183, "sys_cpu_osc_ring[3](ULVT16)"),
+	CLK_MSR_ID(184, "sys_cpu_osc_ring[4](ULVT16)"),
+	CLK_MSR_ID(185, "am_ring_osc_clk_out_top[0](SVT16)"),
+	CLK_MSR_ID(186, "am_ring_osc_clk_out_top[1](LVT20)"),
+};
+
+static const struct meson_msr_id clk_msr_a5[] = {
+	CLK_MSR_ID(0, "sys_clk"),
+	CLK_MSR_ID(1, "axi_clk"),
+	CLK_MSR_ID(2, "rtc_clk"),
+	CLK_MSR_ID(3, "dspa"),
+	CLK_MSR_ID(6, "cpu_clk_div16"),
+	CLK_MSR_ID(10, "fclk_div5"),
+	CLK_MSR_ID(11, "mpll0"),
+	CLK_MSR_ID(12, "mpll1"),
+	CLK_MSR_ID(13, "mpll2"),
+	CLK_MSR_ID(14, "mpll3"),
+	CLK_MSR_ID(15, "fclk_50m"),
+	CLK_MSR_ID(16, "sys_oscin32k_i"),
+	CLK_MSR_ID(17, "rtc_pll"),
+	CLK_MSR_ID(18, "mpll_clk_test_out"),
+	CLK_MSR_ID(19, "hifi_pll"),
+	CLK_MSR_ID(20, "gp0_pll"),
+	CLK_MSR_ID(21, "gp1_pll"),
+	CLK_MSR_ID(23, "sys_pll_div16"),
+	CLK_MSR_ID(24, "ddr_dpll_pt_clk"),
+	CLK_MSR_ID(25, "nna_axi"),
+	CLK_MSR_ID(26, "nna_core"),
+	CLK_MSR_ID(27, "rtc_sec_pulse_out"),
+	CLK_MSR_ID(28, "rtc_osc_clk_out"),
+	CLK_MSR_ID(30, "mod_eth_phy_ref_clk"),
+	CLK_MSR_ID(31, "mod_eth_tx_clk"),
+	CLK_MSR_ID(35, "mod_eth_rx_clk_rmii"),
+	CLK_MSR_ID(79, "rama_clk"),
+	CLK_MSR_ID(106, "deskew_pll_clk_div32_out"),
+	CLK_MSR_ID(111, "sar_adc"),
+	CLK_MSR_ID(112, "ts"),
+	CLK_MSR_ID(113, "sd_emmc_c"),
+	CLK_MSR_ID(115, "sd_emmc_a"),
+	CLK_MSR_ID(116, "gpio_msr_clk"),
+	CLK_MSR_ID(117, "spicc1"),
+	CLK_MSR_ID(118, "spicc0"),
+	CLK_MSR_ID(119, "o_mst_sclk_vad"),
+	CLK_MSR_ID(120, "o_mst_mclk_vad"),
+	CLK_MSR_ID(121, "o_pdm_sysclk"),
+	CLK_MSR_ID(122, "mod_audio_pdm_dclk_o"),
+	CLK_MSR_ID(123, "o_vad_clk"),
+	CLK_MSR_ID(124, "earcrx_dmac_clk"),
+	CLK_MSR_ID(125, "earcrx_cmdc_clk"),
+	CLK_MSR_ID(126, "earctx_dmac_clk"),
+	CLK_MSR_ID(127, "earctx_cmdc_clk"),
+	CLK_MSR_ID(128, "tohdmitx_bclk"),
+	CLK_MSR_ID(129, "tohdmitx_mclk"),
+	CLK_MSR_ID(130, "tohdmitx_spdif_clk"),
+	CLK_MSR_ID(131, "toacodec_bclk"),
+	CLK_MSR_ID(132, "toacodec_mclk"),
+	CLK_MSR_ID(133, "spdifout_b_mst_clk"),
+	CLK_MSR_ID(134, "spdifout_mst_clk"),
+	CLK_MSR_ID(135, "spdifin_mst_clk"),
+	CLK_MSR_ID(136, "audio_mclk"),
+	CLK_MSR_ID(137, "vad_clk"),
+	CLK_MSR_ID(138, "tdmout_d_sclk"),
+	CLK_MSR_ID(139, "tdmout_c_sclk"),
+	CLK_MSR_ID(140, "tdmout_b_sclk"),
+	CLK_MSR_ID(141, "tdmout_a_sclk"),
+	CLK_MSR_ID(142, "tdminb_lb_sclk"),
+	CLK_MSR_ID(143, "tdmin_lb_sclk"),
+	CLK_MSR_ID(144, "tdmin_d_sclk"),
+	CLK_MSR_ID(145, "tdmin_c_sclk"),
+	CLK_MSR_ID(146, "tdmin_b_sclk"),
+	CLK_MSR_ID(147, "tdmin_a_sclk"),
+	CLK_MSR_ID(148, "resampleb_clk"),
+	CLK_MSR_ID(149, "resamplea_clk"),
+	CLK_MSR_ID(150, "pdmb_sysclk"),
+	CLK_MSR_ID(151, "pdmb_dclk"),
+	CLK_MSR_ID(152, "pdm_sysclk"),
+	CLK_MSR_ID(153, "pdm_dclk"),
+	CLK_MSR_ID(154, "alockerb_out_clk"),
+	CLK_MSR_ID(155, "alockerb_in_clk"),
+	CLK_MSR_ID(156, "alocker_out_clk"),
+	CLK_MSR_ID(157, "alocker_in_clk"),
+	CLK_MSR_ID(158, "audio_mst_clk[34]"),
+	CLK_MSR_ID(159, "audio_mst_clk[35]"),
+	CLK_MSR_ID(162, "pwm_h"),
+	CLK_MSR_ID(163, "pwm_g"),
+	CLK_MSR_ID(164, "pwm_f"),
+	CLK_MSR_ID(165, "pwm_e"),
+	CLK_MSR_ID(166, "pwm_d"),
+	CLK_MSR_ID(167, "pwm_c"),
+	CLK_MSR_ID(168, "pwm_b"),
+	CLK_MSR_ID(169, "pwm_a"),
+	CLK_MSR_ID(176, "rng_ring_osc_clk[0]"),
+	CLK_MSR_ID(177, "rng_ring_osc_clk[1]"),
+	CLK_MSR_ID(178, "rng_ring_osc_clk[2]"),
+	CLK_MSR_ID(179, "rng_ring_osc_clk[3]"),
+	CLK_MSR_ID(180, "dmc_osc_ring(LVT16)"),
+	CLK_MSR_ID(181, "dsp_osc_ring(SVT16)"),
+	CLK_MSR_ID(182, "axi_srama_osc_ring(SVT16)"),
+	CLK_MSR_ID(183, "nna_osc_ring[0](ULVT20)"),
+	CLK_MSR_ID(184, "nna_osc_ring[1](LVT16)"),
+	CLK_MSR_ID(185, "sys_cpu_osc_ring[0](ULVT16)"),
+	CLK_MSR_ID(186, "sys_cpu_osc_ring[1](ULVT20)"),
+	CLK_MSR_ID(187, "sys_cpu_osc_ring[2](ULVT16)"),
+	CLK_MSR_ID(188, "sys_cpu_osc_ring[3](LVT16)"),
+	CLK_MSR_ID(189, "axi_sramb_osc_ring(SVT16)"),
+};
+
+static const struct meson_msr_id clk_msr_a9[] = {
+	CLK_MSR_ID(0,  "sys_clk"),
+	CLK_MSR_ID(1,  "axi_clk"),
+	CLK_MSR_ID(2,  "rtc_clk"),
+	CLK_MSR_ID(3,  "dspa"),
+	CLK_MSR_ID(4,  "mali_stack"),
+	CLK_MSR_ID(5,  "mali"),
+	CLK_MSR_ID(6,  "cpu_clk_div16"),
+	CLK_MSR_ID(7,  "a78_clk_div16"),
+	CLK_MSR_ID(8,  "dsu_clk_div16"),
+	CLK_MSR_ID(9,  "isp"),
+	CLK_MSR_ID(10, "gp2_pll"),
+	CLK_MSR_ID(11, "fclk_div5"),
+	CLK_MSR_ID(12, "u2drd_usb2_ckout"),
+	CLK_MSR_ID(13, "pre0_hdmirx_aud_pll_clk"),
+	CLK_MSR_ID(14, "hrx20_pll_clk_test"),
+	CLK_MSR_ID(15, "u2h_usb2_ckout"),
+	CLK_MSR_ID(16, "fclk_50m"),
+	CLK_MSR_ID(17, "u3drd_b_usb2_ckout"),
+	CLK_MSR_ID(18, "gp1_pll"),
+	CLK_MSR_ID(19, "hifi_pll"),
+	CLK_MSR_ID(20, "gp0_pll"),
+	CLK_MSR_ID(21, "hifi1_pll"),
+	CLK_MSR_ID(22, "csi_phy"),
+	CLK_MSR_ID(23, "sys_pll_div16"),
+	CLK_MSR_ID(24, "ddr_dpll_pt_clk"),
+	CLK_MSR_ID(25, "mod_Tsin_A_CLK_IN"),
+	CLK_MSR_ID(26, "ext_Tsin_B_CLK_IN"),
+	CLK_MSR_ID(27, "u3p2pll1_0_clk_div16"),
+	CLK_MSR_ID(28, "u3p2pll1_1_clk_div16"),
+	CLK_MSR_ID(29, "upcrx0_cdrclk"),
+	CLK_MSR_ID(30, "upcrx1_cdrclk"),
+	CLK_MSR_ID(31, "hdmirx_aud_sck"),
+	CLK_MSR_ID(32, "uptx0_clk_sync_b20"),
+	CLK_MSR_ID(33, "uptx1_clk_sync_b20"),
+	CLK_MSR_ID(34, "lp_pll_clk0"),
+	CLK_MSR_ID(35, "lp_pll_clk1"),
+	CLK_MSR_ID(36, "u3hsg_PCIE_PIPE_PCLK"),
+	CLK_MSR_ID(37, "u3hsg_upcrx_cdrclk"),
+	CLK_MSR_ID(38, "u3hsg_upctx_clk_sync_b20"),
+	CLK_MSR_ID(39, "u3hsg_upcrxpll_clk_test"),
+	CLK_MSR_ID(40, "hdmirx_acr_lclk"),
+	CLK_MSR_ID(41, "i3c"),
+	CLK_MSR_ID(42, "hdmirx_aud_pll"),
+	CLK_MSR_ID(43, "hdmirx_acr_ref"),
+	CLK_MSR_ID(44, "hdmirx_meter"),
+	CLK_MSR_ID(45, "hdmirx_hdcp2x"),
+	CLK_MSR_ID(46, "hdmirx_5m"),
+	CLK_MSR_ID(47, "hdmirx_2m"),
+	CLK_MSR_ID(48, "hdmirx_cfg"),
+	CLK_MSR_ID(49, "hdmi_vx1_pix_clk"),
+	CLK_MSR_ID(50, "vid_pll"),
+	CLK_MSR_ID(51, "encoder0_if_clk"),
+	CLK_MSR_ID(52, "encoder1"),
+	CLK_MSR_ID(53, "encoder0"),
+	CLK_MSR_ID(54, "vdac"),
+	CLK_MSR_ID(55, "mali_aclkm"),
+	CLK_MSR_ID(56, "vid1_pll"),
+	CLK_MSR_ID(57, "lcd_an_ph2"),
+	CLK_MSR_ID(58, "lcd_an_ph3"),
+	CLK_MSR_ID(59, "hdmitx_pixel"),
+	CLK_MSR_ID(60, "vdin_meas"),
+	CLK_MSR_ID(61, "vpu"),
+	CLK_MSR_ID(62, "vpu_clkb"),
+	CLK_MSR_ID(63, "vpu_clkb_tmp"),
+	CLK_MSR_ID(64, "u3p2_upcrxpll_fst_pll_clk"),
+	CLK_MSR_ID(65, "vid_lock"),
+	CLK_MSR_ID(66, "vapb"),
+	CLK_MSR_ID(67, "ge2d"),
+	CLK_MSR_ID(68, "cve"),
+	CLK_MSR_ID(69, "vge"),
+	CLK_MSR_ID(70, "dsi0_meas"),
+	CLK_MSR_ID(71, "dsi1_meas"),
+	CLK_MSR_ID(72, "mipi_csi_phy_clk_out[0]"),
+	CLK_MSR_ID(73, "mipi_csi_phy_clk_out[1]"),
+	CLK_MSR_ID(74, "mipi_csi_phy_clk_out[2]"),
+	CLK_MSR_ID(75, "mipi_csi_phy_clk_out[3]"),
+	CLK_MSR_ID(76, "hdmitx_tmds"),
+	CLK_MSR_ID(77, "hdmitx_sys"),
+	CLK_MSR_ID(78, "hdmitx_fe"),
+	CLK_MSR_ID(80, "hdmitx_prif"),
+	CLK_MSR_ID(81, "hdmitx_200m"),
+	CLK_MSR_ID(82, "hdmitx_aud"),
+	CLK_MSR_ID(83, "hdmitx1_pixel"),
+	CLK_MSR_ID(84, "hdmitx1_fe"),
+	CLK_MSR_ID(85, "gic"),
+	CLK_MSR_ID(86, "lvds0_fifo_clk"),
+	CLK_MSR_ID(87, "lvds1_fifo_clk"),
+	CLK_MSR_ID(88, "htx_aes_clk"),
+	CLK_MSR_ID(89, "amfc"),
+	CLK_MSR_ID(90, "a_clk_sync_dig"),
+	CLK_MSR_ID(91, "b_clk_sync_dig"),
+	CLK_MSR_ID(92, "u3dp_upcrx_cdrclk"),
+	CLK_MSR_ID(93, "u3dp_upctx_clk_sync_b20"),
+	CLK_MSR_ID(94, "u3dp_upcrxpll_clk_test"),
+	CLK_MSR_ID(95, "u3dp_upcrpll_fst_pll_clk"),
+	CLK_MSR_ID(96, "u3dp_usb2_ckout"),
+	CLK_MSR_ID(97, "hcodec"),
+	CLK_MSR_ID(99, "hevcf"),
+	CLK_MSR_ID(104, "spisg2"),
+	CLK_MSR_ID(105, "spisg1"),
+	CLK_MSR_ID(106, "deskew_pll_clk_div32_out"),
+	CLK_MSR_ID(108, "cmpr"),
+	CLK_MSR_ID(109, "dewarpa"),
+	CLK_MSR_ID(110, "sc"),
+	CLK_MSR_ID(111, "sar_adc"),
+	CLK_MSR_ID(112, "glb"),
+	CLK_MSR_ID(113, "sd_emmc_c"),
+	CLK_MSR_ID(114, "sd_emmc_b"),
+	CLK_MSR_ID(115, "sd_emmc_a"),
+	CLK_MSR_ID(116, "gpio_msr_clk"),
+	CLK_MSR_ID(117, "aux_clk_o"),
+	CLK_MSR_ID(118, "spisg0"),
+	CLK_MSR_ID(121, "ts"),
+	CLK_MSR_ID(122, "usb_48m"),
+	CLK_MSR_ID(123, "usb_250m"),
+	CLK_MSR_ID(124, "eth_125m"),
+	CLK_MSR_ID(125, "eth_rmii"),
+	CLK_MSR_ID(126, "hrx20_tmds20_clk"),
+	CLK_MSR_ID(127, "hrx20_cable_clk"),
+	CLK_MSR_ID(128, "hdmirx_vid_clk"),
+	CLK_MSR_ID(129, "hdmirx_aud_clk"),
+	CLK_MSR_ID(130, "dptx_apb2"),
+	CLK_MSR_ID(131, "dptx_aud"),
+	CLK_MSR_ID(132, "audio_todptx_bclk"),
+	CLK_MSR_ID(133, "audio_txhdmitx_bclk"),
+	CLK_MSR_ID(134, "audio_txhdmitx_mclk"),
+	CLK_MSR_ID(135, "audio_txhdmitx_spdif_clk"),
+	CLK_MSR_ID(136, "mclk_0_pre"),
+	CLK_MSR_ID(137, "mclk1_0_pre"),
+	CLK_MSR_ID(138, "pixel0_pll_clkout"),
+	CLK_MSR_ID(139, "pixel1_pll_clkout"),
+	CLK_MSR_ID(140, "tcon_clk_out0"),
+	CLK_MSR_ID(141, "tcon_clk_out1"),
+	CLK_MSR_ID(142, "audio_todptx_spdif_clk"),
+	CLK_MSR_ID(143, "audio_todptx_mclk"),
+	CLK_MSR_ID(144, "dptx_lnk_clk"),
+	CLK_MSR_ID(145, "edptx_lnk_clk_tx"),
+	CLK_MSR_ID(146, "mod_audio_pdm_dclk_o_ao"),
+	CLK_MSR_ID(147, "vid2_pll"),
+	CLK_MSR_ID(151, "can1_filter"),
+	CLK_MSR_ID(152, "can0_filter"),
+	CLK_MSR_ID(153, "can1_pe"),
+	CLK_MSR_ID(154, "can0_pe"),
+	CLK_MSR_ID(155, "o_sed_clk"),
+	CLK_MSR_ID(156, "pwm_n"),
+	CLK_MSR_ID(157, "pwm_m"),
+	CLK_MSR_ID(158, "pwm_l"),
+	CLK_MSR_ID(159, "pwm_k"),
+	CLK_MSR_ID(160, "pwm_j"),
+	CLK_MSR_ID(161, "pwm_i"),
+	CLK_MSR_ID(162, "pwm_h"),
+	CLK_MSR_ID(170, "rng_ring_osc_clk[0]"),
+	CLK_MSR_ID(171, "rng_ring_osc_clk[1]"),
+	CLK_MSR_ID(172, "rng_ring_osc_clk[2]"),
+	CLK_MSR_ID(173, "rng_ring_osc_clk[3]"),
+	CLK_MSR_ID(174, "rng_ring_osc_clk[4]"),
+	CLK_MSR_ID(175, "sys_cpu_osc_ring_clk[0]"),
+	CLK_MSR_ID(176, "sys_cpu_osc_ring_clk[1]"),
+	CLK_MSR_ID(177, "sys_cpu_osc_ring_clk[2]"),
+	CLK_MSR_ID(178, "sys_cpu_osc_ring_clk[3]"),
+	CLK_MSR_ID(179, "sys_cpu_osc_ring_clk[4]"),
+	CLK_MSR_ID(180, "sys_cpu_osc_ring_clk[5]"),
+	CLK_MSR_ID(181, "sys_cpu_osc_ring_clk[6]"),
+	CLK_MSR_ID(182, "sys_cpu_osc_ring_clk[7]"),
+	CLK_MSR_ID(183, "sys_cpu_osc_ring_clk[8]"),
+	CLK_MSR_ID(184, "sys_cpu_osc_ring_clk[9]"),
+	CLK_MSR_ID(185, "osc_ring_clk_gpu[0]"),
+	CLK_MSR_ID(186, "osc_ring_clk_gpu[1]"),
+	CLK_MSR_ID(187, "osc_ring_clk_vpu"),
+	CLK_MSR_ID(188, "osc_ring_clk_dos[0]"),
+	CLK_MSR_ID(189, "osc_ring_clk_dos[1]"),
+	CLK_MSR_ID(190, "osc_ring_clk_vge"),
+	CLK_MSR_ID(191, "osc_ring_clk_nna[0]"),
+	CLK_MSR_ID(192, "osc_ring_clk_nna[1]"),
+	CLK_MSR_ID(193, "osc_ring_clk_top[0]"),
+	CLK_MSR_ID(194, "osc_ring_clk_top[1]"),
+	CLK_MSR_ID(195, "nna"),
+	CLK_MSR_ID(200, "pcie1_tl"),
+	CLK_MSR_ID(201, "pcie0_tl"),
+	CLK_MSR_ID(202, "pp"),
+	CLK_MSR_ID(203, "pwm_a(ao)"),
+	CLK_MSR_ID(204, "pwm_b(ao)"),
+	CLK_MSR_ID(205, "pwm_c(ao)"),
+	CLK_MSR_ID(206, "pwm_d(ao)"),
+	CLK_MSR_ID(207, "pwm_e(ao)"),
+	CLK_MSR_ID(208, "pwm_f(ao)"),
+	CLK_MSR_ID(209, "pwm_g(ao)"),
+	CLK_MSR_ID(210, "ao_cec"),
+	CLK_MSR_ID(211, "sec_pulse_out"),
+	CLK_MSR_ID(212, "osc_clk_out"),
+	CLK_MSR_ID(213, "earcrx_pll_clk_out"),
+	CLK_MSR_ID(215, "o_pd_sysclk"),
+	CLK_MSR_ID(216, "o_earcrx_dmac_clk"),
+	CLK_MSR_ID(217, "o_earcrx_cmdc_clk"),
+	CLK_MSR_ID(218, "o_earctx_dmac_clk"),
+	CLK_MSR_ID(219, "o_earctx_cmdc_clk"),
+	CLK_MSR_ID(220, "o_earctx_ana_dmac_clk_a2d"),
+	CLK_MSR_ID(221, "o_tohdmi_dp_tx_a_bclk"),
+	CLK_MSR_ID(222, "o_tohdmi_dp_tx_a_mclk"),
+	CLK_MSR_ID(223, "o_tohdmi_dp_tx_a_spdif_clk"),
+	CLK_MSR_ID(224, "o_tohdmi_dp_tx_b_bclk"),
+	CLK_MSR_ID(225, "o_tohdmi_dp_tx_b_mclk"),
+	CLK_MSR_ID(226, "o_tohdmi_dp_tx_b_spdif_clk"),
+	CLK_MSR_ID(227, "o_toacodec_dac_bclk"),
+	CLK_MSR_ID(228, "o_toacodec_dac_mclk"),
+	CLK_MSR_ID(229, "o_spdifout_b_mst_clk"),
+	CLK_MSR_ID(230, "o_spdifout_mst_clk"),
+	CLK_MSR_ID(231, "o_spdifin_mst_clk"),
+	CLK_MSR_ID(232, "o_audio_mclk"),
+	CLK_MSR_ID(233, "o_vad_clk"),
+	CLK_MSR_ID(234, "o_tdmout_d_sclk"),
+	CLK_MSR_ID(235, "o_tdmout_c_sclk"),
+	CLK_MSR_ID(236, "o_tdmout_b_sclk"),
+	CLK_MSR_ID(237, "o_tdmout_a_sclk"),
+	CLK_MSR_ID(238, "o_tdminb_lb_sclk"),
+	CLK_MSR_ID(239, "o_tdmin_lb_sclk"),
+	CLK_MSR_ID(240, "o_tdmin_d_sclk"),
+	CLK_MSR_ID(241, "o_tdmin_c_sclk"),
+	CLK_MSR_ID(242, "o_tdmin_b_sclk"),
+	CLK_MSR_ID(243, "o_tdmin_a_sclk"),
+	CLK_MSR_ID(244, "o_resampleb_clk"),
+	CLK_MSR_ID(245, "o_resamplea_clk"),
+	CLK_MSR_ID(246, "o_pdmb_sysclk"),
+	CLK_MSR_ID(247, "o_pdmb_dclk"),
+	CLK_MSR_ID(248, "o_pdm_sysclk"),
+	CLK_MSR_ID(249, "o_pdm_dclk"),
+	CLK_MSR_ID(250, "c_alockerb_out_clk"),
+	CLK_MSR_ID(251, "c_alockerb_in_clk"),
+	CLK_MSR_ID(252, "c_alocker_out_clk"),
+	CLK_MSR_ID(253, "c_alocker_in_clk"),
+	CLK_MSR_ID(254, "o_resample_c_clk")
+};
+
+static const struct meson_msr_id clk_msr_s6[] = {
+	CLK_MSR_ID(0, "sys_clk"),
+	CLK_MSR_ID(1, "axi_clk"),
+	CLK_MSR_ID(2, "rtc_clk"),
+	CLK_MSR_ID(3, "dspa"),
+	CLK_MSR_ID(4, "mali_stack"),
+	CLK_MSR_ID(5, "mali"),
+	CLK_MSR_ID(6, "cpu_clk_div16"),
+	CLK_MSR_ID(7, "mali_aclkm"),
+	CLK_MSR_ID(8, "cecb"),
+	CLK_MSR_ID(9, "gp2_pll"),
+	CLK_MSR_ID(10, "fclk_div5"),
+	CLK_MSR_ID(11, "p21_usb2_ckout"),
+	CLK_MSR_ID(12, "p20_usb2_ckout"),
+	CLK_MSR_ID(13, "eth_mpll_test"),
+	CLK_MSR_ID(15, "fclk_50m"),
+	CLK_MSR_ID(18, "gp1_pll"),
+	CLK_MSR_ID(19, "hifi_pll"),
+	CLK_MSR_ID(20, "gp0_pll"),
+	CLK_MSR_ID(21, "hifi1_pll"),
+	CLK_MSR_ID(22, "eth_mppll_50m_ckout"),
+	CLK_MSR_ID(23, "sys_pll_div16"),
+	CLK_MSR_ID(24, "ddr_dpll_pt_clk"),
+	CLK_MSR_ID(25, "mod_Tsin_A_CLK_IN"),
+	CLK_MSR_ID(26, "ext_Tsin_B_CLK_IN"),
+	CLK_MSR_ID(27, "mod_Tsin_C_CLK_IN"),
+	CLK_MSR_ID(28, "mod_Tsin_D_CLK_IN"),
+	CLK_MSR_ID(29, "dsi_pll_div_clk_out"),
+	CLK_MSR_ID(30, "dsi_pll_clk"),
+	CLK_MSR_ID(32, "eth_125m"),
+	CLK_MSR_ID(33, "eth_rmii"),
+	CLK_MSR_ID(34, "co_clkin_to_mac"),
+	CLK_MSR_ID(36, "co_rx_clk"),
+	CLK_MSR_ID(37, "co_tx_clk"),
+	CLK_MSR_ID(38, "eth_phy_rxclk"),
+	CLK_MSR_ID(39, "eth_phy_plltxclk"),
+	CLK_MSR_ID(40, "ephy_test_clk"),
+	CLK_MSR_ID(49, "hdmi_vx1_pix_clk"),
+	CLK_MSR_ID(50, "vid_pll"),
+	CLK_MSR_ID(51, "enci"),
+	CLK_MSR_ID(52, "encp"),
+	CLK_MSR_ID(53, "encl"),
+	CLK_MSR_ID(54, "vdac"),
+	CLK_MSR_ID(55, "cdac"),
+	CLK_MSR_ID(57, "lcd_an_clk_ph2"),
+	CLK_MSR_ID(58, "lcd_an_clk_ph3"),
+	CLK_MSR_ID(59, "hdmitx_pixel"),
+	CLK_MSR_ID(60, "vdin_meas"),
+	CLK_MSR_ID(61, "vpu"),
+	CLK_MSR_ID(62, "vpu_clkb"),
+	CLK_MSR_ID(63, "vpu_clkb_tmp"),
+	CLK_MSR_ID(64, "vpu_clkc"),
+	CLK_MSR_ID(65, "vid_lock"),
+	CLK_MSR_ID(66, "vapb"),
+	CLK_MSR_ID(67, "ge2d"),
+	CLK_MSR_ID(70, "mipi_dsi_meas"),
+	CLK_MSR_ID(71, "mipi_dsi_phy"),
+	CLK_MSR_ID(72, "mipi_csi_phy"),
+	CLK_MSR_ID(73, "csi2_adapt"),
+	CLK_MSR_ID(74, "cts_csi2_data"),
+	CLK_MSR_ID(75, "mipi_csi_phy_out"),
+	CLK_MSR_ID(76, "hdmitx_tmds"),
+	CLK_MSR_ID(77, "hdmitx_sys"),
+	CLK_MSR_ID(78, "hdmitx_fe"),
+	CLK_MSR_ID(79, "rama_clk"),
+	CLK_MSR_ID(80, "hdmitx_prif"),
+	CLK_MSR_ID(81, "hdmitx_200m"),
+	CLK_MSR_ID(82, "hdmitx_aud"),
+	CLK_MSR_ID(84, "audio_tohdmitx_mclk"),
+	CLK_MSR_ID(85, "audio_tohdmitx_bclk"),
+	CLK_MSR_ID(86, "audio_tohdmitx_lrclk"),
+	CLK_MSR_ID(87, "audio_tohdmitx_spdif_clk"),
+	CLK_MSR_ID(88, "htx_aes_clk"),
+	CLK_MSR_ID(89, "amfc"),
+	CLK_MSR_ID(93, "vdec"),
+	CLK_MSR_ID(99, "hevcf"),
+	CLK_MSR_ID(106, "deskew_pll_clk_div32_out"),
+	CLK_MSR_ID(108, "cmpr"),
+	CLK_MSR_ID(109, "dewarpa"),
+	CLK_MSR_ID(110, "sc"),
+	CLK_MSR_ID(111, "sar_adc"),
+	CLK_MSR_ID(113, "sd_emmc_c"),
+	CLK_MSR_ID(114, "sd_emmc_b"),
+	CLK_MSR_ID(115, "sd_emmc_a"),
+	CLK_MSR_ID(116, "gpio_msr_clk"),
+	CLK_MSR_ID(117, "aux_clk_o"),
+	CLK_MSR_ID(118, "spicc"),
+	CLK_MSR_ID(121, "ts"),
+	CLK_MSR_ID(130, "o_vad_clk"),
+	CLK_MSR_ID(132, "audio_locker_in_clk"),
+	CLK_MSR_ID(133, "audio_locker_out_clk"),
+	CLK_MSR_ID(134, "audio_tdmout_c_sclk"),
+	CLK_MSR_ID(135, "audio_tdmout_b_sclk"),
+	CLK_MSR_ID(136, "audio_tdmout_a_sclk"),
+	CLK_MSR_ID(137, "audio_tdmin_lb_sclk"),
+	CLK_MSR_ID(138, "audio_tdmin_c_sclk"),
+	CLK_MSR_ID(139, "audio_tdmin_b_sclk"),
+	CLK_MSR_ID(140, "audio_tdmin_a_sclk"),
+	CLK_MSR_ID(141, "audio_resamplea_clk"),
+	CLK_MSR_ID(142, "audio_pdm_sysclk"),
+	CLK_MSR_ID(143, "audio_spdifout_b_mst_clk"),
+	CLK_MSR_ID(144, "audio_spdifout_mst_clk"),
+	CLK_MSR_ID(145, "audio_spdifin_mst_clk"),
+	CLK_MSR_ID(147, "audio_resampleb_clk"),
+	CLK_MSR_ID(148, "pcie_pipe_clk"),
+	CLK_MSR_ID(149, "pcie_ref_clk"),
+	CLK_MSR_ID(150, "pcie_upcrx_cdrclk"),
+	CLK_MSR_ID(151, "pcie_upcrx_clk_sync_b20"),
+	CLK_MSR_ID(152, "pcie_u3p2pll1_clk_div16"),
+	CLK_MSR_ID(153, "pcie_u3p2pll0_clkout"),
+	CLK_MSR_ID(154, "pcie_ref_clk_p"),
+	CLK_MSR_ID(160, "pwm_j"),
+	CLK_MSR_ID(161, "pwm_i"),
+	CLK_MSR_ID(162, "pwm_h"),
+	CLK_MSR_ID(163, "pwm_g"),
+	CLK_MSR_ID(164, "pwm_f"),
+	CLK_MSR_ID(165, "pwm_e"),
+	CLK_MSR_ID(166, "pwm_d"),
+	CLK_MSR_ID(167, "pwm_c"),
+	CLK_MSR_ID(168, "pwm_b"),
+	CLK_MSR_ID(169, "pwm_a"),
+	CLK_MSR_ID(175, "rng_ring_clk[0]"),
+	CLK_MSR_ID(176, "rng_ring_clk[1]"),
+	CLK_MSR_ID(177, "rng_ring_clk[2]"),
+	CLK_MSR_ID(178, "rng_ring_clk[3]"),
+	CLK_MSR_ID(179, "rng_ring_clk[4]"),
+	CLK_MSR_ID(180, "am_ring_osc_clk_out[0]"),
+	CLK_MSR_ID(181, "am_ring_osc_clk_out[1]"),
+	CLK_MSR_ID(182, "am_ring_osc_clk_out[2]"),
+	CLK_MSR_ID(183, "am_ring_osc_clk_out[3]"),
+	CLK_MSR_ID(184, "am_ring_osc_clk_out[4]"),
+	CLK_MSR_ID(185, "am_ring_osc_clk_out[5]"),
+	CLK_MSR_ID(186, "am_ring_osc_clk_out[6]"),
+	CLK_MSR_ID(187, "am_ring_osc_clk_out[7]"),
+	CLK_MSR_ID(188, "am_ring_osc_clk_out[8]"),
+	CLK_MSR_ID(189, "am_ring_osc_clk_out[9]"),
+	CLK_MSR_ID(190, "am_ring_osc_clk_out[10]"),
+	CLK_MSR_ID(191, "am_ring_osc_clk_out[11]"),
+	CLK_MSR_ID(192, "am_ring_osc_clk_out[12]"),
+	CLK_MSR_ID(193, "am_ring_osc_clk_out[13]"),
+	CLK_MSR_ID(194, "am_ring_osc_clk_out[14]"),
+	CLK_MSR_ID(195, "am_ring_osc_clk_out[15]"),
+	CLK_MSR_ID(196, "am_ring_osc_clk_out[16]"),
+	CLK_MSR_ID(197, "nna"),
+	CLK_MSR_ID(198, "vc9000e_axi"),
+	CLK_MSR_ID(199, "vc9000e_core"),
+	CLK_MSR_ID(201, "pcie_tl"),
+	CLK_MSR_ID(204, "u3p2pll1_clk_div16"),
+	CLK_MSR_ID(205, "u3p2pll0_clkout"),
+	CLK_MSR_ID(206, "upctx_clk_sync_b20"),
+	CLK_MSR_ID(207, "upcrx_carclk"),
+	CLK_MSR_ID(208, "usb_pipe_clk"),
+	CLK_MSR_ID(209, "earcrx_pll_out"),
+	CLK_MSR_ID(210, "mclk_pll_clk")
+};
+
+static const struct meson_msr_id clk_msr_s7[] = {
+	CLK_MSR_ID(0, "sys_clk"),
+	CLK_MSR_ID(1, "axi_clk"),
+	CLK_MSR_ID(2, "rtc_clk"),
+	CLK_MSR_ID(5, "mali"),
+	CLK_MSR_ID(6, "cpu_clk_div16"),
+	CLK_MSR_ID(8, "cecb"),
+	CLK_MSR_ID(10, "fclk_div5"),
+	CLK_MSR_ID(11, "p21_usb2_ckout"),
+	CLK_MSR_ID(12, "p20_usb2_ckout"),
+	CLK_MSR_ID(13, "eth_mpll_test"),
+	CLK_MSR_ID(15, "fclk_50m"),
+	CLK_MSR_ID(18, "gp1_pll"),
+	CLK_MSR_ID(19, "hifi_pll"),
+	CLK_MSR_ID(20, "gp0_pll"),
+	CLK_MSR_ID(21, "hifi1_pll"),
+	CLK_MSR_ID(22, "eth_mppll_50m_ckout"),
+	CLK_MSR_ID(23, "sys_pll_div16"),
+	CLK_MSR_ID(24, "ddr_dpll_pt_clk"),
+	CLK_MSR_ID(25, "mod_Tsin_A_CLK_IN"),
+	CLK_MSR_ID(32, "eth_125m"),
+	CLK_MSR_ID(33, "eth_rmii"),
+	CLK_MSR_ID(34, "co_clkin_to_mac"),
+	CLK_MSR_ID(36, "co_rx_clk"),
+	CLK_MSR_ID(37, "co_tx_clk"),
+	CLK_MSR_ID(38, "eth_phy_rxclk"),
+	CLK_MSR_ID(39, "eth_phy_plltxclk"),
+	CLK_MSR_ID(40, "ephy_test_clk"),
+	CLK_MSR_ID(49, "hdmi_vx1_pix_clk"),
+	CLK_MSR_ID(50, "vid_pll"),
+	CLK_MSR_ID(51, "enci"),
+	CLK_MSR_ID(52, "encp"),
+	CLK_MSR_ID(53, "encl"),
+	CLK_MSR_ID(54, "vdac"),
+	CLK_MSR_ID(55, "cdac"),
+	CLK_MSR_ID(57, "lcd_an_clk_ph2"),
+	CLK_MSR_ID(58, "lcd_an_clk_ph3"),
+	CLK_MSR_ID(59, "hdmitx_pixel"),
+	CLK_MSR_ID(60, "vdin_meas"),
+	CLK_MSR_ID(61, "vpu"),
+	CLK_MSR_ID(62, "vpu_clkb"),
+	CLK_MSR_ID(63, "vpu_clkb_tmp"),
+	CLK_MSR_ID(64, "vpu_clkc"),
+	CLK_MSR_ID(65, "vid_lock"),
+	CLK_MSR_ID(66, "vapb"),
+	CLK_MSR_ID(67, "ge2d"),
+	CLK_MSR_ID(76, "hdmitx_tmds"),
+	CLK_MSR_ID(77, "hdmitx_sys"),
+	CLK_MSR_ID(78, "hdmitx_fe"),
+	CLK_MSR_ID(80, "hdmitx_prif"),
+	CLK_MSR_ID(81, "hdmitx_200m"),
+	CLK_MSR_ID(82, "hdmitx_aud"),
+	CLK_MSR_ID(84, "audio_tohdmitx_mclk"),
+	CLK_MSR_ID(85, "audio_tohdmitx_bclk"),
+	CLK_MSR_ID(86, "audio_tohdmitx_lrclk"),
+	CLK_MSR_ID(87, "audio_tohdmitx_spdif_clk"),
+	CLK_MSR_ID(88, "htx_aes_clk"),
+	CLK_MSR_ID(93, "vdec"),
+	CLK_MSR_ID(99, "hevcf"),
+	CLK_MSR_ID(106, "deskew_pll_clk_div32_out"),
+	CLK_MSR_ID(110, "sc"),
+	CLK_MSR_ID(111, "sar_adc"),
+	CLK_MSR_ID(113, "sd_emmc_c"),
+	CLK_MSR_ID(114, "sd_emmc_b"),
+	CLK_MSR_ID(115, "sd_emmc_a"),
+	CLK_MSR_ID(116, "gpio_msr_clk"),
+	CLK_MSR_ID(118, "spicc"),
+	CLK_MSR_ID(121, "ts"),
+	CLK_MSR_ID(130, "o_vad_clk"),
+	CLK_MSR_ID(131, "au_dac_clk_x128"),
+	CLK_MSR_ID(132, "audio_locker_in_clk"),
+	CLK_MSR_ID(133, "audio_locker_out_clk"),
+	CLK_MSR_ID(134, "audio_tdmout_c_sclk"),
+	CLK_MSR_ID(135, "audio_tdmout_b_sclk"),
+	CLK_MSR_ID(136, "audio_tdmout_a_sclk"),
+	CLK_MSR_ID(137, "audio_tdmin_lb_sclk"),
+	CLK_MSR_ID(138, "audio_tdmin_c_sclk"),
+	CLK_MSR_ID(139, "audio_tdmin_b_sclk"),
+	CLK_MSR_ID(140, "audio_tdmin_a_sclk"),
+	CLK_MSR_ID(141, "audio_resamplea_clk"),
+	CLK_MSR_ID(142, "audio_pdm_sysclk"),
+	CLK_MSR_ID(143, "audio_spdifout_b_mst_clk"),
+	CLK_MSR_ID(144, "audio_spdifout_mst_clk"),
+	CLK_MSR_ID(145, "audio_spdifin_mst_clk"),
+	CLK_MSR_ID(147, "audio_resampleb_clk"),
+	CLK_MSR_ID(160, "pwm_j"),
+	CLK_MSR_ID(161, "pwm_i"),
+	CLK_MSR_ID(162, "pwm_h"),
+	CLK_MSR_ID(163, "pwm_g"),
+	CLK_MSR_ID(164, "pwm_f"),
+	CLK_MSR_ID(165, "pwm_e"),
+	CLK_MSR_ID(166, "pwm_d"),
+	CLK_MSR_ID(167, "pwm_c"),
+	CLK_MSR_ID(168, "pwm_b"),
+	CLK_MSR_ID(169, "pwm_a"),
+	CLK_MSR_ID(176, "rng_ring_clk[0]"),
+	CLK_MSR_ID(177, "rng_ring_clk[1]"),
+	CLK_MSR_ID(178, "rng_ring_clk[2]"),
+	CLK_MSR_ID(179, "rng_ring_clk[3]"),
+	CLK_MSR_ID(180, "osc_ring_clk[0](a55 core0 14_slvt)"),
+	CLK_MSR_ID(181, "osc_ring_clk[1](a55 core1 14_slvt)"),
+	CLK_MSR_ID(182, "osc_ring_clk[2](a55 core2 14_slvt)"),
+	CLK_MSR_ID(183, "osc_ring_clk[3](a55 core3 14_slvt)"),
+	CLK_MSR_ID(184, "osc_ring_clk[4](a55_pwr[0] 16_slvt)"),
+	CLK_MSR_ID(185, "osc_ring_clk[5](a55_pwr[1] 14_lvt)"),
+	CLK_MSR_ID(186, "osc_ring_clk[6](a55_pwr[2] 14_rvt)"),
+	CLK_MSR_ID(187, "osc_ring_clk[7](mali[1] 14_lvt)"),
+	CLK_MSR_ID(188, "osc_ring_clk[8](mali[1] 14_rvt)"),
+	CLK_MSR_ID(189, "osc_ring_clk[9](dos[0] 16_lvt)"),
+	CLK_MSR_ID(190, "osc_ring_clk[10](dos[1] 14_rvt)"),
+	CLK_MSR_ID(191, "osc_ring_clk[11](ddr[0] 9t_14_lvt)"),
+	CLK_MSR_ID(192, "osc_ring_clk[12](top[0] 16_rvt)"),
+};
+
+static const struct meson_msr_id clk_msr_s7d[] = {
+	CLK_MSR_ID(0, "sys_clk"),
+	CLK_MSR_ID(1, "axi_clk"),
+	CLK_MSR_ID(2, "rtc_clk"),
+	CLK_MSR_ID(4, "mali_stack"),
+	CLK_MSR_ID(5, "mali"),
+	CLK_MSR_ID(6, "cpu_clk_div16"),
+	CLK_MSR_ID(8, "cecb"),
+	CLK_MSR_ID(9, "mali_aclkm"),
+	CLK_MSR_ID(10, "fclk_div5"),
+	CLK_MSR_ID(11, "p21_usb2_ckout"),
+	CLK_MSR_ID(12, "p20_usb2_ckout"),
+	CLK_MSR_ID(13, "eth_mpll_test"),
+	CLK_MSR_ID(15, "fclk_50m"),
+	CLK_MSR_ID(18, "gp1_pll"),
+	CLK_MSR_ID(19, "hifi_pll"),
+	CLK_MSR_ID(20, "gp0_pll"),
+	CLK_MSR_ID(21, "hifi1_pll"),
+	CLK_MSR_ID(22, "eth_mppll_50m_ckout"),
+	CLK_MSR_ID(23, "sys_pll_div16"),
+	CLK_MSR_ID(24, "ddr_dpll_pt_clk"),
+	CLK_MSR_ID(25, "mod_Tsin_A_CLK_IN"),
+	CLK_MSR_ID(26, "mod_Tsin_B_CLK_IN"),
+	CLK_MSR_ID(31, "earcrx_pll_clk_out"),
+	CLK_MSR_ID(32, "eth_125m"),
+	CLK_MSR_ID(33, "eth_rmii"),
+	CLK_MSR_ID(34, "co_clkin_to_mac"),
+	CLK_MSR_ID(36, "co_rx_clk"),
+	CLK_MSR_ID(37, "co_tx_clk"),
+	CLK_MSR_ID(38, "eth_phy_rxclk"),
+	CLK_MSR_ID(39, "eth_phy_plltxclk"),
+	CLK_MSR_ID(40, "ephy_test_clk"),
+	CLK_MSR_ID(49, "hdmi_vx1_pix_clk"),
+	CLK_MSR_ID(50, "vid_pll"),
+	CLK_MSR_ID(51, "enci"),
+	CLK_MSR_ID(52, "encp"),
+	CLK_MSR_ID(53, "encl"),
+	CLK_MSR_ID(54, "vdac"),
+	CLK_MSR_ID(55, "cdac"),
+	CLK_MSR_ID(57, "lcd_an_clk_ph2"),
+	CLK_MSR_ID(58, "lcd_an_clk_ph3"),
+	CLK_MSR_ID(59, "hdmitx_pixel"),
+	CLK_MSR_ID(60, "vdin_meas"),
+	CLK_MSR_ID(61, "vpu"),
+	CLK_MSR_ID(62, "vpu_clkb"),
+	CLK_MSR_ID(63, "vpu_clkb_tmp"),
+	CLK_MSR_ID(64, "vpu_clkc"),
+	CLK_MSR_ID(65, "vid_lock"),
+	CLK_MSR_ID(66, "vapb"),
+	CLK_MSR_ID(67, "ge2d"),
+	CLK_MSR_ID(76, "hdmitx_tmds"),
+	CLK_MSR_ID(77, "hdmitx_sys"),
+	CLK_MSR_ID(78, "hdmitx_fe"),
+	CLK_MSR_ID(80, "hdmitx_prif"),
+	CLK_MSR_ID(81, "hdmitx_200m"),
+	CLK_MSR_ID(82, "hdmitx_aud"),
+	CLK_MSR_ID(84, "audio_tohdmitx_mclk"),
+	CLK_MSR_ID(85, "audio_tohdmitx_bclk"),
+	CLK_MSR_ID(86, "audio_tohdmitx_lrclk"),
+	CLK_MSR_ID(87, "audio_tohdmitx_spdif_clk"),
+	CLK_MSR_ID(88, "htx_aes_clk"),
+	CLK_MSR_ID(89, "amfc"),
+	CLK_MSR_ID(93, "vdec"),
+	CLK_MSR_ID(97, "hcodec"),
+	CLK_MSR_ID(99, "hevcf"),
+	CLK_MSR_ID(106, "deskew_pll_clk_div32_out"),
+	CLK_MSR_ID(110, "sc"),
+	CLK_MSR_ID(111, "sar_adc"),
+	CLK_MSR_ID(112, "aux_adc_clk_to_gpio"),
+	CLK_MSR_ID(113, "sd_emmc_c"),
+	CLK_MSR_ID(114, "sd_emmc_b"),
+	CLK_MSR_ID(115, "sd_emmc_a"),
+	CLK_MSR_ID(116, "gpio_msr_clk"),
+	CLK_MSR_ID(117, "aux_clk_o"),
+	CLK_MSR_ID(118, "spicc"),
+	CLK_MSR_ID(121, "ts"),
+	CLK_MSR_ID(130, "o_vad_clk"),
+	CLK_MSR_ID(131, "au_dac_clk_x128"),
+	CLK_MSR_ID(132, "audio_locker_in_clk"),
+	CLK_MSR_ID(133, "audio_locker_out_clk"),
+	CLK_MSR_ID(134, "audio_tdmout_c_sclk"),
+	CLK_MSR_ID(135, "audio_tdmout_b_sclk"),
+	CLK_MSR_ID(136, "audio_tdmout_a_sclk"),
+	CLK_MSR_ID(137, "audio_tdmin_lb_sclk"),
+	CLK_MSR_ID(138, "audio_tdmin_c_sclk"),
+	CLK_MSR_ID(139, "audio_tdmin_b_sclk"),
+	CLK_MSR_ID(140, "audio_tdmin_a_sclk"),
+	CLK_MSR_ID(141, "audio_resamplea_clk"),
+	CLK_MSR_ID(142, "audio_pdm_sysclk"),
+	CLK_MSR_ID(143, "audio_spdifout_b_mst_clk"),
+	CLK_MSR_ID(144, "audio_spdifout_mst_clk"),
+	CLK_MSR_ID(145, "audio_spdifin_mst_clk"),
+	CLK_MSR_ID(146, "mod_audio_pdm_dclk_o"),
+	CLK_MSR_ID(147, "audio_resampleb_clk"),
+	CLK_MSR_ID(160, "pwm_j"),
+	CLK_MSR_ID(161, "pwm_i"),
+	CLK_MSR_ID(162, "pwm_h"),
+	CLK_MSR_ID(163, "pwm_g"),
+	CLK_MSR_ID(164, "pwm_f"),
+	CLK_MSR_ID(165, "pwm_e"),
+	CLK_MSR_ID(166, "pwm_d"),
+	CLK_MSR_ID(167, "pwm_c"),
+	CLK_MSR_ID(168, "pwm_b"),
+	CLK_MSR_ID(169, "pwm_a"),
+	CLK_MSR_ID(176, "rng_ring_clk[0]"),
+	CLK_MSR_ID(177, "rng_ring_clk[1]"),
+	CLK_MSR_ID(178, "rng_ring_clk[2]"),
+	CLK_MSR_ID(179, "rng_ring_clk[3]"),
+	CLK_MSR_ID(180, "osc_ring_clk[0](a55 core0 14_slvt)"),
+	CLK_MSR_ID(181, "osc_ring_clk[1](a55 core1 14_slvt)"),
+	CLK_MSR_ID(182, "osc_ring_clk[2](a55 core2 14_slvt)"),
+	CLK_MSR_ID(183, "osc_ring_clk[3](a55 core3 14_slvt)"),
+	CLK_MSR_ID(184, "osc_ring_clk[4](a55_pwr[0] 16_slvt)"),
+	CLK_MSR_ID(185, "osc_ring_clk[5](a55_pwr[1] 14_lvt)"),
+	CLK_MSR_ID(186, "osc_ring_clk[6](a55_pwr[2] 14_rvt)"),
+	CLK_MSR_ID(187, "osc_ring_clk[7](mali[1] 14_lvt)"),
+	CLK_MSR_ID(188, "osc_ring_clk[8](mali[1] 14_rvt)"),
+	CLK_MSR_ID(189, "osc_ring_clk[9](dos[0] 16_lvt)"),
+	CLK_MSR_ID(190, "osc_ring_clk[10](dos[1] 14_rvt)"),
+	CLK_MSR_ID(191, "osc_ring_clk[11](ddr[0] 9t_14_lvt)"),
+	CLK_MSR_ID(192, "osc_ring_clk[12](top[0] 16_rvt)"),
+};
+
 static int meson_measure_id(struct meson_msr_id *clk_msr_id,
 			    unsigned int duration)
 {
@@ -1285,6 +2122,24 @@ static const struct meson_msr_data clk_msr_a1_data = {
 	.reg = &msr_reg_offset_v2,
 };
 
+static const struct meson_msr_data clk_msr_a4_data = {
+	.msr_table = (void *)clk_msr_a4,
+	.msr_count = ARRAY_SIZE(clk_msr_a4),
+	.reg = &msr_reg_offset_v2,
+};
+
+static const struct meson_msr_data clk_msr_a5_data = {
+	.msr_table = (void *)clk_msr_a5,
+	.msr_count = ARRAY_SIZE(clk_msr_a5),
+	.reg = &msr_reg_offset_v2,
+};
+
+static const struct meson_msr_data clk_msr_a9_data = {
+	.msr_table = (void *)clk_msr_a9,
+	.msr_count = ARRAY_SIZE(clk_msr_a9),
+	.reg = &msr_reg_offset_v2,
+};
+
 static const struct meson_msr_data clk_msr_c3_data = {
 	.msr_table = (void *)clk_msr_c3,
 	.msr_count = ARRAY_SIZE(clk_msr_c3),
@@ -1297,6 +2152,24 @@ static const struct meson_msr_data clk_msr_s4_data = {
 	.reg = &msr_reg_offset_v2,
 };
 
+static const struct meson_msr_data clk_msr_s6_data = {
+	.msr_table = (void *)clk_msr_s6,
+	.msr_count = ARRAY_SIZE(clk_msr_s6),
+	.reg = &msr_reg_offset_v2,
+};
+
+static const struct meson_msr_data clk_msr_s7_data = {
+	.msr_table = (void *)clk_msr_s7,
+	.msr_count = ARRAY_SIZE(clk_msr_s7),
+	.reg = &msr_reg_offset_v2,
+};
+
+static const struct meson_msr_data clk_msr_s7d_data = {
+	.msr_table = (void *)clk_msr_s7d,
+	.msr_count = ARRAY_SIZE(clk_msr_s7d),
+	.reg = &msr_reg_offset_v2,
+};
+
 static const struct meson_msr_data clk_msr_t7_data = {
 	.msr_table = (void *)clk_msr_t7,
 	.msr_count = ARRAY_SIZE(clk_msr_t7),
@@ -1308,6 +2181,18 @@ static const struct of_device_id meson_msr_match_table[] = {
 		.compatible = "amlogic,a1-clk-measure",
 		.data = &clk_msr_a1_data,
 	},
+	{
+		.compatible = "amlogic,a4-clk-measure",
+		.data = &clk_msr_a4_data,
+	},
+	{
+		.compatible = "amlogic,a5-clk-measure",
+		.data = &clk_msr_a5_data,
+	},
+	{
+		.compatible = "amlogic,a9-clk-measure",
+		.data = &clk_msr_a9_data,
+	},
 	{
 		.compatible = "amlogic,c3-clk-measure",
 		.data = &clk_msr_c3_data,
@@ -1340,6 +2225,18 @@ static const struct of_device_id meson_msr_match_table[] = {
 		.compatible = "amlogic,s4-clk-measure",
 		.data = &clk_msr_s4_data,
 	},
+	{
+		.compatible = "amlogic,s6-clk-measure",
+		.data = &clk_msr_s6_data,
+	},
+	{
+		.compatible = "amlogic,s7-clk-measure",
+		.data = &clk_msr_s7_data,
+	},
+	{
+		.compatible = "amlogic,s7d-clk-measure",
+		.data = &clk_msr_s7d_data,
+	},
 	{
 		.compatible = "amlogic,t7-clk-measure",
 		.data = &clk_msr_t7_data,

-- 
2.42.0



_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* [PATCH v2 06/12] soc: amlogic: clk-measure: Optimize CLK_MSR_ID to reduce memory usage
  2026-09-20 10:25 [PATCH v2 00/12] soc: amlogic: clk-measure: Add support for more SoCs Chuan Liu via B4 Relay
                   ` (4 preceding siblings ...)
  2026-09-20 10:25 ` [PATCH v2 05/12] soc: amlogic: clk-measure: Add support for more SoCs Chuan Liu via B4 Relay
@ 2026-09-20 10:25 ` Chuan Liu via B4 Relay
  2026-09-20 10:25 ` [PATCH v2 07/12] arm64: dts: amlogic: a5: Add clk-measure controller node Chuan Liu via B4 Relay
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 16+ messages in thread
From: Chuan Liu via B4 Relay @ 2026-09-20 10:25 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Neil Armstrong,
	Kevin Hilman, Jerome Brunet, Martin Blumenstingl
  Cc: devicetree, linux-arm-kernel, linux-amlogic, linux-kernel, Chuan Liu

From: Chuan Liu <chuan.liu@amlogic.com>

The original CLK_MSR_ID macro uses __id as the designated array index.
This can waste memory when defining struct meson_msr_id arrays. For
example:

    static const struct meson_msr_id clk_msr_foo[] = {
        CLK_MSR_ID(255, NULL),
    };

Although the array contains only one valid entry, it occupies space for
256 elements because the designated initializer forces the array size to
match the highest index.

The driver does not rely on the array index when accessing measurement
IDs. Instead, the measurement ID is obtained from the id field of struct
meson_msr_id. Therefore, removing the designated array index from
CLK_MSR_ID does not affect the current driver behavior while
significantly reducing unnecessary memory usage.

Compared with before and after modification, the memory size is reduced
by 24.76%:
$ scripts/bloat-o-meter pre_meson-clk-measure.o meson-clk-measure.o
add/remove: 0/0 grow/shrink: 0/15 up/down: 0/-16224 (-16224)
Function                                     old     new   delta
clk_msr_sm1                                 3072    3048     -24
clk_msr_a1                                  1488    1272    -216
clk_msr_g12a                                2952    2712    -240
clk_msr_gx                                  1992    1608    -384
clk_msr_m8                                  1536    1104    -432
clk_msr_a9                                  6120    5544    -576
clk_msr_t7                                  5352    4632    -720
clk_msr_axg                                 2640    1704    -936
clk_msr_s6                                  5064    3672   -1392
clk_msr_c3                                  4896    3264   -1632
clk_msr_s7d                                 4632    2880   -1752
clk_msr_s4                                  5376    3576   -1800
clk_msr_a4                                  4488    2544   -1944
clk_msr_s7                                  4632    2664   -1968
clk_msr_a5                                  4560    2352   -2208
Total: Before=65527, After=49303, chg -24.76%

Signed-off-by: Chuan Liu <chuan.liu@amlogic.com>
---
 drivers/soc/amlogic/meson-clk-measure.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/soc/amlogic/meson-clk-measure.c b/drivers/soc/amlogic/meson-clk-measure.c
index 50928ac14f86..33767f0bc67c 100644
--- a/drivers/soc/amlogic/meson-clk-measure.c
+++ b/drivers/soc/amlogic/meson-clk-measure.c
@@ -55,7 +55,7 @@ struct meson_msr {
 };
 
 #define CLK_MSR_ID(__id, __name) \
-	[__id] = {.id = __id, .name = __name,}
+	{.id = __id, .name = __name,}
 
 static const struct meson_msr_id clk_msr_m8[] = {
 	CLK_MSR_ID(0, "ring_osc_out_ee0"),

-- 
2.42.0



_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* [PATCH v2 07/12] arm64: dts: amlogic: a5: Add clk-measure controller node
  2026-09-20 10:25 [PATCH v2 00/12] soc: amlogic: clk-measure: Add support for more SoCs Chuan Liu via B4 Relay
                   ` (5 preceding siblings ...)
  2026-09-20 10:25 ` [PATCH v2 06/12] soc: amlogic: clk-measure: Optimize CLK_MSR_ID to reduce memory usage Chuan Liu via B4 Relay
@ 2026-09-20 10:25 ` Chuan Liu via B4 Relay
  2026-09-20 10:25 ` [PATCH v2 08/12] arm64: dts: amlogic: a4: " Chuan Liu via B4 Relay
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 16+ messages in thread
From: Chuan Liu via B4 Relay @ 2026-09-20 10:25 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Neil Armstrong,
	Kevin Hilman, Jerome Brunet, Martin Blumenstingl
  Cc: devicetree, linux-arm-kernel, linux-amlogic, linux-kernel, Chuan Liu

From: Chuan Liu <chuan.liu@amlogic.com>

Add the clk-measure controller node for A5 SoC family.

Signed-off-by: Chuan Liu <chuan.liu@amlogic.com>
---
 arch/arm64/boot/dts/amlogic/amlogic-a5.dtsi | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/amlogic-a5.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-a5.dtsi
index 2b12d8284594..0be176ace337 100644
--- a/arch/arm64/boot/dts/amlogic/amlogic-a5.dtsi
+++ b/arch/arm64/boot/dts/amlogic/amlogic-a5.dtsi
@@ -157,4 +157,9 @@ gpio_intc: interrupt-controller@4080 {
 		amlogic,channel-interrupts =
 			<10 11 12 13 14 15 16 17 18 19 20 21>;
 	};
+
+	clk_msr: clock-measure@48000 {
+		compatible = "amlogic,a5-clk-measure";
+		reg = <0x0 0x48000 0x0 0x1c>;
+	};
 };

-- 
2.42.0



_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* [PATCH v2 08/12] arm64: dts: amlogic: a4: Add clk-measure controller node
  2026-09-20 10:25 [PATCH v2 00/12] soc: amlogic: clk-measure: Add support for more SoCs Chuan Liu via B4 Relay
                   ` (6 preceding siblings ...)
  2026-09-20 10:25 ` [PATCH v2 07/12] arm64: dts: amlogic: a5: Add clk-measure controller node Chuan Liu via B4 Relay
@ 2026-09-20 10:25 ` Chuan Liu via B4 Relay
  2026-09-20 10:25 ` [PATCH v2 09/12] arm64: dts: amlogic: s7: " Chuan Liu via B4 Relay
                   ` (4 subsequent siblings)
  12 siblings, 0 replies; 16+ messages in thread
From: Chuan Liu via B4 Relay @ 2026-09-20 10:25 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Neil Armstrong,
	Kevin Hilman, Jerome Brunet, Martin Blumenstingl
  Cc: devicetree, linux-arm-kernel, linux-amlogic, linux-kernel, Chuan Liu

From: Chuan Liu <chuan.liu@amlogic.com>

Add the clk-measure controller node for A4 SoC family.

Signed-off-by: Chuan Liu <chuan.liu@amlogic.com>
---
 arch/arm64/boot/dts/amlogic/amlogic-a4.dtsi | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/amlogic-a4.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-a4.dtsi
index fce45933fa28..762754b33f23 100644
--- a/arch/arm64/boot/dts/amlogic/amlogic-a4.dtsi
+++ b/arch/arm64/boot/dts/amlogic/amlogic-a4.dtsi
@@ -207,6 +207,11 @@ gpio_intc: interrupt-controller@4080 {
 			<10 11 12 13 14 15 16 17 18 19 20 21>;
 	};
 
+	clk_msr: clock-measure@48000 {
+		compatible = "amlogic,a4-clk-measure";
+		reg = <0x0 0x48000 0x0 0x1c>;
+	};
+
 	ao_pinctrl: pinctrl@8e700 {
 		compatible = "amlogic,pinctrl-a4";
 		#address-cells = <2>;

-- 
2.42.0



_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* [PATCH v2 09/12] arm64: dts: amlogic: s7: Add clk-measure controller node
  2026-09-20 10:25 [PATCH v2 00/12] soc: amlogic: clk-measure: Add support for more SoCs Chuan Liu via B4 Relay
                   ` (7 preceding siblings ...)
  2026-09-20 10:25 ` [PATCH v2 08/12] arm64: dts: amlogic: a4: " Chuan Liu via B4 Relay
@ 2026-09-20 10:25 ` Chuan Liu via B4 Relay
  2026-09-20 10:25 ` [PATCH v2 10/12] arm64: dts: amlogic: s7d: " Chuan Liu via B4 Relay
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 16+ messages in thread
From: Chuan Liu via B4 Relay @ 2026-09-20 10:25 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Neil Armstrong,
	Kevin Hilman, Jerome Brunet, Martin Blumenstingl
  Cc: devicetree, linux-arm-kernel, linux-amlogic, linux-kernel, Chuan Liu

From: Chuan Liu <chuan.liu@amlogic.com>

Add the clk-measure controller node for S7 SoC family.

Signed-off-by: Chuan Liu <chuan.liu@amlogic.com>
---
 arch/arm64/boot/dts/amlogic/amlogic-s7.dtsi | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/amlogic-s7.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-s7.dtsi
index a3faf4d188e1..64440df4f542 100644
--- a/arch/arm64/boot/dts/amlogic/amlogic-s7.dtsi
+++ b/arch/arm64/boot/dts/amlogic/amlogic-s7.dtsi
@@ -239,6 +239,11 @@ ao-secure@10220 {
 				reg = <0x0 0x10220 0x0 0x140>;
 				amlogic,has-chip-id;
 			};
+
+			clk_msr: clock-measure@48000 {
+				compatible = "amlogic,s7-clk-measure";
+				reg = <0x0 0x48000 0x0 0x1c>;
+			};
 		};
 	};
 };

-- 
2.42.0



_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* [PATCH v2 10/12] arm64: dts: amlogic: s7d: Add clk-measure controller node
  2026-09-20 10:25 [PATCH v2 00/12] soc: amlogic: clk-measure: Add support for more SoCs Chuan Liu via B4 Relay
                   ` (8 preceding siblings ...)
  2026-09-20 10:25 ` [PATCH v2 09/12] arm64: dts: amlogic: s7: " Chuan Liu via B4 Relay
@ 2026-09-20 10:25 ` Chuan Liu via B4 Relay
  2026-09-20 10:25 ` [PATCH v2 11/12] arm64: dts: amlogic: s6: " Chuan Liu via B4 Relay
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 16+ messages in thread
From: Chuan Liu via B4 Relay @ 2026-09-20 10:25 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Neil Armstrong,
	Kevin Hilman, Jerome Brunet, Martin Blumenstingl
  Cc: devicetree, linux-arm-kernel, linux-amlogic, linux-kernel, Chuan Liu

From: Chuan Liu <chuan.liu@amlogic.com>

Add the clk-measure controller node for S7D SoC family.

Signed-off-by: Chuan Liu <chuan.liu@amlogic.com>
---
 arch/arm64/boot/dts/amlogic/amlogic-s7d.dtsi | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/amlogic-s7d.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-s7d.dtsi
index 0c4417bcd682..5593ff9e07eb 100644
--- a/arch/arm64/boot/dts/amlogic/amlogic-s7d.dtsi
+++ b/arch/arm64/boot/dts/amlogic/amlogic-s7d.dtsi
@@ -212,6 +212,11 @@ ao-secure@10220 {
 				reg = <0x0 0x10220 0x0 0x140>;
 				amlogic,has-chip-id;
 			};
+
+			clk_msr: clock-measure@48000 {
+				compatible = "amlogic,s7d-clk-measure";
+				reg = <0x0 0x48000 0x0 0x1c>;
+			};
 		};
 	};
 };

-- 
2.42.0



_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* [PATCH v2 11/12] arm64: dts: amlogic: s6: Add clk-measure controller node
  2026-09-20 10:25 [PATCH v2 00/12] soc: amlogic: clk-measure: Add support for more SoCs Chuan Liu via B4 Relay
                   ` (9 preceding siblings ...)
  2026-09-20 10:25 ` [PATCH v2 10/12] arm64: dts: amlogic: s7d: " Chuan Liu via B4 Relay
@ 2026-09-20 10:25 ` Chuan Liu via B4 Relay
  2026-09-20 10:25 ` [PATCH v2 12/12] arm64: dts: amlogic: a9: " Chuan Liu via B4 Relay
  2026-09-30 13:22 ` [PATCH v2 00/12] soc: amlogic: clk-measure: Add support for more SoCs Neil Armstrong
  12 siblings, 0 replies; 16+ messages in thread
From: Chuan Liu via B4 Relay @ 2026-09-20 10:25 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Neil Armstrong,
	Kevin Hilman, Jerome Brunet, Martin Blumenstingl
  Cc: devicetree, linux-arm-kernel, linux-amlogic, linux-kernel, Chuan Liu

From: Chuan Liu <chuan.liu@amlogic.com>

Add the clk-measure controller node for S6 SoC family.

Signed-off-by: Chuan Liu <chuan.liu@amlogic.com>
---
 arch/arm64/boot/dts/amlogic/amlogic-s6.dtsi | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/amlogic-s6.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-s6.dtsi
index ab3acef2b147..b0a1a05297ce 100644
--- a/arch/arm64/boot/dts/amlogic/amlogic-s6.dtsi
+++ b/arch/arm64/boot/dts/amlogic/amlogic-s6.dtsi
@@ -217,6 +217,11 @@ ao-secure@10220 {
 				reg = <0x0 0x10220 0x0 0x140>;
 				amlogic,has-chip-id;
 			};
+
+			clk_msr: clock-measure@48000 {
+				compatible = "amlogic,s6-clk-measure";
+				reg = <0x0 0x48000 0x0 0x1c>;
+			};
 		};
 	};
 };

-- 
2.42.0



_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* [PATCH v2 12/12] arm64: dts: amlogic: a9: Add clk-measure controller node
  2026-09-20 10:25 [PATCH v2 00/12] soc: amlogic: clk-measure: Add support for more SoCs Chuan Liu via B4 Relay
                   ` (10 preceding siblings ...)
  2026-09-20 10:25 ` [PATCH v2 11/12] arm64: dts: amlogic: s6: " Chuan Liu via B4 Relay
@ 2026-09-20 10:25 ` Chuan Liu via B4 Relay
  2026-09-30 13:22 ` [PATCH v2 00/12] soc: amlogic: clk-measure: Add support for more SoCs Neil Armstrong
  12 siblings, 0 replies; 16+ messages in thread
From: Chuan Liu via B4 Relay @ 2026-09-20 10:25 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Neil Armstrong,
	Kevin Hilman, Jerome Brunet, Martin Blumenstingl
  Cc: devicetree, linux-arm-kernel, linux-amlogic, linux-kernel, Chuan Liu

From: Chuan Liu <chuan.liu@amlogic.com>

Add the clk-measure controller node for A9 SoC family.

Signed-off-by: Chuan Liu <chuan.liu@amlogic.com>
---
 arch/arm64/boot/dts/amlogic/amlogic-a9.dtsi | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/amlogic-a9.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-a9.dtsi
index b0e0fadeed82..91f4cf319b0d 100644
--- a/arch/arm64/boot/dts/amlogic/amlogic-a9.dtsi
+++ b/arch/arm64/boot/dts/amlogic/amlogic-a9.dtsi
@@ -185,6 +185,11 @@ gpio_intc: interrupt-controller@4080 {
 				amlogic,channel-interrupts =
 					<10 11 12 13 14 15 16 17 18 19 20 21>;
 			};
+
+			clk_msr: clock-measure@48000 {
+				compatible = "amlogic,a9-clk-measure";
+				reg = <0x0 0x48000 0x0 0x1c>;
+			};
 		};
 
 		gic: interrupt-controller@ff800000 {

-- 
2.42.0



_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* Re: [PATCH v2 01/12] dt-bindings: soc: amlogic: Reordering compatible of clk-measure
  2026-09-20 10:25 ` [PATCH v2 01/12] dt-bindings: soc: amlogic: Reordering compatible of clk-measure Chuan Liu via B4 Relay
@ 2026-09-24 12:56   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 16+ messages in thread
From: Krzysztof Kozlowski @ 2026-09-24 12:56 UTC (permalink / raw)
  To: Chuan Liu
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Neil Armstrong,
	Kevin Hilman, Jerome Brunet, Martin Blumenstingl, devicetree,
	linux-arm-kernel, linux-amlogic, linux-kernel

On Sun, Sep 20, 2026 at 06:25:03PM +0800, Chuan Liu wrote:
> Sort the compatible properties defined by clk-measure in alphabetical
> order.
> 
> Signed-off-by: Chuan Liu <chuan.liu@amlogic.com>
> ---
>  .../bindings/soc/amlogic/amlogic,meson-gx-clk-measure.yaml     | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)

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

Best regards,
Krzysztof


_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* Re: [PATCH v2 02/12] dt-bindings: soc: amlogic: Add clk-measure compatible to support more SoCs
  2026-09-20 10:25 ` [PATCH v2 02/12] dt-bindings: soc: amlogic: Add clk-measure compatible to support more SoCs Chuan Liu via B4 Relay
@ 2026-09-24 12:57   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 16+ messages in thread
From: Krzysztof Kozlowski @ 2026-09-24 12:57 UTC (permalink / raw)
  To: Chuan Liu
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Neil Armstrong,
	Kevin Hilman, Jerome Brunet, Martin Blumenstingl, devicetree,
	linux-arm-kernel, linux-amlogic, linux-kernel

On Sun, Sep 20, 2026 at 06:25:04PM +0800, Chuan Liu wrote:
> Add clk-measure compatible for amlogic A5, A4, S7, S7D, S6 and A9 SoCs.
> 
> Although the clk-measure IP itself has little hardware difference across
> SoCs, the clock inputs connected to the clk-measure block vary between
> SoCs. Therefore, it is difficult to fall back to the configuration used
> by previous SoCs.
> 
> Signed-off-by: Chuan Liu <chuan.liu@amlogic.com>
> ---
>  .../bindings/soc/amlogic/amlogic,meson-gx-clk-measure.yaml          | 6 ++++++
>  1 file changed, 6 insertions(+)

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

Best regards,
Krzysztof


_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* Re: [PATCH v2 00/12] soc: amlogic: clk-measure: Add support for more SoCs
  2026-09-20 10:25 [PATCH v2 00/12] soc: amlogic: clk-measure: Add support for more SoCs Chuan Liu via B4 Relay
                   ` (11 preceding siblings ...)
  2026-09-20 10:25 ` [PATCH v2 12/12] arm64: dts: amlogic: a9: " Chuan Liu via B4 Relay
@ 2026-09-30 13:22 ` Neil Armstrong
  12 siblings, 0 replies; 16+ messages in thread
From: Neil Armstrong @ 2026-09-30 13:22 UTC (permalink / raw)
  To: chuan.liu, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Kevin Hilman, Jerome Brunet, Martin Blumenstingl
  Cc: devicetree, linux-arm-kernel, linux-amlogic, linux-kernel

On 9/20/26 12:25, Chuan Liu via B4 Relay wrote:
> This patch series adds clk-measure support for the Amlogic A5, A4, S7,
> S7D, S6 and A9 SoCs, listed in the order of their release.
> 
> The clock names for the clk-measure channels are kept consistent with
> those used by the clock driver as much as possible, making it easier to
> identify the relationship between the clk-measure channels and the
> corresponding clocks in the clock driver.
> 
> This patchset also includes an additional patch to optimize memory usage:
>    - soc: amlogic: clk-measure: Optimize CLK_MSR_ID to reduce memory usage
> 
> To avoid requiring everyone to spend additional effort on a separate
> patchset, I have included it in this series. Please feel free to point
> out if this is not appropriate for this series.
> 
> To improve maintainability, this patchset also includes a patch to reorder
> the dt-binding and the compatible entries in the driver.
> 
> To minimize unrelated changes, the existing clk-measure channel tables in
> the driver are left in their original order. The tables for the newly
> supported SoCs are ordered alphabetically.
> 
> Signed-off-by: Chuan Liu <chuan.liu@amlogic.com>
> ---
> Changes in v2:
> - Reorder the dt-binding and the compatible entries in the driver
>    alphabetically.
> - Order the clk-measure channel tables for the newly supported SoCs
>    alphabetically.
> - Add the const qualifier to the A9 clk-measure channel table.
> - Rename "exit_Tsin_B_CLK_IN" to "ext_Tsin_B_CLK_IN" in the A9 clk-measure
>    channel table.
> - Link to v1: https://lore.kernel.org/r/20260911-more-socs-to-support-clk_measure-v1-0-940e269aa52f@amlogic.com
> 
> ---
> Chuan Liu (12):
>        dt-bindings: soc: amlogic: Reordering compatible of clk-measure
>        dt-bindings: soc: amlogic: Add clk-measure compatible to support more SoCs
>        soc: amlogic: clk-measure: Support more measurement channels
>        soc: amlogic: clk-measure: Align compatible entries with DT bindings
>        soc: amlogic: clk-measure: Add support for more SoCs
>        soc: amlogic: clk-measure: Optimize CLK_MSR_ID to reduce memory usage
>        arm64: dts: amlogic: a5: Add clk-measure controller node
>        arm64: dts: amlogic: a4: Add clk-measure controller node
>        arm64: dts: amlogic: s7: Add clk-measure controller node
>        arm64: dts: amlogic: s7d: Add clk-measure controller node
>        arm64: dts: amlogic: s6: Add clk-measure controller node
>        arm64: dts: amlogic: a9: Add clk-measure controller node
> 
>   .../soc/amlogic/amlogic,meson-gx-clk-measure.yaml  |  16 +-
>   arch/arm64/boot/dts/amlogic/amlogic-a4.dtsi        |   5 +
>   arch/arm64/boot/dts/amlogic/amlogic-a5.dtsi        |   5 +
>   arch/arm64/boot/dts/amlogic/amlogic-a9.dtsi        |   5 +
>   arch/arm64/boot/dts/amlogic/amlogic-s6.dtsi        |   5 +
>   arch/arm64/boot/dts/amlogic/amlogic-s7.dtsi        |   5 +
>   arch/arm64/boot/dts/amlogic/amlogic-s7d.dtsi       |   5 +
>   drivers/soc/amlogic/meson-clk-measure.c            | 927 ++++++++++++++++++++-
>   8 files changed, 953 insertions(+), 20 deletions(-)
> ---
> base-commit: a2530c83c458a503e55219966217dfd1c36a385e
> change-id: 20260710-more-socs-to-support-clk_measure-c826f8ab9e68
> 
> Best regards,

For the whole serie:
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>

Thanks,
Neil

_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

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

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-20 10:25 [PATCH v2 00/12] soc: amlogic: clk-measure: Add support for more SoCs Chuan Liu via B4 Relay
2026-09-20 10:25 ` [PATCH v2 01/12] dt-bindings: soc: amlogic: Reordering compatible of clk-measure Chuan Liu via B4 Relay
2026-09-24 12:56   ` Krzysztof Kozlowski
2026-09-20 10:25 ` [PATCH v2 02/12] dt-bindings: soc: amlogic: Add clk-measure compatible to support more SoCs Chuan Liu via B4 Relay
2026-09-24 12:57   ` Krzysztof Kozlowski
2026-09-20 10:25 ` [PATCH v2 03/12] soc: amlogic: clk-measure: Support more measurement channels Chuan Liu via B4 Relay
2026-09-20 10:25 ` [PATCH v2 04/12] soc: amlogic: clk-measure: Align compatible entries with DT bindings Chuan Liu via B4 Relay
2026-09-20 10:25 ` [PATCH v2 05/12] soc: amlogic: clk-measure: Add support for more SoCs Chuan Liu via B4 Relay
2026-09-20 10:25 ` [PATCH v2 06/12] soc: amlogic: clk-measure: Optimize CLK_MSR_ID to reduce memory usage Chuan Liu via B4 Relay
2026-09-20 10:25 ` [PATCH v2 07/12] arm64: dts: amlogic: a5: Add clk-measure controller node Chuan Liu via B4 Relay
2026-09-20 10:25 ` [PATCH v2 08/12] arm64: dts: amlogic: a4: " Chuan Liu via B4 Relay
2026-09-20 10:25 ` [PATCH v2 09/12] arm64: dts: amlogic: s7: " Chuan Liu via B4 Relay
2026-09-20 10:25 ` [PATCH v2 10/12] arm64: dts: amlogic: s7d: " Chuan Liu via B4 Relay
2026-09-20 10:25 ` [PATCH v2 11/12] arm64: dts: amlogic: s6: " Chuan Liu via B4 Relay
2026-09-20 10:25 ` [PATCH v2 12/12] arm64: dts: amlogic: a9: " Chuan Liu via B4 Relay
2026-09-30 13:22 ` [PATCH v2 00/12] soc: amlogic: clk-measure: Add support for more SoCs Neil Armstrong

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

all inboxes | Powered by JetHome®