Skip to main content
Explorer
August 17, 2023
Solved

There is no audio data output from the 3.5mm headphone jack after the HDMI node is disabled

  • August 17, 2023
  • 2 replies
  • 4041 views

Sorry to bother you.
I don't need the HDMI chip(sii9022) in my project. So, I first removed the HDMI chip on the STM32P157F-DK2. In fact, I manually removed it with a soldering iron. My SDK and development environment are based on "stm32mp1-openstlinux-6.1-yocto- mickledore-mp1-v23.06.21" "en.SDK-x86_64-stm32mp1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21.tar.gz".
At first I didn't make any modification, the mipi display screen will not work normally after the kernel boots, after some fumbling, I modified the device tree and now the mipi screen displays normally, my modification points are as follows(filename:stm32mp15xx-dkx.dtsi):

hdmi-transmitter@39 {
		compatible = "sil,sii9022";
		reg = <0x39>;
		iovcc-supply = <&v3v3_hdmi>;
		cvcc12-supply = <&v1v2_hdmi>;
		reset-gpios = <&gpioa 10 GPIO_ACTIVE_LOW>;
		interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
		interrupt-parent = <&gpiog>;
		#sound-dai-cells = <0>;
		status = "disabled";

		ports {
			#address-cells = <1>;
			#size-cells = <0>;

			port@0 {
				reg = <0>;
				sii9022_in: endpoint {
					remote-endpoint = <&ltdc_ep0_out>;
				};
			};
		};
	};

And I run the following command:

The phenomenon is that the video is displayed normally on the screen, but there is no sound from the 3.5mm headphone jack.

weston@stm32mp1:~$ su weston
weston@stm32mp1:~$ aplay -l
aplay: device_list:274: no soundcards found...
weston@stm32mp1:~$ gst-discoverer-1.0 /home/weston/watch.mp4
Analyzing file:///home/weston/watch.mp4
Done discovering file:///home/weston/watch.mp4

Properties:
 Duration: 0:03:02.381678004
 Seekable: yes
 Live: no
 container #0: Quicktime
 video #1: H.264 (High Profile)
 Stream ID: 905bc53223835d6a2923b48e8dc694e902b3a501f84c07707ad690ac05f03035/001
 Width: 960
 Height: 544
 Depth: 24
 Frame rate: 30000/1001
 Pixel aspect ratio: 1/1
 Interlaced: false
 Bitrate: 469403
 Max bitrate: 0
 audio #2: MPEG-4 AAC
 Stream ID: 905bc53223835d6a2923b48e8dc694e902b3a501f84c07707ad690ac05f03035/002
 Language: <unknown>
 Channels: 1 (unknown layout)
 Sample rate: 44100
 Depth: 32
 Bitrate: 48000
 Max bitrate: 48000

weston@stm32mp1:~$ gst-launch-1.0 playbin uri=file:///home/weston/watch.mp4
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...0.0 %)
Redistribute latency...0.0 %)
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstPulseSinkClock
Redistribute latency...0.0 %)
^Chandling interrupt. (2.1 %)
Interrupt: Stopping pipeline ...
Execution ended after 0:00:05.397120377
Setting pipeline to NULL ...
Freeing pipeline ...
weston@stm32mp1:~$

Do I need to modify other places on the device tree? My understanding of port, endpoint, and remote-endpoint is poor, can you please help me modify a device tree that can output audio from the 3.5mm headphone jack? At least for now, I think the devices tree needs to be modified firstly.

Attached is a boot log after I disabled the HDMI node in device tree.

    This topic has been closed for replies.
    Best answer by mteaching

    I have solved this problem.Anyone who is interested in the topic can visit :

    https://github.com/MY201314MY/yocto-stm32mp/commit/a715d7fc28463dac7ad8d3f7b88af8836aedfe53

    @Gregory PLANCHON 

    Thank you.

    2 replies

    ST Employee
    September 6, 2023

    Hi,

    it's likely that you've deactivated the interface but not the HDMI pin, so the interface is still ON and the sound isn't coming through the jack.

    you can try the command : “$> pactl list cards” to check whether the hdmi-stereo output is still active or not (be sure to use the Weston user for this order).

    if this is the case, you'll need to disable the pin linked to this output.

    Regards,

    Grégory

    mteachingAuthor
    Explorer
    November 16, 2023

    Hello

    pactl list cards return none:

    mteaching_0-1700122461000.png

    But from the log I'm sure the cs42l01 has been probed:

    root@stm32mp1:~# dmesg | grep cs
    [ 0.000000] OF: fdt: Machine model: STMicroelectronics STM32MP157F-DK2 Discovery Board
    [ 15.962054] cs42l51 0-004a: Cirrus Logic CS42L51, Revision: 01

     

    root@stm32mp1:~# cat /proc/asound/cards
    --- no soundcards ---
    root@stm32mp1:~# 

    It seems the hdmi-stereo output is not actived,right?

    I read this:https://wiki.st.com/stm32mpu/wiki/Soundcard_configuration#Cirrus_cs42l51_output_configuration

    but still no solutions.

    Any other advise?

    Regards,

    Thank you.

    mteachingAuthorAnswer
    Explorer
    January 19, 2024

    I have solved this problem.Anyone who is interested in the topic can visit :

    https://github.com/MY201314MY/yocto-stm32mp/commit/a715d7fc28463dac7ad8d3f7b88af8836aedfe53

    @Gregory PLANCHON 

    Thank you.