cancel
Showing results for 
Search instead for 
Did you mean: 

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

mteaching
Associate III

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.

1 ACCEPTED SOLUTION

Accepted Solutions
mteaching
Associate III
3 REPLIES 3
Gregory PLANCHON
ST Employee

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

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.

mteaching
Associate III

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.