ARM: dts: exynos: Add sound support to Midas
authorSimon Shields <simon@lineageos.org>
Tue, 28 Jul 2020 13:11:11 +0000 (15:11 +0200)
committerKrzysztof Kozlowski <krzk@kernel.org>
Mon, 17 Aug 2020 15:46:49 +0000 (17:46 +0200)
Update the never-mainlined "samsung,trats2-audio" binding and instead
use the new "samsung,midas-audio" binding.

Signed-off-by: Simon Shields <simon@lineageos.org>
[s.nawrocki: fixed DAPM routing entries for MICBIAS1/2, adjusted to
 new cpu/codec binding, corrected the regulator nodes indexing]
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
arch/arm/boot/dts/exynos4412-galaxy-s3.dtsi
arch/arm/boot/dts/exynos4412-i9300.dts
arch/arm/boot/dts/exynos4412-midas.dtsi
arch/arm/boot/dts/exynos4412-n710x.dts

index 53b3ca3effabd59d58b8e97728c0011169341222..89ed81fb348dadfbfa75283fcb012db645045b88 100644 (file)
@@ -33,7 +33,7 @@
                };
        };
 
-       lcd_vdd3_reg: voltage-regulator-7 {
+       lcd_vdd3_reg: voltage-regulator-10 {
                compatible = "regulator-fixed";
                regulator-name = "LCD_VDD_2.2V";
                regulator-min-microvolt = <2200000>;
@@ -42,7 +42,7 @@
                enable-active-high;
        };
 
-       ps_als_reg: voltage-regulator-8 {
+       ps_als_reg: voltage-regulator-11 {
                compatible = "regulator-fixed";
                regulator-name = "LED_A_3.0V";
                regulator-min-microvolt = <3000000>;
        status = "okay";
 };
 
+&sound {
+       samsung,audio-routing =
+               "HP", "HPOUT1L",
+               "HP", "HPOUT1R",
+
+               "SPK", "SPKOUTLN",
+               "SPK", "SPKOUTLP",
+               "SPK", "SPKOUTRN",
+               "SPK", "SPKOUTRP",
+
+               "RCV", "HPOUT2N",
+               "RCV", "HPOUT2P",
+
+               "HDMI", "LINEOUT1N",
+               "HDMI", "LINEOUT1P",
+
+               "LINE", "LINEOUT2N",
+               "LINE", "LINEOUT2P",
+
+               "IN1LP", "MICBIAS1",
+               "IN1LN", "MICBIAS1",
+               "Main Mic", "MICBIAS1",
+
+               "IN1RP", "Sub Mic",
+               "IN1RN", "Sub Mic",
+
+               "IN2LP:VXRN", "MICBIAS2",
+               "Headset Mic", "MICBIAS2",
+
+               "IN2RN", "FM In",
+               "IN2RP:VXRP", "FM In";
+};
+
+&submic_bias_reg {
+       gpio = <&gpf2 0 GPIO_ACTIVE_HIGH>;
+       enable-active-high;
+};
+
 &touchkey_reg {
        gpio = <&gpm0 0 GPIO_ACTIVE_HIGH>;
        status = "okay";
index f8125a945f8ddd229d707e6e7684a0e0859d717f..3691802b69c53f87ce4a83684a0f01c09f9c60c5 100644 (file)
@@ -20,3 +20,7 @@
                reg =  <0x40000000 0x40000000>;
        };
 };
+
+&sound {
+       fm-sel-gpios = <&gpl0 3 GPIO_ACTIVE_HIGH>;
+};
index 2c8111c6b065f6ec61450b2d229db6d9e15f0f49..8e7a03228d7b06a3db37caecc119375618770c05 100644 (file)
                status = "disabled";
        };
 
