CS35L41: Disable Smart PA driver
authorlijilai <lijilai@huaqin.com>
Thu, 19 Jul 2018 10:53:10 +0000 (18:53 +0800)
committerCosmin Tanislav <demonsingur@gmail.com>
Mon, 22 Apr 2024 17:23:42 +0000 (20:23 +0300)
[9609] Disable SPA driver

Bug:HQ00000000

Workaround:no

Change-Id: If396238631e7ddc99289cd46ba30b5ff26de12e2
Signed-off-by: Shinhyung Kang<s47.kang@samsung.com>
arch/arm64/boot/dts/exynos/exynos9609-wing.dts
sound/soc/samsung/Kconfig [changed mode: 0644->0755]
sound/soc/samsung/exynos9610_madera.c

index 499268a484ef705d71a20eff7c031ac58a8e1795..756bfd81ba46ed5207fa86e0e2a09cb6ebe8597f 100755 (executable)
                        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>;*/
 
                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 = <gpm8 0 0>*/
+                               /*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 = <&amp_sda &amp_scl &amp_ad0 &amp_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>;
                        #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>;
                                0 0 0 0 /* IN2 */
                        >;
 
-                       cirrus,gpsw = <3 0>;
+                     cirrus,gpsw = <1 0>;
 
                        pinctrl-names = "probe", "active";
                        pinctrl-0 = <&codec_reset>;
                                };
                        };
 
+
                        micvdd {
                                regulator-min-microvolt = <3000000>;
                                regulator-max-microvolt = <3000000>;
                                regulator-max-microvolt = <2800000>;
                                cirrus,ext-cap = <1>;
                        };
+
+                       MICBIAS2A {
+                               regulator-active-discharge = <1>;
+                       };
                        MICBIAS2B {
                                regulator-active-discharge = <1>;
                        };
                                        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>;*/
                                };
                        };
 
                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",
                        "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>;
                                sound-dai = <&dummy_audio_codec>;
                        };
                };
+
+#if 0          /*ToDo: enable speaker amp on EVB board*/
                codec-left-amp@0 {
                        format = "i2s";
 
                                sound-dai = <&cs35l41_left 0>;
                        };
                };
-
+#endif
        };
 
+
 #if 0
        fimc_is@144B0000 {
                vender {
old mode 100644 (file)
new mode 100755 (executable)
index f268335..9d2e0ef
@@ -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"
index 150e989aedf6e1f41ac10faeeb2803fb362190fe..577148054aabf6f089a541f6240fb13a10d626ea 100755 (executable)
@@ -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
 
 };