AM62L: AM62L MIPI LCD probe error

Part Number: AM62L

Tool/software:

I attempted to connect a MIPI display to the DSI interface exposed on the AM62L and expected it to function properly. However, the driver exits abnormally during probe, and the mipi_dsi_attach function returns an error code. From the function code, I can see that the error occurs because the ops (operations) function pointer in the DSI device structure’s host field is NULL. Could this be due to an issue in my device tree configuration causing the attach operation to fail?

&dss {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&main_dpi_pins_default>;
	bootph-all;
};

&dss_ports {
	port@0 {
		reg = <0>;

		dpi_out: endpoint {
			remote-endpoint = <&panel_in>;
		};
	};
};

&dphy_tx0 {
	status = "okay";
	bootph-all;
};

&dsi0 {
	status = "okay";
	bootph-all;

	panel@0 {
		compatible = "amelin,aml070wxii4006";
		reg = <0>;
		vcc-lcd-supply = <&vcc_3v3_sys>;
		pinctrl-names = "default";
		pinctrl-0 = <&mipi_lcd_rst>;
		reset-gpio = <&main_gpio0 50 GPIO_ACTIVE_LOW>;
		backlight = <&mipi_dsi_backlight>;
		status = "okay";

		port {
              panel_in: endpoint {
                  remote-endpoint = <&dpi_out>;
                        };
                };
        };
};
And this is  the edit part base on k3-am62l3-evm.dts

	drm_panel_add(&ctx->panel);

	dsi->format = MIPI_DSI_FMT_RGB888;
	dsi->lanes = 4;
	dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_VIDEO_HSE | MIPI_DSI_MODE_LPM;

	ret = of_property_read_u32(dsi->dev.of_node, "video-mode", &video_mode);
	if (!ret) {
		dsi->mode_flags = video_mode;
	}
	dev_info(&dsi->dev, "dsi video mode[0x%lx]\n", dsi->mode_flags);

	return mipi_dsi_attach(dsi);
this is the probe func where it exit,when it enter probe,it will exit from mipi_dsi_attach,is  there something wrong with dsi host ?

  • Hi, 
    1. Can you please try defining dsi0 node and panel node as done in: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am62l3-evm-dsi-rpi-7inch-panel.dtso?h=ti-linux-6.12.y 
    2. Please share dmesg logs.
    3. Which file are you looking into for the mipi_dsi_attach function observation?

  • Hi Divyansh,

    1.I tried configuring the device tree as provided, but my hardware setup does not use a bridge for connection. Only when I placed the panel node under the dsi node did I see the console log showing the panel driver being initialized, like the output below.

    [   17.131885] clk: failed to reparent 0_ADC0 to 2_ADC0: -22
    [   17.539948] /bus@f0000/dsi@30500000: Fixed dependency cycle(s) with /bus@f0000/dsi@30500000/panel@0
    [   17.563972] /bus@f0000/dsi@30500000/panel@0: Fixed dependency cycle(s) with /bus@f0000/dsi@30500000
    [   17.821873] am65-cpsw-nuss 8000000.ethernet eth1: PHY [8000f00.mdio:02] driver [MAE0621A/B-Q3C(I) Gigabit Ethernet] (irq=POLL)
    [   17.840057] am65-cpsw-nuss 8000000.ethernet eth1: configuring for phy/rgmii-rxid link mode
    [   18.217357] CAN device driver interface
    [   18.751295] input: tps65219-pwrbutton as /devices/platform/bus@f0000/bus@f0000:bus@43000000/2b200000.i2c/i2c-0/0-0030/tps65219-pwrbutton.3.auto/input/input1
    [   18.930005] m_can_platform 20701000.can: m_can device registered (irq=308, version=32)
    [   18.994840] m_can_platform 20711000.can: m_can device registered (irq=309, version=32)
    [   20.248820] m_can_platform 20711000.can main_mcan1: renamed from can1
    [   20.287133] panel-aml070wxii4006 30500000.dsi.0: dsi video mode[0x813]
    [   20.406131] panel-aml070wxii4006 30500000.dsi.0: probe with driver panel-aml070wxii4006 failed with error -524
    [   20.448615] m_can_platform 20701000.can main_mcan0: renamed from can0

     and my device tree configuration is as follows

    &dss {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_dpi_pins_default>;
    	bootph-all;
    };
    
    &dss_ports {
    
    	port@0 {
    		reg = <0>;
    
    		dpi_out: endpoint {
    			remote-endpoint = <&dsi0_in>;
    		};
    	};
    };
    
    &dphy_tx0 {
    	status = "okay";
    	bootph-all;
    
    	
    };
    
    &dsi0 {
    	status = "okay";
    	bootph-all;
    
    	ports {
    		#address-cells = <1>;
    		#size-cells = <0>;
    
    		port@0 {
    			reg = <0>;
    			dsi0_out: endpoint {
    				remote-endpoint = <&panel_in>;
    			};
    		};
    
    		port@1 {
    			reg = <1>;
    			dsi0_in: endpoint {
    				remote-endpoint = <&dpi_out>;
    			};
    		};
    	};
    
    	panel@0 {
    		compatible = "amelin,aml070wxii4006";
    		reg = <0>;
    		vcc-lcd-supply = <&vcc_3v3_sys>;
    		pinctrl-names = "default";
    		pinctrl-0 = <&mipi_lcd_rst>;
    		reset-gpio = <&main_gpio0 50 GPIO_ACTIVE_LOW>;
    		backlight = <&mipi_dsi_backlight>;
    		status = "okay";
    
    		port {
    				panel_in: endpoint {
    					remote-endpoint = <&dsi0_out>;
    				};
    		};
    	};
    };

    2.This is the dmesg output when I modified the device tree as described in the first point

    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [    0.000000] Linux version 6.12.24-gb0afb35642d7-dirty (tronlong@tronlong-virtual-machine) (aarch64-oe-linux-gcc (GCC) 13.3.0, GNU ld (GNU Binutils) 2.42.0.20240723) #1 SMP PREEMPT Wed Aug 27 16:04:49 CST 2025
    [    0.000000] KASLR disabled due to lack of seed
    [    0.000000] Machine model: Texas Instruments AM62L3 Evaluation Module
    [    0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '')
    [    0.000000] printk: legacy bootconsole [ns16550a0] enabled
    [    0.000000] efi: UEFI not found.
    [    0.000000] OF: reserved mem: 0x0000000080200000..0x00000000809fffff (8192 KiB) nomap non-reusable optee@80200000
    [    0.000000] OF: reserved mem: 0x0000000080000000..0x00000000801fffff (2048 KiB) nomap non-reusable tfa@80000000
    [    0.000000] NUMA: Faking a node at [mem 0x0000000080000000-0x00000000bfffffff]
    [    0.000000] NODE_DATA(0) allocated [mem 0xbfdd6140-0xbfdd877f]
    [    0.000000] Zone ranges:
    [    0.000000]   DMA      [mem 0x0000000080000000-0x00000000bfffffff]
    [    0.000000]   DMA32    empty
    [    0.000000]   Normal   empty
    [    0.000000] Movable zone start for each node
    [    0.000000] Early memory node ranges
    [    0.000000]   node   0: [mem 0x0000000080000000-0x00000000809fffff]
    [    0.000000]   node   0: [mem 0x0000000080a00000-0x00000000bfffffff]
    [    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000bfffffff]
    [    0.000000] cma: Reserved 32 MiB at 0x00000000bcc00000 on node -1
    [    0.000000] psci: probing for conduit method from DT.
    [    0.000000] psci: PSCIv1.1 detected in firmware.
    [    0.000000] psci: Using standard PSCI v0.2 function IDs
    [    0.000000] psci: MIGRATE_INFO_TYPE not supported.
    [    0.000000] psci: SMC Calling Convention v1.5
    [    0.000000] percpu: Embedded 25 pages/cpu s62040 r8192 d32168 u102400
    [    0.000000] pcpu-alloc: s62040 r8192 d32168 u102400 alloc=25*4096
    [    0.000000] pcpu-alloc: [0] 0 [0] 1 
    [    0.000000] Detected VIPT I-cache on CPU0
    [    0.000000] CPU features: detected: GIC system register CPU interface
    [    0.000000] CPU features: detected: ARM erratum 845719
    [    0.000000] alternatives: applying boot alternatives
    [    0.000000] Kernel command line: console=ttyS0,115200n8 vt.global_cursor_default=0 earlycon=ns16550a,mmio32,0x02800000 root=PARTUUID=3ca31b1e-02 rw rootfstype=ext4 rootwait
    [    0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
    [    0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear)
    [    0.000000] Fallback order for Node 0: 0 
    [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 262144
    [    0.000000] Policy zone: DMA
    [    0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
    [    0.000000] software IO TLB: SWIOTLB bounce buffer size adjusted to 1MB
    [    0.000000] software IO TLB: area num 2.
    [    0.000000] software IO TLB: mapped [mem 0x00000000bcb00000-0x00000000bcc00000] (1MB)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
    [    0.000000] rcu: Preemptible hierarchical RCU implementation.
    [    0.000000] rcu:     RCU event tracing is enabled.
    [    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=512 to nr_cpu_ids=2.
    [    0.000000]  Trampoline variant of Tasks RCU enabled.
    [    0.000000]  Tracing variant of Tasks RCU enabled.
    [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
    [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
    [    0.000000] RCU Tasks: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=2.
    [    0.000000] RCU Tasks Trace: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=2.
    [    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
    [    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
    [    0.000000] GICv3: 960 SPIs implemented
    [    0.000000] GICv3: 0 Extended SPIs implemented
    [    0.000000] Root IRQ handler: gic_handle_irq
    [    0.000000] GICv3: GICv3 features: 16 PPIs
    [    0.000000] GICv3: GICD_CTRL.DS=0, SCR_EL3.FIQ=0
    [    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000001840000
    [    0.000000] ITS [mem 0x01820000-0x0182ffff]
    [    0.000000] GIC: enabling workaround for ITS: Socionext Synquacer pre-ITS
    [    0.000000] ITS@0x0000000001820000: Devices Table too large, reduce ids 20->19
    [    0.000000] ITS@0x0000000001820000: allocated 524288 Devices @81400000 (flat, esz 8, psz 64K, shr 0)
    [    0.000000] ITS: using cache flushing for cmd queue
    [    0.000000] GICv3: using LPI property table @0x0000000080c40000
    [    0.000000] GIC: using cache flushing for LPI property table
    [    0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000080c50000
    [    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
    [    0.000000] arch_timer: cp15 timer(s) running at 200.00MHz (phys).
    [    0.000000] clocksource: arch_sys_counter: mask: 0x3ffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
    [    0.000001] sched_clock: 58 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
    [    0.009455] Console: colour dummy device 80x25
    [    0.014107] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000)
    [    0.024778] pid_max: default: 32768 minimum: 301
    [    0.029569] LSM: initializing lsm=capability,selinux
    [    0.034696] SELinux:  Initializing.
    [    0.038773] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
    [    0.046337] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
    [    0.067149] rcu: Hierarchical SRCU implementation.
    [    0.072115] rcu:     Max phase no-delay instances is 1000.
    [    0.077679] Timer migration: 1 hierarchy levels; 8 children per group; 1 crossnode level
    [    0.086232] fsl-mc MSI: msi-controller@1820000 domain created
    [    0.093998] EFI services will not be available.
    [    0.099001] smp: Bringing up secondary CPUs ...
    [    0.104263] Detected VIPT I-cache on CPU1
    [    0.104365] GICv3: CPU1: found redistributor 1 region 0:0x0000000001860000
    [    0.104383] GICv3: CPU1: using allocated LPI pending table @0x0000000080c60000
    [    0.104442] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
    [    0.104662] smp: Brought up 1 node, 2 CPUs
    [    0.134028] SMP: Total of 2 processors activated.
    [    0.138833] CPU: All CPU(s) started at EL2
    [    0.143069] CPU features: detected: 32-bit EL0 Support
    [    0.148324] CPU features: detected: 32-bit EL1 Support
    [    0.153584] CPU features: detected: CRC32 instructions
    [    0.158879] alternatives: applying system-wide alternatives
    [    0.165921] Memory: 928408K/1048576K available (18688K kernel code, 4946K rwdata, 12380K rodata, 10688K init, 784K bss, 79428K reserved, 32768K cma-reserved)
    [    0.181372] devtmpfs: initialized
    [    0.191869] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
    [    0.201877] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
    [    0.209889] 20832 pages in range for non-PLT usage
    [    0.209918] 512352 pages in range for PLT usage
    [    0.215198] pinctrl core: initialized pinctrl subsystem
    [    0.227427] DMI not present or invalid.
    [    0.233793] NET: Registered PF_NETLINK/PF_ROUTE protocol family
    [    0.241127] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations
    [    0.248751] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
    [    0.257319] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
    [    0.265528] audit: initializing netlink subsys (disabled)
    [    0.271452] audit: type=2000 audit(0.168:1): state=initialized audit_enabled=0 res=1
    [    0.273157] thermal_sys: Registered thermal governor 'step_wise'
    [    0.279430] thermal_sys: Registered thermal governor 'power_allocator'
    [    0.285689] cpuidle: using governor menu
    [    0.296683] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
    [    0.303700] ASID allocator initialised with 65536 entries
    [    0.311695] Serial: AMBA PL011 UART driver
    [    0.324143] /bus@f0000/interrupt-controller@1800000: Fixed dependency cycle(s) with /bus@f0000/interrupt-controller@1800000
    [    0.335785] /bus@f0000/dss@30200000: Fixed dependency cycle(s) with /bus@f0000/dsi@30500000
    [    0.344349] /bus@f0000/dsi@30500000: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
    [    0.352891] /bus@f0000/dsi@30500000: Fixed dependency cycle(s) with /bus@f0000/dsi@30500000/panel@0
    [    0.362158] /bus@f0000/dsi@30500000/panel@0: Fixed dependency cycle(s) with /bus@f0000/dsi@30500000
    [    0.388909] /bus@f0000/dss@30200000: Fixed dependency cycle(s) with /bus@f0000/dsi@30500000
    [    0.398128] /bus@f0000/dss@30200000: Fixed dependency cycle(s) with /bus@f0000/dsi@30500000
    [    0.406777] /bus@f0000/dsi@30500000: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
    [    0.415375] /bus@f0000/dsi@30500000: Fixed dependency cycle(s) with /bus@f0000/dsi@30500000/panel@0
    [    0.424698] /bus@f0000/dsi@30500000/panel@0: Fixed dependency cycle(s) with /bus@f0000/dsi@30500000
    [    0.443255] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
    [    0.450232] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
    [    0.456638] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
    [    0.463571] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
    [    0.469973] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
    [    0.476905] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
    [    0.483306] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
    [    0.490238] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
    [    0.499386] ACPI: Interpreter disabled.
    [    0.505540] k3-chipinfo 43000014.chipid: Family:AM62LX rev:SR1.0 JTAGID[0x0bba702f] Detected
    [    0.515324] iommu: Default domain type: Translated
    [    0.520267] iommu: DMA domain TLB invalidation policy: strict mode
    [    0.527116] SCSI subsystem initialized
    [    0.531278] libata version 3.00 loaded.
    [    0.531534] usbcore: registered new interface driver usbfs
    [    0.537241] usbcore: registered new interface driver hub
    [    0.542714] usbcore: registered new device driver usb
    [    0.549167] pps_core: LinuxPPS API ver. 1 registered
    [    0.554263] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.563604] PTP clock support registered
    [    0.567736] EDAC MC: Ver: 3.0.0
    [    0.571727] scmi_core: SCMI protocol bus registered
    [    0.578317] FPGA manager framework
    [    0.581917] Advanced Linux Sound Architecture Driver Initialized.
    [    0.589553] vgaarb: loaded
    [    0.593237] clocksource: Switched to clocksource arch_sys_counter
    [    0.599870] VFS: Disk quotas dquot_6.6.0
    [    0.603934] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
    [    0.611737] pnp: PnP ACPI: disabled
    [    0.623392] NET: Registered PF_INET protocol family
    [    0.628630] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)
    [    0.637344] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes, linear)
    [    0.646010] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
    [    0.653944] TCP established hash table entries: 8192 (order: 4, 65536 bytes, linear)
    [    0.661909] TCP bind hash table entries: 8192 (order: 6, 262144 bytes, linear)
    [    0.669539] TCP: Hash tables configured (established 8192 bind 8192)
    [    0.676221] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
    [    0.683024] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
    [    0.690409] NET: Registered PF_UNIX/PF_LOCAL protocol family
    [    0.696868] RPC: Registered named UNIX socket transport module.
    [    0.702967] RPC: Registered udp transport module.
    [    0.707779] RPC: Registered tcp transport module.
    [    0.712584] RPC: Registered tcp-with-tls transport module.
    [    0.718187] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.724773] NET: Registered PF_XDP protocol family
    [    0.729688] PCI: CLS 0 bytes, default 64
    [    0.738570] kvm [1]: nv: 554 coarse grained trap handlers
    [    0.744665] kvm [1]: IPA Size Limit: 40 bits
    [    0.751408] kvm [1]: vgic-v2@100020000
    [    0.755272] kvm [1]: GIC system register CPU interface enabled
    [    0.761266] kvm [1]: vgic interrupt IRQ9
    [    0.765295] kvm [1]: Hyp nVHE mode initialized successfully
    [    0.772773] Initialise system trusted keyrings
    [    0.777734] workingset: timestamp_bits=42 max_order=18 bucket_order=0
    [    0.784777] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.791224] NFS: Registering the id_resolver key type
    [    0.796465] Key type id_resolver registered
    [    0.800752] Key type id_legacy registered
    [    0.804872] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
    [    0.811720] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
    [    0.819582] 9p: Installing v9fs 9p2000 file system support
    [    0.878196] Key type asymmetric registered
    [    0.882426] Asymmetric key parser 'x509' registered
    [    0.887510] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243)
    [    0.895333] io scheduler mq-deadline registered
    [    0.899996] io scheduler kyber registered
    [    0.904139] io scheduler bfq registered
    [    0.928554] pinctrl-single 4084000.pinctrl: 8192 pins, size 32768
    [    0.942159] ledtrig-cpu: registered to indicate activity on CPUs
    [    0.974686] ti-udma-am62l 485c4000.dma-controller: Number of rings: 144
    [    0.981581] ti-udma-am62l 485c4000.dma-controller: Channels: 144 (bchan: 16, tchan + rchan: 128)
    [    0.997586] ti-udma-am62l 485c0000.dma-controller: Number of rings: 112
    [    1.004450] ti-udma-am62l 485c0000.dma-controller: Channels: 97 (tchan + rchan: 97)
    [    1.032166] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
    [    1.044601] msm_serial: driver initialized
    [    1.049622] SuperH (H)SCI(F) driver initialized
    [    1.054573] STM32 USART driver initialized
    [    1.070283] loop: module loaded
    [    1.076099] megasas: 07.727.03.00-rc1
    [    1.091723] tun: Universal TUN/TAP device driver, 1.6
    [    1.098923] thunder_xcv, ver 1.0
    [    1.102331] thunder_bgx, ver 1.0
    [    1.105676] nicpf, ver 1.0
    [    1.110746] hns3: Hisilicon Ethernet Network Driver for Hip08 Family - version
    [    1.118184] hns3: Copyright (c) 2017 Huawei Corporation.
    [    1.123700] hclge is initializing
    [    1.127139] e1000: Intel(R) PRO/1000 Network Driver
    [    1.132124] e1000: Copyright (c) 1999-2006 Intel Corporation.
    [    1.138018] e1000e: Intel(R) PRO/1000 Network Driver
    [    1.143090] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
    [    1.149173] igb: Intel(R) Gigabit Ethernet Network Driver
    [    1.154690] igb: Copyright (c) 2007-2014 Intel Corporation.
    [    1.160413] igbvf: Intel(R) Gigabit Virtual Function Network Driver
    [    1.166836] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
    [    1.173686] sky2: driver version 1.30
    [    1.180283] VFIO - User Level meta-driver version: 0.3
    [    1.191246] usbcore: registered new interface driver usb-storage
    [    1.203480] i2c_dev: i2c /dev entries driver
    [    1.222331] sdhci: Secure Digital Host Controller Interface driver
    [    1.228711] sdhci: Copyright(c) Pierre Ossman
    [    1.234980] Synopsys Designware Multimedia Card Interface Driver
    [    1.243202] sdhci-pltfm: SDHCI platform and OF driver helper
    [    1.257137] arm-scmi arm-scmi.0.auto: Using scmi_smc_transport
    [    1.263217] arm-scmi arm-scmi.0.auto: SCMI max-rx-timeout: 30ms
    [    1.269551] scmi_protocol scmi_dev.1: Enabled polling mode TX channel - prot_id:16
    [    1.277623] arm-scmi arm-scmi.0.auto: SCMI Notifications - Core Enabled.
    [    1.284542] arm-scmi arm-scmi.0.auto: SCMI Protocol v2.0 'Texas:Instruments' Firmware version 0x0
    [    1.317359] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
    [    1.328099] usbcore: registered new interface driver usbhid
    [    1.334019] usbhid: USB HID core driver
    [    1.344761] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 (0,8000003f) counters available
    [    1.359138] optee: probing for conduit method.
    [    1.363781] optee: api uid mismatch
    [    1.367377] optee firmware:optee: probe with driver optee failed with error -22
    [    1.382232] Initializing XFRM netlink socket
    [    1.386724] NET: Registered PF_PACKET protocol family
    [    1.391996] 9pnet: Installing 9P2000 support
    [    1.396461] Key type dns_resolver registered
    [    1.412041] registered taskstats version 1
    [    1.416425] Loading compiled-in X.509 certificates
    [    1.429816] Demotion targets for Node 0: null
    [    1.507281] VDD_LPDDR4: Bringing 3300000uV into 1200000-1200000uV
    [    1.507651] omap_i2c 2b200000.i2c: bus 0 rev0.12 at 400 kHz
    [    1.522140] VDDA_V75: Bringing 2500000uV into 750000-750000uV
    [    1.522608] omap_i2c 20000000.i2c: bus 1 rev0.12 at 400 kHz
    [    1.536372] omap_i2c 20020000.i2c: bus 2 rev0.12 at 400 kHz
    [    1.550823] printk: legacy console [ttyS0] disabled
    [    1.556295] 2800000.serial: ttyS0 at MMIO 0x2800000 (irq = 288, base_baud = 3000000) is a 8250
    [    1.565246] printk: legacy console [ttyS0] enabled
    [    1.574968] printk: legacy bootconsole [ns16550a0] disabled
    [    1.593734] spi-nor spi0.3: unrecognized JEDEC id bytes: ff ff ff ff ff ff
    [    2.000999] spi-nand spi0.0: probe with driver spi-nand failed with error -110
    [    2.049243] davinci_mdio 8000f00.mdio: davinci mdio revision 17.7, bus freq 1000000
    [    2.723881] davinci_mdio 8000f00.mdio: phy[1]: device 8000f00.mdio:01, driver MAE0621A/B-Q3C(I) Gigabit Ethernet
    [    2.734087] davinci_mdio 8000f00.mdio: phy[2]: device 8000f00.mdio:02, driver MAE0621A/B-Q3C(I) Gigabit Ethernet
    [    2.744319] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA00103, cpsw version 0x6BA80103 Ports: 3 quirks:00000006
    [    2.757590] am65-cpsw-nuss 8000000.ethernet: Use random MAC address
    [    2.764012] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.5
    [    2.771161] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512, Policers 32
    [    2.779231] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010d, freq:500000000, add_val:1 pps:0
    [    2.799835] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 96
    [    2.816467] xhci-hcd xhci-hcd.4.auto: xHCI Host Controller
    [    2.822106] xhci-hcd xhci-hcd.4.auto: new USB bus registered, assigned bus number 1
    [    2.829930] xhci-hcd xhci-hcd.4.auto: USB3 root hub has no ports
    [    2.835939] xhci-hcd xhci-hcd.4.auto: hcc params 0x0258fe6d hci version 0x110 quirks 0x0000808020000010
    [    2.849296] xhci-hcd xhci-hcd.4.auto: irq 301, io mem 0x31000000
    [    2.858393] hub 1-0:1.0: USB hub found
    [    2.862229] hub 1-0:1.0: 1 port detected
    [    2.874348] xhci-hcd xhci-hcd.5.auto: xHCI Host Controller
    [    2.879957] xhci-hcd xhci-hcd.5.auto: new USB bus registered, assigned bus number 2
    [    2.887806] xhci-hcd xhci-hcd.5.auto: USB3 root hub has no ports
    [    2.893837] xhci-hcd xhci-hcd.5.auto: hcc params 0x0258fe6d hci version 0x110 quirks 0x0000808020000010
    [    2.903298] xhci-hcd xhci-hcd.5.auto: irq 302, io mem 0x31100000
    [    2.910403] hub 2-0:1.0: USB hub found
    [    2.914258] hub 2-0:1.0: 1 port detected
    [    2.926072] mmc0: CQHCI version 5.10
    [    2.932622] mmc1: CQHCI version 5.10
    [    2.938592] input: gpio-keys as /devices/platform/gpio-keys/input/input0
    [    2.946743] clk: Disabling unused clocks
    [    2.954806] PM: genpd: Not disabling unused power domains
    [    2.960390] ALSA device list:
    [    2.963378]   No soundcards found.
    [    2.981838] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit
    [    2.981867] mmc1: SDHCI controller on fa00000.mmc [fa00000.mmc] using ADMA 64-bit
    [    2.997403] Waiting for root device PARTUUID=3ca31b1e-02...
    [    3.122195] mmc1: new high speed SDHC card at address 0001
    [    3.132734] mmcblk1: mmc1:0001 SD32G 28.8 GiB
    [    3.139481]  mmcblk1: p1 p2
    [    3.220552] mmc0: Command Queue Engine enabled
    [    3.225083] mmc0: new HS200 MMC card at address 0001
    [    3.231405] mmcblk0: mmc0:0001 EM83RE 7.28 GiB
    [    3.238621]  mmcblk0: p1 p2
    [    3.242670] mmcblk0boot0: mmc0:0001 EM83RE 4.00 MiB
    [    3.249583] mmcblk0boot1: mmc0:0001 EM83RE 4.00 MiB
    [    3.256229] mmcblk0rpmb: mmc0:0001 EM83RE 4.00 MiB, chardev (510:0)
    [    3.389249] EXT4-fs (mmcblk1p2): recovery complete
    [    3.397394] EXT4-fs (mmcblk1p2): mounted filesystem 1bb03d42-23a8-49b9-9000-2063fc441af9 r/w with ordered data mode. Quota mode: none.
    [    3.409737] VFS: Mounted root (ext4 filesystem) on device 179:2.
    [    3.423961] devtmpfs: mounted
    [    3.432438] Freeing unused kernel memory: 10688K
    [    3.437286] Run /sbin/init as init process
    [    3.441387]   with arguments:
    [    3.441391]     /sbin/init
    [    3.441395]   with environment:
    [    3.441399]     HOME=/
    [    3.441403]     TERM=linux
    [    4.084436] systemd[1]: System time before build time, advancing clock.
    [    4.235722] systemd[1]: systemd 255.18^ running in system mode (+PAM -AUDIT -SELINUX -APPARMOR +IMA -SMACK +SECCOMP -GCRYPT -GNUTLS -OPENSSL +ACL +BLKID -CURL -ELFUTILS -FIDO2 -IDN2 -IDN -IPTC +KMOD -LIBCRYPTSETUP +LIBFDISK -PCRE2 -PWQUALITY -P11KIT -QRENCODE -TPM2 -BZIP2 -LZ4 -XZ -ZLIB +ZSTD -BPF_FRAMEWORK -XKBCOMMON +UTMP +SYSVINIT default-hierarchy=unified)
    [    4.267647] systemd[1]: Detected architecture arm64.
    [    4.292053] systemd[1]: Hostname set to <am62lxx-evm>.
    [    4.691486] systemd[1]: Configuration file /usr/lib/systemd/system/ti-lvgl-demo.service is marked executable. Please remove executable permission bits. Proceeding anyway.
    [    4.781869] systemd[1]: Binding to IPv6 address not available since kernel does not support IPv6.
    [    4.790881] systemd[1]: Binding to IPv6 address not available since kernel does not support IPv6.
    [    4.857462] systemd[1]: /usr/lib/systemd/system/bt-enable.service:9: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether.
    [    5.104741] systemd[1]: Queued start job for default target Graphical Interface.
    [    5.149139] systemd[1]: Created slice Slice /system/getty.
    [    5.168298] systemd[1]: Created slice Slice /system/modprobe.
    [    5.192440] systemd[1]: Created slice Slice /system/serial-getty.
    [    5.211653] systemd[1]: Created slice User and Session Slice.
    [    5.229939] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
    [    5.249908] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
    [    5.269628] systemd[1]: Expecting device /dev/ttyS0...
    [    5.285666] systemd[1]: Reached target Path Units.
    [    5.301572] systemd[1]: Reached target Remote File Systems.
    [    5.317586] systemd[1]: Reached target Slice Units.
    [    5.333614] systemd[1]: Reached target Swaps.
    [    5.384645] systemd[1]: Listening on RPCbind Server Activation Socket.
    [    5.401687] systemd[1]: Reached target RPC Port Mapper.
    [    5.426078] systemd[1]: Listening on Process Core Dump Socket.
    [    5.446125] systemd[1]: Listening on initctl Compatibility Named Pipe.
    [    5.467259] systemd[1]: Listening on Journal Audit Socket.
    [    5.490515] systemd[1]: Listening on Journal Socket (/dev/log).
    [    5.510596] systemd[1]: Listening on Journal Socket.
    [    5.530708] systemd[1]: Listening on Network Service Netlink Socket.
    [    5.550890] systemd[1]: Listening on udev Control Socket.
    [    5.570365] systemd[1]: Listening on udev Kernel Socket.
    [    5.590466] systemd[1]: Listening on User Database Manager Socket.
    [    5.637878] systemd[1]: Mounting Huge Pages File System...
    [    5.649532] systemd[1]: Mounting POSIX Message Queue File System...
    [    5.701924] systemd[1]: Mounting Kernel Debug File System...
    [    5.722049] systemd[1]: Kernel Trace File System was skipped because of an unmet condition check (ConditionPathExists=/sys/kernel/tracing).
    [    5.741715] systemd[1]: Mounting Temporary Directory /tmp...
    [    5.762416] systemd[1]: Starting Create List of Static Device Nodes...
    [    5.791962] systemd[1]: Starting Load Kernel Module configfs...
    [    5.812517] systemd[1]: Starting Load Kernel Module drm...
    [    5.842524] systemd[1]: Starting Load Kernel Module fuse...
    [    5.873578] systemd[1]: Starting Start psplash boot splash screen...
    [    5.942303] systemd[1]: Starting RPC Bind...
    [    5.947468] systemd[1]: File System Check on Root Device was skipped because of an unmet condition check (ConditionPathIsReadWrite=!/).
    [    5.968864] fuse: init (API version 7.41)
    [    5.996481] systemd[1]: Starting Journal Service...
    [    6.138308] systemd[1]: Starting Load Kernel Modules...
    [    6.170222] systemd[1]: Starting Generate network units from Kernel command line...
    [    6.202623] systemd-journald[110]: Collecting audit messages is enabled.
    [    6.226329] systemd[1]: Starting Remount Root and Kernel File Systems...
    [    6.263085] systemd[1]: Starting Coldplug All udev Devices...
    [    6.311583] systemd[1]: Mounted Huge Pages File System.
    [    6.334497] systemd[1]: Started RPC Bind.
    [    6.346961] systemd[1]: Mounted POSIX Message Queue File System.
    [    6.374621] systemd[1]: Mounted Kernel Debug File System.
    [    6.398369] systemd[1]: Started Journal Service.
    [    6.409771] EXT4-fs (mmcblk1p2): re-mounted 1bb03d42-23a8-49b9-9000-2063fc441af9 r/w. Quota mode: none.
    [    6.840157] systemd-journald[110]: Received client request to flush runtime journal.
    [    7.253394] audit: type=1334 audit(1741187612.164:2): prog-id=6 op=LOAD
    [    7.273427] audit: type=1334 audit(1741187612.180:3): prog-id=7 op=LOAD
    [    7.648447] audit: type=1334 audit(1741187612.560:4): prog-id=8 op=LOAD
    [    7.690927] audit: type=1334 audit(1741187612.604:5): prog-id=9 op=LOAD
    [    7.812878] audit: type=1334 audit(1741187612.724:6): prog-id=10 op=LOAD
    [    7.823269] audit: type=1334 audit(1741187612.732:7): prog-id=11 op=LOAD
    [    7.832486] audit: type=1334 audit(1741187612.732:8): prog-id=12 op=LOAD
    [    8.457357] random: crng init done
    [    9.222599] audit: type=1334 audit(1756435246.063:9): prog-id=13 op=LOAD
    [    9.949390] audit: type=1334 audit(1756435246.791:10): prog-id=14 op=LOAD
    [    9.957364] audit: type=1334 audit(1756435246.791:11): prog-id=15 op=LOAD
    [   11.300121] MAXIO_PHY_VER: v1.7.6.1 
    [   13.165691] platform 2b300050.target-module: deferred probe pending: (reason unknown)
    [   13.882058] am65-cpsw-nuss 8000000.ethernet eth0: PHY [8000f00.mdio:01] driver [MAE0621A/B-Q3C(I) Gigabit Ethernet] (irq=POLL)
    [   13.914998] am65-cpsw-nuss 8000000.ethernet eth0: configuring for phy/rgmii-rxid link mode
    [   14.908465] MAXIO_PHY_VER: v1.7.6.1 
    [   16.903115] at24 1-0051: supply vcc not found, using dummy regulator
    [   16.912361] 2b300000.serial: ttyS1 at MMIO 0x2b300000 (irq = 305, base_baud = 6000000) is a 8250
    [   17.131885] clk: failed to reparent 0_ADC0 to 2_ADC0: -22
    [   17.539948] /bus@f0000/dsi@30500000: Fixed dependency cycle(s) with /bus@f0000/dsi@30500000/panel@0
    [   17.563972] /bus@f0000/dsi@30500000/panel@0: Fixed dependency cycle(s) with /bus@f0000/dsi@30500000
    [   17.821873] am65-cpsw-nuss 8000000.ethernet eth1: PHY [8000f00.mdio:02] driver [MAE0621A/B-Q3C(I) Gigabit Ethernet] (irq=POLL)
    [   17.840057] am65-cpsw-nuss 8000000.ethernet eth1: configuring for phy/rgmii-rxid link mode
    [   18.217357] CAN device driver interface
    [   18.751295] input: tps65219-pwrbutton as /devices/platform/bus@f0000/bus@f0000:bus@43000000/2b200000.i2c/i2c-0/0-0030/tps65219-pwrbutton.3.auto/input/input1
    [   18.930005] m_can_platform 20701000.can: m_can device registered (irq=308, version=32)
    [   18.994840] m_can_platform 20711000.can: m_can device registered (irq=309, version=32)
    [   20.248820] m_can_platform 20711000.can main_mcan1: renamed from can1
    [   20.287133] panel-aml070wxii4006 30500000.dsi.0: dsi video mode[0x813]
    [   20.406131] panel-aml070wxii4006 30500000.dsi.0: probe with driver panel-aml070wxii4006 failed with error -524
    [   20.448615] m_can_platform 20701000.can main_mcan0: renamed from can0
    [   22.002367] EXT4-fs (mmcblk0p2): mounted filesystem 17c2cc01-94bb-49b5-95e5-7f5d86e77d62 r/w with ordered data mode. Quota mode: none.
    [  532.502547] kauditd_printk_skb: 2 callbacks suppressed
    [  532.502567] audit: type=1006 audit(1756435769.347:14): pid=1410 uid=0 subj=kernel old-auid=4294967295 auid=0 tty=(none) old-ses=4294967295 ses=1 res=1
    [  532.521590] audit: type=1300 audit(1756435769.347:14): arch=c00000b7 syscall=64 success=yes exit=1 a0=8 a1=ffffc1b5ddf8 a2=1 a3=1 items=0 ppid=1 pid=1410 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=1 comm="(systemd)" exe="/usr/lib/systemd/systemd-executor" subj=kernel key=(null)
    [  532.549542] audit: type=1327 audit(1756435769.347:14): proctitle="(systemd)"
    [  532.602239] audit: type=1334 audit(1756435769.447:15): prog-id=18 op=LOAD
    [  532.610363] audit: type=1300 audit(1756435769.447:15): arch=c00000b7 syscall=280 success=yes exit=8 a0=5 a1=ffffe0da47b8 a2=90 a3=0 items=0 ppid=1 pid=1410 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=1 comm="systemd" exe="/usr/lib/systemd/systemd" subj=kernel key=(null)
    [  532.638250] audit: type=1327 audit(1756435769.447:15): proctitle="(systemd)"
    [  532.646540] audit: type=1334 audit(1756435769.447:16): prog-id=18 op=UNLOAD
    [  532.653973] audit: type=1300 audit(1756435769.447:16): arch=c00000b7 syscall=57 success=yes exit=0 a0=8 a1=1 a2=0 a3=ffffab92dc60 items=0 ppid=1 pid=1410 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=1 comm="systemd" exe="/usr/lib/systemd/systemd" subj=kernel key=(null)
    [  532.680880] audit: type=1327 audit(1756435769.447:16): proctitle="(systemd)"
    [  532.688176] audit: type=1334 audit(1756435769.447:17): prog-id=19 op=LOAD

    3.I found the mipi_dsi_attach func in ti-linux-kernel-6.12.24+git-ti-rt\drivers\gpu\drm\drm_mipi_dsi.c  to check the error code,The mipi_dsi_attach function is called in a panel driver file: ti-linux-kernel-6.12.24+git-ti-rt\drivers\gpu\drm\panel\panel-amelin-aml070wxii4006.c. This file was added by myself this is its prboe func

    static int aml070_panel_dsi_probe(struct mipi_dsi_device *dsi)
    {
    	struct aml070_panel *ctx;
    	int ret;
    	u32 video_mode;
    
    	ctx = devm_kzalloc(&dsi->dev, sizeof(*ctx), GFP_KERNEL);
    	if (!ctx)
    		return -ENOMEM;
    
    	ctx->supply = devm_regulator_get(&dsi->dev, "vcc-lcd");
    	if (IS_ERR(ctx->supply))
    		return PTR_ERR(ctx->supply);
    
    	mipi_dsi_set_drvdata(dsi, ctx);
    	ctx->dsi = dsi;
    
    	drm_panel_init(&ctx->panel, &dsi->dev, &aml070_panel_funcs, DRM_MODE_CONNECTOR_DSI);
    
    	ctx->gpios.reset = devm_gpiod_get(&dsi->dev, "reset", GPIOD_OUT_LOW);
    	if (IS_ERR(ctx->gpios.reset)) {
    		dev_err(&dsi->dev, "Couldn't get our reset GPIO\n");
    		return PTR_ERR(ctx->gpios.reset);
    	}
    
    	ctx->backlight = devm_of_find_backlight(&dsi->dev);
    	if (IS_ERR(ctx->backlight)) {
    		dev_err(&dsi->dev, "Couldn't get our backlight\n");
    		return PTR_ERR(ctx->backlight);
    	}
    
    	drm_panel_add(&ctx->panel);
    
    	dsi->format = MIPI_DSI_FMT_RGB888;
    	dsi->lanes = 4;
    	dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_VIDEO_HSE | MIPI_DSI_MODE_LPM;
    
    	ret = of_property_read_u32(dsi->dev.of_node, "video-mode", &video_mode);
    	if (!ret) {
    		dsi->mode_flags = video_mode;
    	}
    	dev_info(&dsi->dev, "dsi video mode[0x%lx]\n", dsi->mode_flags);
    
    	return mipi_dsi_attach(dsi);
    }

  • Hi,
    It is completely fine if your panel doesn't use a bridge, but I would have expected the panel to probe even from within &{/}.
    Since you are using a custom driver, have you validated it against any other SoC/EVM platform?
    This most likely seems to be the panel driver issue and I would recommend seeking help from the panel vendor for the same.

  • Hi Divyansh,

    Yes, this driver has been verified to function properly on NXP's i.MX8MP platform, but it has not been tested on TI platforms

  • Hi,I found that the error occurs because the system does not support MIPI_DSI_MODE_VIDEO_BURST. And now it works