1*01950c46SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0+ 2*01950c46SEmmanuel Vadot/* 3*01950c46SEmmanuel Vadot * Copyright (C) 2023 Josua Mayer <josua@solid-run.com> 4*01950c46SEmmanuel Vadot * 5*01950c46SEmmanuel Vadot * DTS for SolidRun AM642 HummingBoard-T, 6*01950c46SEmmanuel Vadot * running on Cortex A53. 7*01950c46SEmmanuel Vadot * 8*01950c46SEmmanuel Vadot */ 9*01950c46SEmmanuel Vadot 10*01950c46SEmmanuel Vadot/dts-v1/; 11*01950c46SEmmanuel Vadot 12*01950c46SEmmanuel Vadot#include <dt-bindings/leds/common.h> 13*01950c46SEmmanuel Vadot#include <dt-bindings/phy/phy.h> 14*01950c46SEmmanuel Vadot 15*01950c46SEmmanuel Vadot#include "k3-am642.dtsi" 16*01950c46SEmmanuel Vadot#include "k3-am642-sr-som.dtsi" 17*01950c46SEmmanuel Vadot 18*01950c46SEmmanuel Vadot/ { 19*01950c46SEmmanuel Vadot model = "SolidRun AM642 HummingBoard-T"; 20*01950c46SEmmanuel Vadot compatible = "solidrun,am642-hummingboard-t", "solidrun,am642-sr-som", "ti,am642"; 21*01950c46SEmmanuel Vadot 22*01950c46SEmmanuel Vadot aliases { 23*01950c46SEmmanuel Vadot serial5 = &main_uart3; 24*01950c46SEmmanuel Vadot }; 25*01950c46SEmmanuel Vadot 26*01950c46SEmmanuel Vadot leds { 27*01950c46SEmmanuel Vadot compatible = "gpio-leds"; 28*01950c46SEmmanuel Vadot pinctrl-names = "default"; 29*01950c46SEmmanuel Vadot pinctrl-0 = <&leds_default_pins>; 30*01950c46SEmmanuel Vadot 31*01950c46SEmmanuel Vadot /* D24 */ 32*01950c46SEmmanuel Vadot led1: led-1 { 33*01950c46SEmmanuel Vadot label = "led1"; 34*01950c46SEmmanuel Vadot gpios = <&main_gpio0 29 GPIO_ACTIVE_HIGH>; 35*01950c46SEmmanuel Vadot color = <LED_COLOR_ID_GREEN>; 36*01950c46SEmmanuel Vadot }; 37*01950c46SEmmanuel Vadot 38*01950c46SEmmanuel Vadot /* D25 */ 39*01950c46SEmmanuel Vadot led2: led-2 { 40*01950c46SEmmanuel Vadot label = "led2"; 41*01950c46SEmmanuel Vadot gpios = <&main_gpio0 30 GPIO_ACTIVE_HIGH>; 42*01950c46SEmmanuel Vadot color = <LED_COLOR_ID_GREEN>; 43*01950c46SEmmanuel Vadot }; 44*01950c46SEmmanuel Vadot 45*01950c46SEmmanuel Vadot /* D26 */ 46*01950c46SEmmanuel Vadot led3: led-3 { 47*01950c46SEmmanuel Vadot label = "led3"; 48*01950c46SEmmanuel Vadot gpios = <&main_gpio0 33 GPIO_ACTIVE_HIGH>; 49*01950c46SEmmanuel Vadot color = <LED_COLOR_ID_GREEN>; 50*01950c46SEmmanuel Vadot }; 51*01950c46SEmmanuel Vadot }; 52*01950c46SEmmanuel Vadot 53*01950c46SEmmanuel Vadot regulator-m2-3v3 { 54*01950c46SEmmanuel Vadot compatible = "regulator-fixed"; 55*01950c46SEmmanuel Vadot pinctrl-names = "default"; 56*01950c46SEmmanuel Vadot pinctrl-0 = <®ulator_pcie_3v3_default_pins>; 57*01950c46SEmmanuel Vadot regulator-name = "m2-3v3"; 58*01950c46SEmmanuel Vadot regulator-min-microvolt = <3300000>; 59*01950c46SEmmanuel Vadot regulator-max-microvolt = <3300000>; 60*01950c46SEmmanuel Vadot gpio = <&main_gpio1 17 GPIO_ACTIVE_HIGH>; 61*01950c46SEmmanuel Vadot enable-active-high; 62*01950c46SEmmanuel Vadot regulator-always-on; 63*01950c46SEmmanuel Vadot }; 64*01950c46SEmmanuel Vadot 65*01950c46SEmmanuel Vadot regulator-vpp-1v8 { 66*01950c46SEmmanuel Vadot compatible = "regulator-fixed"; 67*01950c46SEmmanuel Vadot pinctrl-names = "default"; 68*01950c46SEmmanuel Vadot pinctrl-0 = <®ulator_vpp_1v8_default_pins>; 69*01950c46SEmmanuel Vadot regulator-name = "vpp-1v8"; 70*01950c46SEmmanuel Vadot regulator-min-microvolt = <1800000>; 71*01950c46SEmmanuel Vadot regulator-max-microvolt = <1800000>; 72*01950c46SEmmanuel Vadot gpio = <&main_gpio1 78 GPIO_ACTIVE_HIGH>; 73*01950c46SEmmanuel Vadot enable-active-high; 74*01950c46SEmmanuel Vadot }; 75*01950c46SEmmanuel Vadot 76*01950c46SEmmanuel Vadot serdes_mux: mux-controller { 77*01950c46SEmmanuel Vadot compatible = "gpio-mux"; 78*01950c46SEmmanuel Vadot pinctrl-names = "default"; 79*01950c46SEmmanuel Vadot pinctrl-0 = <&serdes_mux_default_pins>; 80*01950c46SEmmanuel Vadot #mux-control-cells = <0>; 81*01950c46SEmmanuel Vadot /* 82*01950c46SEmmanuel Vadot * Mux has 2 IOs: 83*01950c46SEmmanuel Vadot * - select: 0 = USB-3 (M2); 1 = PCIE (M1) 84*01950c46SEmmanuel Vadot * - shutdown: 0 = active; 1 = disabled (high impedance) 85*01950c46SEmmanuel Vadot */ 86*01950c46SEmmanuel Vadot mux-gpios = <&main_gpio1 40 GPIO_ACTIVE_HIGH>, <&main_gpio1 41 GPIO_ACTIVE_HIGH>; 87*01950c46SEmmanuel Vadot /* default disabled */ 88*01950c46SEmmanuel Vadot idle-state = <2>; 89*01950c46SEmmanuel Vadot }; 90*01950c46SEmmanuel Vadot}; 91*01950c46SEmmanuel Vadot 92*01950c46SEmmanuel Vadot&main_gpio0 { 93*01950c46SEmmanuel Vadot m2-reset-hog { 94*01950c46SEmmanuel Vadot gpio-hog; 95*01950c46SEmmanuel Vadot gpios = <12 GPIO_ACTIVE_LOW>; 96*01950c46SEmmanuel Vadot output-low; /* deasserted */ 97*01950c46SEmmanuel Vadot line-name = "m2-reset"; 98*01950c46SEmmanuel Vadot }; 99*01950c46SEmmanuel Vadot 100*01950c46SEmmanuel Vadot m1-m2-w-disable1-hog { 101*01950c46SEmmanuel Vadot gpio-hog; 102*01950c46SEmmanuel Vadot gpios = <32 GPIO_ACTIVE_LOW>; 103*01950c46SEmmanuel Vadot output-low; /* deasserted */ 104*01950c46SEmmanuel Vadot line-name = "m1-m2-pcie-w-disable1"; 105*01950c46SEmmanuel Vadot }; 106*01950c46SEmmanuel Vadot 107*01950c46SEmmanuel Vadot m1-m2-w-disable2-hog { 108*01950c46SEmmanuel Vadot gpio-hog; 109*01950c46SEmmanuel Vadot gpios = <34 GPIO_ACTIVE_LOW>; 110*01950c46SEmmanuel Vadot output-low; /* deasserted */ 111*01950c46SEmmanuel Vadot line-name = "m1-m2-pcie-w-disable2"; 112*01950c46SEmmanuel Vadot }; 113*01950c46SEmmanuel Vadot}; 114*01950c46SEmmanuel Vadot 115*01950c46SEmmanuel Vadot&main_gpio1 { 116*01950c46SEmmanuel Vadot m1-pcie-clkreq0-hog { 117*01950c46SEmmanuel Vadot gpio-hog; 118*01950c46SEmmanuel Vadot gpios = <11 GPIO_ACTIVE_LOW>; 119*01950c46SEmmanuel Vadot input; 120*01950c46SEmmanuel Vadot line-name = "m1-pcie-clkreq0"; 121*01950c46SEmmanuel Vadot }; 122*01950c46SEmmanuel Vadot 123*01950c46SEmmanuel Vadot m2-pcie-clkreq-hog { 124*01950c46SEmmanuel Vadot gpio-hog; 125*01950c46SEmmanuel Vadot gpios = <35 GPIO_ACTIVE_LOW>; 126*01950c46SEmmanuel Vadot input; 127*01950c46SEmmanuel Vadot line-name = "m2-pcie-clkreq"; 128*01950c46SEmmanuel Vadot }; 129*01950c46SEmmanuel Vadot}; 130*01950c46SEmmanuel Vadot 131*01950c46SEmmanuel Vadot&main_i2c0 { 132*01950c46SEmmanuel Vadot pinctrl-0 = <&main_i2c0_default_pins>, <&main_i2c0_int_default_pins>; 133*01950c46SEmmanuel Vadot 134*01950c46SEmmanuel Vadot humidity-sensor@41 { 135*01950c46SEmmanuel Vadot compatible = "ti,hdc2010"; 136*01950c46SEmmanuel Vadot reg = <0x41>; 137*01950c46SEmmanuel Vadot interrupt-parent = <&main_gpio0>; 138*01950c46SEmmanuel Vadot interrupts = <37 IRQ_TYPE_EDGE_FALLING>; 139*01950c46SEmmanuel Vadot }; 140*01950c46SEmmanuel Vadot 141*01950c46SEmmanuel Vadot light-sensor@44 { 142*01950c46SEmmanuel Vadot compatible = "ti,opt3001"; 143*01950c46SEmmanuel Vadot reg = <0x44>; 144*01950c46SEmmanuel Vadot interrupt-parent = <&main_gpio0>; 145*01950c46SEmmanuel Vadot interrupts = <37 IRQ_TYPE_EDGE_FALLING>; 146*01950c46SEmmanuel Vadot }; 147*01950c46SEmmanuel Vadot 148*01950c46SEmmanuel Vadot /* charger@6a */ 149*01950c46SEmmanuel Vadot}; 150*01950c46SEmmanuel Vadot 151*01950c46SEmmanuel Vadot&main_i2c1 { 152*01950c46SEmmanuel Vadot pinctrl-names = "default"; 153*01950c46SEmmanuel Vadot pinctrl-0 = <&main_i2c1_default_pins>; 154*01950c46SEmmanuel Vadot status = "okay"; 155*01950c46SEmmanuel Vadot 156*01950c46SEmmanuel Vadot rtc@69 { 157*01950c46SEmmanuel Vadot compatible = "abracon,abx80x"; 158*01950c46SEmmanuel Vadot reg = <0x69>; 159*01950c46SEmmanuel Vadot pinctrl-names = "default"; 160*01950c46SEmmanuel Vadot pinctrl-0 = <&rtc_int_default_pins>; 161*01950c46SEmmanuel Vadot abracon,tc-diode = "schottky"; 162*01950c46SEmmanuel Vadot abracon,tc-resistor = <3>; 163*01950c46SEmmanuel Vadot interrupt-parent = <&main_gpio0>; 164*01950c46SEmmanuel Vadot interrupts = <44 IRQ_TYPE_EDGE_FALLING>; 165*01950c46SEmmanuel Vadot }; 166*01950c46SEmmanuel Vadot}; 167*01950c46SEmmanuel Vadot 168*01950c46SEmmanuel Vadot&main_mcan0 { 169*01950c46SEmmanuel Vadot pinctrl-names = "default"; 170*01950c46SEmmanuel Vadot pinctrl-0 = <&main_mcan0_default_pins>; 171*01950c46SEmmanuel Vadot status = "okay"; 172*01950c46SEmmanuel Vadot 173*01950c46SEmmanuel Vadot can-transceiver { 174*01950c46SEmmanuel Vadot max-bitrate = <8000000>; 175*01950c46SEmmanuel Vadot }; 176*01950c46SEmmanuel Vadot}; 177*01950c46SEmmanuel Vadot 178*01950c46SEmmanuel Vadot&main_mcan1 { 179*01950c46SEmmanuel Vadot pinctrl-names = "default"; 180*01950c46SEmmanuel Vadot pinctrl-0 = <&main_mcan1_default_pins>; 181*01950c46SEmmanuel Vadot status = "okay"; 182*01950c46SEmmanuel Vadot 183*01950c46SEmmanuel Vadot can-transceiver { 184*01950c46SEmmanuel Vadot max-bitrate = <8000000>; 185*01950c46SEmmanuel Vadot }; 186*01950c46SEmmanuel Vadot}; 187*01950c46SEmmanuel Vadot 188*01950c46SEmmanuel Vadot&main_pmx0 { 189*01950c46SEmmanuel Vadot leds_default_pins: leds-default-pins { 190*01950c46SEmmanuel Vadot pinctrl-single,pins = < 191*01950c46SEmmanuel Vadot AM64X_IOPAD(0x0074, PIN_OUTPUT, 7) /* GPMC0_AD14.GPIO0_29 */ 192*01950c46SEmmanuel Vadot AM64X_IOPAD(0x0078, PIN_OUTPUT, 7) /* GPMC0_AD15.GPIO0_30 */ 193*01950c46SEmmanuel Vadot AM64X_IOPAD(0x0088, PIN_OUTPUT, 7) /* GPMC0_OEn_REn.GPIO0_33 */ 194*01950c46SEmmanuel Vadot >; 195*01950c46SEmmanuel Vadot }; 196*01950c46SEmmanuel Vadot 197*01950c46SEmmanuel Vadot main_i2c0_int_default_pins: main-i2c0-int-default-pins { 198*01950c46SEmmanuel Vadot pinctrl-single,pins = < 199*01950c46SEmmanuel Vadot /* external pull-up on Carrier */ 200*01950c46SEmmanuel Vadot AM64X_IOPAD(0x0098, PIN_INPUT, 7) /* GPMC0_WAIT0.GPIO0_37 */ 201*01950c46SEmmanuel Vadot >; 202*01950c46SEmmanuel Vadot }; 203*01950c46SEmmanuel Vadot 204*01950c46SEmmanuel Vadot main_i2c1_default_pins: main-i2c1-default-pins { 205*01950c46SEmmanuel Vadot pinctrl-single,pins = < 206*01950c46SEmmanuel Vadot /* external pull-up on SoM */ 207*01950c46SEmmanuel Vadot AM64X_IOPAD(0x0268, PIN_INPUT, 0) /* I2C1_SCL.I2C1_SCL */ 208*01950c46SEmmanuel Vadot AM64X_IOPAD(0x026c, PIN_INPUT, 0) /* I2C1_SDA.I2C1_SDA */ 209*01950c46SEmmanuel Vadot >; 210*01950c46SEmmanuel Vadot }; 211*01950c46SEmmanuel Vadot 212*01950c46SEmmanuel Vadot main_mcan0_default_pins: main-mcan0-default-pins { 213*01950c46SEmmanuel Vadot pinctrl-single,pins = < 214*01950c46SEmmanuel Vadot AM64X_IOPAD(0x0254, PIN_INPUT, 0) /* MCAN0_RX.MCAN0_RX */ 215*01950c46SEmmanuel Vadot AM64X_IOPAD(0x0250, PIN_OUTPUT, 0) /* MCAN0_TX.MCAN0_TX */ 216*01950c46SEmmanuel Vadot >; 217*01950c46SEmmanuel Vadot }; 218*01950c46SEmmanuel Vadot 219*01950c46SEmmanuel Vadot main_mcan1_default_pins: main-mcan1-default-pins { 220*01950c46SEmmanuel Vadot pinctrl-single,pins = < 221*01950c46SEmmanuel Vadot AM64X_IOPAD(0x025c, PIN_INPUT, 0) /* MCAN1_RX.MCAN1_RX */ 222*01950c46SEmmanuel Vadot AM64X_IOPAD(0x0258, PIN_OUTPUT, 0) /* MCAN1_TX.MCAN1_TX */ 223*01950c46SEmmanuel Vadot >; 224*01950c46SEmmanuel Vadot }; 225*01950c46SEmmanuel Vadot 226*01950c46SEmmanuel Vadot main_uart3_default_pins: main-uart3-default-pins { 227*01950c46SEmmanuel Vadot pinctrl-single,pins = < 228*01950c46SEmmanuel Vadot AM64X_IOPAD(0x016c, PIN_INPUT, 10) /* PRG0_PRU0_GPO3.UART3_CTSn */ 229*01950c46SEmmanuel Vadot AM64X_IOPAD(0x0170, PIN_OUTPUT, 10) /* PRG0_PRU0_GPO4.UART3_TXD */ 230*01950c46SEmmanuel Vadot AM64X_IOPAD(0x0174, PIN_OUTPUT, 10) /* PRG0_PRU0_GPO5.UART3_RTSn */ 231*01950c46SEmmanuel Vadot AM64X_IOPAD(0x01ac, PIN_INPUT, 10) /* PRG0_PRU0_GPO19.UART3_RXD */ 232*01950c46SEmmanuel Vadot >; 233*01950c46SEmmanuel Vadot }; 234*01950c46SEmmanuel Vadot 235*01950c46SEmmanuel Vadot pcie0_default_pins: pcie0-default-pins { 236*01950c46SEmmanuel Vadot pinctrl-single,pins = < 237*01950c46SEmmanuel Vadot /* connector M2 RESET */ 238*01950c46SEmmanuel Vadot AM64X_IOPAD(0x0030, PIN_OUTPUT, 7) /* OSPI0_CSn1.GPIO0_12 */ 239*01950c46SEmmanuel Vadot /* connectors M1 & M2 W_DISABLE1 */ 240*01950c46SEmmanuel Vadot AM64X_IOPAD(0x0084, PIN_OUTPUT, 7) /* GPMC0_ADVN_ALE.GPIO0_32 */ 241*01950c46SEmmanuel Vadot /* connectors M1 & M2 W_DISABLE2 */ 242*01950c46SEmmanuel Vadot AM64X_IOPAD(0x008c, PIN_OUTPUT, 7) /* GPMC0_WEN.GPIO0_34 */ 243*01950c46SEmmanuel Vadot /* connectors M1 & M2 PERST0 (PCI Reset) */ 244*01950c46SEmmanuel Vadot AM64X_IOPAD(0x019c, PIN_OUTPUT, 7) /* PRG0_PRU0_GPO15.GPIO1_15 */ 245*01950c46SEmmanuel Vadot /* connector M1 CLKREQ0 */ 246*01950c46SEmmanuel Vadot AM64X_IOPAD(0x018c, PIN_INPUT, 7) /* PRG0_PRU0_GPO11.GPIO1_11 */ 247*01950c46SEmmanuel Vadot /* connector M2 CLKREQ0 */ 248*01950c46SEmmanuel Vadot AM64X_IOPAD(0x01ec, PIN_INPUT, 7) /* PRG0_PRU1_GPO15.GPIO1_35 */ 249*01950c46SEmmanuel Vadot >; 250*01950c46SEmmanuel Vadot }; 251*01950c46SEmmanuel Vadot 252*01950c46SEmmanuel Vadot regulator_pcie_3v3_default_pins: regulator-pcie-3v3-default-pins { 253*01950c46SEmmanuel Vadot pinctrl-single,pins = < 254*01950c46SEmmanuel Vadot AM64X_IOPAD(0x01a4, PIN_OUTPUT, 7) /* PRG0_PRU0_GPO17.GPIO1_17 */ 255*01950c46SEmmanuel Vadot >; 256*01950c46SEmmanuel Vadot }; 257*01950c46SEmmanuel Vadot 258*01950c46SEmmanuel Vadot regulator_vpp_1v8_default_pins: regulator-vpp-1v8-default-pins { 259*01950c46SEmmanuel Vadot pinctrl-single,pins = < 260*01950c46SEmmanuel Vadot AM64X_IOPAD(0x029c, PIN_OUTPUT, 7) /* MMC1_SDWP.GPIO1_78 */ 261*01950c46SEmmanuel Vadot >; 262*01950c46SEmmanuel Vadot }; 263*01950c46SEmmanuel Vadot 264*01950c46SEmmanuel Vadot rtc_int_default_pins: rtc-int-default-pins { 265*01950c46SEmmanuel Vadot pinctrl-single,pins = < 266*01950c46SEmmanuel Vadot /* external pull-up on Carrier */ 267*01950c46SEmmanuel Vadot AM64X_IOPAD(0x00b4, PIN_INPUT, 7) /* GPMC0_CSn3.GPIO0_44 */ 268*01950c46SEmmanuel Vadot >; 269*01950c46SEmmanuel Vadot }; 270*01950c46SEmmanuel Vadot 271*01950c46SEmmanuel Vadot serdes_mux_default_pins: serdes-mux-default-pins { 272*01950c46SEmmanuel Vadot pinctrl-single,pins = < 273*01950c46SEmmanuel Vadot /* SEL, 10k pull-down on carrier, 2.2k pullup on SoM */ 274*01950c46SEmmanuel Vadot AM64X_IOPAD(0x0200, PIN_OUTPUT, 7) /* PRG0_MDIO0_MDIO.GPIO1_40 */ 275*01950c46SEmmanuel Vadot /* EN */ 276*01950c46SEmmanuel Vadot AM64X_IOPAD(0x0204, PIN_OUTPUT, 7) /* PRG0_MDIO0_MDC.GPIO1_41 */ 277*01950c46SEmmanuel Vadot >; 278*01950c46SEmmanuel Vadot }; 279*01950c46SEmmanuel Vadot}; 280*01950c46SEmmanuel Vadot 281*01950c46SEmmanuel Vadot&main_uart3 { 282*01950c46SEmmanuel Vadot pinctrl-names = "default"; 283*01950c46SEmmanuel Vadot pinctrl-0 = <&main_uart3_default_pins>; 284*01950c46SEmmanuel Vadot uart-has-rtscts; 285*01950c46SEmmanuel Vadot linux,rs485-enabled-at-boot-time; 286*01950c46SEmmanuel Vadot status = "okay"; 287*01950c46SEmmanuel Vadot}; 288*01950c46SEmmanuel Vadot 289*01950c46SEmmanuel Vadot&usb0 { 290*01950c46SEmmanuel Vadot dr_mode = "host"; 291*01950c46SEmmanuel Vadot}; 292