Adding max14830 as spi1 in Verdin am62


i am using verdin am62 SOM with verdin development board. i am trying to enable the MAx14830 as a child node for SPI1.

i have done the below changes in the device tree/* Verdin SPI_1 */
&main_spi1 {
status = “okay”;
max14830: max14830@0 {
compatible = “maxim,max14830”;
reg = <0>;
clocks = <&k3_clks 142 0>;
interrupt-parent = <&mcu_gpio0>;
interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
#gpio-cells = <2>;


after adding this in the k3-am62-verdin-dev.dtsi file and complied and built image , and booted using the SD card, but in /dev i am not seeing any SPI device. i have checked with cat /proc/tty/drivers as well , but i am not getting the SPI name itself.

below are the pinconfig details:
/* Verdin SPI_1 /
pinctrl_spi1: main-spi1-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0020, PIN_OUTPUT, 1) /
(J25) OSPI0_D5.SPI1_CLK / / SODIMM 196 /
AM62X_IOPAD(0x0024, PIN_OUTPUT, 1) /
(H25) OSPI0_D6.SPI1_D0 / / SODIMM 200 /
AM62X_IOPAD(0x0028, PIN_INPUT, 1) /
(J22) OSPI0_D7.SPI1_D1 / / SODIMM 198 */

/* Verdin SPI_1 CS */
pinctrl_spi1_cs0: main-spi1-cs0-default-pins {
	pinctrl-single,pins = <
		AM62X_IOPAD(0x001c, PIN_OUTPUT, 1) /* (J23) OSPI0_D4.SPI1_CS0 */ /* SODIMM 202 */

kindly help me in resolving this issue.

Hi, I’m the Toradex AI Assistant. I’m in early beta, and I would appreciate your feedback.
The Toradex Support team will follow up with you shortly!

Did you like my answer?

:+1: :-1:


To enable the MAX14830 SPI UART on the Verdin AM62 SoM using the SPI1 interface, your device tree modifications seem mostly correct. However, there are a few aspects to verify and adjust to ensure the device is recognized and functions as expected.

  1. Device Tree Node Activation: Ensure that the SPI bus (main_spi1) itself is correctly enabled and configured in the device tree. Your snippet indicates it is enabled with status = “okay”;, which is correct. However, ensure that there are no conflicting nodes or settings that might disable this SPI interface elsewhere in the device tree.

  2. Clock Configuration: The clocks property for the MAX14830 must correctly reference a valid clock source. The provided clocks = <&k3_clks 142 0>; line needs to match an existing clock definition in your SoC’s device tree. Verify that k3_clks and the clock index 142 are correctly defined and applicable for the MAX14830 on your hardware platform.

  3. Interrupt Configuration: The interrupt-parent and interrupts properties must match the actual hardware connection of the MAX14830’s interrupt line to the AM62 processor. Ensure that &mcu_gpio0 is the correct GPIO controller for the interrupt line and that the GPIO pin number and interrupt type (IRQ_TYPE_LEVEL_LOW) correctly reflect the physical connection.

  4. SPI Device Visibility: If the MAX14830 is correctly configured in the device tree, it will not appear as a traditional SPI device under /dev/spi*. Instead, because it is a UART bridge, you should see new TTY devices under /dev/ttyMAX* or similar, depending on the driver implementation. Ensure you are checking the correct device file entries for the presence of the MAX14830.

  5. Driver Support: Confirm that the Linux kernel you are using has support for the MAX14830 device, including the necessary SPI and GPIO drivers. The kernel configuration should include the MAX14830 driver (CONFIG_SERIAL_MAX14830 or similar). If the driver is built as a module, ensure it is loaded or compiled into the kernel if necessary.

  6. Debugging: Check the kernel boot log (dmesg) for any messages related to SPI1, the MAX14830, or related GPIO pins. Any errors or warnings could provide clues to misconfigurations or issues with the device tree or driver.

  7. Pin Configuration: Your pin configuration for SPI

Please, also check if these links can help you solve your problem:

CAN (Linux) | Toradex Developer Center.