Migrating From Dunfell to Kirkstone LCD over SPI using FBTFT no longer working
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
