162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2022 - 2023 PHYTEC Messtechnik GmbH 462306a36Sopenharmony_ci * Author: Wadim Egorov <w.egorov@phytec.de> 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * Product homepage: 762306a36Sopenharmony_ci * https://www.phytec.com/product/phyboard-am62x 862306a36Sopenharmony_ci */ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#include <dt-bindings/gpio/gpio.h> 1162306a36Sopenharmony_ci#include <dt-bindings/input/input.h> 1262306a36Sopenharmony_ci#include <dt-bindings/leds/common.h> 1362306a36Sopenharmony_ci#include <dt-bindings/net/ti-dp83867.h> 1462306a36Sopenharmony_ci#include "k3-am625.dtsi" 1562306a36Sopenharmony_ci#include "k3-am62-phycore-som.dtsi" 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci/ { 1862306a36Sopenharmony_ci compatible = "phytec,am625-phyboard-lyra-rdk", 1962306a36Sopenharmony_ci "phytec,am62-phycore-som", "ti,am625"; 2062306a36Sopenharmony_ci model = "PHYTEC phyBOARD-Lyra AM625"; 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci aliases { 2362306a36Sopenharmony_ci serial2 = &main_uart0; 2462306a36Sopenharmony_ci serial3 = &main_uart1; 2562306a36Sopenharmony_ci mmc1 = &sdhci1; 2662306a36Sopenharmony_ci usb0 = &usb0; 2762306a36Sopenharmony_ci usb1 = &usb1; 2862306a36Sopenharmony_ci ethernet1 = &cpsw_port2; 2962306a36Sopenharmony_ci }; 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci can_tc1: can-phy0 { 3262306a36Sopenharmony_ci compatible = "ti,tcan1042"; 3362306a36Sopenharmony_ci #phy-cells = <0>; 3462306a36Sopenharmony_ci max-bitrate = <5000000>; 3562306a36Sopenharmony_ci standby-gpios = <&gpio_exp 1 GPIO_ACTIVE_HIGH>; 3662306a36Sopenharmony_ci }; 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci keys { 3962306a36Sopenharmony_ci compatible = "gpio-keys"; 4062306a36Sopenharmony_ci autorepeat; 4162306a36Sopenharmony_ci pinctrl-names = "default"; 4262306a36Sopenharmony_ci pinctrl-0 = <&gpio_keys_pins_default>; 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci key-home { 4562306a36Sopenharmony_ci label = "home"; 4662306a36Sopenharmony_ci linux,code = <KEY_HOME>; 4762306a36Sopenharmony_ci gpios = <&main_gpio1 23 GPIO_ACTIVE_HIGH>; 4862306a36Sopenharmony_ci }; 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci key-menu { 5162306a36Sopenharmony_ci label = "menu"; 5262306a36Sopenharmony_ci linux,code = <KEY_MENU>; 5362306a36Sopenharmony_ci gpios = <&gpio_exp 4 GPIO_ACTIVE_HIGH>; 5462306a36Sopenharmony_ci }; 5562306a36Sopenharmony_ci }; 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci leds { 5862306a36Sopenharmony_ci compatible = "gpio-leds"; 5962306a36Sopenharmony_ci pinctrl-names = "default"; 6062306a36Sopenharmony_ci pinctrl-0 = <&leds_pins_default>, <&user_leds_pins_default>; 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci led-1 { 6362306a36Sopenharmony_ci gpios = <&main_gpio0 32 GPIO_ACTIVE_HIGH>; 6462306a36Sopenharmony_ci linux,default-trigger = "mmc0"; 6562306a36Sopenharmony_ci }; 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci led-2 { 6862306a36Sopenharmony_ci gpios = <&gpio_exp 2 GPIO_ACTIVE_HIGH>; 6962306a36Sopenharmony_ci linux,default-trigger = "mmc1"; 7062306a36Sopenharmony_ci }; 7162306a36Sopenharmony_ci }; 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci vcc_3v3_mmc: regulator-vcc-3v3-mmc { 7462306a36Sopenharmony_ci compatible = "regulator-fixed"; 7562306a36Sopenharmony_ci regulator-name = "VCC_3V3_MMC"; 7662306a36Sopenharmony_ci regulator-min-microvolt = <3300000>; 7762306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 7862306a36Sopenharmony_ci regulator-always-on; 7962306a36Sopenharmony_ci regulator-boot-on; 8062306a36Sopenharmony_ci }; 8162306a36Sopenharmony_ci}; 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_ci&main_pmx0 { 8462306a36Sopenharmony_ci gpio_keys_pins_default: gpio-keys-default-pins { 8562306a36Sopenharmony_ci pinctrl-single,pins = < 8662306a36Sopenharmony_ci AM62X_IOPAD(0x1d4, PIN_INPUT, 7) /* (B15) UART0_RTSn.GPIO1_23 */ 8762306a36Sopenharmony_ci >; 8862306a36Sopenharmony_ci }; 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_ci gpio_exp_int_pins_default: gpio-exp-int-default-pins { 9162306a36Sopenharmony_ci pinctrl-single,pins = < 9262306a36Sopenharmony_ci AM62X_IOPAD(0x244, PIN_INPUT, 7) /* (C17) MMC1_SDWP.GPIO1_49 */ 9362306a36Sopenharmony_ci >; 9462306a36Sopenharmony_ci }; 9562306a36Sopenharmony_ci 9662306a36Sopenharmony_ci main_i2c1_pins_default: main-i2c1-default-pins { 9762306a36Sopenharmony_ci pinctrl-single,pins = < 9862306a36Sopenharmony_ci AM62X_IOPAD(0x1e8, PIN_INPUT_PULLUP, 0) /* (B17) I2C1_SCL */ 9962306a36Sopenharmony_ci AM62X_IOPAD(0x1ec, PIN_INPUT_PULLUP, 0) /* (A17) I2C1_SDA */ 10062306a36Sopenharmony_ci >; 10162306a36Sopenharmony_ci }; 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ci main_mcan0_pins_default: main-mcan0-default-pins { 10462306a36Sopenharmony_ci pinctrl-single,pins = < 10562306a36Sopenharmony_ci AM62X_IOPAD(0x1dc, PIN_INPUT, 0) /* (E15) MCAN0_RX */ 10662306a36Sopenharmony_ci AM62X_IOPAD(0x1d8, PIN_OUTPUT, 0) /* (C15) MCAN0_TX */ 10762306a36Sopenharmony_ci >; 10862306a36Sopenharmony_ci }; 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_ci main_mmc1_pins_default: main-mmc1-default-pins { 11162306a36Sopenharmony_ci pinctrl-single,pins = < 11262306a36Sopenharmony_ci AM62X_IOPAD(0x23c, PIN_INPUT_PULLUP, 0) /* (A21) MMC1_CMD */ 11362306a36Sopenharmony_ci AM62X_IOPAD(0x234, PIN_INPUT_PULLDOWN, 0) /* (B22) MMC1_CLK */ 11462306a36Sopenharmony_ci AM62X_IOPAD(0x230, PIN_INPUT_PULLUP, 0) /* (A22) MMC1_DAT0 */ 11562306a36Sopenharmony_ci AM62X_IOPAD(0x22c, PIN_INPUT_PULLUP, 0) /* (B21) MMC1_DAT1 */ 11662306a36Sopenharmony_ci AM62X_IOPAD(0x228, PIN_INPUT_PULLUP, 0) /* (C21) MMC1_DAT2 */ 11762306a36Sopenharmony_ci AM62X_IOPAD(0x224, PIN_INPUT_PULLUP, 0) /* (D22) MMC1_DAT3 */ 11862306a36Sopenharmony_ci AM62X_IOPAD(0x240, PIN_INPUT_PULLUP, 0) /* (D17) MMC1_SDCD */ 11962306a36Sopenharmony_ci >; 12062306a36Sopenharmony_ci }; 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ci main_rgmii2_pins_default: main-rgmii2-default-pins { 12362306a36Sopenharmony_ci pinctrl-single,pins = < 12462306a36Sopenharmony_ci AM62X_IOPAD(0x184, PIN_INPUT, 0) /* (AE23) RGMII2_RD0 */ 12562306a36Sopenharmony_ci AM62X_IOPAD(0x188, PIN_INPUT, 0) /* (AB20) RGMII2_RD1 */ 12662306a36Sopenharmony_ci AM62X_IOPAD(0x18c, PIN_INPUT, 0) /* (AC21) RGMII2_RD2 */ 12762306a36Sopenharmony_ci AM62X_IOPAD(0x190, PIN_INPUT, 0) /* (AE22) RGMII2_RD3 */ 12862306a36Sopenharmony_ci AM62X_IOPAD(0x180, PIN_INPUT, 0) /* (AD23) RGMII2_RXC */ 12962306a36Sopenharmony_ci AM62X_IOPAD(0x17c, PIN_INPUT, 0) /* (AD22) RGMII2_RX_CTL */ 13062306a36Sopenharmony_ci AM62X_IOPAD(0x16c, PIN_OUTPUT, 0) /* (Y18) RGMII2_TD0 */ 13162306a36Sopenharmony_ci AM62X_IOPAD(0x170, PIN_OUTPUT, 0) /* (AA18) RGMII2_TD1 */ 13262306a36Sopenharmony_ci AM62X_IOPAD(0x174, PIN_OUTPUT, 0) /* (AD21) RGMII2_TD2 */ 13362306a36Sopenharmony_ci AM62X_IOPAD(0x178, PIN_OUTPUT, 0) /* (AC20) RGMII2_TD3 */ 13462306a36Sopenharmony_ci AM62X_IOPAD(0x168, PIN_OUTPUT, 0) /* (AE21) RGMII2_TXC */ 13562306a36Sopenharmony_ci AM62X_IOPAD(0x164, PIN_OUTPUT, 0) /* (AA19) RGMII2_TX_CTL */ 13662306a36Sopenharmony_ci >; 13762306a36Sopenharmony_ci }; 13862306a36Sopenharmony_ci 13962306a36Sopenharmony_ci main_uart0_pins_default: main-uart0-default-pins { 14062306a36Sopenharmony_ci pinctrl-single,pins = < 14162306a36Sopenharmony_ci AM62X_IOPAD(0x1c8, PIN_INPUT, 0) /* (D14) UART0_RXD */ 14262306a36Sopenharmony_ci AM62X_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (E14) UART0_TXD */ 14362306a36Sopenharmony_ci >; 14462306a36Sopenharmony_ci }; 14562306a36Sopenharmony_ci 14662306a36Sopenharmony_ci main_uart1_pins_default: main-uart1-default-pins { 14762306a36Sopenharmony_ci pinctrl-single,pins = < 14862306a36Sopenharmony_ci AM62X_IOPAD(0x194, PIN_INPUT, 2) /* (B19) MCASP0_AXR3.UART1_CTSn */ 14962306a36Sopenharmony_ci AM62X_IOPAD(0x198, PIN_OUTPUT, 2) /* (A19) MCASP0_AXR2.UART1_RTSn */ 15062306a36Sopenharmony_ci AM62X_IOPAD(0x1ac, PIN_INPUT, 2) /* (E19) MCASP0_AFSR.UART1_RXD */ 15162306a36Sopenharmony_ci AM62X_IOPAD(0x1b0, PIN_OUTPUT, 2) /* (A20) MCASP0_ACLKR.UART1_TXD */ 15262306a36Sopenharmony_ci >; 15362306a36Sopenharmony_ci }; 15462306a36Sopenharmony_ci 15562306a36Sopenharmony_ci main_usb1_pins_default: main-usb1-default-pins { 15662306a36Sopenharmony_ci pinctrl-single,pins = < 15762306a36Sopenharmony_ci AM62X_IOPAD(0x258, PIN_OUTPUT, 0) /* (F18) USB1_DRVVBUS */ 15862306a36Sopenharmony_ci >; 15962306a36Sopenharmony_ci }; 16062306a36Sopenharmony_ci 16162306a36Sopenharmony_ci user_leds_pins_default: user-leds-default-pins { 16262306a36Sopenharmony_ci pinctrl-single,pins = < 16362306a36Sopenharmony_ci AM62X_IOPAD(0x084, PIN_OUTPUT, 7) /* (L23) GPMC0_ADVn_ALE.GPIO0_32 */ 16462306a36Sopenharmony_ci >; 16562306a36Sopenharmony_ci }; 16662306a36Sopenharmony_ci}; 16762306a36Sopenharmony_ci 16862306a36Sopenharmony_ci&cpsw3g { 16962306a36Sopenharmony_ci pinctrl-names = "default"; 17062306a36Sopenharmony_ci pinctrl-0 = <&main_rgmii1_pins_default>, <&main_rgmii2_pins_default>; 17162306a36Sopenharmony_ci}; 17262306a36Sopenharmony_ci 17362306a36Sopenharmony_ci&cpsw_port2 { 17462306a36Sopenharmony_ci phy-mode = "rgmii-rxid"; 17562306a36Sopenharmony_ci phy-handle = <&cpsw3g_phy3>; 17662306a36Sopenharmony_ci}; 17762306a36Sopenharmony_ci 17862306a36Sopenharmony_ci&cpsw3g_mdio { 17962306a36Sopenharmony_ci cpsw3g_phy3: ethernet-phy@3 { 18062306a36Sopenharmony_ci compatible = "ethernet-phy-id2000.a231", "ethernet-phy-ieee802.3-c22"; 18162306a36Sopenharmony_ci reg = <3>; 18262306a36Sopenharmony_ci ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>; 18362306a36Sopenharmony_ci ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>; 18462306a36Sopenharmony_ci }; 18562306a36Sopenharmony_ci}; 18662306a36Sopenharmony_ci 18762306a36Sopenharmony_ci&main_i2c1 { 18862306a36Sopenharmony_ci pinctrl-names = "default"; 18962306a36Sopenharmony_ci pinctrl-0 = <&main_i2c1_pins_default>; 19062306a36Sopenharmony_ci clock-frequency = <400000>; 19162306a36Sopenharmony_ci status = "okay"; 19262306a36Sopenharmony_ci 19362306a36Sopenharmony_ci gpio_exp: gpio-expander@21 { 19462306a36Sopenharmony_ci pinctrl-names = "default"; 19562306a36Sopenharmony_ci pinctrl-0 = <&gpio_exp_int_pins_default>; 19662306a36Sopenharmony_ci compatible = "nxp,pcf8574"; 19762306a36Sopenharmony_ci reg = <0x21>; 19862306a36Sopenharmony_ci interrupt-parent = <&main_gpio1>; 19962306a36Sopenharmony_ci interrupts = <49 0>; 20062306a36Sopenharmony_ci #gpio-cells = <2>; 20162306a36Sopenharmony_ci gpio-controller; 20262306a36Sopenharmony_ci interrupt-controller; 20362306a36Sopenharmony_ci #interrupt-cells = <2>; 20462306a36Sopenharmony_ci gpio-line-names = "GPIO0_HDMI_RST", "GPIO1_CAN0_nEN", 20562306a36Sopenharmony_ci "GPIO2_LED2", "GPIO3_LVDS_GPIO", 20662306a36Sopenharmony_ci "GPIO4_BUT2", "GPIO5_LVDS_BKLT_EN", 20762306a36Sopenharmony_ci "GPIO6_ETH1_USER_RESET", "GPIO7_AUDIO_USER_RESET"; 20862306a36Sopenharmony_ci }; 20962306a36Sopenharmony_ci 21062306a36Sopenharmony_ci eeprom@51 { 21162306a36Sopenharmony_ci compatible = "atmel,24c02"; 21262306a36Sopenharmony_ci pagesize = <16>; 21362306a36Sopenharmony_ci reg = <0x51>; 21462306a36Sopenharmony_ci }; 21562306a36Sopenharmony_ci}; 21662306a36Sopenharmony_ci 21762306a36Sopenharmony_ci&main_mcan0 { 21862306a36Sopenharmony_ci pinctrl-names = "default"; 21962306a36Sopenharmony_ci pinctrl-0 = <&main_mcan0_pins_default>; 22062306a36Sopenharmony_ci phys = <&can_tc1>; 22162306a36Sopenharmony_ci status = "okay"; 22262306a36Sopenharmony_ci}; 22362306a36Sopenharmony_ci 22462306a36Sopenharmony_ci&main_uart0 { 22562306a36Sopenharmony_ci pinctrl-names = "default"; 22662306a36Sopenharmony_ci pinctrl-0 = <&main_uart0_pins_default>; 22762306a36Sopenharmony_ci status = "okay"; 22862306a36Sopenharmony_ci}; 22962306a36Sopenharmony_ci 23062306a36Sopenharmony_ci&main_uart1 { 23162306a36Sopenharmony_ci pinctrl-names = "default"; 23262306a36Sopenharmony_ci pinctrl-0 = <&main_uart1_pins_default>; 23362306a36Sopenharmony_ci /* Main UART1 may be used by TIFS firmware */ 23462306a36Sopenharmony_ci status = "okay"; 23562306a36Sopenharmony_ci}; 23662306a36Sopenharmony_ci 23762306a36Sopenharmony_ci&sdhci1 { 23862306a36Sopenharmony_ci vmmc-supply = <&vcc_3v3_mmc>; 23962306a36Sopenharmony_ci vqmmc-supply = <&vddshv5_sdio>; 24062306a36Sopenharmony_ci pinctrl-names = "default"; 24162306a36Sopenharmony_ci pinctrl-0 = <&main_mmc1_pins_default>; 24262306a36Sopenharmony_ci ti,driver-strength-ohm = <50>; 24362306a36Sopenharmony_ci disable-wp; 24462306a36Sopenharmony_ci no-1-8-v; 24562306a36Sopenharmony_ci status = "okay"; 24662306a36Sopenharmony_ci}; 24762306a36Sopenharmony_ci 24862306a36Sopenharmony_ci&usbss0 { 24962306a36Sopenharmony_ci ti,vbus-divider; 25062306a36Sopenharmony_ci status = "okay"; 25162306a36Sopenharmony_ci}; 25262306a36Sopenharmony_ci 25362306a36Sopenharmony_ci&usbss1 { 25462306a36Sopenharmony_ci ti,vbus-divider; 25562306a36Sopenharmony_ci status = "okay"; 25662306a36Sopenharmony_ci}; 25762306a36Sopenharmony_ci 25862306a36Sopenharmony_ci&usb0 { 25962306a36Sopenharmony_ci dr_mode = "peripheral"; 26062306a36Sopenharmony_ci}; 26162306a36Sopenharmony_ci 26262306a36Sopenharmony_ci&usb1 { 26362306a36Sopenharmony_ci dr_mode = "host"; 26462306a36Sopenharmony_ci pinctrl-names = "default"; 26562306a36Sopenharmony_ci pinctrl-0 = <&main_usb1_pins_default>; 26662306a36Sopenharmony_ci}; 267