ALC5651 Audio codec on tx1

Hi

  1. Do you provide the driver and device tree (source code or sample code) of alc5651 on tx1?
  2. If I have no audio codec on tx1 carrier board. When I aplay a wav file. Can I measure the correct frequency on MCLK, LRCLK and SCLK and see signal on DOUT?(Expansion Header J21)

@wonderkay

  1. The reference codec is RealTek 5659 not sure it’s compatible with 5651.
  2. I believe you can probe the single with dummy codec.

Hi,
I have no physical audio codec on tx1 carrier board. When I aplay a wav file, I can not measure the correct frequency on MCLK, LRCLK and SCLK and see signal on DOUT.(Expansion Header J21)

nvidia@tegra-ubuntu:~/w_test$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: tegrahda [tegra-hda], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 0: ADMAIF1 CIF ADMAIF1-0
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 1: ADMAIF2 CIF ADMAIF2-1
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 2: ADMAIF3 CIF ADMAIF3-2
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 3: ADMAIF4 CIF ADMAIF4-3
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 4: ADMAIF5 CIF ADMAIF5-4
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 5: ADMAIF6 CIF ADMAIF6-5
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 6: ADMAIF7 CIF ADMAIF7-6
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 7: ADMAIF8 CIF ADMAIF8-7
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 8: ADMAIF9 CIF ADMAIF9-8
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 9: ADMAIF10 CIF ADMAIF10-9
Subdevices: 1/1
Subdevice #0: subdevice #0
nvidia@tegra-ubuntu:~/w_test$

nvidia@tegra-ubuntu:~/w_test$ aplay -D plughw:1,0 Front_Center.wav
Playing WAVE ‘Front_Center.wav’ : Signed 16 bit Little Endian, Rate 48000 Hz, Mono
nvidia@tegra-ubuntu:~/w_test$

Please give advice or comments. How can I measure the correct frequency on MCLK, LRCLK and SCLK and see signal on DOUT?

Hi
Someone can help me? Your early reply will be highly appreciated.

Check below link. J21 is map to bus i2s5

https://devtalk.nvidia.com/default/topic/1026526/jetson-tx1/jetson-tx1-i2s-out-audio-driver-no-sound-problem/post/5222219/#5222219

Hi,
I connected alc5659 to tx1’s J21 and enable the audio by device tree.
e2614_audio: e2614-rt5658-audio {
gpio-hog;
function;
gpios = <
TEGRA_GPIO(B, 0) 0
TEGRA_GPIO(B, 1) 0
TEGRA_GPIO(B, 2) 0
TEGRA_GPIO(B, 3) 0
TEGRA_GPIO(BB, 0) 0
TEGRA_GPIO(BB, 3) 0
>;
label = “I2S0_LRCLK”, “I2S0_SDIN”, “I2S0_SDOUT”,
“I2S0_CLK”, “AUDIO_MCLK”, “AUD_RST”;
status = “okay”;
};

I aplay a wav file. I can measure the correct frequency on MCLK, LRCLK and SCLK and see signal on DOUT(i2s_0), but alc5659 doesn’t work. Is there any other place need to enable?

Check kernel message to make sure the alc5659 is register.

Hi,
dmesg|grep 56
[ 3.833196] tegra-snd-t210ref-mobile-rt5651 sound: Failed to get HP Det GPIO, should be handled by codec
[ 3.872294] tegra-snd-t210ref-mobile-rt5651 sound: ADMAIF1 <-> ADMAIF1 mapping ok
[ 3.872537] tegra-snd-t210ref-mobile-rt5651 sound: ADMAIF2 <-> ADMAIF2 mapping ok
[ 3.872763] tegra-snd-t210ref-mobile-rt5651 sound: ADMAIF3 <-> ADMAIF3 mapping ok
[ 3.872987] tegra-snd-t210ref-mobile-rt5651 sound: ADMAIF4 <-> ADMAIF4 mapping ok
[ 3.873215] tegra-snd-t210ref-mobile-rt5651 sound: ADMAIF5 <-> ADMAIF5 mapping ok
[ 3.873440] tegra-snd-t210ref-mobile-rt5651 sound: ADMAIF6 <-> ADMAIF6 mapping ok
[ 3.873667] tegra-snd-t210ref-mobile-rt5651 sound: ADMAIF7 <-> ADMAIF7 mapping ok
[ 3.873896] tegra-snd-t210ref-mobile-rt5651 sound: ADMAIF8 <-> ADMAIF8 mapping ok
[ 3.874127] tegra-snd-t210ref-mobile-rt5651 sound: ADMAIF9 <-> ADMAIF9 mapping ok
[ 3.874351] tegra-snd-t210ref-mobile-rt5651 sound: ADMAIF10 <-> ADMAIF10 mapping ok
[ 3.906346] input: tegra-snd-t210ref-mobile-rt565x Headphone Jack as /devices/sound/sound/card1/input1
[ 3.907346] tegra-snd-t210ref-mobile-rt5651 sound: codec-dai “dit-hifi” registered
[ 3.907352] tegra-snd-t210ref-mobile-rt5651 sound: This is a dummy codec
[ 4.069194] #1: tegra-snd-t210ref-mobile-rt565x

Hi
If I enable the i2c by the device tree as below
i2cmux_70: i2cmux@70 {
compatible = “nxp,pca9546”;
reg = <0x70>;
#address-cells = <1>;
#size-cells = <0>;
vcc-supply = <&vdd_3v3>;
status = “disabled”;
.
.
.
i2c@3 {
reg = <3>;
i2c-mux,deselect-on-exit;
#address-cells = <1>;
#size-cells = <0>;
rt5658_b00: rt5659.10-001a@1a {
compatible = “realtek,rt5658”;
reg = <0x1a>;
status = “disabled”;
/* gpio for jack detection */
gpios = <&gpio TEGRA_GPIO(E , 6) GPIO_ACTIVE_HIGH>;

                                    /* refer include/sound/rt5659.h for the values to be used */
                                    realtek,jd-src = <1>; /* RT5659_JD3 */
                                    realtek,dmic1-data-pin = <2>; /* RT5659_DMIC1_DATA_GPIO5 */
                            };
                    };
                    rt5658_a00: rt5659.0-001a@1a {
                    compatible = "realtek,rt5658";
                    reg = <0x1a>;
                    status = "okay";
                    gpios = <&gpio TEGRA_GPIO(E , 6) GPIO_ACTIVE_HIGH>;

                    /* refer include/sound/rt5659.h for the values to be used */
                    realtek,jd-src = <1>; /* RT5659_JD3 */
                    realtek,dmic1-data-pin = <2>; /* RT5659_DMIC1_DATA_GPIO5 */
            };

dmesg|grep 56
[ 4.317156] rt5659 0-001a: Device with ID register f9c64000 is not rt5659
[ 4.356525] tegra-snd-t210ref-mobile-rt565x sound: Failed to get HP Det GPIO, should be handled by codec
[ 4.394815] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF1 <-> ADMAIF1 mapping ok
[ 4.395047] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF2 <-> ADMAIF2 mapping ok
[ 4.395276] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF3 <-> ADMAIF3 mapping ok
[ 4.395532] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF4 <-> ADMAIF4 mapping ok
[ 4.395764] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF5 <-> ADMAIF5 mapping ok
[ 4.395991] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF6 <-> ADMAIF6 mapping ok
[ 4.396220] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF7 <-> ADMAIF7 mapping ok
[ 4.396445] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF8 <-> ADMAIF8 mapping ok
[ 4.396676] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF9 <-> ADMAIF9 mapping ok
[ 4.396904] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF10 <-> ADMAIF10 mapping ok
[ 4.422052] input: tegra-snd-t210ref-mobile-rt565x Headphone Jack as /devices/sound/sound/card1/input1
[ 4.422660] tegra-snd-t210ref-mobile-rt565x sound: codec-dai “dit-hifi” registered
[ 4.422666] tegra-snd-t210ref-mobile-rt565x sound: This is a dummy codec

I can’t measure the audio reset signal(TX1 J21 pin29). How can I do?

@wonderkay94
Below message show your device tree no implement well.

[ 3.907352] tegra-snd-t210ref-mobile-rt5651 sound: This is a dummy codec

I had connected the alc5659 audio codec to tx1. why it is a dummy codec?

@wonderkay
You need to enable it by modify the DT for your codec only just connect the HW.
You may need download l4t-documentation-28.1 to read the “Tegra ASoC Driver”

Hi,
That’s simple introduction. There is no complete infomation. What’s the i2c number and i2c address of i2c_GP_DAT and I2C_GP_CLK(J21 pin3 and pin5)?

Hi,
Error message of dmesg
rt5659 0-001a: Device with ID register f9c54000 is not rt5659
tegra-snd-t210ref-mobile-rt565x sound: Failed to get HP Det GPIO, should be handled by codec

What it means?

I think it’s doesn’t matter with the i2c, however the i2c_GP0_xx is the i2c0@7000c000

All of this message is from the kernel driver. Please check with the kernel source.

Hi,
I have another question. The usb2(M.2 KEY E) is always in auto-suspend mode.
I used command “sudo bash -c ‘echo -1 > /sys/module/usbcore/parameters/autosuspend” and “sudo sed -i ‘$s/$/ usbcore.autosuspend=-1/’ /boot/extlinux/extlinux.conf” and “cat /sys/module/usbcore/parameters/autosuspend” is -1, but it’s no work. How can I to enable the usb2?

Please refer to
https://devtalk.nvidia.com/default/topic/1023046/jetson-tx1/unable-to-recognize-any-devices-hooked-on-usb2-m-2-slot-/post/5210227/#5210227

Hi DaneLLL
The usb2 is ok. Thank you.