Hi Team,
I’m currently working on the integration of MSP3520 TFT Display on Verdin development board (via SPI), which has verdin am62 SoM integrated.
We tried with SPI1, which is readily enabled in the verdin dev board. We could see our display is working fine. But we need to connect the display via SPI2. The pins we had selected were -
SPI2:
SODIMM_131 → CLK
SODIMM_133 → D1 (MISO)
SODIMM_135 → D0 (MOSI)
SODIMM_129 → CS0 (Display)
SODIMM_30 → CS1 (Touch Controller)
For GPIO, we are using dedicated GPIO pins:-
GPIO:
SODIMM_206 → DC/RS
SODIMM_208 → Reset
SODIMM_210 → Backlight
I created an overlay file for this:-
root @GalaxyBook/home/Meenakshy/Projects/SPI_TFT_Display/tcbdir: cat device-trees/overlays/verdin-am62_msp3520_tft_display_spi2_overlay.dts
/dts-v1/;
/plugin/;
#include “k3-pinctrl.h”
/ {
compatible = “toradex,verdin-am62”;
};
/\* Verdin SPI_2 pins */*
*&main_pmx0 {*
*main_spi2_pins_default: main-spi2-pins-default {*
*pinctrl-single,pins = <*
*AM62X_IOPAD(0x01b0, PIN_OUTPUT, 1) /* SPI2_CLK - SODIMM_131 */*
*AM62X_IOPAD(0x0198, PIN_INPUT, 1) /* SPI2_D1 - SODIMM_133 - MISO */*
*AM62X_IOPAD(0x0194, PIN_OUTPUT, 1) /* SPI2_D0 - SODIMM_135 - MOSI */*
*AM62X_IOPAD(0x01ac, PIN_OUTPUT, 1) /* SPI2_CS0 - SODIMM_129 */*
*AM62X_IOPAD(0x01a4, PIN_OUTPUT, 1) /* SPI2_CS1 - SODIMM_30 \*/
;
};
};
/\* Disable UART4 to free up pins for SPI2. SODIMM_131 is used by UART4 \*/
&main_uart4 {
status = “disabled”;
};
/\* Verdin SPI_2 - Enable for LCD \*/
&main_spi2 {
pinctrl-names = “default”;
pinctrl-0 = <&main_spi2_pins_default>;
status = “okay”;
#address-cells = <1>;
#size-cells = <0>;
msp3520_display@0 {
compatible = "spidev";
reg = <0>;
spi-max-frequency = <10000000>;
status = "okay";
};
msp3520_touch@1 {
compatible = "spidev";
reg = <1>;
spi-max-frequency = <10000000>;
status = "okay";
};
};
@GalaxyBoo@GalaxyBoo@GalaxyBook root @GalaxyBook/home/Meenakshy/Projects/SPI_TFT_Display/tcbdir:
The steps for deployment that I followed are -
mkdir tcbdir
cd tcbdir
wget https://raw.githubusercontent.com/toradex/tcb-env-setup/master/tcb-env-setup.sh
source tcb-env-setup.sh
torizoncore-builder --help //Test whether the torizoncore-builder command is available
Downloaded the toradex easy installer image of Torizon OS to tcbdir/ path
Downloaded the Linux kernel :-
git clone -b toradex_ti-linux-6.6.y git://git.toradex.com/linux-toradex.git linux --depth 1
Downloaded the device tree overlays :-
git clone -b toradex_ti-linux-6.6.y git://git.toradex.com/device-tree-overlays.git device-trees
Created a configuration file (tcbuild.yaml):-
root @GalaxyBook/home/Meenakshy/Projects/SPI_TFT_Display/tcbdir: cat tcbuild.yaml
input:
easy-installer:
local: torizon-docker-verdin-am62-Tezi_7.3.0+build.18
customization:
device-tree:
\# >> Directories where to look for include files.
include-dirs:
- linux/include/
- linux/arch/arm64/boot/dts/ti/
\# >> Custom device tree source:
#custom: linux/arch/arm64/boot/dts/ti/k3-am625-verdin-wifi-dev.dts
overlays:
add:
- device-trees/overlays/verdin-am62_msp3520_tft_display_spi2_overlay.dts
output:
\# >> (2) Parameters for deploying to an Easy Installer image.
easy-installer:
\# >> Output directory of the customized image (REQUIRED):
local: custom-torizon-docker-verdin-am62
\# >> Information used by Toradex Easy Installer:
name: "Torizon OS - SPI2 Enabled"
root @GalaxyBook/home/Meenakshy/Projects/SPI_TFT_Display/tcbdir:
Directory structure will be :-
tcbdir
├── linux
├── device-trees
│ └── overlays
│ └── msp3520_tft_display_spi2_overlay.dts
├── tcbuild.yaml
└── torizon-docker-verdin-am62-Tezi_7.3.0+build.18
Build :-
torizoncore-builder build
Deploy :-
Deploy image to board :-
torizoncore-builder deploy --remote-host 192.168.0.131 --remote-username torizon --remote-password torizon --reboot
I couldn’t see my overlay got applied. SPI2 is not enabled. Also, UART4 didn’t get disabled.
Kindly help me to resolve this issue.