[PATCH 1/2] ASoC: dt-bindings: qcom,lpass-va-csr: Add HeartBeat pulse clock

From: Sarath Ganapathiraju via B4 Relay

Date: Mon Jul 13 2026 - 16:06:09 EST


From: Sarath Ganapathiraju <sarath.ganapathiraju@xxxxxxxxxxxxxxxx>

Add Qualcomm LPASS VA CSR rate generator node that exposes
the lpass_heartbeat_pulse clock on hawi. Also extend the
qcom,lpass-va-macro binding to add qcom,hawi-lpass-va-macro with
its four-clock constraint (mclk, macro, dcodec, heartbeatpulse).

The HeartBeat Pulse (also known as RateGen Pulse) synchronizes the
start of the DMAs and Codec Interfaces for the audio usecase
and can serve as a periodic wakeup source for the DSP.

Signed-off-by: Sarath Ganapathiraju <sarath.ganapathiraju@xxxxxxxxxxxxxxxx>
---
.../bindings/sound/qcom,lpass-va-csr.yaml | 47 ++++++++++++++++++++++
.../bindings/sound/qcom,lpass-va-macro.yaml | 18 +++++++++
2 files changed, 65 insertions(+)

diff --git a/Documentation/devicetree/bindings/sound/qcom,lpass-va-csr.yaml b/Documentation/devicetree/bindings/sound/qcom,lpass-va-csr.yaml
new file mode 100644
index 000000000..794da92ad
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/qcom,lpass-va-csr.yaml
@@ -0,0 +1,47 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/qcom,lpass-va-csr.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm LPASS VA CSR heartbeat pulse clock provider
+
+maintainers:
+ - Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxxxxxxxx>
+ - Sarath Ganapathiraju <sarath.ganapathiraju@xxxxxxxxxxxxxxxx>
+
+description:
+ The LPASS VA CSR block contains the rate generator hardware which
+ produces the heartbeatpulse consumed by the Bolero codec macros
+ (rx, tx, wsa, va). It is modelled as a clock provider
+ so consumers can reference it by name in their clocks list.
+
+properties:
+ compatible:
+ enum:
+ - qcom,hawi-lpass-va-csr
+
+ reg:
+ maxItems: 1
+ description: Must cover the full VA CSR block (base 0x7EE0000, size 0xE000).
+
+ "#clock-cells":
+ const: 0
+ description:
+ Single clock output "lpass_heartbeat_pulse". Consumers reference
+ it by clock-name "heartbeatpulse" in their clocks list.
+
+required:
+ - compatible
+ - reg
+ - "#clock-cells"
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ va-csr@7ee0000 {
+ compatible = "qcom,hawi-lpass-va-csr";
+ reg = <0x0 0x07ee0000 0x0 0xe000>;
+ #clock-cells = <0>;
+ };
diff --git a/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml b/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
index aea31fbda..ae4df8967 100644
--- a/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
+++ b/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
@@ -19,6 +19,7 @@ properties:
- qcom,sm8450-lpass-va-macro
- qcom,sm8550-lpass-va-macro
- qcom,sc8280xp-lpass-va-macro
+ - qcom,hawi-lpass-va-macro
- items:
- enum:
- qcom,eliza-lpass-va-macro
@@ -168,6 +169,23 @@ allOf:
- const: macro
- const: dcodec

+ - if:
+ properties:
+ compatible:
+ contains:
+ const: qcom,hawi-lpass-va-macro
+ then:
+ properties:
+ clocks:
+ minItems: 4
+ maxItems: 4
+ clock-names:
+ items:
+ - const: mclk
+ - const: macro
+ - const: dcodec
+ - const: heartbeatpulse
+
unevaluatedProperties: false

examples:

--
2.34.1