+       vbatt_reg: voltage-regulator-7 {
+               compatible = "regulator-fixed";
+               regulator-name = "VBATT";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
+
+       mic_bias_reg: voltage-regulator-8 {
+               compatible = "regulator-fixed";
+               regulator-name = "MICBIAS_LDO_2.8V";
+               regulator-min-microvolt = <2800000>;
+               regulator-max-microvolt = <2800000>;
+               gpio = <&gpf1 7 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       submic_bias_reg: voltage-regulator-9 {
+               compatible = "regulator-fixed";
+               regulator-name = "SUB_MICBIAS_LDO_2.8V";
+               regulator-min-microvolt = <2800000>;
+               regulator-max-microvolt = <2800000>;
+       };
+
        gpio-keys {
                compatible = "gpio-keys";
                pinctrl-names = "default";
                clock-names = "ext_clock";
        };
 
-       sound {
-               compatible = "samsung,trats2-audio";
-               samsung,i2s-controller = <&i2s0>;
-               samsung,model = "Trats2";
-               samsung,audio-codec = <&wm1811>;
-               samsung,audio-routing =
-                       "SPK", "SPKOUTLN",
-                       "SPK", "SPKOUTLP",
-                       "SPK", "SPKOUTRN",
-                       "SPK", "SPKOUTRP";
+       sound: sound {
+               compatible = "samsung,midas-audio";
+               model = "Midas";
+               mic-bias-supply = <&mic_bias_reg>;
+               submic-bias-supply = <&submic_bias_reg>;
+
+               cpu {
+                       sound-dai = <&i2s0 0>;
+               };
+               codec {
+                       sound-dai = <&wm1811>;
+               };
        };
 
        thermistor-ap {
        wm1811: wm1811@1a {
                compatible = "wlf,wm1811";
                reg = <0x1a>;
-               clocks = <&pmu_system_controller 0>;
-               clock-names = "MCLK1";
-               DCVDD-supply = <&ldo3_reg>;
+               clocks = <&pmu_system_controller 0>,
+                       <&max77686 MAX77686_CLK_PMIC>;
+               clock-names = "MCLK1", "MCLK2";
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               interrupt-parent = <&gpx3>;
+               interrupts = <6 IRQ_TYPE_LEVEL_HIGH>;
+
+               gpio-controller;
+               #gpio-cells = <2>;
+               #sound-dai-cells = <0>;
+
+               wlf,gpio-cfg = <0x3 0x0 0x0 0x0 0x0 0x0
+                       0x0 0x8000 0x0 0x0 0x0>;
+               wlf,micbias-cfg = <0x2f 0x2b>;
+
+               wlf,lineout1-feedback;
+               wlf,lineout1-se;
+               wlf,lineout2-se;
+               wlf,ldoena-always-driven;
+
+               AVDD2-supply = <&vbatt_reg>;
                DBVDD1-supply = <&ldo3_reg>;
+               DBVDD2-supply = <&vbatt_reg>;
+               DBVDD3-supply = <&vbatt_reg>;
+               DCVDD-supply = <&ldo3_reg>;
+               CPVDD-supply = <&vbatt_reg>;
+               SPKVDD1-supply = <&vbatt_reg>;
+               SPKVDD2-supply = <&vbatt_reg>;
                wlf,ldo1ena = <&gpj0 4 0>;
+               wlf,ldo2ena = <&gpj0 4 0>;
        };
 };
 
index 4189e1fb204c1683fc2a1f374edd75caa23830af..2361d89a79a8ce669e97e137e5e8921b3a0ebca0 100644 (file)
@@ -13,7 +13,7 @@
 
        /* bootargs are passed in by bootloader */
 
-       cam_vdda_reg: voltage-regulator-7 {
+       cam_vdda_reg: voltage-regulator-10 {
                compatible = "regulator-fixed";
                regulator-name = "CAM_SENSOR_CORE_1.2V";
                regulator-min-microvolt = <1200000>;
        status = "okay";
 };
 
+&sound {
+       samsung,audio-routing =
+               "HP", "HPOUT1L",
+               "HP", "HPOUT1R",
+
+               "SPK", "SPKOUTLN",
+               "SPK", "SPKOUTLP",
+
+               "RCV", "HPOUT2N",
+               "RCV", "HPOUT2P",
+
+               "HDMI", "LINEOUT1N",
+               "HDMI", "LINEOUT1P",
+
+               "LINE", "LINEOUT2N",
+               "LINE", "LINEOUT2P",
+
+               "IN1LP", "MICBIAS2",
+               "IN1LN", "MICBIAS2",
+               "Headset Mic", "MICBIAS2",
+
+               "IN1RP", "Sub Mic",
+               "IN1RN", "Sub Mic",
+
+               "IN2LP:VXRN", "Main Mic",
+               "IN2LN", "Main Mic",
+
+               "IN2RN", "FM In",
+               "IN2RP:VXRP", "FM In";
+};
+
+&submic_bias_reg {
+       regulator-always-on;
+};
+
 &touchkey_reg {
        gpio = <&gpm0 5 GPIO_ACTIVE_HIGH>;
        status = "okay";