cancel
Showing results for 
Search instead for 
Did you mean: 

STM32MP157 Change LTDC_CLK frequency after wakeup from deep suspend

loupi
Associate II

Hello everybody,

I am developing a custom board strongly inspired by the STM32MP157D-DK1, except that I use a parallel DPI RGB on 24bit display.

I use openstlinux-6.1-yocto-mickledore-mpu-v24.06.26.

The frequency of "LTDC_CLK" changes by itself after waking up from "deep suspend".

Before putting it into "deep suspend", I measure 31.65Mhz which corresponds well to what is expected for "innolux,at070tn92"

att.qkEepWBxJ4NBOjGjfktyalRDXlTXnahAHmtXM_EEd0E.jpg

But after waking up, i measure 86.21Mhz and this is completely outside the display specifications.
att.IGWMPVnAkEnHCe4X2521IyVabw4CxdoXxQ70AXnA5Jg.jpg

All other frequencies changed in the same proportion "HSYNC", "VSYNC", ...

Here is the configuration in the kernel and u-boot DTS file :

 

panel_at070tn92:  panel_at070tn92@0 {
	compatible = "innolux,at070tn92";
	enable-gpios = <&gpioi 10 GPIO_ACTIVE_HIGH>;
	power-supply = <&vdd>;
   	status = "okay";	
	port@0 {
		reg = <0>;
		panel_in: endpoint {
			remote-endpoint = <&ltdc_ep0_out>;			
		};
	};
};

&ltdc{
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&ltdc_pins_mx>;
	pinctrl-1 = <&ltdc_sleep_pins_mx>;
	status = "okay";

	/* USER CODE BEGIN ltdc */
	port {
		#address-cells = <1>;
		#size-cells = <0>;
 
		ltdc_ep0_out: endpoint@0 {
			reg = <0>;
			remote-endpoint = <&panel_in>;
		};
	};
	/* USER CODE END ltdc */
};

 

The rest of the devices like ethernet seem to work perfectly fine after exiting "Suspend Deep" mode

 

Here are the logs where we see the suspend deep and the wake-up:

 

root@stm32mp1-display:~# systemctl suspend
root@stm32mp1-display:~# 
root@stm32mp1-display:~# [ 1433.612734] PM: suspend entry (deep)
[ 1433.616338] Filesystems sync: 0.001 seconds
[ 1433.624273] Freezing user space processes
[ 1433.673814] Freezing user space processes completed (elapsed 0.046 seconds)
[ 1433.680020] OOM killer disabled.
[ 1433.682577] Freezing remaining freezable tasks
[ 1433.688551] Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
[ 1433.694556] printk: Suspending console(s) (use no_console_suspend to debug)
þüNOTICE:  CPU: STM32MP157AAA Rev.Z
NOTICE:  Model: Display - openstlinux-6.1-yocto-mickledore-mpu-v24.06.26
INFO:    PMIC version = 0x21
INFO:    Reset reason (0x810):
INFO:    System exits from STANDBY
INFO:    FCONF: Reading TB_FW firmware configuration file from: 0x2ffe2000
INFO:    FCONF: Reading firmware configuration information for: stm32mp_io
INFO:    FCONF: Reading firmware configuration information for: stm32mp_fuse
NOTICE:  BL2: v2.8-stm32mp1-r2.0(debug):lts-v2.8.15-dirty(567af710)
NOTICE:  BL2: Built : 00:51:33, Jan 26 2024
INFO:    BL2: Doing platform setup
INFO:    RAM: DDR3-DDR3L 16bits 533000kHz
INFO:    BL2: Skip loading image id 1
INFO:    BL2: Skip loading image id 4
INFO:    BL2: Skip loading image id 8
INFO:    BL2: Skip loading image id 9
INFO:    BL2: Skip loading image id 2
INFO:    BL2: Skip loading image id 16
INFO:    BL2: Skip loading image id 5
NOTICE:  BL2: Booting BL32
INFO:    Entry point address = 0xde004fe8
INFO:    SPSR = 0x1d3
I/TC: Override the OTP 18: 0x7b750000 to 0x7b7501e0
I/TC: Resumed
I/TC: Secondary CI/TC: Secondary CPU 1 switching to normal world boot
[ 1433.704296] dwc2 49000000.usb-otg: suspending usb gadget configfs-gadget.g1
[ 1433.821288] stm32-dwmac 5800a000.ethernet end0: Link is Down
[ 1433.829786] Disabling non-boot CPUs ...
[ 1433.830806] CPU1 killed.
[ 1433.832114] Enabling non-boot CPUs ...
[ 1433.839505] CPU1 is up
[ 1433.853617] dwmac4: Master AXI performs any burst length
[ 1433.853662] stm32-dwmac 5800a000.ethernet end0: No Safety Features support found
[ 1433.853698] stm32-dwmac 5800a000.ethernet end0: IEEE 1588-2008 Advanced Timestamp supported
[ 1433.853769] stm32-dwmac 5800a000.ethernet end0: configuring for phy/rmii link mode
[ 1434.009222] usb usb1: root hub lost power or was reset
[ 1434.011944] dwc2 49000000.usb-otg: resuming usb gadget configfs-gadget.g1
[ 1434.015196] usb usb2: root hub lost power or was reset
[ 1434.475801] OOM killer enabled.
[ 1434.478759] Restarting tasks ... done.
[ 1434.488425] random: crng reseeded on system resumption
[ 1434.493708] PM: suspend exit
[ 1435.907924] stm32-dwmac 5800a000.ethernet end0: Link is Up - 100Mbps/Full - flow control off

 

I have been stuck for over a week, so I am asking you for help on this subject.

Thank you very much

Loupi

1 ACCEPTED SOLUTION

Accepted Solutions

Hi,

Maybe look a potential Device Tree discrepancies around clocks between TF-A, uBoot and Linux (they must be same).
Also try a diff around "cat /sys/kernel/debug/clk/clk_summary" before and after suspend.

Regards.

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.

View solution in original post

2 REPLIES 2
loupi
Associate II

Hello,
Do you have no ideas? it's as if the ltdc device of the stm32mp157 had lost its configuration when entering and exiting the mode "deep suspens"
Thank you advance
Loupi

Hi,

Maybe look a potential Device Tree discrepancies around clocks between TF-A, uBoot and Linux (they must be same).
Also try a diff around "cat /sys/kernel/debug/clk/clk_summary" before and after suspend.

Regards.

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.