* [PATCH v2 0/6] ASoC: codecs: lpass-macro: complete sm6115 support
@ 2025-10-31 11:47 Srinivas Kandagatla
2025-10-31 11:47 ` [PATCH v2 1/6] ASoC: codecs: lpass-tx-macro: fix SM6115 support Srinivas Kandagatla
` (5 more replies)
0 siblings, 6 replies; 8+ messages in thread
From: Srinivas Kandagatla @ 2025-10-31 11:47 UTC (permalink / raw)
To: robh, broonie
Cc: krzk+dt, conor+dt, devicetree, perex, tiwai, srini, linux-sound,
linux-kernel, linux-arm-msm, alexey.klimov, konradybcio,
Srinivas Kandagatla
This patch series fixes SM6115 lpass codec macro support and adding
missing dt-bindings to complete support for SM6115.
SM6115 lpass codec macro support is added partially and broken to some
extent, Fix this broken support and add complete lpass macro support for
this SoC.
Changes since v1:
- cleaned up va-macro bindings for clock-names.
- cleaned up va-macro codec driver to include soundwire reset
for sm6115
- updated tx and rx codec driver and bindings to have a dedicated
compatible due to changes in number of clocks.
Srinivas Kandagatla (6):
ASoC: codecs: lpass-tx-macro: fix SM6115 support
ASoC: dt-bindings: qcom,lpass-rx-macro: Add sm6115 LPASS RX
ASoC: dt-bindings: qcom,lpass-va-macro: re-arrange clock-names
ASoC: dt-bindings: qcom,lpass-va-macro: Add sm6115 LPASS VA
ASoC: codecs: lpass-va-macro: add SM6115 compatible
ASoC: codecs: lpass-rx-macro: add SM6115 compatible
.../bindings/sound/qcom,lpass-rx-macro.yaml | 18 +++++++
.../bindings/sound/qcom,lpass-va-macro.yaml | 49 +++++++++++++------
sound/soc/codecs/lpass-rx-macro.c | 3 ++
sound/soc/codecs/lpass-tx-macro.c | 1 +
sound/soc/codecs/lpass-va-macro.c | 1 +
5 files changed, 58 insertions(+), 14 deletions(-)
--
2.51.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 1/6] ASoC: codecs: lpass-tx-macro: fix SM6115 support
2025-10-31 11:47 [PATCH v2 0/6] ASoC: codecs: lpass-macro: complete sm6115 support Srinivas Kandagatla
@ 2025-10-31 11:47 ` Srinivas Kandagatla
2025-10-31 11:49 ` Srinivas Kandagatla
2025-10-31 11:47 ` [PATCH v2 2/6] ASoC: dt-bindings: qcom,lpass-rx-macro: Add sm6115 LPASS RX Srinivas Kandagatla
` (4 subsequent siblings)
5 siblings, 1 reply; 8+ messages in thread
From: Srinivas Kandagatla @ 2025-10-31 11:47 UTC (permalink / raw)
To: robh, broonie
Cc: krzk+dt, conor+dt, devicetree, perex, tiwai, srini, linux-sound,
linux-kernel, linux-arm-msm, alexey.klimov, konradybcio,
Srinivas Kandagatla, Stable
SM6115 does have soundwire controller in tx. For some reason
we ended up with this incorrect patch.
Fix this by adding the flag to reflect this in SoC data.
Fixes: 510c46884299 ("ASoC: codecs: lpass-tx-macro: Add SM6115 support")
Cc: <Stable@vger.kernel.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
---
sound/soc/codecs/lpass-tx-macro.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/sound/soc/codecs/lpass-tx-macro.c b/sound/soc/codecs/lpass-tx-macro.c
index 1aefd3bde818..ac87c8874588 100644
--- a/sound/soc/codecs/lpass-tx-macro.c
+++ b/sound/soc/codecs/lpass-tx-macro.c
@@ -2474,6 +2474,7 @@ static const struct tx_macro_data lpass_ver_9_2 = {
static const struct tx_macro_data lpass_ver_10_sm6115 = {
.flags = LPASS_MACRO_FLAG_HAS_NPL_CLOCK,
+ LPASS_MACRO_FLAG_RESET_SWR,
.ver = LPASS_VER_10_0_0,
.extra_widgets = tx_macro_dapm_widgets_v9_2,
.extra_widgets_num = ARRAY_SIZE(tx_macro_dapm_widgets_v9_2),
--
2.51.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 2/6] ASoC: dt-bindings: qcom,lpass-rx-macro: Add sm6115 LPASS RX
2025-10-31 11:47 [PATCH v2 0/6] ASoC: codecs: lpass-macro: complete sm6115 support Srinivas Kandagatla
2025-10-31 11:47 ` [PATCH v2 1/6] ASoC: codecs: lpass-tx-macro: fix SM6115 support Srinivas Kandagatla
@ 2025-10-31 11:47 ` Srinivas Kandagatla
2025-10-31 11:47 ` [PATCH v2 3/6] ASoC: dt-bindings: qcom,lpass-va-macro: re-arrange clock-names Srinivas Kandagatla
` (3 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Srinivas Kandagatla @ 2025-10-31 11:47 UTC (permalink / raw)
To: robh, broonie
Cc: krzk+dt, conor+dt, devicetree, perex, tiwai, srini, linux-sound,
linux-kernel, linux-arm-msm, alexey.klimov, konradybcio,
Srinivas Kandagatla
Add bindings for Qualcomm SM6115 SoC Low Power Audio SubSystem (LPASS)
RX macro codec. This SoC does not provide macro clock so reflect that in
the bindings.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
---
.../bindings/sound/qcom,lpass-rx-macro.yaml | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/Documentation/devicetree/bindings/sound/qcom,lpass-rx-macro.yaml b/Documentation/devicetree/bindings/sound/qcom,lpass-rx-macro.yaml
index b869469a5848..2eed2277511f 100644
--- a/Documentation/devicetree/bindings/sound/qcom,lpass-rx-macro.yaml
+++ b/Documentation/devicetree/bindings/sound/qcom,lpass-rx-macro.yaml
@@ -14,6 +14,7 @@ properties:
oneOf:
- enum:
- qcom,sc7280-lpass-rx-macro
+ - qcom,sm6115-lpass-rx-macro
- qcom,sm8250-lpass-rx-macro
- qcom,sm8450-lpass-rx-macro
- qcom,sm8550-lpass-rx-macro
@@ -81,6 +82,23 @@ allOf:
- const: npl
- const: fsgen
+ - if:
+ properties:
+ compatible:
+ enum:
+ - qcom,sm6115-lpass-rx-macro
+ then:
+ properties:
+ clocks:
+ minItems: 4
+ maxItems: 4
+ clock-names:
+ items:
+ - const: mclk
+ - const: npl
+ - const: dcodec
+ - const: fsgen
+
- if:
properties:
compatible:
--
2.51.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 3/6] ASoC: dt-bindings: qcom,lpass-va-macro: re-arrange clock-names
2025-10-31 11:47 [PATCH v2 0/6] ASoC: codecs: lpass-macro: complete sm6115 support Srinivas Kandagatla
2025-10-31 11:47 ` [PATCH v2 1/6] ASoC: codecs: lpass-tx-macro: fix SM6115 support Srinivas Kandagatla
2025-10-31 11:47 ` [PATCH v2 2/6] ASoC: dt-bindings: qcom,lpass-rx-macro: Add sm6115 LPASS RX Srinivas Kandagatla
@ 2025-10-31 11:47 ` Srinivas Kandagatla
2025-10-31 11:47 ` [PATCH v2 4/6] ASoC: dt-bindings: qcom,lpass-va-macro: Add sm6115 LPASS VA Srinivas Kandagatla
` (2 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Srinivas Kandagatla @ 2025-10-31 11:47 UTC (permalink / raw)
To: robh, broonie
Cc: krzk+dt, conor+dt, devicetree, perex, tiwai, srini, linux-sound,
linux-kernel, linux-arm-msm, alexey.klimov, konradybcio,
Srinivas Kandagatla
re-arrange clock-names in the bindings to be more specific to the SoC
compatibles, this will give more flexibility to add new SoC's which do
not support some clocks.
Move all the clock-names under the SoC compatible rather than keeping
int on the top level, this makes it more align with other lpass codec
macros.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
---
.../bindings/sound/qcom,lpass-va-macro.yaml | 35 +++++++++++--------
1 file changed, 20 insertions(+), 15 deletions(-)
diff --git a/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml b/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
index 5b450f227b70..d3851a67401e 100644
--- a/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
+++ b/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
@@ -42,11 +42,7 @@ properties:
clock-names:
minItems: 1
- items:
- - const: mclk
- - const: macro
- - const: dcodec
- - const: npl
+ maxItems: 4
clock-output-names:
maxItems: 1
@@ -91,16 +87,18 @@ allOf:
clocks:
maxItems: 1
clock-names:
- maxItems: 1
+ items:
+ - const: mclk
else:
properties:
clocks:
minItems: 3
maxItems: 3
clock-names:
- minItems: 3
- maxItems: 3
-
+ items:
+ - const: mclk
+ - const: macro
+ - const: dcodec
- if:
properties:
compatible:
@@ -112,8 +110,10 @@ allOf:
minItems: 3
maxItems: 3
clock-names:
- minItems: 3
- maxItems: 3
+ items:
+ - const: mclk
+ - const: macro
+ - const: dcodec
- if:
properties:
@@ -128,8 +128,11 @@ allOf:
minItems: 4
maxItems: 4
clock-names:
- minItems: 4
- maxItems: 4
+ items:
+ - const: mclk
+ - const: macro
+ - const: dcodec
+ - const: npl
- if:
properties:
@@ -143,8 +146,10 @@ allOf:
minItems: 3
maxItems: 3
clock-names:
- minItems: 3
- maxItems: 3
+ items:
+ - const: mclk
+ - const: macro
+ - const: dcodec
unevaluatedProperties: false
--
2.51.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 4/6] ASoC: dt-bindings: qcom,lpass-va-macro: Add sm6115 LPASS VA
2025-10-31 11:47 [PATCH v2 0/6] ASoC: codecs: lpass-macro: complete sm6115 support Srinivas Kandagatla
` (2 preceding siblings ...)
2025-10-31 11:47 ` [PATCH v2 3/6] ASoC: dt-bindings: qcom,lpass-va-macro: re-arrange clock-names Srinivas Kandagatla
@ 2025-10-31 11:47 ` Srinivas Kandagatla
2025-10-31 11:47 ` [PATCH v2 5/6] ASoC: codecs: lpass-va-macro: add SM6115 compatible Srinivas Kandagatla
2025-10-31 11:47 ` [PATCH v2 6/6] ASoC: codecs: lpass-rx-macro: " Srinivas Kandagatla
5 siblings, 0 replies; 8+ messages in thread
From: Srinivas Kandagatla @ 2025-10-31 11:47 UTC (permalink / raw)
To: robh, broonie
Cc: krzk+dt, conor+dt, devicetree, perex, tiwai, srini, linux-sound,
linux-kernel, linux-arm-msm, alexey.klimov, konradybcio,
Srinivas Kandagatla
Add bindings for Qualcomm SM6115 SoC Low Power Audio SubSystem (LPASS)
VA macro codec. This SoC does not provide macro clock so reflect that in
the bindings.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
---
.../bindings/sound/qcom,lpass-va-macro.yaml | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml b/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
index d3851a67401e..5c42b2b323ee 100644
--- a/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
+++ b/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
@@ -14,6 +14,7 @@ properties:
oneOf:
- enum:
- qcom,sc7280-lpass-va-macro
+ - qcom,sm6115-lpass-va-macro
- qcom,sm8250-lpass-va-macro
- qcom,sm8450-lpass-va-macro
- qcom,sm8550-lpass-va-macro
@@ -99,6 +100,21 @@ allOf:
- const: mclk
- const: macro
- const: dcodec
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: qcom,sm6115-lpass-va-macro
+ then:
+ properties:
+ clocks:
+ minItems: 3
+ maxItems: 3
+ clock-names:
+ items:
+ - const: mclk
+ - const: dcodec
+ - const: npl
- if:
properties:
compatible:
--
2.51.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 5/6] ASoC: codecs: lpass-va-macro: add SM6115 compatible
2025-10-31 11:47 [PATCH v2 0/6] ASoC: codecs: lpass-macro: complete sm6115 support Srinivas Kandagatla
` (3 preceding siblings ...)
2025-10-31 11:47 ` [PATCH v2 4/6] ASoC: dt-bindings: qcom,lpass-va-macro: Add sm6115 LPASS VA Srinivas Kandagatla
@ 2025-10-31 11:47 ` Srinivas Kandagatla
2025-10-31 11:47 ` [PATCH v2 6/6] ASoC: codecs: lpass-rx-macro: " Srinivas Kandagatla
5 siblings, 0 replies; 8+ messages in thread
From: Srinivas Kandagatla @ 2025-10-31 11:47 UTC (permalink / raw)
To: robh, broonie
Cc: krzk+dt, conor+dt, devicetree, perex, tiwai, srini, linux-sound,
linux-kernel, linux-arm-msm, alexey.klimov, konradybcio,
Srinivas Kandagatla
SM6115 does not have "macro" clock, so its bindings differ with existing
SoC support in va-macro. So add dedicated compatible in both driver and
dt-bindings to be able to address that difference.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
---
sound/soc/codecs/lpass-va-macro.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/sound/soc/codecs/lpass-va-macro.c b/sound/soc/codecs/lpass-va-macro.c
index fbe5ebeeaa80..902abc9843fa 100644
--- a/sound/soc/codecs/lpass-va-macro.c
+++ b/sound/soc/codecs/lpass-va-macro.c
@@ -1759,6 +1759,7 @@ static const struct dev_pm_ops va_macro_pm_ops = {
static const struct of_device_id va_macro_dt_match[] = {
{ .compatible = "qcom,sc7280-lpass-va-macro", .data = &sm8250_va_data },
+ { .compatible = "qcom,sm6115-lpass-va-macro", .data = &sm8450_va_data },
{ .compatible = "qcom,sm8250-lpass-va-macro", .data = &sm8250_va_data },
{ .compatible = "qcom,sm8450-lpass-va-macro", .data = &sm8450_va_data },
{ .compatible = "qcom,sm8550-lpass-va-macro", .data = &sm8550_va_data },
--
2.51.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 6/6] ASoC: codecs: lpass-rx-macro: add SM6115 compatible
2025-10-31 11:47 [PATCH v2 0/6] ASoC: codecs: lpass-macro: complete sm6115 support Srinivas Kandagatla
` (4 preceding siblings ...)
2025-10-31 11:47 ` [PATCH v2 5/6] ASoC: codecs: lpass-va-macro: add SM6115 compatible Srinivas Kandagatla
@ 2025-10-31 11:47 ` Srinivas Kandagatla
5 siblings, 0 replies; 8+ messages in thread
From: Srinivas Kandagatla @ 2025-10-31 11:47 UTC (permalink / raw)
To: robh, broonie
Cc: krzk+dt, conor+dt, devicetree, perex, tiwai, srini, linux-sound,
linux-kernel, linux-arm-msm, alexey.klimov, konradybcio,
Srinivas Kandagatla
SM6115 does not have "macro" clock, so its bindings differ with existing
SoC support in rx-macro. So add dedicated compatible in both driver and
dt-bindings to be able to address that difference.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
---
sound/soc/codecs/lpass-rx-macro.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/sound/soc/codecs/lpass-rx-macro.c b/sound/soc/codecs/lpass-rx-macro.c
index 9053c93bd44c..f889fd17f166 100644
--- a/sound/soc/codecs/lpass-rx-macro.c
+++ b/sound/soc/codecs/lpass-rx-macro.c
@@ -3951,6 +3951,9 @@ static const struct of_device_id rx_macro_dt_match[] = {
.compatible = "qcom,sc7280-lpass-rx-macro",
.data = (void *)LPASS_MACRO_FLAG_HAS_NPL_CLOCK,
+ }, {
+ .compatible = "qcom,sm6115-lpass-rx-macro",
+ .data = (void *)LPASS_MACRO_FLAG_HAS_NPL_CLOCK,
}, {
.compatible = "qcom,sm8250-lpass-rx-macro",
.data = (void *)LPASS_MACRO_FLAG_HAS_NPL_CLOCK,
--
2.51.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2 1/6] ASoC: codecs: lpass-tx-macro: fix SM6115 support
2025-10-31 11:47 ` [PATCH v2 1/6] ASoC: codecs: lpass-tx-macro: fix SM6115 support Srinivas Kandagatla
@ 2025-10-31 11:49 ` Srinivas Kandagatla
0 siblings, 0 replies; 8+ messages in thread
From: Srinivas Kandagatla @ 2025-10-31 11:49 UTC (permalink / raw)
To: robh, broonie
Cc: krzk+dt, conor+dt, devicetree, perex, tiwai, srini, linux-sound,
linux-kernel, linux-arm-msm, alexey.klimov, konradybcio, Stable
On 10/31/25 11:47 AM, Srinivas Kandagatla wrote:
> SM6115 does have soundwire controller in tx. For some reason
> we ended up with this incorrect patch.
>
> Fix this by adding the flag to reflect this in SoC data.
>
> Fixes: 510c46884299 ("ASoC: codecs: lpass-tx-macro: Add SM6115 support")
> Cc: <Stable@vger.kernel.org>
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
> ---
> sound/soc/codecs/lpass-tx-macro.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/sound/soc/codecs/lpass-tx-macro.c b/sound/soc/codecs/lpass-tx-macro.c
> index 1aefd3bde818..ac87c8874588 100644
> --- a/sound/soc/codecs/lpass-tx-macro.c
> +++ b/sound/soc/codecs/lpass-tx-macro.c
> @@ -2474,6 +2474,7 @@ static const struct tx_macro_data lpass_ver_9_2 = {
>
> static const struct tx_macro_data lpass_ver_10_sm6115 = {
> .flags = LPASS_MACRO_FLAG_HAS_NPL_CLOCK,
> + LPASS_MACRO_FLAG_RESET_SWR,
Looks like send a incorrect patch here..
will send a v3
--srini> .ver = LPASS_VER_10_0_0,
> .extra_widgets = tx_macro_dapm_widgets_v9_2,
> .extra_widgets_num = ARRAY_SIZE(tx_macro_dapm_widgets_v9_2),
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-10-31 11:50 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-31 11:47 [PATCH v2 0/6] ASoC: codecs: lpass-macro: complete sm6115 support Srinivas Kandagatla
2025-10-31 11:47 ` [PATCH v2 1/6] ASoC: codecs: lpass-tx-macro: fix SM6115 support Srinivas Kandagatla
2025-10-31 11:49 ` Srinivas Kandagatla
2025-10-31 11:47 ` [PATCH v2 2/6] ASoC: dt-bindings: qcom,lpass-rx-macro: Add sm6115 LPASS RX Srinivas Kandagatla
2025-10-31 11:47 ` [PATCH v2 3/6] ASoC: dt-bindings: qcom,lpass-va-macro: re-arrange clock-names Srinivas Kandagatla
2025-10-31 11:47 ` [PATCH v2 4/6] ASoC: dt-bindings: qcom,lpass-va-macro: Add sm6115 LPASS VA Srinivas Kandagatla
2025-10-31 11:47 ` [PATCH v2 5/6] ASoC: codecs: lpass-va-macro: add SM6115 compatible Srinivas Kandagatla
2025-10-31 11:47 ` [PATCH v2 6/6] ASoC: codecs: lpass-rx-macro: " Srinivas Kandagatla
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox