mirror of
https://github.com/torvalds/linux.git
synced 2024-11-15 00:21:59 +00:00
Merge series "Update Lpass digital codec macro drivers" from Srinivasa Rao Mandadapu <srivasam@codeaurora.org>:
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 V3: -- Removed fixes tag. -- Change signedoff by sequence. 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(-) -- Qualcomm India Private Limited, on behalf of Qualcomm Innovation Center, Inc., is a member of Code Aurora Forum, a Linux Foundation Collaborative Project.
This commit is contained in:
commit
1af4d2e785
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
@ -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" },
|
||||
{ }
|
||||
};
|
||||
|
@ -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 },
|
||||
@ -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;
|
||||
}
|
||||
@ -1778,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)
|
||||
@ -1792,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;
|
||||
@ -1802,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);
|
||||
@ -1843,6 +1861,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" },
|
||||
{ }
|
||||
};
|
||||
|
@ -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;
|
||||
@ -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" },
|
||||
{}
|
||||
};
|
||||
|
@ -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"},
|
||||
{}
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user