2024-05-24 07:08 AM - edited 2024-05-24 07:26 AM
Hello ST Dear ST Community,
I'm currently trying to migrate my solution from stm32mp1-openstlinux-5-4-dunfell-mp1-20-06-24 to stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15
Im using a ST7789V Based LCD, and its working trough /dev/fb0 and fbdev under /video/
fbtft and /video/fbdev under dunfell sources
however in the kirkstone distro stuff are different , i only see staging/fbtft , i managed to get the right configuration and activate it the LCD driver is loaded
in the boot it shows this
[ 0.516659] SPI driver fb_st7789v has no spi_device_id for sitronix,st7789v
[ 9.137538] systemd[1]: System time before build time, advancing clock.
[ 9.248500] ipv6: module verification failed: signature and/or required key missing - tainting kernel
[ 9.274214] NET: Registered PF_INET6 protocol family
[ 9.314553] Segment Routing with IPv6
[ 9.316896] In-situ OAM (IOAM) with IPv6
[ 9.383063] systemd[1]: systemd 250.4-1-gc3aead5+ 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 -BZIP2 -LZ4 -XZ -ZLIB +ZSTD -BPF_FRAMEWORK -XKBCOMMON +UTMP +SYSVINIT default-hierarchy=hybrid)
[ 9.414966] systemd[1]: Detected architecture arm.
Welcome to ST OpenSTLinux - EGLfs - (A Yocto Project Based Distro) 4.0.1-snapshot-20240509 (kirkstone)!
[ 9.510758] systemd[1]: Using hardware watchdog 'STM32 Independent Watchdog', version 0, device /dev/watchdog0
[ 9.529233] systemd[1]: Watchdog running with a timeout of 32s.
[ 12.664201] systemd[1]: /lib/systemd/system/mount-partitions.service:9: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether.
[ 12.705179] systemd[1]: Queued start job for default target Multi-User System.
[ 12.776605] systemd[1]: Created slice Slice /system/getty.
[ OK ] Created slice Slice /system/getty.
[ 12.813304] systemd[1]: Created slice Slice /system/modprobe.
[ OK ] Created slice Slice /system/modprobe.
[ 12.853314] systemd[1]: Created slice Slice /system/serial-getty.
[ OK ] Created slice Slice /system/serial-getty.
[ 12.892602] systemd[1]: Created slice User and Session Slice.
......
[ 22.656775] fb_st7789v spi1.0: fbtft_property_value: width = 240
[ 22.705586] dwc2 49000000.usb-otg: bound driver configfs-gadget
[ 22.763362] fb_st7789v spi1.0: fbtft_property_value: height = 320
[ 22.768061] fb_st7789v spi1.0: fbtft_property_value: buswidth = 8
[ 22.875216] fb_st7789v spi1.0: fbtft_property_value: backlight = 55
[ 22.916872] fb_st7789v spi1.0: fbtft_property_value: rotate = 0
[ 22.962507] fb_st7789v spi1.0: fbtft_property_value: fps = 30
[ 22.968499] init panda
[ 23.069856] dwc2 49000000.usb-otg: new device is high-speed
[ 23.149675] dwc2 49000000.usb-otg: new device is high-speed
[ 23.218440] dwc2 49000000.usb-otg: new address 46
[ 23.241096] IPv6: ADDRCONF(NETDEV_CHANGE): usb0: link becomes ready
[ 23.934567] graphics fb0: fb_st7789v frame buffer, 240x320, 150 KiB video memory, 4 KiB buffer memory, fps=33, spi1.0 at 10 MHz
[* ] A start job is running for Wait for…ice Initialization (11s / 3min 7s)
[ 24.473763] stm32-adc 48003000.adc:adc@100: No channel found
[ 24.478101] stm32-adc: probe of 48003000.adc:adc@100 f
[** ] A start job is running for Wait for…ice Initiali
[ OK ] Finished Wait for udev To Complete Device Initialization.
[ OK ] Created slice Slice /system/systemd-backlight.
[ OK ] Reached target System Time Set.
[ 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.
Starting Load/Save Screen …f backlight:panel-backlight...
[ OK ] Finished Load/Save Screen … of backlight:panel-backlight.
[ OK ] Reached target System Initialization.
[ OK ] Started Daily Cleanup of Temporary Directories.
[ OK ]
My configuration file
#
# General setup
#
CONFIG_POSIX_MQUEUE=y
CONFIG_USELIB=y
CONFIG_FUTEX=y
CONFIG_PREEMPT=y
CONFIG_PREEMPT_COUNT=y
#
# RCU Subsystem
#
# allow user to access kernel config through /proc/config.gz
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=16
CONFIG_MEMCG=y
CONFIG_NAMESPACES=y
#
# Kernel Performance Events And Counters
#
CONFIG_PROFILING=y
#
# Kernel Features
#
CONFIG_SCHED_MC=y
CONFIG_MCPM=y
CONFIG_NR_CPUS=2
CONFIG_AEABI=y
CONFIG_HIGHMEM=y
CONFIG_FORCE_MAX_ZONEORDER=12
#
# Boot options
#
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
#
# CPU Power Management
#
#
# Floating point emulation
#
CONFIG_VFP=y
#
# Networking options
#
CONFIG_DNS_RESOLVER=y
#
# CAN Device Drivers
#
CONFIG_CAN_M_CAN=y
CONFIG_CAN_M_CAN_PLATFORM=y
#
# CAN USB interfaces
#
#
# Bluetooth device drivers
#
#
# Device Drivers
#
#
# Generic Driver Options
#
CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y
#
# Disk-On-Chip Device Drivers
#
#
# LPDDR & LPDDR2 PCM memory drivers
#
#
# Misc devices
#
CONFIG_SRAM=y
#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_CHR_DEV_SG=y
#
# MII PHY device drivers
#
#
# Input Device Drivers
#
#
# Touchscreen drivers
#
CONFIG_TOUCHSCREEN_EDT_FT5X06=y
CONFIG_TOUCHSCREEN_GOODIX=y
#
# Character devices
#
CONFIG_LEGACY_PTY_COUNT=8
#
# Non-8250 serial port support
#
CONFIG_SERIAL_NONSTANDARD=y
#
# SPI Master Controller Drivers
#
#
# Pin controllers
#
CONFIG_PINCTRL_MCP23S08=n
#
# Memory mapped GPIO drivers
#
#
# Memory Technology Device (MTD) support
#
CONFIG_MTD_SPI_NAND=y
CONFIG_MTD_MCHP23K256=m
#
# Multiple devices driver support
#
CONFIG_MD=y
#
#Device mapper support
#
CONFIG_BLK_DEV_DM=y
CONFIG_DM_CRYPT=y
#
# USB GPIO expanders
#
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_SYSCON=y
#
# Native drivers
#
CONFIG_SENSORS_IIO_HWMON=y
CONFIG_THERMAL=y
#
# STMicroelectronics thermal drivers
#
#
# Watchdog Device Drivers
#
CONFIG_WATCHDOG_NOWAYOUT=y
CONFIG_WATCHDOG_SYSFS=y
#
# Sonics Silicon Backplane
#
#
# Multifunction device drivers
#
CONFIG_PROTECTION_CONSUMER=y
#
# Multimedia core support
#
#
# USB HDMI CEC adapters
#
CONFIG_CEC_STM32=m
#
# Camera sensor devices
#
CONFIG_VIDEO_GC2145=m
CONFIG_VIDEO_OV5640=m
CONFIG_VIDEO_ST_MIPID02=m
#
# Graphics support
#
# to solve issue on DK2 screen
# CONFIG_DRM_FBDEV_EMULATION is not set
# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
#
# Sub-drivers
#
#
# Display Panels
#
CONFIG_DRM_PANEL_ORISETECH_OTM8009A=n
CONFIG_DRM_PANEL_RAYDIUM_RM68200=n
CONFIG_DRM_PANEL_ROCKTECH_HX8394=n
#
# Display Interface Bridges
#
#CONFIG_DRM_I2C_ADV7511=y
#CONFIG_DRM_SII902X=y
#
# Frame buffer hardware drivers <===========
#
CONFIG_DRM_SIMPLEDRM=n
#
# Console display driver support
#
CONFIG_DRM_STM=y
CONFIG_DRM_STM_DSI=y
#
# Backlight support
#
CONFIG_BACKLIGHT_GPIO=y
#
# HD-Audio
#
#
# STMicroelectronics STM32 SOC audio support
#
CONFIG_SND_SOC_STM32_SPDIFRX=m
CONFIG_SND_SOC_STM32_DFSDM=m
#
# CODEC drivers
#
#
# USB Device Class drivers
#
CONFIG_USB_ACM=m
#
# also be needed; see USB_STORAGE Help for more info
#
#
# Gadget/Dual-role mode requires USB Gadget support to be enabled
#
#
# USB Physical Layer drivers
#
#
# USB UCSI with STM32G07 over I2C
#
CONFIG_TYPEC_UCSI=m
CONFIG_UCSI_STM32G0=m
#
# Platform Support
#
#
# Virtio drivers
#
#
# STM32 HSEM
#
CONFIG_HWSPINLOCK=y
CONFIG_HWSPINLOCK_STM32=y
#
# Clock Source drivers
#
CONFIG_CLKSRC_STM32_LP=y
#
# Regulators
#
CONFIG_REGULATOR_STM32_VREFBUF=y
#
# Remoteproc drivers
#
CONFIG_REMOTEPROC=y
CONFIG_STM32_RPROC=y
CONFIG_REMOTEPROC_SRM_CORE=y
CONFIG_REMOTEPROC_SRM_DEV=y
#
# Rpmsg drivers
#
CONFIG_RPMSG_VIRTIO=y
CONFIG_RPMSG_TTY=m
#
# NVMEM drivers
#
CONFIG_NVMEM_STM32_ROMEM=y
CONFIG_TEE=y
#
# TEE drivers
#
CONFIG_OPTEE=y
# end of TEE drivers
#
# File systems
#
CONFIG_OVERLAY_FS=y
CONFIG_JFFS2_FS=y
#
# Pseudo filesystems
#
CONFIG_TMPFS=y
# Security options
#
CONFIG_KEYS=y
#
# Library routines
#
CONFIG_CRC_ITU_T=m
#
# Default contiguous memory area size:
#
CONFIG_CMA_SIZE_MBYTES=128
#
# Kernel hacking
#
#
# printk and dmesg options
#
CONFIG_DYNAMIC_DEBUG=y
#
# Compile-time checks and compiler options
#
CONFIG_DEBUG_INFO=y
CONFIG_GDB_SCRIPTS=y
CONFIG_DEBUG_SECTION_MISMATCH=y
#
# Debug Oops, Lockups and Hangs
#
#
# Scheduler Debugging
#
CONFIG_DEBUG_PREEMPT=y
#
# Runtime Testing
#
#
# STM32 DFSDM
#
CONFIG_SD_ADC_MODULATOR=y
#
# STM32 IPCC
#
CONFIG_STM32_IPCC=y
#
# SCMI
#
CONFIG_ARM_SCMI_PROTOCOL=y
CONFIG_COMMON_CLK_SCMI=y
CONFIG_ARM_SMC_MBOX=y
CONFIG_REGULATOR_ARM_SCMI=y
CONFIG_ARM_SCMI_CPUFREQ=y
#
# STM32 CPUIDLE
#
CONFIG_CPU_IDLE=y
CONFIG_ARM_STM32_CPUIDLE=y
CONFIG_ARM_CPUIDLE=n
#
# REBOOT
#
CONFIG_REBOOT_MODE=y
CONFIG_SYSCON_REBOOT_MODE=y
#
# RPMSG client sample
#
CONFIG_SAMPLES=y
CONFIG_SAMPLE_RPMSG_CLIENT=m
#
# LCD Framebuffer
#
CONFIG_FB_TFT=y
CONFIG_STAGING=y
#CONFIG_DRM_PANEL_SITRONIX_ST7789V=y
CONFIG_FB_TFT_ST7789V=y
#
# TTY
#
#
# STM32 LPTIMER
#
CONFIG_MFD_STM32_LPTIMER=y
CONFIG_PWM_STM32_LP=y
CONFIG_IIO_STM32_LPTIMER_TRIGGER=y
CONFIG_STM32_LPTIMER_CNT=y
# STM32 DAC
#
CONFIG_STM32_DAC=y
my device tree
&spi4 {
status = "okay";
pinctrl-0 = <&spi4_pins_mx>;
pinctrl-1 = <&spi4_sleep_pins_mx>;
pinctrl-names = "default";
#address-cells = <1>;
#size-cells = <0>;
cs-gpios = <&gpioe 11 GPIO_ACTIVE_HIGH>;
spidev4: spidev4@0{
status = "disabled";
};
display: display@0{
compatible = "sitronix,st7789v";
reg = <0>;
buswidth = <8>;
custom = <1>;
bgr;
spi-3wire = <0x01>;
fps = <30>;
rotate = <0>;
width = <240>;
height = <320>;
spi-max-frequency = <20000000>;
dc-gpios = <&gpiof 0 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpioc 2 GPIO_ACTIVE_HIGH>;
backlight = <&panel_backlight>;
port@0{
panel_input: endpoint {
remote-endpoint = <<dc_ep1_out>;
};
};
};
};
Also when probing the SPI outputs , the device seems to generate control signals when using the command fb-test
I appreciate any help, I'm open to other methods as long as it gets the LCD working again
Thank you
Solved! Go to Solution.
2024-05-26 01:25 PM
Update i was able to get it working. i just replaced all the FBTFT from the previous version to the newer version..
there are indeed many updates in how the driver handles the screens.
For example for the ST7789V it now handles and manages the tearing effect in the screens..
2024-05-26 01:25 PM
Update i was able to get it working. i just replaced all the FBTFT from the previous version to the newer version..
there are indeed many updates in how the driver handles the screens.
For example for the ST7789V it now handles and manages the tearing effect in the screens..