Tool/software:
Dear all,
we are trying to add LAN9374 6 port ethernet switch to interface with the RGMII2. we have connected the spi0 of the am625 to the lan9374.
in device tree under spi0 we have added a node for the lan9374. i have attached my device tree with this file.
the issue is that when it boots , we are getting error as unsupported KSZ-switch detected with chip id ffffff00.
we have enabled micrel as * and DSA->MICROCHIP as M[only M is possible] in kernel menuconfig.
the SPI lines seems to be fine, as other devices on the spi is working
kindly suggest me a way to make it work.
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
* Copyright 2023 Toradex
*
* Common dtsi for Verdin AM62 SoM
*
* https://www.toradex.com/computer-on-modules/verdin-arm-family/ti-am62
*/
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/net/ti-dp83867.h>
/ {
chosen {
stdout-path = "serial2:115200n8";
};
aliases {
ethernet0 = &cpsw_port1;
ethernet1 = &cpsw_port2;
i2c0 = &main_i2c0;
i2c1 = &main_i2c1;
mmc0 = &sdhci0;
mmc1 = &sdhci1;
mmc2 = &sdhci2;
rtc0 = &rtc_i2c;
rtc1 = &wkup_rtc0;
serial0 = &main_uart1;
serial1 = &wkup_uart0;
serial2 = &main_uart0;
serial3 = &main_uart2;
serial4 = &main_uart5;
serial5 = &main_uart3;
serial6 = &main_uart4;
serial7 = &main_uart6;
usb0 = &usb0;
};
connector {
compatible = "gpio-usb-b-connector", "usb-b-connector";
label = "USB_1";
self-powered;
vbus-supply = <®_usb0_vbus>;
port {
usb_dr_connector: endpoint {
remote-endpoint = <&usb0_ep>;
};
};
};
verdin_gpio_keys: gpio-keys {
compatible = "gpio-keys";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ctrl_wake1_mico>;
status = "disabled";
verdin_key_wakeup: key-wakeup {
debounce-interval = <10>;
/* Verdin CTRL_WAKE1_MICO# (SODIMM 252) */
gpios = <&main_gpio0 32 GPIO_ACTIVE_LOW>;
interrupt-names = "wakeup";
interrupts-extended = <&main_pmx0 0x0084>;
label = "Wake-Up";
linux,code = <KEY_WAKEUP>;
wakeup-source;
};
};
memory@80000000 {
device_type = "memory";
reg = <0x00000000 0x80000000 0x00000000 0x40000000>; /* 1G RAM */
};
opp-table {
/* Add 1.4GHz OPP. Requires VDD_CORE to be at 0.85V */
opp-1400000000 {
opp-hz = /bits/ 64 <1400000000>;
opp-supported-hw = <0x01 0x0004>;
clock-latency-ns = <6000000>;
};
};
/* Module Power Supply */
reg_vsodimm: regulator-vsodimm {
compatible = "regulator-fixed";
regulator-name = "+V_SODIMM";
};
/* Non PMIC On-module Supplies */
reg_3v3: regulator-3v3 {
compatible = "regulator-fixed";
regulator-max-microvolt = <3300000>;
regulator-min-microvolt = <3300000>;
regulator-name = "On-module +V3.3";
vin-supply = <®_vsodimm>;
};
reg_1v2_dsi: regulator-1v2-dsi {
compatible = "regulator-fixed";
regulator-max-microvolt = <1200000>;
regulator-min-microvolt = <1200000>;
regulator-name = "On-module +V1.2_DSI";
vin-supply = <®_1v8>;
};
/* Enabled by +V1.2_DSI */
reg_1v8_dsi: regulator-1v8-dsi {
compatible = "regulator-fixed";
regulator-max-microvolt = <1800000>;
regulator-min-microvolt = <1800000>;
regulator-name = "On-module +V1.8_DSI";
vin-supply = <®_1v8>;
};
/* Enabled by +V2.5_ETH */
reg_1v0_eth: regulator-1v0-eth {
compatible = "regulator-fixed";
regulator-max-microvolt = <1000000>;
regulator-min-microvolt = <1000000>;
regulator-name = "On-module +V1.0_ETH";
vin-supply = <®_1v8>;
};
/* Enabled by +V2.5_ETH */
reg_1v8_eth: regulator-1v8-eth {
compatible = "regulator-fixed";
regulator-max-microvolt = <1800000>;
regulator-min-microvolt = <1800000>;
regulator-name = "On-module +V1.8_ETH";
vin-supply = <®_1v8>;
};
reg_usb0_vbus: regulator-usb0-vbus {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usb0_en>;
enable-active-high;
/* Verdin USB_1_EN (SODIMM 155) */
gpio = <&main_gpio1 50 GPIO_ACTIVE_HIGH>;
regulator-max-microvolt = <5000000>;
regulator-min-microvolt = <5000000>;
regulator-name = "USB_1_EN";
};
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
secure_tfa_ddr: tfa@9e780000 {
reg = <0x00 0x9e780000 0x00 0x80000>;
alignment = <0x1000>;
no-map;
};
secure_ddr: optee@9e800000 {
reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
alignment = <0x1000>;
no-map;
};
wkup_r5fss0_core0_memory_region: r5f-memory@9db00000 {
compatible = "shared-dma-pool";
reg = <0x00 0x9db00000 0x00 0x00c00000>;
no-map;
};
};
};
&main_pmx0 {
/* verdin GPIO0 _1 */
pinctrl_gpio_15: main-gpio0-1-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0004, PIN_INPUT, 7) /* (G25) OSPI0_LBCLKO.GPIO0_1 */
>;
};
/* Verdin GPIO0 _11 */
pinctrl_gpio_16: main-gpio0-11-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x002c, PIN_INPUT_PULLUP, 7) /* (F23) OSPI0_CSn0.GPIO0_11 */ /* SODIMM 54 */
>;
};
pinctrl_gpio_17: main-gpio0-12-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0030, PIN_INPUT, 7) /* (G21) OSPI0_CSn1.GPIO0_12 */ /* SODIMM 64 */
>;
};
pinctrl_gpio_18: main-gpio0-13-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0034, PIN_INPUT, 7) /* (H21) OSPI0_CSn2.GPIO0_13 */
>;
};
pinctrl_gpio_19: main-gpio0-14-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0038, PIN_INPUT, 7) /* (E24) OSPI0_CSn3.GPIO0_14 */
>;
};
pinctrl_gpio_20: main-gpio0-29-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0074, PIN_INPUT, 7) /* (U25) GPMC0_AD14.GPIO0_29 */
>;
};
pinctrl_gpio_21: main-gpio0-33-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0088, PIN_INPUT, 7) /* (L24) GPMC0_OEn_REn.GPIO0_33 */
>;
};
pinctrl_gpio_22: main-gpio0-34-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x008c, PIN_INPUT, 7) /* (L25) GPMC0_WEn.GPIO0_34 */
>;
};
pinctrl_gpio_23: main-gpio0-35-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0090, PIN_INPUT, 7) /* (M24) GPMC0_BE0n_CLE.GPIO0_35 */
>;
};
pinctrl_gpio_24: main-gpio0-37-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0098, PIN_INPUT, 7) /* (U23) GPMC0_WAIT0.GPIO0_37 */
>;
};
pinctrl_gpio_27: main-gpio0-72-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0128, PIN_INPUT, 7) /* (B23) MMC2_SDWP.GPIO0_72 */
>;
};
pinctrl_gpio_28: main-gpio0-2-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0008, PIN_INPUT, 7) /* (J24) OSPI0_DQS.GPIO0_2 */
>;
};
pinctrl_gpio_29: main-gpio0-6-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0018, PIN_INPUT, 7) /* (F24) OSPI0_D3.GPIO0_6 */
>;
};
pinctrl_gpio_31: main-gpio0-38-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x009c, PIN_INPUT, 7) /* (V25) GPMC0_WAIT1.GPIO0_38 */
>;
};
pinctrl_gpio_32: main-gpio1-8-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0198, PIN_INPUT, 7) /* (A19) MCASP0_AXR2.GPIO1_8 */
>;
};
pinctrl_gpio_33: main-gpio1-9-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x019c, PIN_INPUT, 7) /* (B18) MCASP0_AXR1.GPIO1_9 */
>;
};
pinctrl_gpio_34: main-gpio1-10-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x01a0, PIN_INPUT, 7) /* (E18) MCASP0_AXR0.GPIO1_10 */
>;
};
pinctrl_gpio_35: main-gpio1-11-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x01a4, PIN_INPUT, 7) /* (B20) MCASP0_ACLKX.GPIO1_11 */
>;
};
pinctrl_gpio_36: main-gpio1-12-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x01a8, PIN_INPUT, 7) /* (D20) MCASP0_AFSX.GPIO1_12 */
>;
};
pinctrl_gpio_37: main-gpio1-15-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x01b4, PIN_INPUT_PULLUP, 7) /* (A13) SPI0_CS0.GPIO1_15 */
>;
};
pinctrl_gpio_38: main-gpio1-16-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x01b8, PIN_INPUT_PULLUP, 7) /* (C13) SPI0_CS1.GPIO1_16 */
>;
};
pinctrl_gpio_39: main-gpio1-22-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x01d0, PIN_INPUT, 7) /* (A15) UART0_CTSn.GPIO1_22 */
>;
};
pinctrl_gpio_40: main-gpio1-23-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x01d4, PIN_INPUT, 7) /* (B15) UART0_RTSn.GPIO1_23 */
>;
};
pinctrl_gpio_41: main-gpio1-44-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x022c, PIN_INPUT, 7) /* (B21) MMC1_DAT1.GPIO1_44 */
>;
};
pinctrl_gpio_42: main-gpio1-45-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0230, PIN_INPUT, 7) /* (A22) MMC1_DAT0.GPIO1_45 */
>;
};
pinctrl_gpio_43: main-gpio1-48-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0240, PIN_INPUT, 7) /* (D17) MMC1_SDCD.GPIO1_48 */
>;
};
/* PMIC_ETH_RESET# */
pinctrl_eth_reset: main-gpio0-17-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0044, PIN_INPUT, 7) /* (N24) GPMC0_AD2.GPIO0_17 */
>;
};
/* PMIC_BRIDGE_RESET# */
pinctrl_bridge_reset: main-gpio0-20-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0050, PIN_INPUT, 7) /* (P22) GPMC0_AD5.GPIO0_20 */
>;
};
/* PMIC_VSEL_SD */
pinctrl_vsel_sd: main-gpio0-21-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0054, PIN_INPUT, 7) /* (P21) GPMC0_AD6.GPIO0_21 */
>;
};
/* PMIC_EN_WIFI */
pinctrl_wifi_en: main-gpio0-22-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0058, PIN_INPUT, 7) /* (R23) GPMC0_AD7.GPIO0_22 */
>;
};
/* PMIC_ETH_INT# */
pinctrl_eth_int: main-gpio0-25-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0064, PIN_INPUT_PULLUP, 7) /* (T25) GPMC0_AD10.GPIO0_25 */
>;
};
/* WiFi_WKUP_BT# */
pinctrl_wifi_wkup_bt: main-gpio0-26-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0068, PIN_INPUT, 7) /* (R21) GPMC0_AD11.GPIO0_26 */
>;
};
/* WiFi_WKUP_WLAN# */
pinctrl_wifi_wkup_wlan: main-gpio0-27-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x006c, PIN_INPUT, 7) /* (T22) GPMC0_AD12.GPIO0_27 */
>;
};
/* Verdin CTRL_SLEEP_MOCI# */
pinctrl_ctrl_sleep_moci: main-gpio0-31-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x007c, PIN_INPUT, 7) /* (P25) GPMC0_CLK.GPIO0_31 */ /* SODIMM 256 */
>;
};
/* Verdin CTRL_WAKE1_MICO# */
pinctrl_ctrl_wake1_mico: main-gpio0-32-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0084, PIN_INPUT_PULLUP, 7) /* (L23) GPMC0_ADVn_ALE.GPIO0_32 */ /* SODIMM 252 */
>;
};
/* Verdin GPIO_6 */
pinctrl_gpio_6: main-gpio0-36-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0094, PIN_INPUT, 7) /* (N20) GPMC0_BE1n.GPIO0_36 */ /* SODIMM 218 */
>;
};
/* Verdin GPIO_5 */
pinctrl_gpio_5: main-gpio0-40-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x00a4, PIN_INPUT, 7) /* (M22) GPMC0_DIR.GPIO0_40 */ /* SODIMM 216 */
>;
};
/* Verdin GPIO_7 */
pinctrl_gpio_7: main-gpio0-41-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x00a8, PIN_INPUT, 7) /* (M21) GPMC0_CSn0.GPIO0_41 */ /* SODIMM 220 */
>;
};
/* Verdin GPIO_8 */
pinctrl_gpio_8: main-gpio0-42-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x00ac, PIN_INPUT, 7) /* (L21) GPMC0_CSn1.GPIO0_42 */ /* SODIMM 222 */
>;
};
/* Verdin USB_1_EN */
pinctrl_usb0_en: main-gpio1-50-default-pins {
pinctrl-single,pins = <
AM62X_IOPAD(0x0254, PIN_INPUT, 7) /* (C20) USB0_DRVVBUS.GPIO1_50 */ /* SODIMM 155 */
>;
};
/* On-module I2C - PMIC_I2C */
pinctrl_i2c0: main-i2c0-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x01e0, PIN_INPUT, 0) /* (B16) I2C0_SCL */ /* PMIC_I2C_SCL */
AM62X_IOPAD(0x01e4, PIN_INPUT, 0) /* (A16) I2C0_SDA */ /* PMIC_I2C_SDA */
>;
};
/* Verdin I2C_1 */
pinctrl_i2c1: main-i2c1-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x01e8, PIN_INPUT_PULLUP, 0) /* (B17) I2C1_SCL */ /* SODIMM 14 */
AM62X_IOPAD(0x01ec, PIN_INPUT_PULLUP, 0) /* (A17) I2C1_SDA */ /* SODIMM 12 */
>;
};
/* MDIO, shared by Verdin ETH_1 (On-module PHY) and Verdin ETH_2_RGMII */
pinctrl_mdio: main-mdio1-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x160, PIN_OUTPUT, 0) /* (AD24) MDIO0_MDC */ /* ETH_1_MDC, SODIMM 193 */
AM62X_IOPAD(0x15c, PIN_INPUT, 0) /* (AB22) MDIO0_MDIO */ /* ETH_1_MDIO, SODIMM 191 */
>;
};
/* On-module eMMC */
pinctrl_sdhci0: main-mmc0-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x220, PIN_INPUT, 0) /* (Y3) MMC0_CMD */
AM62X_IOPAD(0x218, PIN_INPUT, 0) /* (AB1) MMC0_CLK */
AM62X_IOPAD(0x214, PIN_INPUT, 0) /* (AA2) MMC0_DAT0 */
AM62X_IOPAD(0x210, PIN_INPUT, 0) /* (AA1) MMC0_DAT1 */
AM62X_IOPAD(0x20c, PIN_INPUT, 0) /* (AA3) MMC0_DAT2 */
AM62X_IOPAD(0x208, PIN_INPUT, 0) /* (Y4) MMC0_DAT3 */
AM62X_IOPAD(0x204, PIN_INPUT, 0) /* (AB2) MMC0_DAT4 */
AM62X_IOPAD(0x200, PIN_INPUT, 0) /* (AC1) MMC0_DAT5 */
AM62X_IOPAD(0x1fc, PIN_INPUT, 0) /* (AD2) MMC0_DAT6 */
AM62X_IOPAD(0x1f8, PIN_INPUT, 0) /* (AC2) MMC0_DAT7 */
>;
};
/* On-module Wi-Fi on WB SKUs, module-specific SDIO otherwise */
pinctrl_sdhci2: main-mmc2-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x120, PIN_INPUT, 0) /* (C24) MMC2_CMD */ /* WiFi_SDIO_CMD */
AM62X_IOPAD(0x118, PIN_INPUT, 0) /* (D25) MMC2_CLK */ /* WiFi_SDIO_CLK */
AM62X_IOPAD(0x114, PIN_INPUT, 0) /* (B24) MMC2_DAT0 */ /* WiFi_SDIO_DATA0 */
AM62X_IOPAD(0x110, PIN_INPUT, 0) /* (C25) MMC2_DAT1 */ /* WiFi_SDIO_DATA1 */
AM62X_IOPAD(0x10c, PIN_INPUT, 0) /* (E23) MMC2_DAT2 */ /* WiFi_SDIO_DATA2 */
AM62X_IOPAD(0x108, PIN_INPUT, 0) /* (D24) MMC2_DAT3 */ /* WiFi_SDIO_DATA3 */
AM62X_IOPAD(0x11c, PIN_INPUT, 0) /* (#N/A) MMC2_CLKB */
>;
};
/* Verdin ETH_1 RGMII (On-module PHY) */
pinctrl_rgmii1: main-rgmii1-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x14c, PIN_INPUT, 0) /* (AB17) RGMII1_RD0 */
AM62X_IOPAD(0x150, PIN_INPUT, 0) /* (AC17) RGMII1_RD1 */
AM62X_IOPAD(0x154, PIN_INPUT, 0) /* (AB16) RGMII1_RD2 */
AM62X_IOPAD(0x158, PIN_INPUT, 0) /* (AA15) RGMII1_RD3 */
AM62X_IOPAD(0x148, PIN_INPUT, 0) /* (AD17) RGMII1_RXC */
AM62X_IOPAD(0x144, PIN_INPUT, 0) /* (AE17) RGMII1_RX_CTL */
AM62X_IOPAD(0x134, PIN_OUTPUT, 0) /* (AE20) RGMII1_TD0 */
AM62X_IOPAD(0x138, PIN_OUTPUT, 0) /* (AD20) RGMII1_TD1 */
AM62X_IOPAD(0x13c, PIN_OUTPUT, 0) /* (AE18) RGMII1_TD2 */
AM62X_IOPAD(0x140, PIN_OUTPUT, 0) /* (AD18) RGMII1_TD3 */
AM62X_IOPAD(0x130, PIN_OUTPUT, 0) /* (AE19) RGMII1_TXC */
AM62X_IOPAD(0x12c, PIN_OUTPUT, 0) /* (AD19) RGMII1_TX_CTL */
>;
};
/* Verdin ETH_2 RMII */
pinctrl_rgmii2: main-rgmii2-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0184, PIN_INPUT, 0) /* (AE23) RGMII2_RD0 */
AM62X_IOPAD(0x0188, PIN_INPUT, 0) /* (AB20) RGMII2_RD1 */
AM62X_IOPAD(0x018c, PIN_INPUT, 0) /* (AC21) RGMII2_RD2 */
AM62X_IOPAD(0x0190, PIN_INPUT, 0) /* (AE22) RGMII2_RD3 */
AM62X_IOPAD(0x0180, PIN_INPUT, 0) /* (AD23) RGMII2_RXC */
AM62X_IOPAD(0x017c, PIN_INPUT, 0) /* (AD22) RGMII2_RX_CTL */
AM62X_IOPAD(0x016c, PIN_INPUT, 0) /* (Y18) RGMII2_TD0 */
AM62X_IOPAD(0x0170, PIN_INPUT, 0) /* (AA18) RGMII2_TD1 */
AM62X_IOPAD(0x0174, PIN_INPUT, 0) /* (AD21) RGMII2_TD2 */
AM62X_IOPAD(0x0178, PIN_INPUT, 0) /* (AC20) RGMII2_TD3 */
AM62X_IOPAD(0x0168, PIN_INPUT, 0) /* (AE21) RGMII2_TXC */
AM62X_IOPAD(0x0164, PIN_INPUT, 0) /* (AA19) RGMII2_TX_CTL */
>;
};
/* Verdin QSPI_1 */
pinctrl_ospi0: main-ospi0-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0000, PIN_OUTPUT, 0) /* (H24) OSPI0_CLK */ /* SODIMM 52 */
AM62X_IOPAD(0x000c, PIN_INPUT, 0) /* (E25) OSPI0_D0 */ /* SODIMM 56 */
AM62X_IOPAD(0x0010, PIN_INPUT, 0) /* (G24) OSPI0_D1 */ /* SODIMM 58 */
>;
};
/* Verdin SPI_0 */
pinctrl_spi0: main-spi0-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x01bc, PIN_INPUT, 0) /* (A14) SPI0_CLK */
AM62X_IOPAD(0x01c0, PIN_INPUT, 0) /* (B13) SPI0_D0 */
AM62X_IOPAD(0x01c4, PIN_INPUT, 0) /* (B14) SPI0_D1 */
>;
};
/* Verdin SPI_1 */
pinctrl_spi1: main-spi1-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0020, PIN_INPUT, 1) /* (J25) OSPI0_D5.SPI1_CLK */ /* SODIMM 196 */
AM62X_IOPAD(0x0024, PIN_INPUT, 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_INPUT_PULLUP, 1) /* (J23) OSPI0_D4.SPI1_CS0 */ /* SODIMM 202 */
>;
};
/* ETH_25MHz_CLK */
pinctrl_eth_clock: main-system-clkout0-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x01f0, PIN_OUTPUT_PULLUP, 5) /* (A18) EXT_REFCLK1.CLKOUT0 */
>;
};
/* PMIC_EXTINT# */
pinctrl_pmic_extint: main-system-extint-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x01f4, PIN_INPUT, 0) /* (D16) EXTINTn */
>;
};
/* Verdin UART_0, used as the Linux console */
pinctrl_uart0: main-uart0-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x1c8, PIN_INPUT_PULLUP, 0) /* (D14) UART0_RXD */ /* SODIMM 147 */
AM62X_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (E14) UART0_TXD */ /* SODIMM 149 */
>;
};
/* Verdin UART_4, used as the Linux console */
pinctrl_uart4: main-uart4-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x00b0, PIN_INPUT_PULLUP, 3) /* (K22) GPMC0_CSn2.UART4_RXD */ /* SODIMM 53 */
AM62X_IOPAD(0x00b4, PIN_OUTPUT, 3) /* (K24) GPMC0_CSn3.UART4_TXD */ /* SODIMM 55 */
>;
};
/* Verdin UART_6, used as the Linux console */
pinctrl_uart6: main-uart6-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0194, PIN_INPUT_PULLUP, 3) /* (B19) MCASP0_AXR3.UART6_RXD */ /* SODIMM 135 */
AM62X_IOPAD(0x0244, PIN_OUTPUT, 1) /* (C17) MMC1_SDWP.UART6_TXD */ /* SODIMM 17 */
>;
};
/* Verdin UART_5, used as the Linux console */
pinctrl_uart5: main-uart5-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x01d8, PIN_INPUT, 1) /* (C15) MCAN0_TX.UART5_RXD */ /* SODIMM 20 */
AM62X_IOPAD(0x0078, PIN_OUTPUT, 2) /* (U24) GPMC0_AD15.UART5_TXD */ /* SODIMM 21 */
>;
};
/* Verdin UART_2, used as the Linux console */
pinctrl_uart2: main-uart2-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0224, PIN_INPUT_PULLUP, 3) /* (D22) MMC1_DAT3.UART2_RXD */ /* SODIMM 70 */
AM62X_IOPAD(0x0228, PIN_OUTPUT, 3) /* (C21) MMC1_DAT2.UART2_TXD *//* SODIMM 72 */
>;
};
/* Verdin UART_3, used as the Linux console */
pinctrl_uart3: main-uart3-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0234, PIN_INPUT_PULLUP, 3) /* (B22) MMC1_CLK.UART3_RXD */ /* SODIMM 74 */
AM62X_IOPAD(0x023c, PIN_OUTPUT, 3) /* (A21) MMC1_CMD.UART3_TXD */ /* SODIMM 78 */
>;
};
/* Verdin UART_1 */
pinctrl_uart1: main-uart1-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x01ac, PIN_INPUT_PULLUP, 2) /* (E19) MCASP0_AFSR.UART1_RXD */ /* SODIMM 129 */
AM62X_IOPAD(0x01b0, PIN_OUTPUT, 2) /* (A20) MCASP0_ACLKR.UART1_TXD */ /* SODIMM 131 */
>;
};
/* DSS VOUT0 RGB */
pinctrl_parallel_rgb: main-vout-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0100, PIN_OUTPUT, 0) /* (AC25) VOUT0_VSYNC */
AM62X_IOPAD(0x00f8, PIN_OUTPUT, 0) /* (AB24) VOUT0_HSYNC */
AM62X_IOPAD(0x0104, PIN_OUTPUT, 0) /* (AC24) VOUT0_PCLK */
AM62X_IOPAD(0x00fc, PIN_OUTPUT, 0) /* (Y20) VOUT0_DE */
AM62X_IOPAD(0x00b8, PIN_OUTPUT, 0) /* (U22) VOUT0_DATA0 */
AM62X_IOPAD(0x00bc, PIN_OUTPUT, 0) /* (V24) VOUT0_DATA1 */
AM62X_IOPAD(0x00c0, PIN_OUTPUT, 0) /* (W25) VOUT0_DATA2 */
AM62X_IOPAD(0x00c4, PIN_OUTPUT, 0) /* (W24) VOUT0_DATA3 */
AM62X_IOPAD(0x00c8, PIN_OUTPUT, 0) /* (Y25) VOUT0_DATA4 */
AM62X_IOPAD(0x00cc, PIN_OUTPUT, 0) /* (Y24) VOUT0_DATA5 */
AM62X_IOPAD(0x00d0, PIN_OUTPUT, 0) /* (Y23) VOUT0_DATA6 */
AM62X_IOPAD(0x00d4, PIN_OUTPUT, 0) /* (AA25) VOUT0_DATA7 */
AM62X_IOPAD(0x00d8, PIN_OUTPUT, 0) /* (V21) VOUT0_DATA8 */
AM62X_IOPAD(0x00dc, PIN_OUTPUT, 0) /* (W21) VOUT0_DATA9 */
AM62X_IOPAD(0x00e0, PIN_OUTPUT, 0) /* (V20) VOUT0_DATA10 */
AM62X_IOPAD(0x00e4, PIN_OUTPUT, 0) /* (AA23) VOUT0_DATA11 */
AM62X_IOPAD(0x00e8, PIN_OUTPUT, 0) /* (AB25) VOUT0_DATA12 */
AM62X_IOPAD(0x00ec, PIN_OUTPUT, 0) /* (AA24) VOUT0_DATA13 */
AM62X_IOPAD(0x00f0, PIN_OUTPUT, 0) /* (Y22) VOUT0_DATA14 */
AM62X_IOPAD(0x00f4, PIN_OUTPUT, 0) /* (AA21) VOUT0_DATA15 */
AM62X_IOPAD(0x005c, PIN_OUTPUT, 1) /* (R24) GPMC0_AD8.VOUT0_DATA16 */
AM62X_IOPAD(0x0060, PIN_OUTPUT, 1) /* (R25) GPMC0_AD9.VOUT0_DATA17 */
>;
};
};
&mcu_pmx0 {
/* Verdin PCIE_1_RESET# */
pinctrl_gpio_44: mcu-gpio0-0-pins-default {
pinctrl-single,pins = <
AM62X_MCU_IOPAD(0x0000, PIN_INPUT, 7) /* (E8) MCU_SPI0_CS0.MCU_GPIO0_0 */ /* SODIMM 244 */
>;
};
pinctrl_gpio_45: mcu-gpio0-5-pins-default {
pinctrl-single,pins = <
AM62X_MCU_IOPAD(0x0014, PIN_INPUT, 7) /* (B5) MCU_UART0_RXD.MCU_GPIO0_5 */
>;
};
pinctrl_gpio_46: mcu-gpio0-6-pins-default {
pinctrl-single,pins = <
AM62X_MCU_IOPAD(0x0018, PIN_INPUT, 7) /* (A5) MCU_UART0_TXD.MCU_GPIO0_6 */
>;
};
pinctrl_gpio_48: mcu-gpio0-8-pins-default {
pinctrl-single,pins = <
AM62X_MCU_IOPAD(0x0020, PIN_INPUT, 7) /* (B6) MCU_UART0_RTSn.MCU_GPIO0_8 */
>;
};
pinctrl_gpio_49: mcu-gpio0-16-pins-default {
pinctrl-single,pins = <
AM62X_MCU_IOPAD(0x0040, PIN_INPUT, 7) /* (D4) MCU_MCAN1_RX.MCU_GPIO0_16 */
>;
};
pinctrl_gpio_50: mcu-gpio0-17-pins-default {
pinctrl-single,pins = <
AM62X_MCU_IOPAD(0x0044, PIN_INPUT, 7) /* (A8) MCU_I2C0_SCL.MCU_GPIO0_17 */
>;
};
pinctrl_gpio_51: mcu-gpio0-18-pins-default {
pinctrl-single,pins = <
AM62X_MCU_IOPAD(0x0048, PIN_INPUT, 7) /* (D10) MCU_I2C0_SDA.MCU_GPIO0_18 */
>;
};
pinctrl_gpio_52: mcu-gpio0-23-pins-default {
pinctrl-single,pins = <
AM62X_MCU_IOPAD(0x0084, PIN_INPUT, 7) /* (A12) WKUP_CLKOUT0.MCU_GPIO0_23 */
>;
};
pinctrl_gpio_53: mcu-gpio0-7-pins-default {
pinctrl-single,pins = <
AM62X_MCU_IOPAD(0x001c, PIN_INPUT, 7) /* (A6) MCU_UART0_CTSn.MCU_GPIO0_7 */
>;
};
/* Verdin GPIO_14 */
pinctrl_gpio_14: mcu-gpio0-14-pins-default {
pinctrl-single,pins = <
AM62X_MCU_IOPAD(0x0038, PIN_INPUT, 7) /* (B3) MCU_MCAN0_RX.MCU_GPIO0_14 */
>;
};
/* Verdin GPIO_13 */
pinctrl_gpio_13: mcu-gpio0-13-pins-default {
pinctrl-single,pins = <
AM62X_MCU_IOPAD(0x0034, PIN_INPUT, 7) /* (D6) MCU_MCAN0_TX.MCU_GPIO0_13 */
>;
};
/* Verdin GPIO_12 */
pinctrl_gpio_12: mcu-gpio0-12-pins-default {
pinctrl-single,pins = <
AM62X_MCU_IOPAD(0x0030, PIN_INPUT, 7) /* (A4) WKUP_UART0_RTSn.MCU_GPIO0_12 */
>;
};
/* Verdin GPIO_11 */
pinctrl_gpio_11: mcu-gpio0-11-pins-default {
pinctrl-single,pins = <
AM62X_MCU_IOPAD(0x002c, PIN_INPUT, 7) /* (C6) WKUP_UART0_CTSn.MCU_GPIO0_11 */
>;
};
/* Verdin GPIO_1 */
pinctrl_gpio_1: mcu-gpio0-1-pins-default {
pinctrl-single,pins = <
AM62X_MCU_IOPAD(0x0004, PIN_INPUT, 7) /* (B8) MCU_SPI0_CS1.MCU_GPIO0_1 */ /* SODIMM 206 */
>;
};
/* Verdin GPIO_2 */
pinctrl_gpio_2: mcu-gpio0-2-pins-default {
pinctrl-single,pins = <
AM62X_MCU_IOPAD(0x0008, PIN_INPUT, 7) /* (A7) MCU_SPI0_CLK.MCU_GPIO0_2 */ /* SODIMM 208 */
>;
};
/* Verdin GPIO_3 */
pinctrl_gpio_3: mcu-gpio0-3-pins-default {
pinctrl-single,pins = <
AM62X_MCU_IOPAD(0x000c, PIN_INPUT, 7) /* (D9) MCU_SPI0_D0.MCU_GPIO0_3 */ /* SODIMM 210 */
>;
};
/* Verdin GPIO_4 */
pinctrl_gpio_4: mcu-gpio0-4-pins-default {
pinctrl-single,pins = <
AM62X_MCU_IOPAD(0x0010, PIN_INPUT, 7) /* (C9) MCU_SPI0_D1.MCU_GPIO0_4 */ /* SODIMM 212 */
>;
};
/* Verdin UART_2 */
pinctrl_wkup_uart0: wkup-uart0-pins-default {
pinctrl-single,pins = <
AM62X_MCU_IOPAD(0x0024, PIN_INPUT_PULLUP, 0) /* (B4) WKUP_UART0_RXD */ /* SODIMM 137 */
AM62X_MCU_IOPAD(0x0028, PIN_OUTPUT, 0) /* (C5) WKUP_UART0_TXD */ /* SODIMM 139 */
>;
};
};
/* VERDIN I2S_1_MCLK */
&audio_refclk1 {
assigned-clock-rates = <25000000>;
};
&cpsw3g {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_rgmii1>;
status = "disabled";
};
/* Verdin ETH_1 (On-module PHY) */
&cpsw_port1 {
phy-handle = <&cpsw3g_phy0>;
phy-mode = "rgmii-rxid";
status = "disabled";
};
/* Verdin ETH_2_RGMII */
&cpsw_port2 {
status = "disabled";
};
/* MDIO, shared by Verdin ETH_1 (On-module PHY) and Verdin ETH_2_RGMII */
&cpsw3g_mdio {
assigned-clocks = <&k3_clks 157 20>;
assigned-clock-parents = <&k3_clks 157 22>;
assigned-clock-rates = <25000000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_eth_clock>, <&pinctrl_mdio>;
status = "disabled";
cpsw3g_phy0: ethernet-phy@0 {
compatible = "ethernet-phy-id2000.a231";
reg = <0>;
interrupt-parent = <&main_gpio0>;
interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_eth_int>, <&pinctrl_eth_reset>;
reset-gpios = <&main_gpio0 17 GPIO_ACTIVE_LOW>;
reset-assert-us = <10>;
reset-deassert-us = <1000>;
ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
};
};
&dss {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_parallel_rgb>;
status = "disabled";
};
&dss_ports {
#address-cells = <1>;
#size-cells = <0>;
/* VP2: DPI Output */
port@1 {
reg = <1>;
dpi_out: endpoint {
remote-endpoint = <&rgb_in>;
};
};
};
&main_gpio0 {
gpio-line-names =
"SODIMM_52", /* 0 */
"",
"",
"SODIMM_56",
"SODIMM_58",
"SODIMM_60",
"SODIMM_62",
"",
"",
"",
"", /* 10 */
"SODIMM_54",
"SODIMM_64",
"",
"",
"SODIMM_174",
"SODIMM_172",
"",
"",
"",
"", /* 20 */
"",
"",
"",
"",
"",
"",
"",
"",
"SODIMM_76",
"SODIMM_21", /* 30 */
"SODIMM_256",
"SODIMM_252",
"",
"SODIMM_46",
"SODIMM_42",
"SODIMM_218",
"",
"SODIMM_189",
"",
"SODIMM_216", /* 40 */
"SODIMM_220",
"SODIMM_222",
"",
"",
"",
"",
"",
"",
"",
"", /* 50 */
"",
"",
"",
"",
"",
"",
"",
"",
"",
"", /* 60 */
"",
"",
"",
"",
"",
"",
"",
"",
"",
"", /* 70 */
"SODIMM_157",
"SODIMM_187",
"",
"",
"",
"",
"",
"",
"",
"", /* 80 */
"",
"",
"",
"",
"",
"";
verdin_ctrl_sleep_moci: ctrl-sleep-moci-hog {
gpio-hog;
/* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
gpios = <31 GPIO_ACTIVE_HIGH>;
line-name = "CTRL_SLEEP_MOCI#";
output-high;
};
};
&main_gpio1 {
gpio-line-names =
"", /* 0 */
"",
"",
"",
"",
"",
"",
"",
"",
"SODIMM_36",
"SODIMM_34", /* 10 */
"SODIMM_30",
"SODIMM_32",
"",
"",
"SODIMM_15",
"SODIMM_16",
"SODIMM_19",
"SODIMM_66",
"SODIMM_161",
"", /* 20 */
"",
"",
"",
"",
"",
"",
"",
"",
"",
"", /* 30 */
"",
"",
"",
"",
"",
"",
"",
"",
"",
"", /* 40 */
"",
"",
"",
"",
"",
"",
"",
"",
"SODIMM_17",
"SODIMM_155", /* 50 */
"",
"",
"",
"",
"",
"",
"",
"",
"",
"", /* 60 */
"",
"",
"",
"",
"",
"",
"",
"",
"",
"", /* 70 */
"",
"",
"",
"",
"",
"",
"",
"",
"",
"", /* 80 */
"",
"",
"",
"",
"",
"",
"";
};
/* On-module I2C - PMIC_I2C */
&main_i2c0 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c0>;
clock-frequency = <400000>;
status = "okay";
dsi_bridge: dsi@e {
compatible = "toshiba,tc358778";
reg = <0xe>;
assigned-clocks = <&k3_clks 157 20>;
assigned-clock-parents = <&k3_clks 157 22>;
assigned-clock-rates = <25000000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_bridge_reset>;
clocks = <&k3_clks 157 20>;
clock-names = "refclk";
reset-gpios = <&main_gpio0 20 GPIO_ACTIVE_LOW>;
vddc-supply = <®_1v2_dsi>;
vddmipi-supply = <®_1v2_dsi>;
vddio-supply = <®_1v8_dsi>;
status = "disabled";
dsi_bridge_ports: ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
rgb_in: endpoint {
data-lines = <18>;
remote-endpoint = <&dpi_out>;
};
};
port@1 {
reg = <1>;
};
};
};
pmic@30 {
compatible = "ti,tps65219";
reg = <0x30>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pmic_extint>;
interrupt-parent = <&gic500>;
interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
buck1-supply = <®_vsodimm>;
buck2-supply = <®_vsodimm>;
buck3-supply = <®_vsodimm>;
ldo1-supply = <®_3v3>;
ldo2-supply = <®_1v8>;
ldo3-supply = <®_3v3>;
ldo4-supply = <®_3v3>;
system-power-controller;
ti,power-button;
regulators {
reg_vdd_core: buck1 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <850000>;
regulator-min-microvolt = <750000>;
regulator-name = "+VDD_CORE (PMIC BUCK1)";
};
reg_1v8: buck2 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <1800000>;
regulator-min-microvolt = <1800000>;
regulator-name = "+V1.8 (PMIC BUCK2)"; /* On-module and SODIMM 214 */
};
reg_vdd_ddr: buck3 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <1100000>;
regulator-min-microvolt = <1100000>;
regulator-name = "+VDD_DDR (PMIC BUCK3)";
};
reg_sd_3v3_1v8: ldo1 {
regulator-allow-bypass;
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <3300000>;
regulator-min-microvolt = <3300000>;
regulator-name = "+V3.3_1.8_SD (PMIC LDO1)";
};
reg_vddr_core: ldo2 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <850000>;
regulator-min-microvolt = <850000>;
regulator-name = "+VDDR_CORE (PMIC LDO2)";
};
reg_1v8a: ldo3 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <1800000>;
regulator-min-microvolt = <1800000>;
regulator-name = "+V1.8A (PMIC LDO3)";
};
reg_eth_2v5: ldo4 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <2500000>;
regulator-min-microvolt = <2500000>;
regulator-name = "+V2.5_ETH (PMIC LDO4)";
};
};
};
rtc_i2c: rtc@32 {
compatible = "epson,rx8130";
reg = <0x32>;
};
/*sensor@48 {
compatible = "ti,tmp1075";
reg = <0x48>;
};*/
adc@49 {
compatible = "ti,ads1015";
reg = <0x49>;
#address-cells = <1>;
#size-cells = <0>;
/* Verdin PMIC_I2C (ADC_4 - ADC_3) */
channel@0 {
reg = <0>;
ti,datarate = <4>;
ti,gain = <2>;
};
/* Verdin PMIC_I2C (ADC_4 - ADC_1) */
channel@1 {
reg = <1>;
ti,datarate = <4>;
ti,gain = <2>;
};
/* Verdin PMIC_I2C (ADC_3 - ADC_1) */
channel@2 {
reg = <2>;
ti,datarate = <4>;
ti,gain = <2>;
};
/* Verdin PMIC_I2C (ADC_2 - ADC_1) */
channel@3 {
reg = <3>;
ti,datarate = <4>;
ti,gain = <2>;
};
/* Verdin PMIC_I2C ADC_4 */
channel@4 {
reg = <4>;
ti,datarate = <4>;
ti,gain = <2>;
};
/* Verdin PMIC_I2C ADC_3 */
channel@5 {
reg = <5>;
ti,datarate = <4>;
ti,gain = <2>;
};
/* Verdin PMIC_I2C ADC_2 */
channel@6 {
reg = <6>;
ti,datarate = <4>;
ti,gain = <2>;
};
/* Verdin PMIC_I2C ADC_1 */
channel@7 {
reg = <7>;
ti,datarate = <4>;
ti,gain = <2>;
};
};
eeprom@50 {
compatible = "st,24c02", "atmel,24c02";
pagesize = <16>;
reg = <0x50>;
};
};
/* Verdin I2C_1 */
&main_i2c1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c1>;
status = "disabled";
};
&mailbox0_cluster0 {
status = "disabled";
};
/* Verdin SPI_ */
&main_spi0 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_spi0>, <&pinctrl_gpio_37>;
ti,pindir-d0-out-d1-in;
status = "disabled";
};
/* Verdin SPI_1 */
&main_spi1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_spi1>, <&pinctrl_spi1_cs0>;
ti,pindir-d0-out-d1-in;
status = "disabled";
};
/* Verdin UART_3, used as the Linux console */
&main_uart0 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart0>;
status = "disabled";
};
/* Verdin UART_1 */
&main_uart1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart1>;
status = "disabled";
};
/* Verdin UART_4 */
&main_uart2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart2>;
status = "disabled";
};
/* Verdin UART_4 */
&main_uart3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart3>;
status = "disabled";
};
/* Verdin UART_4 */
&main_uart4 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart4>;
status = "disabled";
};
/* Verdin UART_5 */
&main_uart5 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart5>;
status = "disabled";
};
/* Verdin UART_5 */
&main_uart6 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart6>;
status = "disabled";
};
&mcu_gpio0 {
gpio-line-names =
"SODIMM_244",
"SODIMM_206",
"SODIMM_208",
"SODIMM_210",
"SODIMM_212",
"",
"",
"",
"",
"",
"SODIMM_143",
"",
"",
"SODIMM_26",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"";
verdin_pcie_1_reset_hog: pcie-1-reset-hog {
gpio-hog;
/* Verdin PCIE_1_RESET# (SODIMM 244) */
gpios = <0 GPIO_ACTIVE_LOW>;
line-name = "PCIE_1_RESET#";
output-low;
status = "disabled";
};
};
/* On-module eMMC */
&sdhci0 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sdhci0>;
non-removable;
ti,driver-strength-ohm = <50>;
status = "okay";
};
/* On-module eMMC */
&sdhci2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sdhci2>;
ti,driver-strength-ohm = <50>;
status = "okay";
};
/* Verdin USB_1 */
&usbss0 {
ti,vbus-divider;
status = "disabled";
};
&usb0 {
adp-disable;
usb-role-switch;
status = "disabled";
port {
usb0_ep: endpoint {
remote-endpoint = <&usb_dr_connector>;
};
};
};
/* Verdin UART_2 */
&wkup_uart0 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_wkup_uart0>;
status = "disabled";
};
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
* Copyright 2023 Toradex
*
* Common dtsi for Verdin AM62 SoM on Development carrier board
*
* https://www.toradex.com/computer-on-modules/verdin-arm-family/ti-am62
* https://www.toradex.com/products/carrier-board/verdin-development-board-kit
*/
/ {
clk16m0: clk16m0 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <3686400>; /* external xtal frequency */
clock-accuracy = <100>;
};
};
/* Verdin ETHs */
&cpsw3g {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_rgmii1>, <&pinctrl_rgmii2>;
status = "okay";
fixed-link {
speed = <1000>;
full-duplex;
};
};
/* MDIO, shared by Verdin ETH_1 (On-module PHY) and Verdin ETH_2_RGMII */
&cpsw3g_mdio {
status = "okay";
/* cpsw3g_phy1: ethernet-phy@7 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <7>;
interrupt-parent = <&main_gpio0>;
interrupts = <38 IRQ_TYPE_EDGE_FALLING>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpio_31>;
micrel,led-mode = <0>;
}; */
};
/* Verdin ETH_1 (On-module PHY) */
&cpsw_port1 {
status = "okay";
};
/* Verdin ETH_2_RGMII */
&cpsw_port2 {
phy-mode = "rgmii-id";
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
fixed-link {
speed = <1000>;
full-duplex;
};
};
&main_gpio0 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ctrl_sleep_moci>,
<&pinctrl_gpio_5>,
<&pinctrl_gpio_6>,
<&pinctrl_gpio_7>,
<&pinctrl_gpio_8>,
<&pinctrl_gpio_15>,
<&pinctrl_gpio_17>,
<&pinctrl_gpio_18>,
<&pinctrl_gpio_19>,
<&pinctrl_gpio_20>,
<&pinctrl_gpio_21>,
<&pinctrl_gpio_22>,
<&pinctrl_gpio_24>,
<&pinctrl_gpio_27>,
<&pinctrl_gpio_28>,
<&pinctrl_gpio_29>,
<&pinctrl_gpio_32>;
};
&main_gpio1{
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpio_33>,
<&pinctrl_gpio_34>,
<&pinctrl_gpio_35>,
<&pinctrl_gpio_36>,
<&pinctrl_gpio_39>,
<&pinctrl_gpio_40>,
<&pinctrl_gpio_41>,
<&pinctrl_gpio_42>,
<&pinctrl_gpio_43>;
};
/* Verdin I2C_1 */
&main_i2c1 {
status = "okay";
/* Current measurement into module VCC */
hwmon@40 {
compatible = "ti,ina260";
reg = <0x40>;
};
hwmon@41 {
compatible = "ti,ina260";
reg = <0x41>;
};
hwmon@42 {
compatible = "ti,ina260";
reg = <0x42>;
};
hwmon@43 {
compatible = "ti,ina260";
reg = <0x43>;
};
hwmon@44 {
compatible = "ti,ina260";
reg = <0x44>;
};
hwmon@45 {
compatible = "ti,ina260";
reg = <0x45>;
};
hwmon@46 {
compatible = "ti,ina260";
reg = <0x46>;
};
hwmon@47 {
compatible = "ti,ina260";
reg = <0x47>;
};
hwmon@48 {
compatible = "ti,ina260";
reg = <0x4b>;
};
lm73@49{
compatible = "ti,lm73";
reg = <0x49>;
};
lm73@50{
compatible = "ti,lm73";
reg = <0x4a>;
};
};
&ospi0{
compatible = "ti,am654-ospi";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ospi0>, <&pinctrl_gpio_16>;
spi-tx-bus-width = <1>;
spi-rx-bus-width = <1>;
ti,pindir-d0-out-d1-in;
status = "okay";
adc@0 {
compatible = "adi,ad7616";
reg = <0>;
spi-max-frequency = <2300000>;
spi-cpol;
label = "ad7616";
avcc-supply= <®_3v3>;
interrupt-parent = <&mcu_gpio0>;
interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
gpio-controller; /* Marks the device node as a GPIO controller */
#gpio-cells = <2>;
/* reset-gpios = <&mcu_gpio0 3 GPIO_ACTIVE_HIGH>; //GPIO_3
adi,conversion-start-gpios = <&mcu_gpio0 2 GPIO_ACTIVE_HIGH>;//GPIO_2
adi,oversampling-ratio-gpios = <&main_gpio0 36 GPIO_ACTIVE_HIGH>, //GPIO_6_CSI
<&main_gpio0 41 GPIO_ACTIVE_HIGH>, //GPIO_7_CSI
<&mcu_gpio0 4 GPIO_ACTIVE_HIGH>; //GPIO_4 */
adi,sw-mode;
status = "okay";
};
};
&main_spi0 {
fsl,spi-num-chipselects = <2>;
cs-gpios = <0>,
<&main_gpio1 16 GPIO_ACTIVE_LOW>;
status = "okay";
spidev@0 {
compatible = "rohm,dh2228fv";
reg = <0>;
spi-max-frequency = <23000000>;
};
lan937x: lan937x@1 {
compatible = "microchip,lan9374";
reg = <1>;
spi-max-frequency = <25000000>;
interrupt-parent = <&main_gpio0>;
interrupts = <38 IRQ_TYPE_LEVEL_LOW>;
status = "okay";
ethernet-ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
label = "lan1";
// phy-mode = "internal";
// phy-handle = <&t1phy0>;
};
port@1 {
reg = <1>;
label = "lan2";
// phy-mode = "internal";
// phy-handle = <&t1phy1>;
};
port@2 {
reg = <2>;
label = "lan3";
// phy-mode = "internal";
// phy-handle = <&t1phy2>;
};
port@3 {
reg = <3>;
label = "lan4";
// phy-mode = "internal";
// phy-handle = <&t1phy3>;
};
port@4 {
reg = <4>;
label = "cpu";
ethernet = <&cpsw_port2>;
fixed-link {
speed = <1000>;
full-duplex;
};
};
port@5 {
reg = <5>;
label = "lan5";
};
port@6 {
reg = <6>;
label = "lan6";
//phy-mode = "internal";
//phy-handle = <&t1phy6>;
};
port@7 {
reg = <7>;
label = "lan7s";
//phy-mode = "internal";
//phy-handle = <&t1phy7>;
};
};
/* mdio {
#address-cells = <1>;
#size-cells = <0>;
t1phy0: ethernet-phy@0{
reg = <0x0>;
};
t1phy1: ethernet-phy@1{
reg = <0x1>;
};
t1phy2: ethernet-phy@2{
reg = <0x2>;
};
t1phy3: ethernet-phy@3{
reg = <0x3>;
};
t1phy6: ethernet-phy@6{
reg = <0x6>;
};
t1phy7: ethernet-phy@7{
reg = <0x7>;
};
}; */
};
};
/* Verdin SPI_1 */
&main_spi1 {
status = "okay";
max3109: max3109@0 {
compatible = "maxim,max3109";
spi-max-frequency = <2000000>;
reg = <0>; // SPI chip select number
interrupt-parent = <&main_gpio0>;
clocks = <&clk16m0>;
clock-names = "osc";
interrupts = <29 IRQ_TYPE_EDGE_FALLING>;
gpio-controller; /* Marks the device node as a GPIO controller */
#gpio-cells = <2>;
};
/* adc@0 {
clocks = <&clk16m0>;
clock-names = "osc";
compatible = "adi,ad7616";
reg = <0>;
spi-max-frequency = <2300000>;
spi-cpol;
label = "ad7616";
avcc-supply= <®_3v3>;
interrupt-parent = <&>;
interrupts = <1 IRQ_TYPE_LEVEL_LOW>; //GPIO_1
reset-gpios = <&mcu_gpio0 3 GPIO_ACTIVE_HIGH>; //GPIO_3
adi,conversion-start-gpios = <&mcu_gpio0 2 GPIO_ACTIVE_HIGH>;//GPIO_2
adi,oversampling-ratio-gpios = <&main_gpio0 36 GPIO_ACTIVE_HIGH>, //GPIO_6_CSI
<&main_gpio0 41 GPIO_ACTIVE_HIGH>, //GPIO_7_CSI
<&mcu_gpio0 4 GPIO_ACTIVE_HIGH>; //GPIO_4
adi,sw-mode;
status = "okay";
};*/
/*
#address-cells = <1>;
fsl,spi-num-chipselects = <2>;
cs-gpios = <&mcu_gpio0 1 GPIO_ACTIVE_LOW>,
<&mcu_gpio0 2 GPIO_ACTIVE_LOW>;
#size-cells = <0>;
spidev@0 {
dmas = <&main_pktdma 0x4304>, <&main_pktdma 0xc304>;
dma-names = "rx", "tx";
compatible = "rohm,dh2228fv";
reg = <0>;
spi-max-frequency = <23000000>;
};
spidev@1 {
dmas = <&main_pktdma 0x4305>, <&main_pktdma 0xc305>;
dma-names = "rx", "tx";
compatible = "rohm,dh2228fv";
reg = <1>;
spi-max-frequency = <23000000>;
};*/
};
/* Verdin UART_3 */
&main_uart0 {
dmas = <&main_pktdma 0x4400>, <&main_pktdma 0xc400>;
dma-names = "rx", "tx";
status = "okay";
};
/* Verdin UART_1, connector X50 through RS485 transceiver. */
&main_uart1 {
dmas = <&main_pktdma 0x4401>, <&main_pktdma 0xc401>;
dma-names = "rx", "tx";
status = "okay";
};
&main_uart2 {
status = "okay";
};
&main_uart3 {
status = "okay";
};
&main_uart4 {
status = "okay";
};
&main_uart5 {
status = "okay";
};
&main_uart6 {
status = "okay";
};
&mcu_gpio0 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpio_1>,
<&pinctrl_gpio_2>,
<&pinctrl_gpio_3>,
<&pinctrl_gpio_4>,
<&pinctrl_gpio_11>,
<&pinctrl_gpio_12>,
<&pinctrl_gpio_13>,
<&pinctrl_gpio_14>,
<&pinctrl_gpio_44>,
<&pinctrl_gpio_45>,
<&pinctrl_gpio_46>,
<&pinctrl_gpio_48>,
<&pinctrl_gpio_49>,
<&pinctrl_gpio_50>,
<&pinctrl_gpio_51>,
<&pinctrl_gpio_52>;
};
/* Verdin USB_1 */
&usbss0 {
status = "okay";
};
&usb0 {
status = "okay";
};
/* Verdin CTRL_WAKE1_MICO# */
&verdin_gpio_keys {
status = "okay";
};
/* Verdin PCIE_1_RESET# */
&verdin_pcie_1_reset_hog {
status = "okay";
};
/* Verdin UART_2 */
&wkup_uart0 {
status = "okay";
};