Skip to content

Commit

Permalink
board: toradex: add verdin am62 support
Browse files Browse the repository at this point in the history
This adds initial support for the Toradex Verdin AM62 Quad 1GB WB IT
V1.0A module and subsequent V1.1 launch configuration SKUs. They are
strapped to boot from their on-module eMMC. U-Boot supports booting
from the on-module eMMC only, DFU support is disabled for now due to
missing AM62x USB support.

The device trees were taken straight from Linux v6.5-rc1.

Boot sequence is:
SYSFW ---> R5 SPL (both in tiboot3.bin) ---> ATF (TF-A) ---> OP-TEE
  ---> A53 SPL (part of tispl.bin) ---> U-boot proper (u-boot.img)

Signed-off-by: Marcel Ziswiler <[email protected]>
Reviewed-by: Nishanth Menon <[email protected]>
  • Loading branch information
ziswiler authored and trini committed Aug 4, 2023
1 parent e5fe63d commit 7d1a106
Show file tree
Hide file tree
Showing 25 changed files with 6,907 additions and 9 deletions.
4 changes: 3 additions & 1 deletion arch/arm/dts/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -1319,7 +1319,9 @@ dtb-$(CONFIG_SOC_K3_AM642) += k3-am642-evm.dtb \
k3-am642-r5-sk.dtb

dtb-$(CONFIG_SOC_K3_AM625) += k3-am625-sk.dtb \
k3-am625-r5-sk.dtb
k3-am625-r5-sk.dtb \
k3-am625-verdin-wifi-dev.dtb \
k3-am625-verdin-r5.dtb

dtb-$(CONFIG_SOC_K3_AM62A7) += k3-am62a7-sk.dtb \
k3-am62a7-r5-sk.dtb
Expand Down
190 changes: 190 additions & 0 deletions arch/arm/dts/k3-am62-verdin-dev.dtsi
Original file line number Diff line number Diff line change
@@ -0,0 +1,190 @@
// 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
*/

/* Verdin ETHs */
&cpsw3g {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_rgmii1>, <&pinctrl_rgmii2>;
status = "okay";
};

/* 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_eth2_rgmii_int>;
micrel,led-mode = <0>;
};
};

/* Verdin ETH_1 (On-module PHY) */
&cpsw_port1 {
status = "okay";
};

/* Verdin ETH_2_RGMII */
&cpsw_port2 {
phy-handle = <&cpsw3g_phy1>;
phy-mode = "rgmii-rxid";
status = "okay";
};

/* Verdin PWM_1, PWM_2 */
&epwm0 {
status = "okay";
};

/* Verdin PWM_3_DSI */
&epwm1 {
status = "okay";
};

&main_gpio0 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ctrl_sleep_moci>,
<&pinctrl_gpio_5>,
<&pinctrl_gpio_6>,
<&pinctrl_gpio_7>,
<&pinctrl_gpio_8>;
};

/* Verdin I2C_1 */
&main_i2c1 {
status = "okay";

/* IO Expander */
gpio_expander_21: gpio@21 {
compatible = "nxp,pcal6416";
reg = <0x21>;
#gpio-cells = <2>;
gpio-controller;
};

/* Current measurement into module VCC */
hwmon@40 {
compatible = "ti,ina219";
reg = <0x40>;
shunt-resistor = <10000>;
};

/* Temperature sensor */
sensor@4f {
compatible = "ti,tmp75c";
reg = <0x4f>;
};

/* EEPROM */
eeprom@57 {
compatible = "st,24c02", "atmel,24c02";
reg = <0x57>;
pagesize = <16>;
};
};

/* Verdin I2C_2_DSI */
&main_i2c2 {
status = "okay";
};

/* Verdin I2C_4_CSI */
&main_i2c3 {
status = "okay";
};

/* Verdin CAN_1 */
&main_mcan0 {
status = "okay";
};

/* Verdin SPI_1 */
&main_spi1 {
status = "okay";
};

/* Verdin UART_3 */
&main_uart0 {
status = "okay";
};

/* Verdin UART_1, connector X50 through RS485 transceiver. */
&main_uart1 {
linux,rs485-enabled-at-boot-time;
rs485-rx-during-tx;
status = "okay";
};

/* Verdin I2S_1 */
&mcasp0 {
status = "okay";
};

&mcu_gpio0 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpio_1>,
<&pinctrl_gpio_2>,
<&pinctrl_gpio_3>,
<&pinctrl_gpio_4>;
};

/* Verdin I2C_3_HDMI */
&mcu_i2c0 {
status = "okay";
};

/* Verdin UART_4 */
&mcu_uart0 {
status = "okay";
};

/* Verdin QSPI_1 */
&ospi0 {
status = "okay";
};

/* Verdin SD_1 */
&sdhci1 {
ti,driver-strength-ohm = <33>;
status = "okay";
};

/* Verdin USB_1 */
&usbss0 {
status = "okay";
};

&usb0 {
status = "okay";
};

/* Verdin USB_2 */
&usbss1 {
status = "okay";
};

&usb1 {
status = "okay";
};

/* Verdin CTRL_WAKE1_MICO# */
&verdin_gpio_keys {
status = "okay";
};

/* Verdin UART_2 */
&wkup_uart0 {
/* FIXME: WKUP UART0 is used by DM firmware */
status = "reserved";
};
39 changes: 39 additions & 0 deletions arch/arm/dts/k3-am62-verdin-wifi.dtsi
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
* Copyright 2023 Toradex
*
* Common dtsi for Verdin AM62 SoM WB variant
*
* https://www.toradex.com/computer-on-modules/verdin-arm-family/ti-am62
*/

/ {
wifi_pwrseq: wifi-pwrseq {
compatible = "mmc-pwrseq-simple";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_wifi_en>;
reset-gpios = <&main_gpio0 22 GPIO_ACTIVE_LOW>;
};
};

/* On-module Wi-Fi */
&sdhci2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sdhci2>;
bus-width = <4>;
cap-power-off-card;
keep-power-in-suspend;
mmc-pwrseq = <&wifi_pwrseq>;
non-removable;
ti,fails-without-test-cd;
ti,driver-strength-ohm = <50>;
vmmc-supply = <&reg_3v3>;
status = "okay";
};

/* On-module Bluetooth */
&main_uart5 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart5>;
status = "okay";
};
Loading

0 comments on commit 7d1a106

Please sign in to comment.