arm64: dts: mediatek: cherry: Add external codecs and speaker amplifier
authorAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Thu, 22 Sep 2022 09:49:07 +0000 (11:49 +0200)
committerMatthias Brugger <matthias.bgg@gmail.com>
Mon, 9 Jan 2023 16:16:50 +0000 (17:16 +0100)
The entire Cherry family has two digital microphones, for which
we use the generic dmic-codec, linked to the MT6359 PMIC.
Moreover, it uses a Realtek RT1019p amplifier for the speakers
and has either a Realtek RT5682i or RT5682s audio codec on I2C2:
specifically, RT5682i is found on Tomato's rev 1 and rev 2 boards,
while RT5682s is found in rev3 and rev4 boards.

Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20220922094908.41623-4-angelogioacchino.delregno@collabora.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
arch/arm64/boot/dts/mediatek/mt8195-cherry-tomato-r1.dts
arch/arm64/boot/dts/mediatek/mt8195-cherry-tomato-r2.dts
arch/arm64/boot/dts/mediatek/mt8195-cherry-tomato-r3.dts
arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi

index 3348ba69ff6cf63abb62a68c33982472385ca050..3767b49ea896685ad46c593655864d34476a8ecd 100644 (file)
        compatible = "google,tomato-rev1", "google,tomato", "mediatek,mt8195";
 };
 
+&audio_codec {
+       compatible = "realtek,rt5682i";
+       realtek,btndet-delay = <16>;
+};
+
 &ts_10 {
        status = "okay";
 };
index 4669e9d917f8cc8271691ba8a3bc54099b023737..0ed83a79d68043eb632cefc7c735a311ae2a1765 100644 (file)
        compatible = "google,tomato-rev2", "google,tomato", "mediatek,mt8195";
 };
 
+&audio_codec {
+       compatible = "realtek,rt5682i";
+       realtek,btndet-delay = <16>;
+};
+
 &pio_default {
        pins-low-power-hdmi-disable {
                pinmux = <PINMUX_GPIO31__FUNC_GPIO31>,
index 5021edd02f7c1a6952e7b87d6609518b441417c9..c47b341e98fb95014195a5c96bc3b3a0e0443594 100644 (file)
                     "google,tomato", "mediatek,mt8195";
 };
 
+&audio_codec {
+       compatible = "realtek,rt5682s";
+       realtek,amic-delay-ms = <250>;
+};
+
 &pio_default {
        pins-low-power-hdmi-disable {
                pinmux = <PINMUX_GPIO31__FUNC_GPIO31>,
index 07e6c5c2e930d115a5f49268bfbaa7d8817d03aa..5112251d94564da40ba8adedf8ce9a9bc363b784 100644 (file)
                stdout-path = "serial0:115200n8";
        };
 
+       dmic-codec {
+               compatible = "dmic-codec";
+               num-channels = <2>;
+               wakeup-delay-ms = <50>;
+       };
+
        memory@40000000 {
                device_type = "memory";
                reg = <0 0x40000000 0 0x80000000>;
                        no-map;
                };
        };
+
+       spk_amplifier: rt1019p {
+               compatible = "realtek,rt1019p";
+               label = "rt1019p";
+               pinctrl-names = "default";
+               pinctrl-0 = <&rt1019p_pins_default>;
+               sdb-gpios = <&pio 100 GPIO_ACTIVE_HIGH>;
+       };
 };
 
 &adsp {
        clock-frequency = <400000>;
        pinctrl-names = "default";
        pinctrl-0 = <&i2c2_pins>;
+
+       audio_codec: codec@1a {
+               /* Realtek RT5682i or RT5682s, sharing the same configuration */
+               reg = <0x1a>;
+               interrupts-extended = <&pio 89 IRQ_TYPE_EDGE_BOTH>;
+               realtek,jd-src = <1>;
+
+               AVDD-supply = <&mt6359_vio18_ldo_reg>;
+               MICVDD-supply = <&pp3300_z2>;
+               VBAT-supply = <&pp3300_z5>;
+       };
 };
 
 &i2c3 {
        vqmmc-supply = <&mt_pmic_vmc_ldo_reg>;
 };
 
+&mt6359codec {
+       mediatek,dmic-mode = <1>;  /* one-wire */
+       mediatek,mic-type-0 = <2>; /* DMIC */
+};
+
 /* for CPU-L */
 &mt6359_vcore_buck_reg {
        regulator-always-on;
                };
        };
 
+       rt1019p_pins_default: rt1019p-default-pins {
+               pins-amp-sdb {
+                       pinmux = <PINMUX_GPIO100__FUNC_GPIO100>;
+                       output-low;
+               };
+       };
+
        scp_pins: scp-default-pins {
                pins-vreq {
                        pinmux = <PINMUX_GPIO76__FUNC_SCP_VREQ_VAO>;