AM62L-PROCESSOR-SDK: CPU Deep Sleep Issue

Part Number: AM62L-PROCESSOR-SDK
Other Parts Discussed in Thread: AM62L

Tool/software:

Hi ,

i hvae encountered an issue while testing cpu sleep mode .kindly check the attached debug prints and guide me what to do.
I have checked the software-dl.ti.com/.../pm_am62lx_low_power_modes.html.


 usage: . filename [arguments]
root@am62lxx-ig69m-2gb:~# 
root@am62lxx-ig69m-2gb:~# 
root@am62lxx-ig69m-2gb:~# 
root@am62lxx-ig69m-2gb:~# 
root@am62lxx-ig69m-2gb:~# echo mem > /sys/power/state
[   60.671139] PM: suspend entry (deep)
[   60.674980] Filesystems sync: 0.000 seconds
[   81.702682] rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
[   81.708803] rcu:     0-...0: (13 ticks this GP) idle=0f9c/1/0x4000000000000000 softirq=6706/6706 fqs=1050
[   81.718100] rcu:     (detected by 1, t=5256 jiffies, g=6049, q=429 ncpus=2)
[   81.724794] Sending NMI from CPU 1 to CPUs 0:
[   91.742756] mmc1: Timeout waiting for hardware interrupt.
[   91.748173] mmc1: sdhci: ============ SDHCI REGISTER DUMP ===========
[   91.754599] mmc1: sdhci: Sys addr:  0x00000010 | Version:  0x00001004
[   91.761028] mmc1: sdhci: Blk size:  0x00007200 | Blk cnt:  0x00000000
[   91.767455] mmc1: sdhci: Argument:  0x00896cc8 | Trn mode: 0x0000002b
[   91.773882] mmc1: sdhci: Present:   0x01ff0000 | Host ctl: 0x0000001b
[   91.780308] mmc1: sdhci: Power:     0x0000000f | Blk gap:  0x00000080
[   91.786734] mmc1: sdhci: Wake-up:   0x00000000 | Clock:    0x00000207
[   91.793161] mmc1: sdhci: Timeout:   0x00000000 | Int stat: 0x00000003
[   91.799587] mmc1: sdhci: Int enab:  0x03ff008b | Sig enab: 0x03ff008b
[   91.806013] mmc1: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000001
[   91.812439] mmc1: sdhci: Caps:      0x3de8c801 | Caps_1:   0x18002407
[   91.818868] mmc1: sdhci: Cmd:       0x0000193a | Max curr: 0x00000000
[   91.825294] mmc1: sdhci: Resp[0]:   0x00000900 | Resp[1]:  0x0076b27f
[   91.831720] mmc1: sdhci: Resp[2]:   0x325b5900 | Resp[3]:  0x00000900
[   91.838145] mmc1: sdhci: Host ctl2: 0x00000000
[   91.842578] mmc1: sdhci: ADMA Err:  0x00000000 | ADMA Ptr: 0x000000008519b218
[   91.849698] mmc1: sdhci: ============================================
[   91.870884] davinci_mdio 8000f00.mdio: timed out waiting for user access
[   91.877624] ------------[ cut here ]------------
[   91.882252] phy_check_link_status+0x0/0xf4: returned: -110
[   91.889494] WARNING: CPU: 1 PID: 39 at /drivers/net/phy/phy.c:1270 _phy_state_machine+0xd0/0x29c
[   91.898307] Modules linked in: ti_am335x_adc kfifo_buf snd_soc_simple_card snd_soc_simple_card_utils crct10dif_ce panel_simple tps65219_pwrbutton pwm_bl k3_j72xx_bandgap rti_wdt tidss drm_dma_helper drm_disp6
[   91.943797] CPU: 1 UID: 0 PID: 39 Comm: kworker/u8:2 Tainted: G           O       6.12.13-ti-g32edff5480fb #1
[   91.953697] Tainted: [O]=OOT_MODULE
[   91.957174] Hardware name: iG-RainboW-G69M-TI-AM62LX OSM (DT)
[   91.962908] Workqueue: events_power_efficient phy_state_machine
[   91.968825] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   91.975774] pc : _phy_state_machine+0xd0/0x29c
[   91.980211] lr : _phy_state_machine+0xd0/0x29c
[   91.984648] sp : ffff800081a33d40
[   91.987953] x29: ffff800081a33d50 x28: 0000000000000000 x27: 0000000000000000
[   91.995080] x26: 0000000000000000 x25: ffff000001781580 x24: ffff000001413a05
[   92.002210] x23: 0000000000000000 x22: ffff000001414000 x21: 0000000000000000
[   92.009338] x20: 0000000000000006 x19: ffff000004c53000 x18: 0000000000000000
[   92.016465] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000000
[   92.023593] x14: 0000000000000000 x13: ffff000001725300 x12: 000000000000023a
[   92.030721] x11: ffff000001725300 x10: 00000000000009e0 x9 : ffff800081a33bb0
[   92.037849] x8 : ffff000001725cc0 x7 : ffff00007face200 x6 : 0000000000000000
[   92.044976] x5 : 0000000000000001 x4 : 0000000000000002 x3 : 0000000000000804
[   92.052103] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff000001725280
[   92.059231] Call trace:
[   92.061671]  _phy_state_machine+0xd0/0x29c
[   92.065765]  phy_state_machine+0x2c/0x70
[   92.069683]  process_one_work+0x148/0x28c
[   92.073691]  worker_thread+0x2cc/0x3d4
[   92.077435]  kthread+0x110/0x114
[   92.080661]  ret_from_fork+0x10/0x20
[   92.084232] ---[ end trace 0000000000000000 ]---
[  102.010703] mmc1: Timeout waiting for hardware interrupt.
[  102.016124] mmc1: sdhci: ============ SDHCI REGISTER DUMP ===========
[  102.022549] mmc1: sdhci: Sys addr:  0x00000010 | Version:  0x00001004
[  102.028979] mmc1: sdhci: Blk size:  0x00007200 | Blk cnt:  0x00000000
[  102.035405] mmc1: sdhci: Argument:  0x00000000 | Trn mode: 0x00000023
[  102.041832] mmc1: sdhci: Present:   0x01ff0000 | Host ctl: 0x0000001b


Regards,
Dheeraj k

  • Hi Dheeraj,

    Few questions:

    1. Can you share the device tree you're using?

    2. Are there any changes to ARM Trusted Firmware?

    Not all the Linux drivers have been updated with the suspend/resume hooks, so we made a custom device tree for AM62L low power modes: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am62l3-evm-lpmdemo.dts?h=ti-linux-6.12.y

    The software development team is working on adding more suspend/resume hooks.

    Best Regards,

    Anshu

  • Hi Anshu,

     Can you share the device tree you're using?
    The DTS i have been using is attached below.


    // SPDX-License-Identifier: GPL-2.0
    /*
     * Device Tree Source for AM62L3 based IG69M Platform
     *
     * Copyright (C) 2025-2026 iWave Systems Pvt Ltd.
     */
    
    /dts-v1/;
    
    #include "k3-am62l3-ig69m.dtsi"
    
    / {
    
         rgb_panel {
                    compatible = "powertip,ph800480t013-ihc09";
                    backlight = <&lvds_backlight1>;
                    power-supply = <&reg_3p3v>;
                    reset-gpios = <&main_gpio0 43 GPIO_ACTIVE_HIGH>;
                    enable-gpios = <&main_gpio0 45 GPIO_ACTIVE_HIGH>;
                    pinctrl-names = "default";
                    pinctrl-0 = <&main_panel_pins_default>;
                    status = "okay";
    
                  port {
                            rgb_in: endpoint {
                                   remote-endpoint = <&dpi1_out>;
                            };
                    };
            };
    
    
            lvds_backlight1: lvds_backlight1 {
                    compatible = "pwm-backlight";
                    pwms = <&epwm0 0 100000 0>;
                    power-supply = <&reg_1p8v>;
                    enable-gpios = <&main_gpio0 46 GPIO_ACTIVE_HIGH>;
                    pinctrl-names = "default";
                    pinctrl-0 = <&main_lvds_backlight_pins_default>;
                    brightness-levels = <0 1  2  3  4  5  6  7  8  9
                                         10 11 12 13 14 15 16 17 18 19
                                         20 21 22 23 24 25 26 27 28 29
                                         30 31 32 33 34 35 36 37 38 39
                                         40 41 42 43 44 45 46 47 48 49
                                         50 51 52 53 54 55 56 57 58 59
                                         60 61 62 63 64 65 66 67 68 69
                                         70 71 72 73 74 75 76 77 78 79
                                         80 81 82 83 84 85 86 87 88 89
                                         90 91 92 93 94 95 96 97 98 99
                                         100>;
                    default-brightness-level = <100>;
                    status = "okay";
            };
    };
    
    &pmx0 {
    
    	main_panel_pins_default: main-panel-pins-default {
                    pinctrl-single,pins = <
                            AM62PX_IOPAD(0x00f4, PIN_INPUT, 7) /* (R22) MMC2_DAT3.GPIO0_45 */
                             AM62PX_IOPAD(0x00ec, PIN_INPUT, 7) /* (M23) GPMC0_CSn2.GPIO0_43 */ 
                    >;
         	 };
    
            main_dss0_pins_default: main_dss0-default-pins {
                    pinctrl-single,pins = <
                            AM62PX_IOPAD(0x00e4, PIN_OUTPUT, 1) /* (L20) GPMC0_CSn0.VOUT0_VSYNC */
                            AM62PX_IOPAD(0x00dc, PIN_OUTPUT, 1) /* (N21) GPMC0_WPn.VOUT0_HSYNC */
                            AM62PX_IOPAD(0x00e8, PIN_OUTPUT, 1) /* (L19) GPMC0_CSn1.VOUT0_PCLK */
                            AM62PX_IOPAD(0x00e0, PIN_OUTPUT, 1) /* (M21) GPMC0_DIR.VOUT0_DE */
                            AM62PX_IOPAD(0x0078, PIN_OUTPUT, 1) /* (L22) GPMC0_AD0.VOUT0_DATA0 */
                            AM62PX_IOPAD(0x007c, PIN_OUTPUT, 1) /* (L23) GPMC0_AD1.VOUT0_DATA1 */
                            AM62PX_IOPAD(0x0080, PIN_OUTPUT, 1) /* (K22) GPMC0_AD2.VOUT0_DATA2 */
                            AM62PX_IOPAD(0x0084, PIN_OUTPUT, 1) /* (J23) GPMC0_AD3.VOUT0_DATA3 */
                            AM62PX_IOPAD(0x0088, PIN_OUTPUT, 1) /* (K23) GPMC0_AD4.VOUT0_DATA4 */
                            AM62PX_IOPAD(0x008c, PIN_OUTPUT, 1) /* (H22) GPMC0_AD5.VOUT0_DATA5 */
                            AM62PX_IOPAD(0x0090, PIN_OUTPUT, 1) /* (H23) GPMC0_AD6.VOUT0_DATA6 */
                            AM62PX_IOPAD(0x0094, PIN_OUTPUT, 1) /* (J22) GPMC0_AD7.VOUT0_DATA7 */
                            AM62PX_IOPAD(0x0098, PIN_OUTPUT, 1) /* (H19) GPMC0_AD8.VOUT0_DATA8 */
                            AM62PX_IOPAD(0x009c, PIN_OUTPUT, 1) /* (H20) GPMC0_AD9.VOUT0_DATA9 */
                            AM62PX_IOPAD(0x00a0, PIN_OUTPUT, 1) /* (H21) GPMC0_AD10.VOUT0_DATA10 */
                            AM62PX_IOPAD(0x00a4, PIN_OUTPUT, 1) /* (H18) GPMC0_AD11.VOUT0_DATA11 */
                            AM62PX_IOPAD(0x00a8, PIN_OUTPUT, 1) /* (G23) GPMC0_AD12.VOUT0_DATA12 */
                            AM62PX_IOPAD(0x00ac, PIN_OUTPUT, 1) /* (G22) GPMC0_AD13.VOUT0_DATA13 */
                            AM62PX_IOPAD(0x00b0, PIN_OUTPUT, 1) /* (F22) GPMC0_AD14.VOUT0_DATA14 */
                            AM62PX_IOPAD(0x00b4, PIN_OUTPUT, 1) /* (F23) GPMC0_AD15.VOUT0_DATA15 */
                            AM62PX_IOPAD(0x00b8, PIN_OUTPUT, 1) /* (L21) GPMC0_CLK.VOUT0_DATA16 */
                            AM62PX_IOPAD(0x00c0, PIN_OUTPUT, 1) /* (N19) GPMC0_ADVn_ALE.VOUT0_DATA17 */
                    >;
            };
    
    	main_lvds_backlight_pins_default: main-rgb-backlight-pins-default {
                    pinctrl-single,pins = <
                            AM62PX_IOPAD(0x00f8, PIN_INPUT, 7) /* (T23) MMC2_DAT2.GPIO0_46 */
                    >;
            };
    
    	main_hycon_touch_pins_default: main-hycon-touch-pins-default {
                    pinctrl-single,pins = <
                            AM62PX_IOPAD(0x0110, PIN_INPUT, 7) /* (T20) MMC2_SDCD.GPIO0_51 */
                            AM62PX_IOPAD(0x010c, PIN_INPUT, 7) /* (U23) MMC2_CMD.GPIO0_50 */
                    >;
            };
    
    
            main_epwm0_pins_default: main_epwm0-default-pins {
                    pinctrl-single,pins = <
                            AM62PX_IOPAD(0x0198, PIN_OUTPUT, 5) /* (C11) MCASP0_AFSR.EHRPWM0_A */	
                            AM62PX_IOPAD(0x019c, PIN_OUTPUT, 5) /* (A12) MCASP0_ACLKR.EHRPWM0_B */
                    >;
            };
    
    
    };
    
    &dphy_tx0 {
           status = "okay";
    };
    
    
    &dss {
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <&main_dss0_pins_default>;
    };
    
    
    &dss_ports {
          port@0 {
                    reg = <0>;
    
                 dpi1_out: endpoint {
                            remote-endpoint = <&rgb_in>;
                    };
            };
    };
    
    &epwm0{
            pinctrl-names = "default";
            pinctrl-0 = <&main_epwm0_pins_default>;
            status = "okay";
    };
    
    
    &main_i2c2 {
            hy46xx_ts: hy46xx_ts@38 {
                    compatible = "hycon,hy46xx_ts";
                    reg = <0x38>;
                    pinctrl-names = "default";
                    pinctrl-0 = <&main_hycon_touch_pins_default>;
                    reset-gpios = <&main_gpio0 50 GPIO_ACTIVE_LOW>;
                    interrupt-parent = <&main_gpio0>;
                    interrupts = <51 IRQ_TYPE_EDGE_FALLING>;
                    status = "disabled";
            };
    };
    


    k3-am62l3-ig69m.dtsi
    // SPDX-License-Identifier: GPL-2.0-only or MIT
    /*
     * Device Tree file for the AM62L3 IG69M Platform Boards
     *
     */
    
    /dts-v1/;
    
    #include <dt-bindings/input/input.h>
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/leds/common.h>
    #include "k3-am62l3.dtsi"
    #include "k3-pinctrl.h"
    
    / {
            compatible = "ti,am62l3-ig69m", "ti,am62l3";
            model = "iG-RainboW-G69M-TI-AM62LX OSM";
    
    	aliases {
    		serial2 = &main_uart0;
    		mmc0 = &sdhci0;
                    mmc1 = &sdhci1;
                    ethernet0 = &cpsw_port1;
                    ethernet1 = &cpsw_port2;
                    gpio0 = &main_gpio0;
    		usb0 = &usb0;
                    usb1 = &usb1;
    	};
    
    	chosen {
                    stdout-path = &main_uart0;
            };
    
    	memory@80000000 {
                    /* 1GB RAM */
                    reg = <0x00000000 0x80000000 0x00000000 0x40000000>;
                    device_type = "memory";
                    bootph-all;
            };
    
    
            reserved-memory {
                    #address-cells = <2>;
                    #size-cells = <2>;
                    ranges;
    
                    secure_tfa_ddr: tfa@80000000 {
                            reg = <0x00 0x80000000 0x00 0x200000>;
                            no-map;
                            bootph-all;
                    };
    
                    secure_ddr: optee@80200000 {
                            reg = <0x00 0x80200000 0x00 0x800000>;
                            no-map;
                    };
    
                    tifs_ctx_ddr: tifs@80a00000 {
                            reg = <0x00 0x80a00000 0x00 0x800000>;
                            no-map;
                            bootph-all;
                    };
            };
    	
    	vmain_pd: regulator-0 {
                    /* TPS65988 PD CONTROLLER OUTPUT */
                    bootph-all;
                    compatible = "regulator-fixed";
                    regulator-name = "vmain_pd";
                    regulator-min-microvolt = <5000000>;
                    regulator-max-microvolt = <5000000>;
                    regulator-always-on;
                    regulator-boot-on;
            };
    
    
    
            reg_1p8v: regulator-7 {
                    compatible = "regulator-fixed";
                    regulator-name = "fixed-1.8V";
                    regulator-min-microvolt = <1800000>;
                    regulator-max-microvolt = <1800000>;
                    regulator-boot-on;
                    regulator-always-on;
            };
    
            reg_3p3v: regulator-3v3 {
                    compatible = "regulator-fixed";
                    regulator-name = "fixed-3p3V";
                    regulator-min-microvolt = <3300000>;
                    regulator-max-microvolt = <3300000>;
                    regulator-boot-on;
                    regulator-always-on;
            };
    
    
    	ig69m_board_info { /* Board revision info : Reading board configuration */
                    compatible = "ig,ig69m-com";
                    pcb_rev = <0>;
                    bom_rev = <0>;
                    status = "okay";
            };
    };
    
    &pmx0 { 
    
    	main_uart0_pins_default: main_uart0-default-pins {
                    pinctrl-single,pins = <
                            AM62PX_IOPAD(0x01b4, PIN_INPUT, 0) /* (D13) UART0_RXD */
                            AM62PX_IOPAD(0x01b8, PIN_OUTPUT, 0) /* (C13) UART0_TXD */
                    >;
                    bootph-all;
            };
    	
    	main_mmc0_pins_default: main-mmc0-default-pins {
                    pinctrl-single,pins = <
                            AM62PX_IOPAD(0x0214, PIN_INPUT_PULLUP, 0) /* (D2) MMC0_CMD */
                            AM62PX_IOPAD(0x020c, PIN_OUTPUT, 0) /* (B2) MMC0_CLK */
                            AM62PX_IOPAD(0x0208, PIN_INPUT_PULLUP, 0) /* (D3) MMC0_DAT0 */
                            AM62PX_IOPAD(0x0204, PIN_INPUT_PULLUP, 0) /* (D4) MMC0_DAT1 */
                            AM62PX_IOPAD(0x0200, PIN_INPUT_PULLUP, 0) /* (C1) MMC0_DAT2 */
                            AM62PX_IOPAD(0x01fc, PIN_INPUT_PULLUP, 0) /* (C2) MMC0_DAT3 */
                            AM62PX_IOPAD(0x01f8, PIN_INPUT_PULLUP, 0) /* (C4) MMC0_DAT4 */
                            AM62PX_IOPAD(0x01f4, PIN_INPUT_PULLUP, 0) /* (B3) MMC0_DAT5 */
                            AM62PX_IOPAD(0x01f0, PIN_INPUT_PULLUP, 0) /* (A3) MMC0_DAT6 */
                            AM62PX_IOPAD(0x01ec, PIN_INPUT_PULLUP, 0) /* (B4) MMC0_DAT7 */
                    >;
                    bootph-all;
            };
    
    	main_mmc1_pins_default: main-mmc1-default-pins {
                    pinctrl-single,pins = <
                            AM62PX_IOPAD(0x0230, PIN_INPUT, 0) /* (Y3) MMC1_CMD */
                            AM62PX_IOPAD(0x0228, PIN_OUTPUT, 0) /* (Y2) MMC1_CLK */
                            AM62PX_IOPAD(0x0224, PIN_INPUT, 0) /* (AA1) MMC1_DAT0 */
                            AM62PX_IOPAD(0x0220, PIN_INPUT_PULLUP, 0) /* (Y4) MMC1_DAT1 */
                            AM62PX_IOPAD(0x021c, PIN_INPUT_PULLUP, 0) /* (AA2) MMC1_DAT2 */
                            AM62PX_IOPAD(0x0218, PIN_INPUT_PULLUP, 0) /* (AB2) MMC1_DAT3 */
                            AM62PX_IOPAD(0x0234, PIN_INPUT, 0) /* (B6) MMC1_SDCD */
                    >;
                    bootph-all;
            };
    	
    	main_rgmii1_pins_default: main-rgmii1-default-pins {
                    pinctrl-single,pins = <
                            AM62PX_IOPAD(0x0138, PIN_INPUT, 0) /* (Y8) RGMII1_RD0 */
                            AM62PX_IOPAD(0x013c, PIN_INPUT, 0) /* (AA6) RGMII1_RD1 */
                            AM62PX_IOPAD(0x0140, PIN_INPUT, 0) /* (AA8) RGMII1_RD2 */
                            AM62PX_IOPAD(0x0144, PIN_INPUT, 0) /* (W8) RGMII1_RD3 */
                            AM62PX_IOPAD(0x0134, PIN_INPUT, 0) /* (Y7) RGMII1_RXC */
                            AM62PX_IOPAD(0x0130, PIN_INPUT, 0) /* (Y6) RGMII1_RX_CTL */
                            AM62PX_IOPAD(0x0120, PIN_OUTPUT, 0) /* (AC10) RGMII1_TD0 */
                            AM62PX_IOPAD(0x0124, PIN_OUTPUT, 0) /* (W13) RGMII1_TD1 */
                            AM62PX_IOPAD(0x0128, PIN_OUTPUT, 0) /* (Y11) RGMII1_TD2 */
                            AM62PX_IOPAD(0x012c, PIN_OUTPUT, 0) /* (AA11) RGMII1_TD3 */
                            AM62PX_IOPAD(0x011c, PIN_OUTPUT, 0) /* (W11) RGMII1_TXC */
                            AM62PX_IOPAD(0x0118, PIN_OUTPUT, 0) /* (AB11) RGMII1_TX_CTL */
                    >;
            };
    
            main_rgmii2_pins_default: main-rgmii2-default-pins {
                    pinctrl-single,pins = <
                            AM62PX_IOPAD(0x0170, PIN_INPUT, 0) /* (AB9) RGMII2_RD0 */
                            AM62PX_IOPAD(0x0174, PIN_INPUT, 0) /* (AC9) RGMII2_RD1 */
                            AM62PX_IOPAD(0x0178, PIN_INPUT, 0) /* (AB10) RGMII2_RD2 */
                            AM62PX_IOPAD(0x017c, PIN_INPUT, 0) /* (AB8) RGMII2_RD3 */
                            AM62PX_IOPAD(0x016c, PIN_INPUT, 0) /* (AC7) RGMII2_RXC */
                            AM62PX_IOPAD(0x0168, PIN_INPUT, 0) /* (AC8) RGMII2_RX_CTL */
                            AM62PX_IOPAD(0x0158, PIN_OUTPUT, 0) /* (AC12) RGMII2_TD0 */
                            AM62PX_IOPAD(0x015c, PIN_OUTPUT, 0) /* (AB13) RGMII2_TD1 */
                            AM62PX_IOPAD(0x0160, PIN_OUTPUT, 0) /* (AA12) RGMII2_TD2 */
                            AM62PX_IOPAD(0x0164, PIN_OUTPUT, 0) /* (AA13) RGMII2_TD3 */
                            AM62PX_IOPAD(0x0154, PIN_OUTPUT, 0) /* (Y13) RGMII2_TXC */
                            AM62PX_IOPAD(0x0150, PIN_OUTPUT, 0) /* (AB12) RGMII2_TX_CTL */
                    >;
            };
    
            main_mdio1_pins_default: mdio1-default-pins {
                    pinctrl-single,pins = <
                            AM62PX_IOPAD(0x014c, PIN_OUTPUT, 0) /* (AC15) MDIO0_MDC */
                            AM62PX_IOPAD(0x0148, PIN_INPUT, 0) /* (AC13) MDIO0_MDIO */
                    >;
            };
    
    
    	main_i2c0_pins_default: main-i2c0-default-pins {
                   pinctrl-single,pins = <
                            AM62PX_IOPAD(0x01cc, PIN_INPUT_PULLUP, 0) /* (B7) I2C0_SCL */
                            AM62PX_IOPAD(0x01d0, PIN_INPUT_PULLUP, 0) /* (A7) I2C0_SDA */
                    >;
                    bootph-all;
            };
    
    	main_i2c2_pins_default: main-i2c2-default-pins {
                    pinctrl-single,pins = <
                            AM62PX_IOPAD(0x01dc, PIN_INPUT_PULLUP, 0) /* (B8) I2C2_SCL */
                            AM62PX_IOPAD(0x01e0, PIN_INPUT_PULLUP, 0) /* (D8) I2C2_SDA */
                    >;
                    bootph-all;
            };
    	
    	main_rtc_pins_default: main-rtc-default-pins {
                    pinctrl-single,pins = < 
                            AM62PX_IOPAD(0x00fc, PIN_INPUT, 7) /* (T22) MMC2_DAT1.GPIO0_47 */                
                    >;
                    bootph-all;
            };
    	
    	pmic_irq_pins_default: pmic-irq-default-pins {
                    pinctrl-single,pins = <
                            AM62PX_IOPAD(0x01e8, PIN_INPUT, 7) /* (C8) EXTINTn.GPIO0_105 */
                    >;
            };
    
    	
            main_usb0_pins_default: main_usb0-default-pins {
                    pinctrl-single,pins = <
                            AM62PX_IOPAD(0x0244, PIN_OUTPUT, 0) /* (C6) USB0_DRVVBUS */
                    
                    >;
                    bootph-all;
            };
    
            main_usb1_pins_default: main-usb1-default-pins {
                    pinctrl-single,pins = <
                            AM62LX_IOPAD(0x0248, PIN_OUTPUT, 0)/* (A5) USB1_DRVVBUS */
                    >;
                    bootph-all;
            };
    
            wkup_i2c0_pins_default: wkup-i2c0-default-pins {
                    pinctrl-single,pins = <
                            AM62LX_IOPAD(0x0010, PIN_INPUT_PULLUP, 0) /* (AB22) WKUP_I2C0_SCL */
                            AM62LX_IOPAD(0x0014, PIN_INPUT_PULLUP, 0) /* (AA22) WKUP_I2C0_SDA */
                    >;
            };
    
    };
    
    
    &main_uart0 {
            current-speed = <115200>;
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <&main_uart0_pins_default>;
    };
    
    &sdhci0 {
            /* eMMC */
            bootph-all;
            non-removable;
            pinctrl-names = "default";
            pinctrl-0 = <&main_mmc0_pins_default>;
            status = "okay";
    };
    
    
    &sdhci1 {
            /* SD/MMC */
            bootph-all;
            pinctrl-names = "default";
            pinctrl-0 = <&main_mmc1_pins_default>;
            status = "okay";
    };
    
    
    &cpsw3g {
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <&main_rgmii1_pins_default>,
                        <&main_rgmii2_pins_default>;
    
    };
    /* Ethernet0 with ADIN1300BCPZ PHY  */
    &cpsw_port1 {
            phy-mode = "rgmii-rxid";
            phy-handle = <&cpsw3g_phy0>;
            status = "okay";
    };
    
    
    /* Ethernet1 with AR8031-AL1B PHY */
    &cpsw_port2 {
            phy-mode = "rgmii-rxid";
            phy-handle = <&cpsw3g_phy1>;
            status = "disabled";
    };
    
    &cpsw3g_mdio {
            pinctrl-names = "default";
            pinctrl-0 = <&main_mdio1_pins_default>;
            status = "okay";
    
            cpsw3g_phy0: ethernet-phy@0 {
                reg = <4>;
                adi,rx-internal-delay-ps = <2000>;
            };
    
            cpsw3g_phy1: ethernet-phy@1 {
                    reg = <5>;
                    qca,disable-smarteee;
                    vddio-supply = <&vddio0>;
                            vddio0: vddio-regulator {
                            regulator-min-microvolt = <1800000>;
                            regulator-max-microvolt = <1800000>;
    
                     };
    
            };
    
    };
    
    &main_i2c0 {
            status = "disabled";
            pinctrl-names = "default";
            pinctrl-0 = <&main_i2c0_pins_default>;
            clock-frequency = <400000>;
    };
    
    &main_i2c2 {
            status="disabled" ;
            pinctrl-names = "default";
            pinctrl-0 = <&main_i2c2_pins_default>;
            clock-frequency = <400000>;
    
    	pcf85263:rtc@51 {
                    compatible = "nxp,pcf85263";
                    reg = <0x51>;
                    pinctrl-names = "default";
                    pinctrl-0 = <&main_rtc_pins_default>;
                    interrupt-parent = <&main_gpio0>;
                    interrupts = <47 IRQ_TYPE_LEVEL_LOW>;
                    wakeup-source;
                    status = "disabled";
            };
    
    };
    
    
    &wkup_i2c0 {
            clock-frequency = <400000>;
            pinctrl-names = "default";
            pinctrl-0 = <&wkup_i2c0_pins_default>;
            status = "disabled";
    
            tps65214: pmic@30 {
                    compatible = "ti,tps65214";
                    reg = <0x30>;
    
                    pinctrl-names = "default";
                    pinctrl-0 = <&pmic_irq_pins_default>;
                    interrupt-parent = <&main_gpio0>;
                    interrupts = <105 IRQ_TYPE_EDGE_FALLING>;
                    ti,power-button;
    
                    buck1-supply = <&vmain_pd>;
                    buck2-supply = <&vmain_pd>;
                    buck3-supply = <&vmain_pd>;
                    ldo1-supply = <&vmain_pd>;
                    ldo2-supply = <&vmain_pd>;
    
                    regulators {
                            buck1_reg: buck1 {
                                    regulator-name = "VDD_CORE";
                                    regulator-min-microvolt = <750000>;
                                    regulator-max-microvolt = <750000>;
                                    regulator-always-on;
                                    regulator-boot-on;
                            };
    
                            buck2_reg: buck2 {
                                    regulator-name = "DVDD_1V8";
                                    regulator-min-microvolt = <1800000>;
                                    regulator-max-microvolt = <1800000>;
                                    regulator-always-on;
                                    regulator-boot-on;
                            };
    
                            buck3_reg: buck3 {
                                    regulator-name = "VDD_LPDDR4";
                                    regulator-min-microvolt = <1100000>;
                                    regulator-max-microvolt = <1100000>;
                                    regulator-always-on;
                                    regulator-boot-on;
                            };
    
                            ldo1_reg: ldo1 {
                                    regulator-name = "VDD_1V8";
                                    regulator-min-microvolt = <1800000>;
                                    regulator-max-microvolt = <1800000>;
                                    regulator-always-on;
                                    regulator-boot-on;
                            };
    
                            ldo2_reg: ldo2 {
                                    regulator-name = "VDDA_V75";
                                    regulator-min-microvolt = <750000>;
                                    regulator-max-microvolt = <750000>;
                                    regulator-always-on;
                                    regulator-boot-on;
                            };
                    };
            };
    };
    
    &main_gpio0 {
            status = "okay";
    };
    
    
    &usbss0 {
            status = "okay";
            ti,vbus-divider;
    };
    
    &usb0 {
            bootph-all;
            usb-role-switch;
            dr_mode = "peripheral";
            pinctrl-names = "default";
            pinctrl-0=<&main_usb0_pins_default>;
    
    };
    
    &usbss1 {
            status = "okay";
            ti,vbus-divider;
    };
    
    &usb1 {
            dr_mode = "host";
            pinctrl-names = "default";
            pinctrl-0 = <&main_usb1_pins_default>;
    };
    



    2. Are there any changes to ARM Trusted Firmware?
    Yes, i have updated my DDR file and created a new board directory in the path "plat/ti/k3/board/am62l_ig69m_2gb/board.mk" 

    So if i have to test the board with cpu sleep mode then i need to update the fdtfile to "k3-am62l3-evm-lpmdemo.dts " ?

    --Dheeraj k


  • Hi Dheeraj,

    If you want to test DeepSleep use the "k3-am62l3-evm-lpmdemo.dts" as the fdtfile. This should guarantee that the board will sleep without any problems.

    If you want to keep using your custom dts file, you should delete the same nodes that are deleted at the end of the "k3-am62l3-evm-lpmdemo.dts" file and you should keep the CPSW nodes as disabled. There is no guarantee that this will work for testing DeepSleep.

    Best,

    Kendall

  • Hi Willis,

    Thank You for the update , i will check .

    Regards,
    Dheeraj k

  • Hi wills,

    I have tried the lpdemo.dtb and its working fine in EVM Board .Just to clarify if i configure my debug uart as wakeup source and give an interupt to the board through my keyboard , CPU should wake from sleep right?
    This i have tried in my Custom board but  not working.

    So does this issue also come under "The software development team is working on adding more suspend/resume hooks."?

  • Hi Dheeraj,

    At the moment, only the RTC ext pin is available as a wakeup source in this release of the Linux SDK.

    Best,

    Kendall

  • Hi Kendall, 

    Is the RTC EXT pin the only interrupt source that can be used to wake up the CPU from deep sleep mode, or can other interfaces also be used?"

    Regards,
    Dheeraj k

  • Hi Dheeraj,

    In the current SDK version, SDK 11.0 only supports the RTC ext pin as a wakeup source from DeepSleep mode. No other interfaces are wakeup capable at this time. More wakeup sources will be added in future Linux SDK releases.

    Best,

    Kendall

  • Hi Kendal ,

    Thank You for the update , Could you please let me know when will be the next release?

  • Hi Dheeraj,

    From looking at past releases, the next release will most likely be in August.

    Best,

    Kendall