* [PATCH v2 0/2] ASoC: codec: lpass-va: add npl clock support
@ 2022-11-18 7:18 Srinivas Kandagatla
2022-11-18 7:18 ` [PATCH v2 1/2] ASoC: dt-bindings: lpass-va: add npl clock for new VA macro Srinivas Kandagatla
2022-11-18 7:18 ` [PATCH v2 2/2] ASoC: codecs: va-macro: add npl clk Srinivas Kandagatla
0 siblings, 2 replies; 6+ messages in thread
From: Srinivas Kandagatla @ 2022-11-18 7:18 UTC (permalink / raw)
To: broonie
Cc: alsa-devel, lgirdwood, perex, tiwai, linux-kernel, robh+dt,
krzysztof.kozlowski+dt, devicetree, Srinivas Kandagatla
New versions of VA Macro has soundwire integrated, so handle the soundwire npl
clock correctly in the codec driver and add related bindings.
Changes since v1:
- updated bindings as per Kryz comments.
- added error handling during npl and mclk enable.
Srinivas Kandagatla (2):
ASoC: dt-bindings: lpass-va: add npl clock for new VA macro
ASoC: codecs: va-macro: add npl clk
.../bindings/sound/qcom,lpass-va-macro.yaml | 63 ++++++++++++++++---
sound/soc/codecs/lpass-va-macro.c | 46 ++++++++++++++
2 files changed, 101 insertions(+), 8 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2 1/2] ASoC: dt-bindings: lpass-va: add npl clock for new VA macro
2022-11-18 7:18 [PATCH v2 0/2] ASoC: codec: lpass-va: add npl clock support Srinivas Kandagatla
@ 2022-11-18 7:18 ` Srinivas Kandagatla
2022-11-18 14:38 ` Krzysztof Kozlowski
2022-12-24 14:40 ` Krzysztof Kozlowski
2022-11-18 7:18 ` [PATCH v2 2/2] ASoC: codecs: va-macro: add npl clk Srinivas Kandagatla
1 sibling, 2 replies; 6+ messages in thread
From: Srinivas Kandagatla @ 2022-11-18 7:18 UTC (permalink / raw)
To: broonie
Cc: alsa-devel, lgirdwood, perex, tiwai, linux-kernel, robh+dt,
krzysztof.kozlowski+dt, devicetree, Srinivas Kandagatla
LPASS VA Macro now has soundwire master to deal with access to
analog mic in low power island use cases. This also means that VA macro
now needs to get hold of the npl clock too. Add clock bindings required
for this.
As part of adding this bindings, also update bindings to be able to
specific and associate the clock names specific to the SoC.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
.../bindings/sound/qcom,lpass-va-macro.yaml | 63 ++++++++++++++++---
1 file changed, 55 insertions(+), 8 deletions(-)
diff --git a/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml b/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
index c36caf90b837..288a1d5ad585 100644
--- a/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
+++ b/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
@@ -27,16 +27,12 @@ properties:
const: 0
clocks:
- maxItems: 3
+ minItems: 1
+ maxItems: 4
clock-names:
- oneOf:
- - items: #for ADSP based platforms
- - const: mclk
- - const: core
- - const: dcodec
- - items: #for ADSP bypass based platforms
- - const: mclk
+ minItems: 1
+ maxItems: 4
clock-output-names:
maxItems: 1
@@ -60,6 +56,57 @@ required:
- compatible
- reg
- "#sound-dai-cells"
+ - clock-names
+ - clocks
+
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: qcom,sc7280-lpass-va-macro
+ then:
+ properties:
+ clocks:
+ maxItems: 1
+ clock-names:
+ items:
+ - const: mclk
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: qcom,sm8250-lpass-va-macro
+ then:
+ properties:
+ clocks:
+ minItems: 3
+ maxItems: 3
+ clock-names:
+ items:
+ - const: mclk
+ - const: core
+ - const: dcodec
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,sc8280xp-lpass-va-macro
+ - qcom,sm8450-lpass-va-macro
+ then:
+ properties:
+ clocks:
+ minItems: 4
+ maxItems: 4
+ clock-names:
+ items:
+ - const: mclk
+ - const: core
+ - const: dcodec
+ - const: npl
additionalProperties: false
--
2.25.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 2/2] ASoC: codecs: va-macro: add npl clk
2022-11-18 7:18 [PATCH v2 0/2] ASoC: codec: lpass-va: add npl clock support Srinivas Kandagatla
2022-11-18 7:18 ` [PATCH v2 1/2] ASoC: dt-bindings: lpass-va: add npl clock for new VA macro Srinivas Kandagatla
@ 2022-11-18 7:18 ` Srinivas Kandagatla
1 sibling, 0 replies; 6+ messages in thread
From: Srinivas Kandagatla @ 2022-11-18 7:18 UTC (permalink / raw)
To: broonie
Cc: alsa-devel, lgirdwood, perex, tiwai, linux-kernel, robh+dt,
krzysztof.kozlowski+dt, devicetree, Srinivas Kandagatla
New versions of VA Macro has soundwire integrated, so handle the soundwire npl
clock correctly in the codec driver.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
sound/soc/codecs/lpass-va-macro.c | 46 +++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+)
diff --git a/sound/soc/codecs/lpass-va-macro.c b/sound/soc/codecs/lpass-va-macro.c
index b0b6cf29cba3..eef8dd5d58f8 100644
--- a/sound/soc/codecs/lpass-va-macro.c
+++ b/sound/soc/codecs/lpass-va-macro.c
@@ -205,6 +205,7 @@ struct va_macro {
int dec_mode[VA_MACRO_NUM_DECIMATORS];
struct regmap *regmap;
struct clk *mclk;
+ struct clk *npl;
struct clk *macro;
struct clk *dcodec;
struct clk *fsgen;
@@ -1332,6 +1333,12 @@ static int fsgen_gate_enable(struct clk_hw *hw)
struct regmap *regmap = va->regmap;
int ret;
+ if (va->has_swr_master) {
+ ret = clk_prepare_enable(va->mclk);
+ if (ret)
+ return ret;
+ }
+
ret = va_macro_mclk_enable(va, true);
if (!va->has_swr_master)
return ret;
@@ -1358,6 +1365,8 @@ static void fsgen_gate_disable(struct clk_hw *hw)
CDC_VA_SWR_CLK_EN_MASK, 0x0);
va_macro_mclk_enable(va, false);
+ if (va->has_swr_master)
+ clk_disable_unprepare(va->mclk);
}
static int fsgen_gate_is_enabled(struct clk_hw *hw)
@@ -1386,6 +1395,9 @@ static int va_macro_register_fsgen_output(struct va_macro *va)
struct clk_init_data init;
int ret;
+ if (va->has_swr_master)
+ parent = va->npl;
+
parent_clk_name = __clk_get_name(parent);
of_property_read_string(np, "clock-output-names", &clk_name);
@@ -1512,6 +1524,16 @@ static int va_macro_probe(struct platform_device *pdev)
/* mclk rate */
clk_set_rate(va->mclk, 2 * VA_MACRO_MCLK_FREQ);
+ if (va->has_swr_master) {
+ va->npl = devm_clk_get(dev, "npl");
+ if (IS_ERR(va->npl)) {
+ ret = PTR_ERR(va->npl);
+ goto err;
+ }
+
+ clk_set_rate(va->npl, 2 * VA_MACRO_MCLK_FREQ);
+ }
+
ret = clk_prepare_enable(va->macro);
if (ret)
goto err;
@@ -1524,6 +1546,12 @@ static int va_macro_probe(struct platform_device *pdev)
if (ret)
goto err_mclk;
+ if (va->has_swr_master) {
+ ret = clk_prepare_enable(va->npl);
+ if (ret)
+ goto err_npl;
+ }
+
ret = va_macro_register_fsgen_output(va);
if (ret)
goto err_clkout;
@@ -1563,6 +1591,9 @@ static int va_macro_probe(struct platform_device *pdev)
return 0;
err_clkout:
+ if (va->has_swr_master)
+ clk_disable_unprepare(va->npl);
+err_npl:
clk_disable_unprepare(va->mclk);
err_mclk:
clk_disable_unprepare(va->dcodec);
@@ -1578,6 +1609,9 @@ static int va_macro_remove(struct platform_device *pdev)
{
struct va_macro *va = dev_get_drvdata(&pdev->dev);
+ if (va->has_swr_master)
+ clk_disable_unprepare(va->npl);
+
clk_disable_unprepare(va->mclk);
clk_disable_unprepare(va->dcodec);
clk_disable_unprepare(va->macro);
@@ -1594,6 +1628,9 @@ static int __maybe_unused va_macro_runtime_suspend(struct device *dev)
regcache_cache_only(va->regmap, true);
regcache_mark_dirty(va->regmap);
+ if (va->has_swr_master)
+ clk_disable_unprepare(va->npl);
+
clk_disable_unprepare(va->mclk);
return 0;
@@ -1610,6 +1647,15 @@ static int __maybe_unused va_macro_runtime_resume(struct device *dev)
return ret;
}
+ if (va->has_swr_master) {
+ ret = clk_prepare_enable(va->npl);
+ if (ret) {
+ clk_disable_unprepare(va->mclk);
+ dev_err(va->dev, "unable to prepare npl\n");
+ return ret;
+ }
+ }
+
regcache_cache_only(va->regmap, false);
regcache_sync(va->regmap);
--
2.25.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2 1/2] ASoC: dt-bindings: lpass-va: add npl clock for new VA macro
2022-11-18 7:18 ` [PATCH v2 1/2] ASoC: dt-bindings: lpass-va: add npl clock for new VA macro Srinivas Kandagatla
@ 2022-11-18 14:38 ` Krzysztof Kozlowski
2022-11-18 14:41 ` Krzysztof Kozlowski
2022-12-24 14:40 ` Krzysztof Kozlowski
1 sibling, 1 reply; 6+ messages in thread
From: Krzysztof Kozlowski @ 2022-11-18 14:38 UTC (permalink / raw)
To: Srinivas Kandagatla, broonie
Cc: alsa-devel, lgirdwood, perex, tiwai, linux-kernel, robh+dt,
krzysztof.kozlowski+dt, devicetree
On 18/11/2022 08:18, Srinivas Kandagatla wrote:
> LPASS VA Macro now has soundwire master to deal with access to
> analog mic in low power island use cases. This also means that VA macro
> now needs to get hold of the npl clock too. Add clock bindings required
> for this.
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 1/2] ASoC: dt-bindings: lpass-va: add npl clock for new VA macro
2022-11-18 14:38 ` Krzysztof Kozlowski
@ 2022-11-18 14:41 ` Krzysztof Kozlowski
0 siblings, 0 replies; 6+ messages in thread
From: Krzysztof Kozlowski @ 2022-11-18 14:41 UTC (permalink / raw)
To: Srinivas Kandagatla, broonie
Cc: alsa-devel, lgirdwood, perex, tiwai, linux-kernel, robh+dt,
krzysztof.kozlowski+dt, devicetree
On 18/11/2022 15:38, Krzysztof Kozlowski wrote:
> On 18/11/2022 08:18, Srinivas Kandagatla wrote:
>> LPASS VA Macro now has soundwire master to deal with access to
>> analog mic in low power island use cases. This also means that VA macro
>> now needs to get hold of the npl clock too. Add clock bindings required
>> for this.
>
>
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
... and not.
+ clock-names:
+ items:
+ - const: mclk
+ - const: core
+ - const: dcodec
This neither matches DTS nor driver. Did you test DTS with the bindings
change?
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 1/2] ASoC: dt-bindings: lpass-va: add npl clock for new VA macro
2022-11-18 7:18 ` [PATCH v2 1/2] ASoC: dt-bindings: lpass-va: add npl clock for new VA macro Srinivas Kandagatla
2022-11-18 14:38 ` Krzysztof Kozlowski
@ 2022-12-24 14:40 ` Krzysztof Kozlowski
1 sibling, 0 replies; 6+ messages in thread
From: Krzysztof Kozlowski @ 2022-12-24 14:40 UTC (permalink / raw)
To: Srinivas Kandagatla, broonie
Cc: alsa-devel, lgirdwood, perex, tiwai, linux-kernel, robh+dt,
krzysztof.kozlowski+dt, devicetree
On 18/11/2022 08:18, Srinivas Kandagatla wrote:
> LPASS VA Macro now has soundwire master to deal with access to
> analog mic in low power island use cases. This also means that VA macro
> now needs to get hold of the npl clock too. Add clock bindings required
> for this.
>
> As part of adding this bindings, also update bindings to be able to
> specific and associate the clock names specific to the SoC.
>
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> ---
> .../bindings/sound/qcom,lpass-va-macro.yaml | 63 ++++++++++++++++---
> 1 file changed, 55 insertions(+), 8 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml b/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
> index c36caf90b837..288a1d5ad585 100644
> --- a/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
> +++ b/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
> @@ -27,16 +27,12 @@ properties:
> const: 0
>
> clocks:
> - maxItems: 3
> + minItems: 1
> + maxItems: 4
>
> clock-names:
> - oneOf:
> - - items: #for ADSP based platforms
> - - const: mclk
> - - const: core
> - - const: dcodec
> - - items: #for ADSP bypass based platforms
> - - const: mclk
> + minItems: 1
> + maxItems: 4
>
> clock-output-names:
> maxItems: 1
> @@ -60,6 +56,57 @@ required:
> - compatible
> - reg
> - "#sound-dai-cells"
> + - clock-names
> + - clocks
> +
> +allOf:
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: qcom,sc7280-lpass-va-macro
> + then:
> + properties:
> + clocks:
> + maxItems: 1
> + clock-names:
> + items:
> + - const: mclk
> +
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: qcom,sm8250-lpass-va-macro
> + then:
> + properties:
> + clocks:
> + minItems: 3
> + maxItems: 3
> + clock-names:
> + items:
> + - const: mclk
> + - const: core
There was no follow up on this patch and I just hit the warning here, so
let me bring this back - that's not correct name. DTS and drivers use macro.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-12-24 14:40 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-18 7:18 [PATCH v2 0/2] ASoC: codec: lpass-va: add npl clock support Srinivas Kandagatla
2022-11-18 7:18 ` [PATCH v2 1/2] ASoC: dt-bindings: lpass-va: add npl clock for new VA macro Srinivas Kandagatla
2022-11-18 14:38 ` Krzysztof Kozlowski
2022-11-18 14:41 ` Krzysztof Kozlowski
2022-12-24 14:40 ` Krzysztof Kozlowski
2022-11-18 7:18 ` [PATCH v2 2/2] ASoC: codecs: va-macro: add npl clk Srinivas Kandagatla
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).