From: lijilai Date: Thu, 19 Jul 2018 10:53:10 +0000 (+0800) Subject: CS35L41: Disable Smart PA driver X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=81ce063ed448cf1b6b3cf44b9a642afcaef80c0e;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git CS35L41: Disable Smart PA driver [9609] Disable SPA driver Bug:HQ00000000 Workaround:no Change-Id: If396238631e7ddc99289cd46ba30b5ff26de12e2 Signed-off-by: Shinhyung Kang --- diff --git a/arch/arm64/boot/dts/exynos/exynos9609-wing.dts b/arch/arm64/boot/dts/exynos/exynos9609-wing.dts index 499268a484ef..756bfd81ba46 100755 --- a/arch/arm64/boot/dts/exynos/exynos9609-wing.dts +++ b/arch/arm64/boot/dts/exynos/exynos9609-wing.dts @@ -1032,12 +1032,36 @@ samsung,pin-pud = <3>; samsung,pin-val = <1>; }; +#if 0 /*Should be removed: enable speaker amp on EVB board*/ + amp_sda: amp-sda { + samsung,pins = "gpp2-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + amp_scl: amp-scl { + samsung,pins = "gpp2-1"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + amp_ad1: amp-ad1 { + samsung,pins = "gpp2-0"; + samsung,pin-function = <1>; + samsung,pin-val = <0>; + samsung,pin-pud = <1>; + }; + amp_ad0: amp-ad0 { + samsung,pins = "gpp2-3"; + samsung,pin-function = <1>; + samsung,pin-val = <0>; + samsung,pin-pud = <1>; + }; +#endif }; - - spi_6: spi@13900000 { - status = "okay"; + status = "disable"; pinctrl-names = "default"; pinctrl-0 = <&spi6_bus &spi6_cs_func>; /*cs-gpios = <&gpp2 3 0>;*/ @@ -1046,29 +1070,76 @@ cs35l41_left: cs35l41@0 { compatible = "cirrus,cs35l41"; - #sound-dai-cells = <1>; reg = <0x0>; - spi-max-frequency = <11000000>; - interrupt-parent = <&gpa0>; + + spi-max-frequency = <9600000>; + interrupts = <2 0 0>; + interrupt-controller; + interrupt-parent = <&gpa0>; reset-gpios = <&gpg3 3 0>; + #sound-dai-cells = <1>; + VA-supply = <&l42_reg>; VP-supply = <&V_SYS>; - cirrus,asp-sdout-hiz = <0x3>; + cirrus,boost-peak-milliamp = <4500>; + cirrus,boost-ind-nanohenry = <1000>; + cirrus,boost-cap-microfarad = <15>; + cirrus,asp-sdout-hiz = <0x1>; cirrus,gpio-config2 { cirrus,gpio-src-select = <0x4>; - cirrus,gpio-out-enable; + cirrus,gpio-output-enable; }; controller-data { /*cs-gpio = */ + /*cs-gpios = <&gpp2 3 0>;*/ samsung,spi-feedback-delay = <1>; samsung,spi-chip-select-mode = <0>; }; }; }; +#if 0 + i2c@0 { + status = "okay"; + compatible = "i2c-gpio"; + + pinctrl-names = "default"; + pinctrl-0 = <&_sda &_scl &_ad0 &_ad1>; + + gpios = <&gpp2 2 0 /* sda */ + &gpp2 1 0 /* scl */ + >; + + #address-cells = <1>; + #size-cells = <0>; + + cs35l41_left: cs35l41@40 { + compatible = "cirrus,cs35l41"; + reg = <0x40>; + + interrupts = <2 0 0>; + interrupt-controller; + interrupt-parent = <&gpa0>; + reset-gpios = <&gpg3 3 0>; + #sound-dai-cells = <1>; + + VA-supply = <&l42_reg>; + VP-supply = <&V_SYS>; + + cirrus,boost-peak-milliamp = <4500>; + cirrus,boost-ind-nanohenry = <1000>; + cirrus,boost-cap-microfarad = <15>; + cirrus,asp-sdout-hiz = <0x1>; + cirrus,gpio-config2 { + cirrus,gpio-src-select = <0x4>; + cirrus,gpio-output-enable; + }; + }; + }; +#endif spi_9: spi@13940000 { pinctrl-names = "default"; pinctrl-0 = <&spi9_bus &spi9_cs_func &codec_en>; @@ -1087,6 +1158,7 @@ #gpio-cells = <2>; #sound-dai-cells = <1>; + /*l42_reg shoulde be change after board fixed*/ AVDD-supply = <&l42_reg>; DBVDD1-supply = <&l42_reg>; DBVDD2-supply = <&l42_reg>; @@ -1103,7 +1175,7 @@ 0 0 0 0 /* IN2 */ >; - cirrus,gpsw = <3 0>; + cirrus,gpsw = <1 0>; pinctrl-names = "probe", "active"; pinctrl-0 = <&codec_reset>; @@ -1144,6 +1216,7 @@ }; }; + micvdd { regulator-min-microvolt = <3000000>; regulator-max-microvolt = <3000000>; @@ -1166,6 +1239,10 @@ regulator-max-microvolt = <2800000>; cirrus,ext-cap = <1>; }; + + MICBIAS2A { + regulator-active-discharge = <1>; + }; MICBIAS2B { regulator-active-discharge = <1>; }; @@ -1178,14 +1255,14 @@ reg = <1>; cirrus,micd-configs = < - 0 0 3 0 0 + 0 0 2 0 0 >; cirrus,micd-bias-start-time = <8>; cirrus,micd-rate = <6>; - cirrus,micd-pol-gpios = <&cs47l35 4 0>; + /*cirrus,micd-pol-gpios = <&cs47l35 4 0>;*/ cirrus,micd-detect-debounce-ms = <500>; - cirrus,jd-use-jd2; - cirrus,micd-clamp-mode = <0x8>; + /*cirrus,jd-use-jd2;*/ + /*cirrus,micd-clamp-mode = <0x8>;*/ }; }; @@ -1222,13 +1299,14 @@ cirrus,opclk = <3 0 12288000>; samsung,routing = - "HEADSETMIC", "MICBIAS2B", - "MICBIAS2A", "MICBIAS2B", - "IN1BL", "HEADSETMIC", - "DMIC1", "MICBIAS1A", + "HEADSETMIC", "MICBIAS1B", + "IN1BR", "HEADSETMIC", + "DMIC1", "MICBIAS2A", "IN1AL", "DMIC1", - "DMIC2", "MICBIAS1B", + "DMIC2", "MICBIAS2A", "IN2L", "DMIC2", + "DMIC3", "MICBIAS2B", + "IN2R", "DMIC3", "RECEIVER", "EPOUTN", "RECEIVER", "EPOUTP", "HEADPHONE", "HPOUTL", @@ -1241,7 +1319,7 @@ "ABOX SIFS0 Capture", "VINPUTCALL"; samsung,codec = <&abox &abox_uaif_0 &abox_uaif_1 &abox_uaif_2 - &abox_uaif_4 &abox_dsif &abox_spdy &cs35l41_left>; + &abox_uaif_4 &abox_dsif &abox_spdy>; /*&cs35l41_left*/ samsung,prefix = "ABOX", "ABOX", "ABOX", "ABOX", "ABOX", "ABOX", "ABOX", "Left"; samsung,aux = <&abox_effect &abox_bt>; @@ -1478,6 +1556,8 @@ sound-dai = <&dummy_audio_codec>; }; }; + +#if 0 /*ToDo: enable speaker amp on EVB board*/ codec-left-amp@0 { format = "i2s"; @@ -1488,9 +1568,10 @@ sound-dai = <&cs35l41_left 0>; }; }; - +#endif }; + #if 0 fimc_is@144B0000 { vender { diff --git a/sound/soc/samsung/Kconfig b/sound/soc/samsung/Kconfig old mode 100644 new mode 100755 index f268335b0430..9d2e0efbad6b --- a/sound/soc/samsung/Kconfig +++ b/sound/soc/samsung/Kconfig @@ -212,7 +212,7 @@ config SND_SOC_SAMSUNG_EXYNOS9610_MADERA select REGULATOR_ARIZONA_MICSUPP select EXTCON_MADERA select EXTCON_MADERA_INPUT_EVENT - select SND_SOC_CS35L35 + select SND_SOC_CS35L41_SPI config SND_SOC_ARNDALE_RT5631_ALC5631 tristate "Audio support for RT5631(ALC5631) on Arndale Board" diff --git a/sound/soc/samsung/exynos9610_madera.c b/sound/soc/samsung/exynos9610_madera.c index 150e989aedf6..577148054aab 100755 --- a/sound/soc/samsung/exynos9610_madera.c +++ b/sound/soc/samsung/exynos9610_madera.c @@ -582,49 +582,6 @@ static void madera_init_debugfs(struct snd_soc_card *card) } #endif -#if 0 -static int madera_amp_late_probe(struct snd_soc_card *card, int dai) -{ - struct madera_drvdata *drvdata = card->drvdata; - struct snd_soc_pcm_runtime *rtd; - struct snd_soc_dai *amp_dai; - struct snd_soc_codec *amp; - int ret; - - if (!dai || !card->dai_link[dai].name) - return 0; - - if (!drvdata->opclk.valid) { - dev_err(card->dev, "OPCLK required to use speaker amp\n"); - return -ENOENT; - } - - rtd = snd_soc_get_pcm_runtime(card, card->dai_link[dai].name); - - amp_dai = rtd->codec_dai; - amp = amp_dai->codec; - - ret = snd_soc_dai_set_tdm_slot(rtd->cpu_dai, 0x3, 0x3, 4, 16); - if (ret) - dev_err(card->dev, "Failed to set TDM: %d\n", ret); - - ret = snd_soc_codec_set_sysclk(amp, 0, 0, drvdata->opclk.rate, - SND_SOC_CLOCK_IN); - if (ret != 0) { - dev_err(card->dev, "Failed to set amp SYSCLK: %d\n", ret); - return ret; - } - - ret = snd_soc_dai_set_sysclk(amp_dai, 0, MADERA_AMP_BCLK, - SND_SOC_CLOCK_IN); - if (ret != 0) { - dev_err(card->dev, "Failed to set amp DAI clock: %d\n", ret); - return ret; - } - - return 0; -} -#else static int madera_amp_late_probe(struct snd_soc_card *card, int dai) { struct madera_drvdata *drvdata = card->drvdata; @@ -658,8 +615,6 @@ static int madera_amp_late_probe(struct snd_soc_card *card, int dai) return 0; } -#endif - static int exynos9610_late_probe(struct snd_soc_card *card) { struct madera_drvdata *drvdata = card->drvdata; @@ -1079,12 +1034,14 @@ static struct snd_soc_dai_link exynos9610_dai[] = { .dpcm_playback = 1, .dpcm_capture = 1, }, +#if 0 /*ToDo: enable speaker amp on EVB board*/ { .name = "codec-left-amp", .ignore_suspend = 1, .ignore_pmdown_time = 1, .params = madera_amp_params, }, +#endif };