Skip to content
Snippets Groups Projects
Commit 246faf5a authored by Gianfranco Mariotti's avatar Gianfranco Mariotti Committed by Tobias Kahlki
Browse files

[D18] add TLV320AIC32X4 audio support

* audio over SAI2 interface
* output needs to be enabled: /usr/bin/amixer sset -q 'LO Driver Gain' 100%
* sound works only at 48000Hz: this derives from SAI2 assigned clock rate.
  * Filesystem support for pulseaudio:
    /etc/pulse/daemon.conf --> default-sample-rate = 48000
                               alternate-sample-rate = 48000
* on CSB79REVB: I2S0 to audio jack CN41 (switch SW16 2-4 position OFF,
  jumper CN82 position 2-3)
parent a0727c82
No related branches found
No related tags found
2 merge requests!455CI: Update gitlab-ci,!374dts:d18: Add support for D18 SMARC (aka Levy) module
......@@ -90,12 +90,38 @@ reg_wifi_ac_en: regulator-wifi-ac-en {
status = "okay";
};
reg_audio: regulator-soc-audio {
compatible = "regulator-fixed";
regulator-name = "tlv320aic32x4_supply";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
bt_sco_codec: bt_sco_codec {
};
sound-bt-sco {
};
sound {
status = "okay";
compatible = "simple-audio-card";
simple-audio-card,format = "i2s";
simple-audio-card,name = "tlv-audio";
simple-audio-card,frame-master = <&cpudai>;
simple-audio-card,bitclock-master = <&cpudai>;
cpudai: simple-audio-card,cpu {
sound-dai = <&sai2>;
dai-tdm-slot-num = <2>;
dai-tdm-slot-width = <16>;
};
simple-audio-card,codec {
sound-dai = <&tlvcodec 0>;
};
};
sound-hdmi {
compatible = "fsl,imx-audio-cdnhdmi";
model = "audio-hdmi";
......@@ -402,6 +428,31 @@ wifi_disable {
gpios = <11 GPIO_ACTIVE_HIGH>;
output-low;
};
tlv320_reset {
gpio-hog;
gpios = <8 GPIO_ACTIVE_HIGH>;
output-high;
};
};
};
&i2c5 {
clock-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c5>;
status = "okay";
tlvcodec: tlv320aic32x4@18 {
#sound-dai-cells = <0>;
status = "okay";
compatible = "ti,tlv320aic32x4";
reg = <0x18>;
ldoin-supply = <&reg_audio>;
iov-supply = <&reg_audio>;
clocks = <&clk IMX8MP_CLK_SAI2_ROOT>;
clock-names = "mclk";
route-on-lineout;
};
};
......@@ -515,9 +566,9 @@ &sai2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sai2>;
assigned-clocks = <&clk IMX8MP_CLK_SAI2>;
assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
assigned-clock-rates = <12288000>;
status = "disabled";
assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL2_OUT>;
assigned-clock-rates = <1536000>;
status = "okay";
};
&sai3 {
......@@ -797,6 +848,13 @@ MX8MP_IOMUXC_I2C3_SDA__I2C3_SDA 0x400001c3
>;
};
pinctrl_i2c5: i2c5grp {
fsl,pins = <
MX8MP_IOMUXC_SPDIF_RX__I2C5_SDA 0x400001c3
MX8MP_IOMUXC_SPDIF_TX__I2C5_SCL 0x400001c3
>;
};
pinctrl_mipi_dsi_en: mipi_dsi_en {
fsl,pins = <
MX8MP_IOMUXC_GPIO1_IO08__GPIO1_IO08 0x16
......@@ -824,8 +882,9 @@ MX8MP_IOMUXC_GPIO1_IO10__USB1_ID 0x0
pinctrl_sai2: sai2grp {
fsl,pins = <
MX8MP_IOMUXC_SAI2_TXC__AUDIOMIX_SAI2_TX_BCLK 0xd6
MX8MP_IOMUXC_SAI2_MCLK__AUDIOMIX_SAI2_MCLK 0xd6
MX8MP_IOMUXC_SAI2_TXFS__AUDIOMIX_SAI2_TX_SYNC 0xd6
MX8MP_IOMUXC_SAI2_TXC__AUDIOMIX_SAI2_TX_BCLK 0xd6
MX8MP_IOMUXC_SAI2_TXD0__AUDIOMIX_SAI2_TX_DATA00 0xd6
MX8MP_IOMUXC_SAI2_RXD0__AUDIOMIX_SAI2_RX_DATA00 0xd6
>;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment