This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM3352: Issues with touchscreen when running QT applications using linuxfb platform

Part Number: AM3352


Hi,
We are trying to run a QT application on a custom board based on AM3352 and we are using the linuxfb platform to execute the QT applications.
From this thread (e2e.ti.com/.../am3352-am3352--failed-to-create-wl_display-no-such-file-or-directory), we got confirmation that AM3352 does not have a GPU block. Therefore, it seems not possible to run QT applications in other platforms like eglfs, wayland etc (which requires graphics drivers to be initialized).
While we use linuxfb platform, we are able to launch the QT application, however we are facing issues with touch interface.
The touch input is not working properly near the edges of the screen. When we touch at the edge, either the input is not recognized or a different area with some offset gets selected.
Meanwhile if we use mouse, we are able to click on the push buttons properly in all areas of the screen. So, we believe the QT application is working as intended and the issue is with linuxfb platform.
We are able to receive proper response from evtest tool and ts_calibrate tool while using them, therefore the touch screen interface is working properly on driver level.
Kindly comment on the below questions:-
1) Is it possible to use eglf platform without GPU block.If yes, Can you point to some documentation detailing the steps.
2) Is it possible to use some other platform other than 'linuxfb' for our custom AM3352 board. Our application does not require hardware acceleration. 
3) Is there any way to resolve the touch screen issue.
Some more information :

More information:
AM3352BZCZ SoC
512MB Samsung K4B4G1646B DDR3 RAM

SDK Version: 08_02_00_24
Kernel Version: 5.10.100
U-Boot Version: u-boot-2021.01
RFS : tisdk-default-image-am335x-evm

Full Kernel log:

U-Boot SPL 2021.01-00003-gebb601d2e2-dirty (Oct 04 2022 - 12:12:52 +0530)
Trying to boot from MMC1


U-Boot 2021.01-00003-gebb601d2e2-dirty (Oct 04 2022 - 12:12:52 +0530)

CPU  : AM335X-GP rev 2.1
Model: Custom AM335x Custom
DRAM:  512 MiB
WDT:   Started with servicing (60s timeout)
NAND:  0 MiB
MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
Loading Environment from FAT... *** Warning - bad CRC, using default environment

<ethaddr> not set. Validating first E-fuse MAC
Net:   eth2: ethernet@4a100000
Hit any key to stop autoboot:  0 
switch to partitions #0, OK
mmc0 is current device
SD/MMC found on device 0
Failed to load 'boot.scr'
366 bytes read in 2 ms (178.7 KiB/s)
Loaded env from uEnv.txt
Importing environment from mmc0 ...
Running uenvcmd ...
4997696 bytes read in 849 ms (5.6 MiB/s)
62038 bytes read in 16 ms (3.7 MiB/s)
## Booting kernel from Legacy Image at 82000000 ...
   Image Name:   Linux-5.10.100-g7a7a3af903
   Created:      2022-12-08   6:18:46 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    4997632 Bytes = 4.8 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
   Loading Kernel Image
   Loading Device Tree to 8ffed000, end 8ffff255 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.10.100-g7a7a3af903 (vishwambhark@31197-427773) (arm-none-linux-gnueabihf-gcc (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 9.2.1 20191025, GNU ld (GNU Tool2
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Baxter AK98 
[    0.000000] Memory policy: Data cache writeback
[    0.000000] efi: UEFI not found.
[    0.000000] cma: Reserved 48 MiB at 0x84800000
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000080000000-0x0000000087efffff]
[    0.000000]   HighMem  empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080000000-0x0000000087efffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x0000000087efffff]
[    0.000000] CPU: All CPU(s) started in SVC mode.
[    0.000000] AM335X ES2.1 (neon)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 32226
[    0.000000] Kernel command line: console=ttyO0,115200n8 noinitrd rw rootfstype=ext3 root=/dev/mmcblk0p2 rootwait mem=128M
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes, linear)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 62976K/130048K available (10240K kernel code, 695K rwdata, 3408K rodata, 1024K init, 280K bss, 17920K reserved, 49152K cma-reserved, 0K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000]  Trampoline variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] IRQ: Found an INTC at 0x(ptrval) (revision 5.0) with 128 interrupts
[    0.000000] random: get_random_bytes called from start_kernel+0x30c/0x4c8 with crng_init=0
[    0.000000] TI gptimer clocksource: always-on /ocp/interconnect@44c00000/segment@200000/target-module@31000
[    0.000009] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[    0.000028] clocksource: dmtimer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000349] TI gptimer clockevent: 24000000 Hz at /ocp/interconnect@48000000/segment@0/target-module@40000
[    0.001265] Console: colour dummy device 80x30
[    0.001306] WARNING: Your 'console=ttyO0' has been replaced by 'ttyS0'
[    0.001314] This ensures that you still see kernel messages. Please
[    0.001320] update your kernel commandline.
[    0.001376] Calibrating delay loop... 996.14 BogoMIPS (lpj=4980736)
[    0.090422] pid_max: default: 32768 minimum: 301
[    0.090582] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.090599] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.091485] CPU: Testing write buffer coherency: ok
[    0.091567] CPU0: Spectre v2: using BPIALL workaround
[    0.092444] Setting up static identity map for 0x80100000 - 0x80100060
[    0.092590] rcu: Hierarchical SRCU implementation.
[    0.092686] EFI services will not be available.
[    0.093053] devtmpfs: initialized
[    0.102611] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[    0.102875] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.102903] futex hash table entries: 256 (order: -1, 3072 bytes, linear)
[    0.106344] pinctrl core: initialized pinctrl subsystem
[    0.107355] DMI not present or invalid.
[    0.107837] NET: Registered protocol family 16
[    0.110115] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.127690] l3-aon-clkctrl:0000:0: failed to disable
[    0.128910] thermal_sys: Registered thermal governor 'fair_share'
[    0.128920] thermal_sys: Registered thermal governor 'bang_bang'
[    0.128935] thermal_sys: Registered thermal governor 'step_wise'
[    0.128942] thermal_sys: Registered thermal governor 'user_space'
[    0.129284] cpuidle: using governor ladder
[    0.129317] cpuidle: using governor menu
[    0.705143] No ATAGs?
[    0.705175] hw-breakpoint: debug architecture 0x4 unsupported.
[    0.728083] iommu: Default domain type: Translated 
[    0.730069] SCSI subsystem initialized
[    0.730770] mc: Linux media interface: v0.10
[    0.730822] videodev: Linux video capture interface: v2.00
[    0.730936] pps_core: LinuxPPS API ver. 1 registered
[    0.730945] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.730969] PTP clock support registered
[    0.731032] EDAC MC: Ver: 3.0.0
[    0.732235] Advanced Linux Sound Architecture Driver Initialized.
[    0.733628] clocksource: Switched to clocksource dmtimer
[    0.741274] NET: Registered protocol family 2
[    0.741458] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.742355] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.742390] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.742410] TCP bind hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.742428] TCP: Hash tables configured (established 1024 bind 1024)
[    0.742549] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.742572] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.742698] NET: Registered protocol family 1
[    0.743268] RPC: Registered named UNIX socket transport module.
[    0.743283] RPC: Registered udp transport module.
[    0.743290] RPC: Registered tcp transport module.
[    0.743297] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.743316] PCI: CLS 0 bytes, default 64
[    0.744436] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
[    0.745684] Initialise system trusted keyrings
[    0.746069] workingset: timestamp_bits=14 max_order=15 bucket_order=1
[    0.749681] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.750498] NFS: Registering the id_resolver key type
[    0.750552] Key type id_resolver registered
[    0.750562] Key type id_legacy registered
[    0.750656] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.750669] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    0.750710] ntfs: driver 2.1.32 [Flags: R/O].
[    0.751338] Key type asymmetric registered
[    0.751357] Asymmetric key parser 'x509' registered
[    0.751416] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 244)
[    0.751428] io scheduler mq-deadline registered
[    0.751437] io scheduler kyber registered
[    1.075089] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
[    1.178327] debugfs: Directory '49000000.dma' with parent 'dmaengine' already present!
[    1.178378] edma 49000000.dma: TI EDMA DMA engine driver
[    1.190501] pinctrl-single 44e10800.pinmux: 142 pins, size 568
[    1.194571] pwm-backlight backlight: supply power not found, using dummy regulator
[    1.243464] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled
[    1.248314] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 20, base_baud = 3000000) is a 8250
[    1.927975] printk: console [ttyS0] enabled
[    1.935498] omap_rng 48310000.rng: Random Number Generator ver. 20
[    1.943721] random: fast init done
[    1.947428] random: crng init done
[    1.968243] panel-simple panel: supply power not found, using dummy regulator
[    1.975944] panel-simple panel: Specify missing connector_type
[    1.995456] brd: module loaded
[    2.005902] loop: module loaded
[    2.073670] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6, bus freq 1000000
[    2.083291] davinci_mdio 4a101000.mdio: phy[1]: device 4a101000.mdio:01, driver TI TLK10X 10/100 Mbps PHY
[    2.093282] cpsw 4a100000.ethernet: initialized cpsw ale version 1.4
[    2.099760] cpsw 4a100000.ethernet: ALE Table size 1024
[    2.105178] cpsw 4a100000.ethernet: cpts: overflow check period 500 (jiffies)
[    2.112410] cpsw 4a100000.ethernet: Detected MACID = 98:f0:7b:12:f6:85
[    2.121375] i2c /dev entries driver
[    2.128391] cpuidle: enable-method property 'ti,am3352' found operations
[    2.136064] sdhci: Secure Digital Host Controller Interface driver
[    2.142280] sdhci: Copyright(c) Pierre Ossman
[    2.147877] sdhci-pltfm: SDHCI platform and OF driver helper
[    2.155431] sdhci-omap 48060000.mmc: supply vqmmc not found, using dummy regulator
[    2.164572] ledtrig-cpu: registered to indicate activity on CPUs
[    2.174315] sdhci-omap 481d8000.mmc: supply vqmmc not found, using dummy regulator
[    2.197385] davinci-mcasp 4803c000.mcasp: IRQ common not found
[    2.225309] NET: Registered protocol family 10
[    2.234233] Segment Routing with IPv6
[    2.238005] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    2.259762] NET: Registered protocol family 17
[    2.269546] Key type dns_resolver registered
[    2.281698] mmc0: SDHCI controller on 48060000.mmc [48060000.mmc] using External DMA
[    2.290366] omap_voltage_late_init: Voltage driver support not added
[    2.301826] Loading compiled-in X.509 certificates
[    2.331511] OMAP GPIO hardware version 0.1
[    2.337822] mmc0: new high speed SDXC card at address 59b4
[    2.344897] mmcblk0: mmc0:59b4 SD64G 59.4 GiB 
[    2.349434] mmc1: SDHCI controller on 481d8000.mmc [481d8000.mmc] using External DMA
[    2.360110]  mmcblk0: p1 p2
[    2.374787] tps65217-pmic: Failed to locate of_node [id: -1]
[    2.398978] tps65217-bl: Failed to locate of_node [id: -1]
[    2.408938] tps65217 0-0024: TPS65217 ID 0xe version 1.2
[    2.414973] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 100 kHz
[    2.425957] mmc1: new high speed MMC card at address 0001
[    2.441925] omap_reset_deassert: timedout waiting for gfx:0
[    2.448084] mmcblk1: mmc1:0001 Q2J54A 3.64 GiB 
[    2.453009] mmcblk1boot0: mmc1:0001 Q2J54A partition 1 2.00 MiB
[    2.459358] mmcblk1boot1: mmc1:0001 Q2J54A partition 2 2.00 MiB
[    2.465456] ti-sysc: probe of 5600fe00.target-module failed with error -110
[    2.474042] mmcblk1rpmb: mmc1:0001 Q2J54A partition 3 512 KiB, chardev (243:0)
[    2.483340] [drm] Initialized tilcdc 1.0.0 20121205 for 4830e000.lcdc on minor 0
[    2.493462]  mmcblk1: p1 p2 p3 < p5 >
[    2.551114] Console: switching to colour frame buffer device 100x37
[    2.571845] tilcdc 4830e000.lcdc: [drm] fb0: tilcdcdrmfb frame buffer device
[    2.581368] ALSA device list:
[    2.584688]   No soundcards found.
[    2.590180] EXT4-fs (mmcblk0p2): mounting ext3 file system using the ext4 subsystem
[    2.664845] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    2.673137] VFS: Mounted root (ext3 filesystem) on device 179:2.
[    2.687750] devtmpfs: mounted
[    2.692662] Freeing unused kernel memory: 1024K
[    2.697933] Run /sbin/init as init process
[    3.057068] systemd[1]: System time before build time, advancing clock.
[    3.110657] systemd[1]: systemd 244 running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR -SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN2 -IDN)
[    3.133440] systemd[1]: Detected architecture arm.

Welcome to Arago 2021.09!

[    3.175153] systemd[1]: Set hostname to <am335x-evm>.
[    3.980567] systemd[1]: system-getty.slice: unit configures an IP firewall, but the local system does not support BPF/cgroup firewalling.
[    3.993248] systemd[1]: (This warning is only shown for the first unit using IP firewalling.)
[    4.006761] systemd[1]: Created slice system-getty.slice.
[  OK  ] Created slice system-getty.slice.
[    4.049121] systemd[1]: Created slice system-serial\x2dgetty.slice.
[  OK  ] Created slice system-serial\x2dgetty.slice.
[    4.086037] systemd[1]: Created slice User and Session Slice.
[  OK  ] Created slice User and Session Slice.
[    4.125456] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[  OK  ] Started Dispatch Password …ts to Console Directory Watch.
[    4.165206] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[  OK  ] Started Forward Password R…uests to Wall Directory Watch.
[    4.204625] systemd[1]: Reached target Paths.
[  OK  ] Reached target Paths.
[    4.244507] systemd[1]: Reached target Remote File Systems.
[  OK  ] Reached target Remote File Systems.
[    4.284110] systemd[1]: Reached target Slices.
[  OK  ] Reached target Slices.
[    4.324528] systemd[1]: Reached target Swap.
[  OK  ] Reached target Swap.
[    4.384791] systemd[1]: Listening on RPCbind Server Activation Socket.
[  OK  ] Listening on RPCbind Server Activation Socket.
[    4.424104] systemd[1]: Reached target RPC Port Mapper.
[  OK  ] Reached target RPC Port Mapper.
[    4.483109] systemd[1]: Listening on Process Core Dump Socket.
[  OK  ] Listening on Process Core Dump Socket.
[    4.524657] systemd[1]: Listening on initctl Compatibility Named Pipe.
[  OK  ] Listening on initctl Compatibility Named Pipe.
[    4.620606] systemd[1]: Condition check resulted in Journal Audit Socket being skipped.
[    4.631604] systemd[1]: Listening on Journal Socket (/dev/log).
[  OK  ] Listening on Journal Socket (/dev/log).
[    4.676677] systemd[1]: Listening on Journal Socket.
[  OK  ] Listening on Journal Socket.
[    4.715834] systemd[1]: Listening on Network Service Netlink Socket.
[  OK  ] Listening on Network Service Netlink Socket.
[    4.756635] systemd[1]: Listening on udev Control Socket.
[  OK  ] Listening on udev Control Socket.
[    4.795801] systemd[1]: Listening on udev Kernel Socket.
[  OK  ] Listening on udev Kernel Socket.
[    4.835121] systemd[1]: Condition check resulted in Huge Pages File System being skipped.
[    4.853153] systemd[1]: Mounting POSIX Message Queue File System...
         Mounting POSIX Message Queue File System...
[    4.913041] systemd[1]: Mounting Kernel Debug File System...
         Mounting Kernel Debug File System...
[    4.986008] systemd[1]: Mounting Temporary Directory (/tmp)...
         Mounting Temporary Directory (/tmp)...
[    5.005317] systemd[1]: Condition check resulted in Create list of static device nodes for the current kernel being skipped.
[    5.027053] systemd[1]: Starting Start psplash boot splash screen...
         Starting Start psplash boot splash screen...
[    5.084742] systemd[1]: Starting RPC Bind...
         Starting RPC Bind...
[    5.124388] systemd[1]: Condition check resulted in File System Check on Root Device being skipped.
[    5.177894] systemd[1]: Starting Journal Service...
         Starting Journal Service...
[    5.234923] systemd[1]: Starting Load Kernel Modules...
         Starting Load Kernel Modules...
[    5.276558] systemd[1]: Starting Remount Root and Kernel File Systems...
[    5.300557] cryptodev: loading out-of-tree module taints kernel.
         Starting Remount Root and Kernel File Systems   5.327575] cryptodev: driver 1.10 loaded.
[0m...
[    5.351112] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[    5.370959] systemd[1]: Starting udev Coldplug all Devices...
         Starting udev Coldplug all Devices...
[    5.487305] systemd[1]: Started Start psplash boot splash screen.
[  OK  ] Started Start psplash boot splash screen.
[    5.544904] systemd[1]: Started RPC Bind.
[  OK  ] Started RPC Bind.
[    5.565602] systemd[1]: Mounted POSIX Message Queue File System.
[  OK  ] Mounted POSIX Message Queue File System.
[    5.595762] systemd[1]: Mounted Kernel Debug File System.
[  OK  ] Mounted Kernel Debug File System.
[    5.615358] systemd[1]: Mounted Temporary Directory (/tmp).
[  OK  ] Mounted Temporary Directory (/tmp).
[    5.648769] systemd[1]: Started Load Kernel Modules.
[  OK  ] Started Load Kernel Modules.
[    5.705173] systemd[1]: Started Remount Root and Kernel File Systems.
[  OK  ] Started Remount Root and Kernel File Systems.
[    5.736485] systemd[1]: Condition check resulted in FUSE Control File System being skipped.
[    5.777986] systemd[1]: Mounting Kernel Configuration File System...
         Mounting Kernel Configuration File System...
[    5.850304] systemd[1]: Started Start psplash-systemd progress communication helper.
[  OK  ] Started Start psplash-syst…progress communication helper.
[    5.907320] systemd[1]: Condition check resulted in Rebuild Hardware Database being skipped.
[    5.926177] systemd[1]: Starting Apply Kernel Variables...
         Starting Apply Kernel Variables...
[    5.941689] systemd[1]: Condition check resulted in Create System Users being skipped.
[    5.978800] systemd[1]: Starting Create Static Device Nodes in /dev...
         Starting Create Static Device Nodes in /dev...
[    6.039626] systemd[1]: Started Journal Service.
[  OK  ] Started Journal Service.
[  OK  ] Mounted Kernel Configuration File System.
[  OK  ] Started Apply Kernel Variables.
[  OK  ] Started Create Static Device Nodes in /dev.
[  OK  ] Reached target Local File Systems (Pre).
         Mounting /media/ram...
         Mounting /var/volatile...
         Starting Flush Journal to Persistent Storage...
[    6.436727] systemd-journald[86]: Received client request to flush runtime journal.
         Starting udev Kernel Device Manager...
[  OK  ] Mounted /media/ram.
[  OK  ] Mounted /var/volatile.
[  OK  ] Started Flush Journal to Persistent Storage.
         Starting Load/Save Random Seed...
[  OK  ] Reached target Local File Systems.
         Starting Create Volatile Files and Directories...
[  OK  ] Started Load/Save Random Seed.
[  OK  ] Started Create Volatile Files and Directories.
         Starting Network Time Synchronization...
         Starting Update UTMP about System Boot/Shutdown...
[  OK  ] Started udev Kernel Device Manager.
[  OK  ] Started Update UTMP about System Boot/Shutdown.
[  OK  ] Started Network Time Synchronization.
[  OK  ] Reached target System Time Set.
[  OK  ] Reached target System Time Synchronized.
[  OK  ] Created slice system-systemd\x2dbacklight.slice.
         Starting Load/Save Screen …ness of backlight:backlight...
[    8.974960] remoteproc remoteproc0: wkup_m3 is available
[  OK  ] Started Load/Save Screen B…htness of backlight:backlight.
[  OK  ] Started udev Coldplug all Devices.
[    9.632115] omap_rtc 44e3e000.rtc: already running
[    9.637525] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
         Starting udev Wait for Complete Device Initialization...
[    9.735135] omap_rtc 44e3e000.rtc: registered as rtc0
[    9.780679] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01T00:14:26 UTC (946685666)
[   10.403249] remoteproc remoteproc0: powering up wkup_m3
[   10.503286] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 243276
[   10.599376] remoteproc remoteproc0: remote processor wkup_m3 is now up
[   10.599409] wkup_m3_ipc 44e11324.wkup_m3_ipc: CM3 Firmware Version = 0x192
[   10.901389] am335x-phy-driver 47401300.usb-phy: supply vcc not found, using dummy regulator
[   10.976851] usbcore: registered new interface driver usbfs
[   10.982447] usbcore: registered new interface driver hub
[   11.007951] usbcore: registered new device driver usb
[   11.025519] am335x-phy-driver 47401b00.usb-phy: supply vcc not found, using dummy regulator
[   11.141520] musb-hdrc musb-hdrc.0: MUSB HDRC host driver
[   11.292062] musb-hdrc musb-hdrc.0: new USB bus registered, assigned bus number 1
[   11.354072] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
[   11.362401] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   11.553787] usb usb1: Product: MUSB HDRC host driver
[   11.558804] usb usb1: Manufacturer: Linux 5.10.100-g7a7a3af903 musb-hcd
[   11.686647] usb usb1: SerialNumber: musb-hdrc.0
[   11.730832] hub 1-0:1.0: USB hub found
[   11.784095] hub 1-0:1.0: 1 port detected
[   11.900944] musb-hdrc musb-hdrc.1: MUSB HDRC host driver
[   12.021954] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 2
[   12.124293] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
[   12.194153] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   12.201436] usb usb2: Product: MUSB HDRC host driver
[   12.350318] usb usb2: Manufacturer: Linux 5.10.100-g7a7a3af903 musb-hcd
[   12.434649] usb usb2: SerialNumber: musb-hdrc.1
[   12.484989] hub 2-0:1.0: USB hub found
[   12.530082] hub 2-0:1.0: 1 port detected
[   12.905831] CAN device driver interface
[   13.045018] c_can_platform 481cc000.can: c_can_platform device registered (regs=93453c1c, irq=39)
[   14.401192] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
[   14.475231] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2
[   14.517353] omap-sham 53100000.sham: will run requests pump with realtime priority
[   14.553862] omap-aes 53500000.aes: will run requests pump with realtime priority
[   15.066025] PM: bootloader does not support rtc-only!
[ ***  ] A start job is running for udev Wai…ice Initialization (18s / 3min 5s)
[  OK  ] Started udev Wait for Complete Device Initialization.
[  OK  ] Created slice system-systemd\x2dfsck.slice.
[  OK  ] Reached target Hardware activated USB gadget.
[  OK  ] Listening on Load/Save RF …itch Status /dev/rfkill Watch.
[  OK  ] Started Hardware RNG Entropy Gatherer Daemon.
[  OK  ] Reached target System Initialization.
[  OK  ] Started Daily rotation of log files.
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Reached target Timers.
[  OK  ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
[  OK  ] Listening on D-Bus System Message Bus Socket.
[  OK  ] Listening on dropbear.socket.
[  OK  ] Reached target Sockets.
[  OK  ] Reached target Basic System.
[  OK  ] Started Job spooling tools.
[  OK  ] Started Periodic Command Scheduler.
[  OK  ] Started D-Bus System Message Bus.
         Starting Print notice about GPLv3 packages...
         Starting IPv6 Packet Filtering Framework...
         Starting IPv4 Packet Filtering Framework...
         Starting Reboot and dump vmcore via kexec...
         Starting rc.pvr.service...
         Starting File System Check on /dev/mmcblk0p1...
         Starting File System Check on /dev/mmcblk1p2...
         Starting File System Check on /dev/mmcblk1p5...
         Starting Login Service...
[  OK  ] Started IPv6 Packet Filtering Framework.
[  OK  ] Started IPv4 Packet Filtering Framework.
[  OK  ] Started Reboot and dump vmcore via kexec.
[  OK  ] Started rc.pvr.service.
[  OK  ] Started File System Check on /dev/mmcblk1p5.
[  OK  ] Reached target Network (Pre).
         Mounting /run/media/mmcblk1p5...
         Starting Network Service...
         Starting weston.service...
[FAILED] Failed to mount /run/media/mmcblk1p5.
See 'systemctl status run-media-mmcblk1p5.mount' for details.
[  OK  ] Started File System Check on /dev/mmcblk0p1.
[  OK  ] Started File System Check on /dev/mmcblk1p2.
         Mounting /run/media/mmcblk0p1...
         Mounting /run/media/mmcblk1p2...
[  OK  ] Started weston.service.
         Starting Matrix GUI...
         Starting telnetd.service...
[  OK  ] Mounted /run/media/mmcblk0p1.
[  OK  ] Mounted /run/media/mmcblk1p2.
[  OK  ] Started Matrix GUI.
[  OK  ] Started telnetd.service.
[  OK  ] Started Network Service.
         Starting Wait for Network to be Configured...
[   28.918181] cpsw 4a100000.ethernet: initializing cpsw version 1.12 (0)
         Starting Network Name Resolution...
[   29.085255] TI TLK10X 10/100 Mbps PHY 4a101000.mdio:01: attached PHY driver [TI TLK10X 10/100 Mbps PHY] (mii_bus:phy_addr=4a101000.mdio:01, irq=POLL)
[  OK  ] Started Login Service.
[  OK  ] Started Network Name Resolution.
[  OK  ] Reached target Network.
[  OK  ] Reached target Host and Network Name Lookups.
         Starting Avahi mDNS/DNS-SD Stack...
         Starting Enable and configure wl18xx bluetooth stack...
[  OK  ] Started NFS status monitor for NFSv2/3 locking..
         Starting Simple Network Ma…ent Protocol (SNMP) Daemon....
         Starting Permit User Sessions...
[  OK  ] Started Enable and configure wl18xx bluetooth stack.
[  OK  ] Started Permit User Sessions.
[  OK  ] Started Avahi mDNS/DNS-SD Stack.
[  OK  ] Started Getty on tty1.
[  OK  ] Started Serial Getty on ttyS0.
[  OK  ] Started Serial Getty on ttyS3.
[  OK  ] Reached target Login Prompts.
         Starting Synchronize System and HW clocks...
[  OK  ] Created slice system-systemd\x2dcoredump.slice.
[  OK  ] Started Process Core Dump (PID 809/UID 0).
[  OK  ] Started Simple Network Man…ement Protocol (SNMP) Daemon..
[   33.123821] vmmcsd_fixed: disabling
[  OK  ] Started Synchronize System and HW clocks.
***************************************************************
***************************************************************
NOTICE: This file system contains the following GPLv3 packages:
        autoconf
        bash-dev
        bash
        bc
        binutils
        cifs-utils
        coreutils-stdbuf
        coreutils
        cpio
        cpp-symlinks
        cpp
        dosfstools
        elfutils
        g++-symlinks
        g++
        gawk
        gcc-symlinks
        gcc
        gdb
        gdbserver
        gettext
        glmark2
        gstreamer1.0-libav
        gzip
        hidapi
        less
        libasm1
        libbfd
        libdw1
        libelf1
        libgdbm-compat4
        libgdbm-dev
        libgdbm6
        libgettextlib
        libgettextsrc
        libgmp10
        libidn2-0
        libmpc3
        libmpfr6
        libreadline-dev
        libreadline8
        libunistring2
        m4-dev
        m4
        make
        nettle
        parted
        pdm-anomaly-detection
        tar
        which

If you do not wish to distribute GPLv3 components please remove
the above packages prior to distribution.  This can be done using
the opkg remove command.  i.e.:
    opkg remove <package>
Where <package> is the name printed in the list above

NOTE: If the package is a dependency of another package you
      will be notified of the dependent packages.  You should
      use the --force-removal-of-dependent-packages option to
      also remove the dependent packages as well
***************************************************************
***************************************************************
[  OK  ] Started Print notice about GPLv3 packages.

 _____                    _____           _         _   
|  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_ 
|     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
|__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|  
              |___|                    |___|            

Arago Project http://arago-project.org am335x-evm ttyS0
am335x-evm login: [  150.199663] cryptd: max_cpu_qlen set to 1000
[  150.554785] Initializing XFRM netlink socket

am335x-evm login: root

DTS file:

/*
 * Copyright (C) 2020 Texas Instruments Incorporated - http://www.ti.com/
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */
/dts-v1/;

#include "am33xx.dtsi"
#include "am335x-custom-pinmux.dtsi"

/ {
	model = "Custom Board";
	compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";

    memory@80000000 {
        device_type = "memory";
        reg = <0x80000000 0x10000000>; /* 512 MB */
        
    }; /*memory@80000000*/

    chosen {
        stdout-path = &uart0;
    
    }; /*chosen*/

	/*Regulator DTS configs*/
    vmmcsd_fixed: fixedregulator0 {
        compatible = "regulator-fixed";
        regulator-name = "vmmcsd_fixed";
        regulator-min-microvolt = <3300000>;
        regulator-max-microvolt = <3300000>;
        
    }; /*vmmcsd_fixed*/
        
    /*Sound Card DTS configs*/
	sound {
		compatible = "simple-audio-card";
		simple-audio-card,name = "Sound";
		simple-audio-card,format = "i2s";
		simple-audio-card,bitclock-master = <&sound_master>;
		simple-audio-card,frame-master = <&sound_master>;

		simple-audio-card,codec {
			sound-dai = <&amp>;
		};

		sound_master: simple-audio-card,cpu {
			sound-dai = <&mcasp1>;
			bitclock-master;
			frame-master;
			system-clock-frequency = <24576000>;
			system-clock-direction-out;
		};
	};
	
	backlight: backlight {
		compatible = "pwm-backlight";
		pwms = <&ecap0 0 50000 0>;
		brightness-levels = <0 51 53 56 62 75 101 152 255>;
		default-brightness-level = <8>;
	};
	
	/*LCD Panel DTS Configs*/	
	panel {
		compatible = "sharp,lq121s1lg88";

		pinctrl-names = "default";
		pinctrl-0 = <&lcdc0_pins_default>;
		backlight = <&backlight>;

		port {
			panel_0: endpoint@0 {
				remote-endpoint = <&lcdc_0>;
			};
		};
	};


}; /*root node */

/*LCDC DTS configs*/

&lcdc {
	status = "okay";

	port {
		lcdc_0: endpoint@0 {
			remote-endpoint = <&panel_0>;
		};
	};
};

/*UARTO DTS configs*/
&uart0 {
        pinctrl-names = "default";
        pinctrl-0 = <&uart0_pins_default>;
        status = "okay";
};

/*SD DTS configs*/
&mmc1 {
		pinctrl-names = "default";
		status = "okay";
};

/*eMMC DTS configs*/
&mmc2 {
		pinctrl-names = "default";
		bus-width = <8>;
		status = "okay";
};


/*I2C0 DTS configs*/
&i2c0 {
	pinctrl-names = "default";
	pinctrl-0 = <&myi2c0_pins_default>;
	status = "okay";
	
	tps: tps@24 {
		reg = <0x24>;
	};
	
	amp: amp@6c {
		#sound-dai-cells = <0>;
		compatible = "nxp,tfa9879";
		reg = <0x6c>;
	};	
};

/*CAN DTS configuration*/
&dcan0 {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&mydcan0_pins_default>;
};

/*User LED DTS configs*/
&gpio2 {
	pinctrl-names = "default";
	pinctrl-0 = <&mygpio2_pins_default>;
	status = "okay";	
};

/*Ethernet DTS configs*/
&mac {
	pinctrl-names = "default";
	status = "okay";
	slaves = <1>;
};

&davinci_mdio {
	pinctrl-names = "default";
	status = "okay";

	ethphy0: ethernet-phy@1 {
		reg = <1>;
	};
};

&cpsw_emac0 {
	phy-handle = <&ethphy0>;
	phy-mode = "rmii";
};

/*USB Host DTS configs*/
&usb {
status = "okay";
};

&usb_ctrl_mod {
status = "okay";
};

&usb0_phy {
status = "okay";
};

&usb0 {
status = "okay";
dr_mode = "host";
};

/*McASP DTS configs*/
&mcasp1 {
	
	compatible = "ti,am33xx-mcasp-audio";
	#sound-dai-cells = <0>;
	pinctrl-names = "default";
	pinctrl-0 = <&mcasp_pins_default>;

	status = "okay";

	op-mode = <0>;          /* MCASP_IIS_MODE */
	tdm-slots = <2>;
	/* 4 serializers */
	num-serializer = <4>;
	serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
		1 0 1 0
	>;
};

/*ADC Voltage Monitoring and Touchscreen DTS configs*/
&tscadc{

        compatible = "ti,am3359-tscadc";
        status = "okay";
        tsc {
            ti,wires = <5>;
            ti,x-plate-resistance = <200>;
            ti,coordinate-readouts = <5>;
            ti,wire-config = <0x00 0x11 0x22 0x33>;
            ti,charge-delay = <0x400>;
        };

        adc {
            ti,adc-channels = <5 6 7>;
        };
};

/*PWM DTS configs*/
&epwmss0 {
	status = "okay";
};	
	
&ecap0{
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&myecap0_pins_default>;
};

/*Volatge regulator DTS configs*/
/include/ "tps65217.dtsi"

&tps {

	interrupts = <7>; /* NMI */
	interrupt-parent = <&intc>;

	ti,pmic-shutdown-controller;

	charger {
		status = "okay";
	};

	regulators {
		dcdc1_reg: regulator@0 {
			regulator-name = "Z1V5PMIC";
			regulator-always-on;
		};

		dcdc2_reg: regulator@1 {
			/* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
			regulator-name = "Z1V1PMIC2";
			regulator-min-microvolt = <925000>;
			regulator-max-microvolt = <1351500>;
			regulator-boot-on;
			regulator-always-on;
		};

		dcdc3_reg: regulator@2 {
			/* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
			regulator-name = "Z1V1PMIC1";
			regulator-min-microvolt = <925000>;
			regulator-max-microvolt = <1150000>;
			regulator-boot-on;
			regulator-always-on;
		};

		ldo1_reg: regulator@3 {
			regulator-name = "Z1V8PMIC1";
			regulator-always-on;
		};

		ldo2_reg: regulator@4 {
			regulator-name = "Z3V3PMIC2";
			regulator-always-on;
		};

		ldo3_reg: regulator@5 {
			regulator-name = "Z1V8PMIC2";
			regulator-always-on;
		};

		ldo4_reg: regulator@6 {
			regulator-name = "Z3V3PMIC1";
			regulator-always-on;
		};
	};
};

DTS pinmux file:

/* This file was auto-generated by TI PinMux on 14/09/2022 at 12:44:06. */
/* This file should only be used as a reference. Some pins/peripherals, */
/* depending on your use case, may need additional configuration. */


&am33xx_pinmux {

	/*pinmux for mcasp1 interface - sound card*/
	mcasp_pins_default: mcasp_pins_default {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x918, PIN_OUTPUT | MUX_MODE4) /* (J17) gmii1_rxdv.mcasp1_aclkx */
			AM33XX_IOPAD(0x91c, PIN_OUTPUT | MUX_MODE4) /* (J18) gmii1_txd3.mcasp1_fsx */
			AM33XX_IOPAD(0x920, PIN_OUTPUT | MUX_MODE4) /* (K15) gmii1_txd2.mcasp1_axr0 */
			AM33XX_IOPAD(0x908, PIN_OUTPUT | MUX_MODE4) /* (H16) gmii1_col.mcasp1_axr2 */
		>;
	};
		
	/*pinmux for mmc0 interface - sd card*/
	mmc0_pins_default: mmc0_pins_default {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x900, PIN_INPUT | MUX_MODE0) /* (G17) mmc0_clk.mmc0_clk */
			AM33XX_IOPAD(0x904, PIN_INPUT | MUX_MODE0) /* (G18) mmc0_cmd.mmc0_cmd */
			AM33XX_IOPAD(0x8fc, PIN_INPUT | MUX_MODE0) /* (G16) mmc0_dat0.mmc0_dat0 */
			AM33XX_IOPAD(0x8f8, PIN_INPUT | MUX_MODE0) /* (G15) mmc0_dat1.mmc0_dat1 */
			AM33XX_IOPAD(0x8f4, PIN_INPUT | MUX_MODE0) /* (F18) mmc0_dat2.mmc0_dat2 */
			AM33XX_IOPAD(0x8f0, PIN_INPUT | MUX_MODE0) /* (F17) mmc0_dat3.mmc0_dat3 */
		>;
	};
	
	/*pinmux for mmc1 interface - eMMC*/
	mmc1_pins_default: mmc1_pins_default {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x880, PIN_INPUT | MUX_MODE2) /* (U9) gpmc_csn1.mmc1_clk */
			AM33XX_IOPAD(0x884, PIN_INPUT | MUX_MODE2) /* (V9) gpmc_csn2.mmc1_cmd */
			AM33XX_IOPAD(0x800, PIN_INPUT | MUX_MODE1) /* (U7) gpmc_ad0.mmc1_dat0 */
			AM33XX_IOPAD(0x804, PIN_INPUT | MUX_MODE1) /* (V7) gpmc_ad1.mmc1_dat1 */
			AM33XX_IOPAD(0x808, PIN_INPUT | MUX_MODE1) /* (R8) gpmc_ad2.mmc1_dat2 */
			AM33XX_IOPAD(0x80c, PIN_INPUT | MUX_MODE1) /* (T8) gpmc_ad3.mmc1_dat3 */
			AM33XX_IOPAD(0x810, PIN_INPUT | MUX_MODE1) /* (U8) gpmc_ad4.mmc1_dat4 */
			AM33XX_IOPAD(0x814, PIN_INPUT | MUX_MODE1) /* (V8) gpmc_ad5.mmc1_dat5 */
			AM33XX_IOPAD(0x818, PIN_INPUT | MUX_MODE1) /* (R9) gpmc_ad6.mmc1_dat6 */
			AM33XX_IOPAD(0x81c, PIN_INPUT | MUX_MODE1) /* (T9) gpmc_ad7.mmc1_dat7 */
		>;
	};

	/*pinmux for uart0 interface - Console UART*/
	uart0_pins_default: uart0_pins_default {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x970, PIN_INPUT | MUX_MODE0) /* (E15) uart0_rxd.uart0_rxd */
			AM33XX_IOPAD(0x974, PIN_OUTPUT | MUX_MODE0) /* (E16) uart0_txd.uart0_txd */
		>;
	};

	/*pinmux for i2c0 interface */
	myi2c0_pins_default: myi2c0_pins_default {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x98c, PIN_INPUT_PULLUP | MUX_MODE0) /* (C16) I2C0_SCL.I2C0_SCL */
			AM33XX_IOPAD(0x988, PIN_INPUT_PULLUP | MUX_MODE0) /* (C17) I2C0_SDA.I2C0_SDA */
		>;	
	};
	
	/*pinmux for can1 interface */
    /*CAN DTS configuration*/
    mydcan0_pins_default: mydcan0_pins_default {
        pinctrl-single,pins = <
            AM33XX_IOPAD(0x97c, PIN_INPUT | MUX_MODE2) /* (D17) uart1_rtsn.dcan0_rx */
            AM33XX_IOPAD(0x978, PIN_OUTPUT | MUX_MODE2) /* (D18) uart1_ctsn.dcan0_tx */
        >;
    };	

	/*pinmux for gpio pins - user leds*/
	mygpio2_pins_default: mygpio2_pins_default {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x890, PIN_INPUT | MUX_MODE7) /* (R7) gpmc_advn_ale.gpio2[2] */
			AM33XX_IOPAD(0x894, PIN_INPUT | MUX_MODE7) /* (T7) gpmc_oen_ren.gpio2[3] */
			AM33XX_IOPAD(0x898, PIN_INPUT | MUX_MODE7) /* (U6) gpmc_wen.gpio2[4] */
			AM33XX_IOPAD(0x89c, PIN_INPUT | MUX_MODE7) /* (T6) gpmc_be0n_cle.gpio2[5] */
		>;
	};
	
	/*pinmux for PWM*/
	myecap0_pins_default: myecap0_pins_default {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x964, PIN_OUTPUT | MUX_MODE0) /* (C18) eCAP0_in_PWM0_out.eCAP0_in_PWM0_out */
		>;
	};
	
	/*pinmux for LCD*/
	lcdc0_pins_default: lcdc0_pins_default {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x8e0, PIN_OUTPUT | MUX_MODE0) /* (U5) lcd_vsync.lcd_vsync */
			AM33XX_IOPAD(0x8e4, PIN_OUTPUT | MUX_MODE0) /* (R5) lcd_hsync.lcd_hsync */
			AM33XX_IOPAD(0x8e8, PIN_OUTPUT | MUX_MODE0) /* (V5) lcd_pclk.lcd_pclk */
			AM33XX_IOPAD(0x8ec, PIN_OUTPUT | MUX_MODE0) /* (R6) lcd_ac_bias_en.lcd_ac_bias_en */
			AM33XX_IOPAD(0x8a0, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* (R1) lcd_data0.lcd_data0 */
			AM33XX_IOPAD(0x8a4, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* (R2) lcd_data1.lcd_data1 */
			AM33XX_IOPAD(0x8a8, PIN_OUTPUT_PULLUP | MUX_MODE0) /* (R3) lcd_data2.lcd_data2 */
			AM33XX_IOPAD(0x8ac, PIN_OUTPUT_PULLUP | MUX_MODE0) /* (R4) lcd_data3.lcd_data3 */
			AM33XX_IOPAD(0x8b0, PIN_OUTPUT_PULLUP | MUX_MODE0) /* (T1) lcd_data4.lcd_data4 */
			AM33XX_IOPAD(0x8b4, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* (T2) lcd_data5.lcd_data5 */
			AM33XX_IOPAD(0x8b8, PIN_OUTPUT_PULLUP | MUX_MODE0) /* (T3) lcd_data6.lcd_data6 */
			AM33XX_IOPAD(0x8bc, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* (T4) lcd_data7.lcd_data7 */
			AM33XX_IOPAD(0x8c0, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* (U1) lcd_data8.lcd_data8 */
			AM33XX_IOPAD(0x8c4, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* (U2) lcd_data9.lcd_data9 */
			AM33XX_IOPAD(0x8c8, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* (U3) lcd_data10.lcd_data10 */
			AM33XX_IOPAD(0x8cc, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* (U4) lcd_data11.lcd_data11 */
			AM33XX_IOPAD(0x8d0, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* (V2) lcd_data12.lcd_data12 */
			AM33XX_IOPAD(0x8d4, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* (V3) lcd_data13.lcd_data13 */
			AM33XX_IOPAD(0x8d8, PIN_OUTPUT_PULLUP | MUX_MODE0) /* (V4) lcd_data14.lcd_data14 */
			AM33XX_IOPAD(0x8dc, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* (T5) lcd_data15.lcd_data15 */
			AM33XX_IOPAD(0x83c, PIN_OUTPUT | MUX_MODE1) /* (U13) gpmc_ad15.lcd_data16 */
			AM33XX_IOPAD(0x838, PIN_OUTPUT | MUX_MODE1) /* (V13) gpmc_ad14.lcd_data17 */
		>;
	};

};

  • Hello,

    1) Is it possible to use eglf platform without GPU block.If yes, Can you point to some documentation detailing the steps.
    It's not a supported usecase for AM335x and we do not have any documentation/steps for enabling software rasterization through EGLFS. 
    2) Is it possible to use some other platform other than 'linuxfb' for our custom AM3352 board. Our application does not require hardware acceleration.
     
    I believe that's a GUI specific question and there are various GUI options to select from. At TI, we do not develop, maintain and support GUI frameworks. My recommendation would be to check with the Qt community: https://doc.qt.io/qt-5/configure-linux-device.html 
    3) Is there any way to resolve the touch screen issue.
     
    I would recommend to check with the Qt community: https://doc.qt.io/qt-6/inputs-linux-device.html. We did not develop linuxfb platform plugin and based on evtest, the driver is configured correctly but Qt/linuxfb is not.
    Regards,
    Krunal
  • Hi

    We were able to fix this issue.
    As you mentioned, the issue was with QT/linuxfb platform.

    Root cause:-
    The QT libraries that comes as part of Arago Root Filesystem are built with 'evdev' support by default. Which will generally suffice for modern touchscreens however some older resistance touchscreens that only support single-touch may require that you fall back to using 'tslib' support. The custom board that we use consists of a resistive touch interface and hence we were facing this issue. More details in (doc.qt.io/.../inputs-linux-device.html)

    Solution:-
    Rebuild QT libraries from source by adding 'tslib' support and deploy them to the target device.

    I will leave the procedure that we followed to cross-compile QT Source for the benefit of others who visit this page in the future.

    ----------------------------------------------------
    Configure and Build TSLIB
    ----------------------------------------------------

    Step 1: Download latest tslib source package from (github.com/.../tslib)
    Step 2: Extract the source to a suitable location
    Step 3: From the parent directory (tslib-1.22), execute the command - ./autogen.sh
    Step 4: Execute the command to configure

    ./configure CC={PATH_TO_GCC_CROSS_COMPILER} \
                CXX={PATH_TO_G++_CROSS_COMPILER} \
                -host=arm-none-linux-gnueabi target=arm-none-linux-gnueabi \
                -enable-static=yes -enable-shared=yes \
                -prefix={PATH_TO_COMPILED_LIBS_IN_HOST_SYSTEM}
                
    
    


    (Example: ./configure CC=$HOME/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-gcc CXX=$HOME/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-g++ -host=arm-none-linux-gnueabi target=arm-none-linux-gnueabi -enable-static=yes -enable-shared=yes -prefix=$HOME/TMDSSK3358_ws/ts_lib/tslib_arm)

    Step 5: Execute make
    Step 6: Execute make install
    Step 7: If there were no errors during the build process, all the built libraries will be installed to the location configure in 'prefix'
    Step 8: To make sure that libs were properly cross compiled, execute the command: file {LOCATION_TO_LIB}

    (Example: file $HOME/TMDSSK3358_ws/ts_lib/tslib_arm/lib/libts.so.0.10.4)
    (Expected Output: $HOME/TMDSSK3358_ws/ts_lib/tslib_arm/lib/libts.so.0.10.4: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, with debug_info, not stripped)


    -----------------------------------------------------------------------
    Configure and Build QT Source to add TSLIB support
    -----------------------------------------------------------------------

    Step 1: Download QT Source (download.qt.io/.../qt-everywhere-src-5.13.1.tar.xz)
    Step 2: Extract and create a build directory inside the folder 'qt-everywhere-src-5.13.1'
    Step 3: Configure QT source. We use the below command to configure.

    ./configure -platform linux-g++ -release -device linux-beagleboard-g++ \
    -sysroot $HOME/TMDSSK3358_ws/SDK/linux-devkit/sysroots/armv7at2hf-neon-linux-gnueabi/home \ # sysroot refers to the path of toolchain sysroot directory or target root file system
    -prefix $HOME/TMDSSK3358_ws/QT_Libs \ # prefix refers to the path, where the compiled QT libs will be stored
    -hostprefix $HOME/TMDSSK3358_ws/QT_Host \ # hostprefix refers to the path, where 'qmake' and its dependendent files will be stored. Its required for creating a kit in QT Creator.
    -device-option CROSS_COMPILE=$HOME/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf- \ #$cross_compile refers to path where linero cross compiler toolchain is stored.
    -opensource -confirm-license \
    -nomake tests -nomake examples \
    -no-egl -no-eglfs \
    -no-use-gold-linker \
    -no-cups -no-iconv \
    -nomake examples -nomake tools -nomake tests \
    -skip qtlocation -skip qtpurchasing -skip qtwayland \
    -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview \
    -skip qtwebglplugin -skip qtandroidextras \
    -skip qtgamepad -skip qtmacextras -skip qtwinextras \
    -skip qtsensors -skip qtconnectivity \
    -no-xcb -no-xcb-xlib \
    -no-sse2 -no-glib\
    -reduce-exports \
    -make libs \
    -qt-zlib -qt-libpng \
    -qt-libjpeg \
    -shared \
    -tslib \
    -linuxfb \
    -verbose \
    -L HOME/TMDSSK3358_ws/ts_lib/tslib_arm/lib \ # refers to the path where we compiled the tslib libraries in the previous section
    -I HOME/TMDSSK3358_ws/ts_lib/tslib_arm/include # refers to the path where we compiled the tslib include files in the previous section

    Step 4: If configuration happened correctly without any errors, tslib support will be marked as 'yes' in configuration summary
    Step 5: Run make and make install
    Step 6: If no errors occurred during the build, compiled QT libs and its related files will be stored in the path mentioned in $sysroot\$target
    Step 7: Deploy them to the target hardware.

    ----------------------------------------------------------------------
    Build tslib IPK packges
    ----------------------------------------------------------------------
    Step 1: Follow the steps provided here (software-dl.ti.com/.../Overview_Building_the_SDK.html) to build the required tslib packages using Yocto project
    Step 2: When executing the bitbake command, issue the following command, which will build only the 'tslib' packages.
    MACHINE=amm335x bitbake tslib
    Step 3: The IPKs will be located in tisdk/build/arago-tmp-external-arm-glibc/deploy/ipk.
    Step 4: Copy them to the target device and install them with the command 'opkg install ipk-name.ipk'
    Step 5: After installing, execute the command 'ts_calibrate'. Which will open the calibration application.


    -------------------------------------------------------------------------
    Setting up environment in Target
    -------------------------------------------------------------------------

    Export the following variables to remove evdev support and to use tslib support

    export TSLIB_TSEVENTTYPE='INPUT'
    export TSLIB_CALIBFILE='/run/media/mmcblk0p1/pointercal'
    export TSLIB_CONFFILE='/etc/ts.conf'
    export TSLIB_CONSOLEDEVICE='none'
    export TSLIB_FBDEVICE='/dev/fb0'
    export TSLIB_PLUGINDIR='/usr/lib/ts'
    export TSLIB_TSDEVICE='/dev/input/event0'
    export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event0
    export QT_QPA_PLATFORM=linuxfb
    export QT_QPA_FB_TSLIB=1
    export QT_QPA_EGLFS_TSLIB=1
    export QT_QPA_FB_DISABLE_INPUT=1
    export QT_QPA_PLATFORM_PLUGIN_PATH=/home/QT/QT5_Target/plugins/platforms
    export LD_LIBRARY_PATH="/home/QT/QT5_Target/lib":$LD_LIBRARY_PATH
    export QT_PLUGIN_PATH=/home/QT/QT5_Target/plugins