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