[PATCH v3 0/5] Update Lpass digital codec macro drivers
This patch set is to add support for lpass sc7280 based targets. Upadate compatible name and change of bulk clock voting to optional clock voting in digital codecs va, rx, tx macro drivers. Changes Since V2: -- Add Tx macro deafults for lpass sc7280 Changes Since V1: -- Removed individual clock voting and used bulk clock optional. -- Removed volatile changes and fixed default values. -- Typo errors. Srinivasa Rao Mandadapu (5): ASoC: qcom: Add compatible names in va,wsa,rx,tx codec drivers for sc7280 ASoC: qcom: dt-bindings: Add compatible names for lpass sc7280 digital codecs ASoC: codecs: tx-macro: Enable tx top soundwire mic clock ASoC: codecs: tx-macro: Update tx default values ASoC: codecs: Change bulk clock voting to optional voting in digital codecs
.../bindings/sound/qcom,lpass-rx-macro.yaml | 4 +++- .../bindings/sound/qcom,lpass-tx-macro.yaml | 4 +++- .../bindings/sound/qcom,lpass-va-macro.yaml | 4 +++- .../bindings/sound/qcom,lpass-wsa-macro.yaml | 4 +++- sound/soc/codecs/lpass-rx-macro.c | 3 ++- sound/soc/codecs/lpass-tx-macro.c | 25 +++++++++++++++++++--- sound/soc/codecs/lpass-va-macro.c | 3 ++- sound/soc/codecs/lpass-wsa-macro.c | 1 + 8 files changed, 39 insertions(+), 9 deletions(-)
Add compatible names for sc7280 based targets in digital codec drivers va,wsa,rx and tx.
Signed-off-by: Venkata Prasad Potturu potturu@codeaurora.org Signed-off-by: Srinivasa Rao Mandadapu srivasam@codeaurora.org --- sound/soc/codecs/lpass-rx-macro.c | 1 + sound/soc/codecs/lpass-tx-macro.c | 1 + sound/soc/codecs/lpass-va-macro.c | 1 + sound/soc/codecs/lpass-wsa-macro.c | 1 + 4 files changed, 4 insertions(+)
diff --git a/sound/soc/codecs/lpass-rx-macro.c b/sound/soc/codecs/lpass-rx-macro.c index 196b068..c2b9333 100644 --- a/sound/soc/codecs/lpass-rx-macro.c +++ b/sound/soc/codecs/lpass-rx-macro.c @@ -3577,6 +3577,7 @@ static int rx_macro_remove(struct platform_device *pdev) }
static const struct of_device_id rx_macro_dt_match[] = { + { .compatible = "qcom,sc7280-lpass-rx-macro" }, { .compatible = "qcom,sm8250-lpass-rx-macro" }, { } }; diff --git a/sound/soc/codecs/lpass-tx-macro.c b/sound/soc/codecs/lpass-tx-macro.c index 27a0d5d..5dcae73 100644 --- a/sound/soc/codecs/lpass-tx-macro.c +++ b/sound/soc/codecs/lpass-tx-macro.c @@ -1843,6 +1843,7 @@ static int tx_macro_remove(struct platform_device *pdev) }
static const struct of_device_id tx_macro_dt_match[] = { + { .compatible = "qcom,sc7280-lpass-tx-macro" }, { .compatible = "qcom,sm8250-lpass-tx-macro" }, { } }; diff --git a/sound/soc/codecs/lpass-va-macro.c b/sound/soc/codecs/lpass-va-macro.c index 56c93f4..70f09b4 100644 --- a/sound/soc/codecs/lpass-va-macro.c +++ b/sound/soc/codecs/lpass-va-macro.c @@ -1472,6 +1472,7 @@ static int va_macro_remove(struct platform_device *pdev) }
static const struct of_device_id va_macro_dt_match[] = { + { .compatible = "qcom,sc7280-lpass-va-macro" }, { .compatible = "qcom,sm8250-lpass-va-macro" }, {} }; diff --git a/sound/soc/codecs/lpass-wsa-macro.c b/sound/soc/codecs/lpass-wsa-macro.c index d3ac318..75baf8e 100644 --- a/sound/soc/codecs/lpass-wsa-macro.c +++ b/sound/soc/codecs/lpass-wsa-macro.c @@ -2445,6 +2445,7 @@ static int wsa_macro_remove(struct platform_device *pdev) }
static const struct of_device_id wsa_macro_dt_match[] = { + {.compatible = "qcom,sc7280-lpass-wsa-macro"}, {.compatible = "qcom,sm8250-lpass-wsa-macro"}, {} };
On 08/10/2021 15:09, Srinivasa Rao Mandadapu wrote:
Add compatible names for sc7280 based targets in digital codec drivers va,wsa,rx and tx.
Signed-off-by: Venkata Prasad Potturu potturu@codeaurora.org Signed-off-by: Srinivasa Rao Mandadapu srivasam@codeaurora.org
Reviewed-by: Srinivas Kandagatla srinivas.kandagatla@linaro.org
sound/soc/codecs/lpass-rx-macro.c | 1 + sound/soc/codecs/lpass-tx-macro.c | 1 + sound/soc/codecs/lpass-va-macro.c | 1 + sound/soc/codecs/lpass-wsa-macro.c | 1 + 4 files changed, 4 insertions(+)
diff --git a/sound/soc/codecs/lpass-rx-macro.c b/sound/soc/codecs/lpass-rx-macro.c index 196b068..c2b9333 100644 --- a/sound/soc/codecs/lpass-rx-macro.c +++ b/sound/soc/codecs/lpass-rx-macro.c @@ -3577,6 +3577,7 @@ static int rx_macro_remove(struct platform_device *pdev) }
static const struct of_device_id rx_macro_dt_match[] = {
- { .compatible = "qcom,sc7280-lpass-rx-macro" }, { .compatible = "qcom,sm8250-lpass-rx-macro" }, { } };
diff --git a/sound/soc/codecs/lpass-tx-macro.c b/sound/soc/codecs/lpass-tx-macro.c index 27a0d5d..5dcae73 100644 --- a/sound/soc/codecs/lpass-tx-macro.c +++ b/sound/soc/codecs/lpass-tx-macro.c @@ -1843,6 +1843,7 @@ static int tx_macro_remove(struct platform_device *pdev) }
static const struct of_device_id tx_macro_dt_match[] = {
- { .compatible = "qcom,sc7280-lpass-tx-macro" }, { .compatible = "qcom,sm8250-lpass-tx-macro" }, { } };
diff --git a/sound/soc/codecs/lpass-va-macro.c b/sound/soc/codecs/lpass-va-macro.c index 56c93f4..70f09b4 100644 --- a/sound/soc/codecs/lpass-va-macro.c +++ b/sound/soc/codecs/lpass-va-macro.c @@ -1472,6 +1472,7 @@ static int va_macro_remove(struct platform_device *pdev) }
static const struct of_device_id va_macro_dt_match[] = {
- { .compatible = "qcom,sc7280-lpass-va-macro" }, { .compatible = "qcom,sm8250-lpass-va-macro" }, {} };
diff --git a/sound/soc/codecs/lpass-wsa-macro.c b/sound/soc/codecs/lpass-wsa-macro.c index d3ac318..75baf8e 100644 --- a/sound/soc/codecs/lpass-wsa-macro.c +++ b/sound/soc/codecs/lpass-wsa-macro.c @@ -2445,6 +2445,7 @@ static int wsa_macro_remove(struct platform_device *pdev) }
static const struct of_device_id wsa_macro_dt_match[] = {
- {.compatible = "qcom,sc7280-lpass-wsa-macro"}, {.compatible = "qcom,sm8250-lpass-wsa-macro"}, {} };
Update compatible names in va, wsa, rx and tx macro codes for lpass sc7280
Signed-off-by: Venkata Prasad Potturu potturu@codeaurora.org Signed-off-by: Srinivasa Rao Mandadapu srivasam@codeaurora.org --- Documentation/devicetree/bindings/sound/qcom,lpass-rx-macro.yaml | 4 +++- Documentation/devicetree/bindings/sound/qcom,lpass-tx-macro.yaml | 4 +++- Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml | 4 +++- Documentation/devicetree/bindings/sound/qcom,lpass-wsa-macro.yaml | 4 +++- 4 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/Documentation/devicetree/bindings/sound/qcom,lpass-rx-macro.yaml b/Documentation/devicetree/bindings/sound/qcom,lpass-rx-macro.yaml index 443d556..bc762b3 100644 --- a/Documentation/devicetree/bindings/sound/qcom,lpass-rx-macro.yaml +++ b/Documentation/devicetree/bindings/sound/qcom,lpass-rx-macro.yaml @@ -11,7 +11,9 @@ maintainers:
properties: compatible: - const: qcom,sm8250-lpass-rx-macro + enum: + - qcom,sc7280-lpass-rx-macro + - qcom,sm8250-lpass-rx-macro
reg: maxItems: 1 diff --git a/Documentation/devicetree/bindings/sound/qcom,lpass-tx-macro.yaml b/Documentation/devicetree/bindings/sound/qcom,lpass-tx-macro.yaml index 6b5ca02..74f5386 100644 --- a/Documentation/devicetree/bindings/sound/qcom,lpass-tx-macro.yaml +++ b/Documentation/devicetree/bindings/sound/qcom,lpass-tx-macro.yaml @@ -11,7 +11,9 @@ maintainers:
properties: compatible: - const: qcom,sm8250-lpass-tx-macro + enum: + - qcom,sc7280-lpass-tx-macro + - qcom,sm8250-lpass-tx-macro
reg: maxItems: 1 diff --git a/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml b/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml index 679b49c..99f2c36 100644 --- a/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml +++ b/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml @@ -11,7 +11,9 @@ maintainers:
properties: compatible: - const: qcom,sm8250-lpass-va-macro + enum: + - qcom,sc7280-lpass-va-macro + - qcom,sm8250-lpass-va-macro
reg: maxItems: 1 diff --git a/Documentation/devicetree/bindings/sound/qcom,lpass-wsa-macro.yaml b/Documentation/devicetree/bindings/sound/qcom,lpass-wsa-macro.yaml index 435b019..13cdb8a 100644 --- a/Documentation/devicetree/bindings/sound/qcom,lpass-wsa-macro.yaml +++ b/Documentation/devicetree/bindings/sound/qcom,lpass-wsa-macro.yaml @@ -11,7 +11,9 @@ maintainers:
properties: compatible: - const: qcom,sm8250-lpass-wsa-macro + enum: + - qcom,sc7280-lpass-wsa-macro + - qcom,sm8250-lpass-wsa-macro
reg: maxItems: 1
On Fri, 08 Oct 2021 19:39:01 +0530, Srinivasa Rao Mandadapu wrote:
Update compatible names in va, wsa, rx and tx macro codes for lpass sc7280
Signed-off-by: Venkata Prasad Potturu potturu@codeaurora.org Signed-off-by: Srinivasa Rao Mandadapu srivasam@codeaurora.org
Documentation/devicetree/bindings/sound/qcom,lpass-rx-macro.yaml | 4 +++- Documentation/devicetree/bindings/sound/qcom,lpass-tx-macro.yaml | 4 +++- Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml | 4 +++- Documentation/devicetree/bindings/sound/qcom,lpass-wsa-macro.yaml | 4 +++- 4 files changed, 12 insertions(+), 4 deletions(-)
Running 'make dtbs_check' with the schema in this patch gives the following warnings. Consider if they are expected or the schema is incorrect. These may not be new warnings.
Note that it is not yet a requirement to have 0 warnings for dtbs_check. This will change in the future.
Full log is available here: https://patchwork.ozlabs.org/patch/1538394
codec@3240000: 'clock-frequency' does not match any of the regexes: 'pinctrl-[0-9]+' arch/arm64/boot/dts/qcom/qrb5165-rb5.dt.yaml arch/arm64/boot/dts/qcom/sm8250-hdk.dt.yaml arch/arm64/boot/dts/qcom/sm8250-mtp.dt.yaml arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo-pdx203.dt.yaml arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo-pdx206.dt.yaml
codec@3240000: clock-names:4: 'fsgen' was expected arch/arm64/boot/dts/qcom/qrb5165-rb5.dt.yaml arch/arm64/boot/dts/qcom/sm8250-hdk.dt.yaml arch/arm64/boot/dts/qcom/sm8250-mtp.dt.yaml arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo-pdx203.dt.yaml arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo-pdx206.dt.yaml
codec@3240000: clock-names: Additional items are not allowed ('fsgen' was unexpected) arch/arm64/boot/dts/qcom/qrb5165-rb5.dt.yaml arch/arm64/boot/dts/qcom/sm8250-hdk.dt.yaml arch/arm64/boot/dts/qcom/sm8250-mtp.dt.yaml arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo-pdx203.dt.yaml arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo-pdx206.dt.yaml
codec@3240000: clock-names: ['mclk', 'npl', 'macro', 'dcodec', 'va', 'fsgen'] is too long arch/arm64/boot/dts/qcom/qrb5165-rb5.dt.yaml arch/arm64/boot/dts/qcom/sm8250-hdk.dt.yaml arch/arm64/boot/dts/qcom/sm8250-mtp.dt.yaml arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo-pdx203.dt.yaml arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo-pdx206.dt.yaml
codec@3240000: clocks: [[75, 1], [75, 0], [76, 102, 1], [76, 103, 1], [77, 0], [78]] is too long arch/arm64/boot/dts/qcom/sm8250-hdk.dt.yaml arch/arm64/boot/dts/qcom/sm8250-mtp.dt.yaml
codec@3240000: clocks: [[78, 1], [78, 0], [79, 102, 1], [79, 103, 1], [80, 0], [81]] is too long arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo-pdx203.dt.yaml arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo-pdx206.dt.yaml
codec@3240000: clocks: [[86, 1], [86, 0], [87, 102, 1], [87, 103, 1], [88, 0], [89]] is too long arch/arm64/boot/dts/qcom/qrb5165-rb5.dt.yaml
codec@3370000: 'clock-frequency' does not match any of the regexes: 'pinctrl-[0-9]+' arch/arm64/boot/dts/qcom/qrb5165-rb5.dt.yaml arch/arm64/boot/dts/qcom/sm8250-hdk.dt.yaml arch/arm64/boot/dts/qcom/sm8250-mtp.dt.yaml arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo-pdx203.dt.yaml arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo-pdx206.dt.yaml
codec@3370000: clock-names:1: 'core' was expected arch/arm64/boot/dts/qcom/qrb5165-rb5.dt.yaml arch/arm64/boot/dts/qcom/sm8250-hdk.dt.yaml arch/arm64/boot/dts/qcom/sm8250-mtp.dt.yaml arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo-pdx203.dt.yaml arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo-pdx206.dt.yaml
On Fri, 08 Oct 2021 19:39:01 +0530, Srinivasa Rao Mandadapu wrote:
Update compatible names in va, wsa, rx and tx macro codes for lpass sc7280
Signed-off-by: Venkata Prasad Potturu potturu@codeaurora.org Signed-off-by: Srinivasa Rao Mandadapu srivasam@codeaurora.org
Documentation/devicetree/bindings/sound/qcom,lpass-rx-macro.yaml | 4 +++- Documentation/devicetree/bindings/sound/qcom,lpass-tx-macro.yaml | 4 +++- Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml | 4 +++- Documentation/devicetree/bindings/sound/qcom,lpass-wsa-macro.yaml | 4 +++- 4 files changed, 12 insertions(+), 4 deletions(-)
Please add Acked-by/Reviewed-by tags when posting new versions. However, there's no need to repost patches *only* to add the tags. The upstream maintainer will do that for acks received on the version they apply.
If a tag was not added on purpose, please state why and what changed.
On 08/10/2021 15:09, Srinivasa Rao Mandadapu wrote:
Update compatible names in va, wsa, rx and tx macro codes for lpass sc7280
TBH, I was also expecting the clks that are mandatory for sc7280 in this binding patch.
I think we need this and this will allow us to validate on the dt-entries.
--srini
Signed-off-by: Venkata Prasad Potturu potturu@codeaurora.org Signed-off-by: Srinivasa Rao Mandadapu srivasam@codeaurora.org
Documentation/devicetree/bindings/sound/qcom,lpass-rx-macro.yaml | 4 +++- Documentation/devicetree/bindings/sound/qcom,lpass-tx-macro.yaml | 4 +++- Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml | 4 +++- Documentation/devicetree/bindings/sound/qcom,lpass-wsa-macro.yaml | 4 +++- 4 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/Documentation/devicetree/bindings/sound/qcom,lpass-rx-macro.yaml b/Documentation/devicetree/bindings/sound/qcom,lpass-rx-macro.yaml index 443d556..bc762b3 100644 --- a/Documentation/devicetree/bindings/sound/qcom,lpass-rx-macro.yaml +++ b/Documentation/devicetree/bindings/sound/qcom,lpass-rx-macro.yaml @@ -11,7 +11,9 @@ maintainers:
properties: compatible:
- const: qcom,sm8250-lpass-rx-macro
enum:
- qcom,sc7280-lpass-rx-macro
- qcom,sm8250-lpass-rx-macro
reg: maxItems: 1
diff --git a/Documentation/devicetree/bindings/sound/qcom,lpass-tx-macro.yaml b/Documentation/devicetree/bindings/sound/qcom,lpass-tx-macro.yaml index 6b5ca02..74f5386 100644 --- a/Documentation/devicetree/bindings/sound/qcom,lpass-tx-macro.yaml +++ b/Documentation/devicetree/bindings/sound/qcom,lpass-tx-macro.yaml @@ -11,7 +11,9 @@ maintainers:
properties: compatible:
- const: qcom,sm8250-lpass-tx-macro
enum:
- qcom,sc7280-lpass-tx-macro
- qcom,sm8250-lpass-tx-macro
reg: maxItems: 1
diff --git a/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml b/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml index 679b49c..99f2c36 100644 --- a/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml +++ b/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml @@ -11,7 +11,9 @@ maintainers:
properties: compatible:
- const: qcom,sm8250-lpass-va-macro
enum:
- qcom,sc7280-lpass-va-macro
- qcom,sm8250-lpass-va-macro
reg: maxItems: 1
diff --git a/Documentation/devicetree/bindings/sound/qcom,lpass-wsa-macro.yaml b/Documentation/devicetree/bindings/sound/qcom,lpass-wsa-macro.yaml index 435b019..13cdb8a 100644 --- a/Documentation/devicetree/bindings/sound/qcom,lpass-wsa-macro.yaml +++ b/Documentation/devicetree/bindings/sound/qcom,lpass-wsa-macro.yaml @@ -11,7 +11,9 @@ maintainers:
properties: compatible:
- const: qcom,sm8250-lpass-wsa-macro
enum:
- qcom,sc7280-lpass-wsa-macro
- qcom,sm8250-lpass-wsa-macro
reg: maxItems: 1
Enable tx path soundwire mic0 and mic1 clock.
Signed-off-by: Venkata Prasad Potturu potturu@codeaurora.org Signed-off-by: Srinivasa Rao Mandadapu srivasam@codeaurora.org --- sound/soc/codecs/lpass-tx-macro.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/sound/soc/codecs/lpass-tx-macro.c b/sound/soc/codecs/lpass-tx-macro.c index 5dcae73..d472af1 100644 --- a/sound/soc/codecs/lpass-tx-macro.c +++ b/sound/soc/codecs/lpass-tx-macro.c @@ -1674,6 +1674,9 @@ static int tx_macro_component_probe(struct snd_soc_component *comp)
snd_soc_component_update_bits(comp, CDC_TX0_TX_PATH_SEC7, 0x3F, 0x0A); + /* Enable swr mic0 and mic1 clock */ + snd_soc_component_update_bits(comp, CDC_TX_TOP_CSR_SWR_AMIC0_CTL, 0xFF, 0x00); + snd_soc_component_update_bits(comp, CDC_TX_TOP_CSR_SWR_AMIC1_CTL, 0xFF, 0x00);
return 0; }
Update mic control register default values to hardware reset values lpass sc7280.
Fixes: c39667ddcfc5 (ASoC: codecs: lpass-tx-macro: add support for lpass tx macro)
Signed-off-by: Venkata Prasad Potturu potturu@codeaurora.org Signed-off-by: Srinivasa Rao Mandadapu srivasam@codeaurora.org --- sound/soc/codecs/lpass-tx-macro.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/sound/soc/codecs/lpass-tx-macro.c b/sound/soc/codecs/lpass-tx-macro.c index d472af1..6742405 100644 --- a/sound/soc/codecs/lpass-tx-macro.c +++ b/sound/soc/codecs/lpass-tx-macro.c @@ -272,7 +272,7 @@ struct tx_macro {
static const DECLARE_TLV_DB_SCALE(digital_gain, -8400, 100, -8400);
-static const struct reg_default tx_defaults[] = { +static struct reg_default tx_defaults[] = { /* TX Macro */ { CDC_TX_CLK_RST_CTRL_MCLK_CONTROL, 0x00 }, { CDC_TX_CLK_RST_CTRL_FS_CNT_CONTROL, 0x00 }, @@ -1781,9 +1781,10 @@ static const struct snd_soc_component_driver tx_macro_component_drv = { static int tx_macro_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; + struct device_node *np = dev->of_node; struct tx_macro *tx; void __iomem *base; - int ret; + int ret, reg;
tx = devm_kzalloc(dev, sizeof(*tx), GFP_KERNEL); if (!tx) @@ -1805,6 +1806,20 @@ static int tx_macro_probe(struct platform_device *pdev) if (IS_ERR(base)) return PTR_ERR(base);
+ /* Update defaults for lpass sc7280 */ + if (of_device_is_compatible(np, "qcom,sc7280-lpass-tx-macro")) { + for (reg = 0; reg < ARRAY_SIZE(tx_defaults); reg++) { + switch (tx_defaults[reg].reg) { + case CDC_TX_TOP_CSR_SWR_AMIC0_CTL: + case CDC_TX_TOP_CSR_SWR_AMIC1_CTL: + tx_defaults[reg].def = 0x0E; + break; + default: + break; + } + } + } + tx->regmap = devm_regmap_init_mmio(dev, base, &tx_regmap_config);
dev_set_drvdata(dev, tx);
On 08/10/2021 15:09, Srinivasa Rao Mandadapu wrote:
Update mic control register default values to hardware reset values lpass sc7280.
Fixes: c39667ddcfc5 (ASoC: codecs: lpass-tx-macro: add support for lpass tx macro)
I dont think this should have fixes tag, as you are adding default values for sc7280.
with that fixed,
Reviewed-by: Srinivas Kandagatla srinivas.kandagatla@linaro.org
Signed-off-by: Venkata Prasad Potturu potturu@codeaurora.org Signed-off-by: Srinivasa Rao Mandadapu srivasam@codeaurora.org
sound/soc/codecs/lpass-tx-macro.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/sound/soc/codecs/lpass-tx-macro.c b/sound/soc/codecs/lpass-tx-macro.c index d472af1..6742405 100644 --- a/sound/soc/codecs/lpass-tx-macro.c +++ b/sound/soc/codecs/lpass-tx-macro.c @@ -272,7 +272,7 @@ struct tx_macro {
static const DECLARE_TLV_DB_SCALE(digital_gain, -8400, 100, -8400);
-static const struct reg_default tx_defaults[] = { +static struct reg_default tx_defaults[] = { /* TX Macro */ { CDC_TX_CLK_RST_CTRL_MCLK_CONTROL, 0x00 }, { CDC_TX_CLK_RST_CTRL_FS_CNT_CONTROL, 0x00 }, @@ -1781,9 +1781,10 @@ static const struct snd_soc_component_driver tx_macro_component_drv = { static int tx_macro_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev;
- struct device_node *np = dev->of_node; struct tx_macro *tx; void __iomem *base;
- int ret;
int ret, reg;
tx = devm_kzalloc(dev, sizeof(*tx), GFP_KERNEL); if (!tx)
@@ -1805,6 +1806,20 @@ static int tx_macro_probe(struct platform_device *pdev) if (IS_ERR(base)) return PTR_ERR(base);
/* Update defaults for lpass sc7280 */
if (of_device_is_compatible(np, "qcom,sc7280-lpass-tx-macro")) {
for (reg = 0; reg < ARRAY_SIZE(tx_defaults); reg++) {
switch (tx_defaults[reg].reg) {
case CDC_TX_TOP_CSR_SWR_AMIC0_CTL:
case CDC_TX_TOP_CSR_SWR_AMIC1_CTL:
tx_defaults[reg].def = 0x0E;
break;
default:
break;
}
}
}
tx->regmap = devm_regmap_init_mmio(dev, base, &tx_regmap_config);
dev_set_drvdata(dev, tx);
Change bulk clock frequency voting to optional bulk voting in va, rx and tx macros to accommodate both ADSP and ADSP bypass based lpass architectures.
Signed-off-by: Venkata Prasad Potturu potturu@codeaurora.org Signed-off-by: Srinivasa Rao Mandadapu srivasam@codeaurora.org --- sound/soc/codecs/lpass-rx-macro.c | 2 +- sound/soc/codecs/lpass-tx-macro.c | 2 +- sound/soc/codecs/lpass-va-macro.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/sound/soc/codecs/lpass-rx-macro.c b/sound/soc/codecs/lpass-rx-macro.c index c2b9333..2bed5cf 100644 --- a/sound/soc/codecs/lpass-rx-macro.c +++ b/sound/soc/codecs/lpass-rx-macro.c @@ -3531,7 +3531,7 @@ static int rx_macro_probe(struct platform_device *pdev) rx->clks[3].id = "npl"; rx->clks[4].id = "fsgen";
- ret = devm_clk_bulk_get(dev, RX_NUM_CLKS_MAX, rx->clks); + ret = devm_clk_bulk_get_optional(dev, RX_NUM_CLKS_MAX, rx->clks); if (ret) { dev_err(dev, "Error getting RX Clocks (%d)\n", ret); return ret; diff --git a/sound/soc/codecs/lpass-tx-macro.c b/sound/soc/codecs/lpass-tx-macro.c index 6742405..a4c0a15 100644 --- a/sound/soc/codecs/lpass-tx-macro.c +++ b/sound/soc/codecs/lpass-tx-macro.c @@ -1796,7 +1796,7 @@ static int tx_macro_probe(struct platform_device *pdev) tx->clks[3].id = "npl"; tx->clks[4].id = "fsgen";
- ret = devm_clk_bulk_get(dev, TX_NUM_CLKS_MAX, tx->clks); + ret = devm_clk_bulk_get_optional(dev, TX_NUM_CLKS_MAX, tx->clks); if (ret) { dev_err(dev, "Error getting RX Clocks (%d)\n", ret); return ret; diff --git a/sound/soc/codecs/lpass-va-macro.c b/sound/soc/codecs/lpass-va-macro.c index 70f09b4..11147e3 100644 --- a/sound/soc/codecs/lpass-va-macro.c +++ b/sound/soc/codecs/lpass-va-macro.c @@ -1408,7 +1408,7 @@ static int va_macro_probe(struct platform_device *pdev) va->clks[1].id = "dcodec"; va->clks[2].id = "mclk";
- ret = devm_clk_bulk_get(dev, VA_NUM_CLKS_MAX, va->clks); + ret = devm_clk_bulk_get_optional(dev, VA_NUM_CLKS_MAX, va->clks); if (ret) { dev_err(dev, "Error getting VA Clocks (%d)\n", ret); return ret;
participants (3)
-
Rob Herring
-
Srinivas Kandagatla
-
Srinivasa Rao Mandadapu