]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: dts: colibri-imx8x: Add sound card
authorJoão Paulo Gonçalves <joao.goncalves@toradex.com>
Sun, 1 Sep 2024 15:57:15 +0000 (17:57 +0200)
committerShawn Guo <shawnguo@kernel.org>
Wed, 4 Sep 2024 09:36:23 +0000 (17:36 +0800)
Add audio support for Colibri-iMX8X sound card.

Signed-off-by: João Paulo Gonçalves <joao.goncalves@toradex.com>
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/imx8x-colibri.dtsi

index 210db574b4253bfc31aa74c1eddd93ead7d5404e..60cf4e4000525b30a34878bc5f0f33043bb0a234 100644 (file)
                regulator-max-microvolt = <3300000>;
        };
 
+       reg_module_3v3_avdd: regulator-module-3v3-avdd {
+               compatible = "regulator-fixed";
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "+V3.3_AVDD_AUDIO";
+       };
+
        reg_module_vref_1v8: regulator-module-vref-1v8 {
                compatible = "regulator-fixed";
                regulator-max-microvolt = <1800000>;
                regulator-min-microvolt = <5000000>;
                regulator-name = "usbh_vbus";
        };
+
+       sound-card {
+               compatible = "simple-audio-card";
+               simple-audio-card,bitclock-master = <&dailink_master>;
+               simple-audio-card,format = "i2s";
+               simple-audio-card,frame-master = <&dailink_master>;
+               simple-audio-card,name = "colibri-imx8x";
+
+               dailink_master: simple-audio-card,codec {
+                       clocks = <&mclkout0_lpcg IMX_LPCG_CLK_0>;
+                       sound-dai = <&sgtl5000_a>;
+               };
+
+               simple-audio-card,cpu {
+                       sound-dai = <&sai0>;
+               };
+       };
 };
 
 /* Colibri Analogue Inputs */
        pinctrl-0 = <&pinctrl_i2c0>, <&pinctrl_sgtl5000_usb_clk>;
        status = "okay";
 
+       sgtl5000_a: audio-codec@a {
+               compatible = "fsl,sgtl5000";
+               reg = <0xa>;
+               #sound-dai-cells = <0>;
+               assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>,
+                                 <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>,
+                                 <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>,
+                                 <&mclkout0_lpcg IMX_LPCG_CLK_0>;
+               assigned-clock-rates = <786432000>, <49152000>, <12000000>, <12000000>;
+               clocks = <&mclkout0_lpcg IMX_LPCG_CLK_0>;
+               VDDA-supply = <&reg_module_3v3_avdd>;
+               VDDD-supply = <&reg_module_vref_1v8>;
+               VDDIO-supply = <&reg_module_3v3>;
+       };
+
        /* Touch controller */
        touchscreen@2c {
                compatible = "adi,ad7879-1";
 
 /* TODO on-module PCIe for Wi-Fi */
 
-/* TODO On-module i2s / Audio */
+/* On-module I2S */
+&sai0 {
+       #sound-dai-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai0>;
+       status = "okay";
+};
 
 &usbotg1 {
        adp-disable;