Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

ASoC: cs35l45: Connect DSP to the monitoring signals

Link VMON, IMON, TEMPMON, VDD_BSTMON and VDD_BATTMON
to DSP1. The CSPL firmware uses them for the speaker calibration
and monitoring.

Signed-off-by: Vlad Karpovich <vkarpovi@opensource.cirrus.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Acked-by: Ricardo Rivera-Matos <rriveram@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20230831162042.471801-3-vkarpovi@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Vlad Karpovich and committed by
Mark Brown
3fecf69a 18050443

+28 -6
+27 -6
sound/soc/codecs/cs35l45.c
··· 433 433 434 434 SND_SOC_DAPM_SIGGEN("VMON_SRC"), 435 435 SND_SOC_DAPM_SIGGEN("IMON_SRC"), 436 + SND_SOC_DAPM_SIGGEN("TEMPMON_SRC"), 436 437 SND_SOC_DAPM_SIGGEN("VDD_BATTMON_SRC"), 437 438 SND_SOC_DAPM_SIGGEN("VDD_BSTMON_SRC"), 438 439 SND_SOC_DAPM_SIGGEN("ERR_VOL"), 439 440 SND_SOC_DAPM_SIGGEN("AMP_INTP"), 440 441 SND_SOC_DAPM_SIGGEN("IL_TARGET"), 441 - SND_SOC_DAPM_ADC("VMON", NULL, CS35L45_BLOCK_ENABLES, CS35L45_VMON_EN_SHIFT, 0), 442 - SND_SOC_DAPM_ADC("IMON", NULL, CS35L45_BLOCK_ENABLES, CS35L45_IMON_EN_SHIFT, 0), 443 - SND_SOC_DAPM_ADC("VDD_BATTMON", NULL, CS35L45_BLOCK_ENABLES, 444 - CS35L45_VDD_BATTMON_EN_SHIFT, 0), 445 - SND_SOC_DAPM_ADC("VDD_BSTMON", NULL, CS35L45_BLOCK_ENABLES, 446 - CS35L45_VDD_BSTMON_EN_SHIFT, 0), 442 + 443 + SND_SOC_DAPM_SUPPLY("VMON_EN", CS35L45_BLOCK_ENABLES, CS35L45_VMON_EN_SHIFT, 0, NULL, 0), 444 + SND_SOC_DAPM_SUPPLY("IMON_EN", CS35L45_BLOCK_ENABLES, CS35L45_IMON_EN_SHIFT, 0, NULL, 0), 445 + SND_SOC_DAPM_SUPPLY("TEMPMON_EN", CS35L45_BLOCK_ENABLES, CS35L45_TEMPMON_EN_SHIFT, 0, NULL, 0), 446 + SND_SOC_DAPM_SUPPLY("VDD_BATTMON_EN", CS35L45_BLOCK_ENABLES, CS35L45_VDD_BATTMON_EN_SHIFT, 0, NULL, 0), 447 + SND_SOC_DAPM_SUPPLY("VDD_BSTMON_EN", CS35L45_BLOCK_ENABLES, CS35L45_VDD_BSTMON_EN_SHIFT, 0, NULL, 0), 448 + 449 + SND_SOC_DAPM_ADC("VMON", NULL, SND_SOC_NOPM, 0, 0), 450 + SND_SOC_DAPM_ADC("IMON", NULL, SND_SOC_NOPM, 0, 0), 451 + SND_SOC_DAPM_ADC("TEMPMON", NULL, SND_SOC_NOPM, 0, 0), 452 + SND_SOC_DAPM_ADC("VDD_BATTMON", NULL, SND_SOC_NOPM, 0, 0), 453 + SND_SOC_DAPM_ADC("VDD_BSTMON", NULL, SND_SOC_NOPM, 0, 0), 454 + 447 455 448 456 SND_SOC_DAPM_AIF_IN("ASP_RX1", NULL, 0, CS35L45_ASP_ENABLES1, CS35L45_ASP_RX1_EN_SHIFT, 0), 449 457 SND_SOC_DAPM_AIF_IN("ASP_RX2", NULL, 1, CS35L45_ASP_ENABLES1, CS35L45_ASP_RX2_EN_SHIFT, 0), ··· 511 503 /* Feedback */ 512 504 { "VMON", NULL, "VMON_SRC" }, 513 505 { "IMON", NULL, "IMON_SRC" }, 506 + { "TEMPMON", NULL, "TEMPMON_SRC" }, 514 507 { "VDD_BATTMON", NULL, "VDD_BATTMON_SRC" }, 515 508 { "VDD_BSTMON", NULL, "VDD_BSTMON_SRC" }, 509 + 510 + { "VMON", NULL, "VMON_EN" }, 511 + { "IMON", NULL, "IMON_EN" }, 512 + { "TEMPMON", NULL, "TEMPMON_EN" }, 513 + { "VDD_BATTMON", NULL, "VDD_BATTMON_EN" }, 514 + { "VDD_BSTMON", NULL, "VDD_BSTMON_EN" }, 516 515 517 516 { "Capture", NULL, "ASP_TX1"}, 518 517 { "Capture", NULL, "ASP_TX2"}, ··· 574 559 {"DSP1", NULL, "DSP_RX6 Source"}, 575 560 {"DSP1", NULL, "DSP_RX7 Source"}, 576 561 {"DSP1", NULL, "DSP_RX8 Source"}, 562 + 563 + {"DSP1", NULL, "VMON_EN"}, 564 + {"DSP1", NULL, "IMON_EN"}, 565 + {"DSP1", NULL, "VDD_BATTMON_EN"}, 566 + {"DSP1", NULL, "VDD_BSTMON_EN"}, 567 + {"DSP1", NULL, "TEMPMON_EN"}, 577 568 578 569 {"DSP1 Preload", NULL, "DSP1 Preloader"}, 579 570 {"DSP1", NULL, "DSP1 Preloader"},
+1
sound/soc/codecs/cs35l45.h
··· 165 165 /* BLOCK_ENABLES */ 166 166 #define CS35L45_IMON_EN_SHIFT 13 167 167 #define CS35L45_VMON_EN_SHIFT 12 168 + #define CS35L45_TEMPMON_EN_SHIFT 10 168 169 #define CS35L45_VDD_BSTMON_EN_SHIFT 9 169 170 #define CS35L45_VDD_BATTMON_EN_SHIFT 8 170 171 #define CS35L45_BST_EN_SHIFT 4