1*8d13bc63SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2*8d13bc63SEmmanuel Vadot/* 3*8d13bc63SEmmanuel Vadot * Copyright (c) 2020-2023 TQ-Systems GmbH <linux@ew.tq-group.com>, 4*8d13bc63SEmmanuel Vadot * D-82229 Seefeld, Germany. 5*8d13bc63SEmmanuel Vadot * Author: Gregor Herburger 6*8d13bc63SEmmanuel Vadot */ 7*8d13bc63SEmmanuel Vadot 8*8d13bc63SEmmanuel Vadot/dts-v1/; 9*8d13bc63SEmmanuel Vadot 10*8d13bc63SEmmanuel Vadot#include <dt-bindings/input/input.h> 11*8d13bc63SEmmanuel Vadot#include <dt-bindings/leds/common.h> 12*8d13bc63SEmmanuel Vadot#include <dt-bindings/net/ti-dp83867.h> 13*8d13bc63SEmmanuel Vadot 14*8d13bc63SEmmanuel Vadot#include "fsl-lx2160a-tqmlx2160a.dtsi" 15*8d13bc63SEmmanuel Vadot 16*8d13bc63SEmmanuel Vadot/ { 17*8d13bc63SEmmanuel Vadot model = "TQ Systems GmbH MBLX2160A Starterkit"; 18*8d13bc63SEmmanuel Vadot compatible = "tq,lx2160a-tqmlx2160a-mblx2160a", "tq,lx2160a-tqmlx2160a", 19*8d13bc63SEmmanuel Vadot "fsl,lx2160a"; 20*8d13bc63SEmmanuel Vadot 21*8d13bc63SEmmanuel Vadot aliases { 22*8d13bc63SEmmanuel Vadot mmc0 = &esdhc0; 23*8d13bc63SEmmanuel Vadot mmc1 = &esdhc1; 24*8d13bc63SEmmanuel Vadot serial0 = &uart0; 25*8d13bc63SEmmanuel Vadot serial1 = &uart1; 26*8d13bc63SEmmanuel Vadot serial2 = &uart2; 27*8d13bc63SEmmanuel Vadot serial3 = &uart3; 28*8d13bc63SEmmanuel Vadot }; 29*8d13bc63SEmmanuel Vadot 30*8d13bc63SEmmanuel Vadot chosen { 31*8d13bc63SEmmanuel Vadot stdout-path = &uart0; 32*8d13bc63SEmmanuel Vadot }; 33*8d13bc63SEmmanuel Vadot 34*8d13bc63SEmmanuel Vadot gpio-keys { 35*8d13bc63SEmmanuel Vadot compatible = "gpio-keys"; 36*8d13bc63SEmmanuel Vadot 37*8d13bc63SEmmanuel Vadot button-user1 { 38*8d13bc63SEmmanuel Vadot label = "button:user1"; 39*8d13bc63SEmmanuel Vadot gpios = <&gpio2 9 GPIO_ACTIVE_LOW>; 40*8d13bc63SEmmanuel Vadot linux,code = <KEY_F1>; 41*8d13bc63SEmmanuel Vadot }; 42*8d13bc63SEmmanuel Vadot 43*8d13bc63SEmmanuel Vadot button-user2 { 44*8d13bc63SEmmanuel Vadot label = "button:user2"; 45*8d13bc63SEmmanuel Vadot gpios = <&gpio2 10 GPIO_ACTIVE_LOW>; 46*8d13bc63SEmmanuel Vadot linux,code = <KEY_F2>; 47*8d13bc63SEmmanuel Vadot }; 48*8d13bc63SEmmanuel Vadot }; 49*8d13bc63SEmmanuel Vadot 50*8d13bc63SEmmanuel Vadot leds { 51*8d13bc63SEmmanuel Vadot compatible = "gpio-leds"; 52*8d13bc63SEmmanuel Vadot 53*8d13bc63SEmmanuel Vadot led-user1 { 54*8d13bc63SEmmanuel Vadot gpios = <&gpioex1 15 GPIO_ACTIVE_LOW>; 55*8d13bc63SEmmanuel Vadot color = <LED_COLOR_ID_BLUE>; 56*8d13bc63SEmmanuel Vadot function = LED_FUNCTION_HEARTBEAT; 57*8d13bc63SEmmanuel Vadot function-enumerator = <0>; 58*8d13bc63SEmmanuel Vadot linux,default-trigger = "heartbeat"; 59*8d13bc63SEmmanuel Vadot }; 60*8d13bc63SEmmanuel Vadot 61*8d13bc63SEmmanuel Vadot led-user2 { 62*8d13bc63SEmmanuel Vadot gpios = <&gpio2 8 GPIO_ACTIVE_LOW>; 63*8d13bc63SEmmanuel Vadot color = <LED_COLOR_ID_BLUE>; 64*8d13bc63SEmmanuel Vadot function = LED_FUNCTION_HEARTBEAT; 65*8d13bc63SEmmanuel Vadot function-enumerator = <1>; 66*8d13bc63SEmmanuel Vadot linux,default-trigger = "heartbeat"; 67*8d13bc63SEmmanuel Vadot }; 68*8d13bc63SEmmanuel Vadot }; 69*8d13bc63SEmmanuel Vadot 70*8d13bc63SEmmanuel Vadot sfp_xfi1: sfp-xfi1 { 71*8d13bc63SEmmanuel Vadot compatible = "sff,sfp"; 72*8d13bc63SEmmanuel Vadot i2c-bus = <&xfi1_i2c>; 73*8d13bc63SEmmanuel Vadot mod-def0-gpios = <&gpioex2 2 GPIO_ACTIVE_LOW>; 74*8d13bc63SEmmanuel Vadot los-gpios = <&gpioex2 3 GPIO_ACTIVE_HIGH>; 75*8d13bc63SEmmanuel Vadot tx-fault-gpios = <&gpioex2 0 GPIO_ACTIVE_HIGH>; 76*8d13bc63SEmmanuel Vadot tx-disable-gpios = <&gpioex2 1 GPIO_ACTIVE_HIGH>; 77*8d13bc63SEmmanuel Vadot status = "disabled"; 78*8d13bc63SEmmanuel Vadot }; 79*8d13bc63SEmmanuel Vadot 80*8d13bc63SEmmanuel Vadot sfp_xfi2: sfp-xfi2 { 81*8d13bc63SEmmanuel Vadot compatible = "sff,sfp"; 82*8d13bc63SEmmanuel Vadot i2c-bus = <&xfi2_i2c>; 83*8d13bc63SEmmanuel Vadot mod-def0-gpios = <&gpioex2 6 GPIO_ACTIVE_LOW>; 84*8d13bc63SEmmanuel Vadot los-gpios = <&gpioex2 7 GPIO_ACTIVE_HIGH>; 85*8d13bc63SEmmanuel Vadot tx-fault-gpios = <&gpioex2 4 GPIO_ACTIVE_HIGH>; 86*8d13bc63SEmmanuel Vadot tx-disable-gpios = <&gpioex2 5 GPIO_ACTIVE_HIGH>; 87*8d13bc63SEmmanuel Vadot status = "disabled"; 88*8d13bc63SEmmanuel Vadot }; 89*8d13bc63SEmmanuel Vadot}; 90*8d13bc63SEmmanuel Vadot 91*8d13bc63SEmmanuel Vadot&can0 { 92*8d13bc63SEmmanuel Vadot status = "okay"; 93*8d13bc63SEmmanuel Vadot}; 94*8d13bc63SEmmanuel Vadot 95*8d13bc63SEmmanuel Vadot&can1 { 96*8d13bc63SEmmanuel Vadot status = "okay"; 97*8d13bc63SEmmanuel Vadot}; 98*8d13bc63SEmmanuel Vadot 99*8d13bc63SEmmanuel Vadot&dpmac17 { 100*8d13bc63SEmmanuel Vadot phy-handle = <&dp83867_2_3>; 101*8d13bc63SEmmanuel Vadot phy-connection-type = "rgmii-id"; 102*8d13bc63SEmmanuel Vadot}; 103*8d13bc63SEmmanuel Vadot 104*8d13bc63SEmmanuel Vadot&dpmac18 { 105*8d13bc63SEmmanuel Vadot phy-handle = <&dp83867_2_4>; 106*8d13bc63SEmmanuel Vadot phy-connection-type = "rgmii-id"; 107*8d13bc63SEmmanuel Vadot}; 108*8d13bc63SEmmanuel Vadot 109*8d13bc63SEmmanuel Vadot&emdio1 { 110*8d13bc63SEmmanuel Vadot status = "okay"; 111*8d13bc63SEmmanuel Vadot 112*8d13bc63SEmmanuel Vadot dp83867_1_1: ethernet-phy@1 { 113*8d13bc63SEmmanuel Vadot reg = <1>; 114*8d13bc63SEmmanuel Vadot ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>; 115*8d13bc63SEmmanuel Vadot }; 116*8d13bc63SEmmanuel Vadot 117*8d13bc63SEmmanuel Vadot dp83867_1_2: ethernet-phy@2 { 118*8d13bc63SEmmanuel Vadot reg = <2>; 119*8d13bc63SEmmanuel Vadot ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>; 120*8d13bc63SEmmanuel Vadot }; 121*8d13bc63SEmmanuel Vadot 122*8d13bc63SEmmanuel Vadot dp83867_1_3: ethernet-phy@3 { 123*8d13bc63SEmmanuel Vadot reg = <3>; 124*8d13bc63SEmmanuel Vadot ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>; 125*8d13bc63SEmmanuel Vadot }; 126*8d13bc63SEmmanuel Vadot 127*8d13bc63SEmmanuel Vadot dp83867_1_4: ethernet-phy@4 { 128*8d13bc63SEmmanuel Vadot reg = <4>; 129*8d13bc63SEmmanuel Vadot ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>; 130*8d13bc63SEmmanuel Vadot }; 131*8d13bc63SEmmanuel Vadot 132*8d13bc63SEmmanuel Vadot dp83867_1_5: ethernet-phy@5 { 133*8d13bc63SEmmanuel Vadot reg = <5>; 134*8d13bc63SEmmanuel Vadot ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>; 135*8d13bc63SEmmanuel Vadot }; 136*8d13bc63SEmmanuel Vadot 137*8d13bc63SEmmanuel Vadot dp83867_1_6: ethernet-phy@6 { 138*8d13bc63SEmmanuel Vadot reg = <6>; 139*8d13bc63SEmmanuel Vadot ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>; 140*8d13bc63SEmmanuel Vadot }; 141*8d13bc63SEmmanuel Vadot}; 142*8d13bc63SEmmanuel Vadot 143*8d13bc63SEmmanuel Vadot&emdio2 { 144*8d13bc63SEmmanuel Vadot status = "okay"; 145*8d13bc63SEmmanuel Vadot 146*8d13bc63SEmmanuel Vadot dp83867_2_1: ethernet-phy@1 { 147*8d13bc63SEmmanuel Vadot reg = <1>; 148*8d13bc63SEmmanuel Vadot ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>; 149*8d13bc63SEmmanuel Vadot }; 150*8d13bc63SEmmanuel Vadot 151*8d13bc63SEmmanuel Vadot dp83867_2_2: ethernet-phy@2 { 152*8d13bc63SEmmanuel Vadot reg = <2>; 153*8d13bc63SEmmanuel Vadot ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>; 154*8d13bc63SEmmanuel Vadot }; 155*8d13bc63SEmmanuel Vadot 156*8d13bc63SEmmanuel Vadot dp83867_2_3: ethernet-phy@3 { 157*8d13bc63SEmmanuel Vadot reg = <3>; 158*8d13bc63SEmmanuel Vadot ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>; 159*8d13bc63SEmmanuel Vadot ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>; 160*8d13bc63SEmmanuel Vadot ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>; 161*8d13bc63SEmmanuel Vadot }; 162*8d13bc63SEmmanuel Vadot 163*8d13bc63SEmmanuel Vadot dp83867_2_4: ethernet-phy@4 { 164*8d13bc63SEmmanuel Vadot reg = <4>; 165*8d13bc63SEmmanuel Vadot ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>; 166*8d13bc63SEmmanuel Vadot ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>; 167*8d13bc63SEmmanuel Vadot ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>; 168*8d13bc63SEmmanuel Vadot }; 169*8d13bc63SEmmanuel Vadot}; 170*8d13bc63SEmmanuel Vadot 171*8d13bc63SEmmanuel Vadot&esdhc0 { 172*8d13bc63SEmmanuel Vadot sd-uhs-sdr104; 173*8d13bc63SEmmanuel Vadot sd-uhs-sdr50; 174*8d13bc63SEmmanuel Vadot sd-uhs-sdr25; 175*8d13bc63SEmmanuel Vadot sd-uhs-sdr12; 176*8d13bc63SEmmanuel Vadot no-mmc; 177*8d13bc63SEmmanuel Vadot no-sdio; 178*8d13bc63SEmmanuel Vadot wp-gpios = <&gpio0 30 GPIO_ACTIVE_LOW>; 179*8d13bc63SEmmanuel Vadot cd-gpios = <&gpio0 31 GPIO_ACTIVE_LOW>; 180*8d13bc63SEmmanuel Vadot status = "okay"; 181*8d13bc63SEmmanuel Vadot}; 182*8d13bc63SEmmanuel Vadot 183*8d13bc63SEmmanuel Vadot&i2c0 { 184*8d13bc63SEmmanuel Vadot gpioex3: gpio@20 { 185*8d13bc63SEmmanuel Vadot compatible = "nxp,pca9555"; 186*8d13bc63SEmmanuel Vadot reg = <0x20>; 187*8d13bc63SEmmanuel Vadot #gpio-cells = <2>; 188*8d13bc63SEmmanuel Vadot gpio-controller; 189*8d13bc63SEmmanuel Vadot vcc-supply = <®_vcc3v3>; 190*8d13bc63SEmmanuel Vadot }; 191*8d13bc63SEmmanuel Vadot}; 192*8d13bc63SEmmanuel Vadot 193*8d13bc63SEmmanuel Vadot&i2c4 { 194*8d13bc63SEmmanuel Vadot status = "okay"; 195*8d13bc63SEmmanuel Vadot 196*8d13bc63SEmmanuel Vadot mux@70 { 197*8d13bc63SEmmanuel Vadot compatible = "nxp,pca9544"; 198*8d13bc63SEmmanuel Vadot reg = <0x70>; 199*8d13bc63SEmmanuel Vadot #address-cells = <1>; 200*8d13bc63SEmmanuel Vadot #size-cells = <0>; 201*8d13bc63SEmmanuel Vadot vdd-supply = <®_vcc3v3>; 202*8d13bc63SEmmanuel Vadot 203*8d13bc63SEmmanuel Vadot i2c@0 { 204*8d13bc63SEmmanuel Vadot reg = <0>; 205*8d13bc63SEmmanuel Vadot #address-cells = <1>; 206*8d13bc63SEmmanuel Vadot #size-cells = <0>; 207*8d13bc63SEmmanuel Vadot }; 208*8d13bc63SEmmanuel Vadot 209*8d13bc63SEmmanuel Vadot i2c@1 { 210*8d13bc63SEmmanuel Vadot reg = <1>; 211*8d13bc63SEmmanuel Vadot #address-cells = <1>; 212*8d13bc63SEmmanuel Vadot #size-cells = <0>; 213*8d13bc63SEmmanuel Vadot }; 214*8d13bc63SEmmanuel Vadot 215*8d13bc63SEmmanuel Vadot i2c@2 { 216*8d13bc63SEmmanuel Vadot reg = <2>; 217*8d13bc63SEmmanuel Vadot #address-cells = <1>; 218*8d13bc63SEmmanuel Vadot #size-cells = <0>; 219*8d13bc63SEmmanuel Vadot 220*8d13bc63SEmmanuel Vadot gpioex0: gpio@20 { 221*8d13bc63SEmmanuel Vadot compatible = "nxp,pca9555"; 222*8d13bc63SEmmanuel Vadot reg = <0x20>; 223*8d13bc63SEmmanuel Vadot #gpio-cells = <2>; 224*8d13bc63SEmmanuel Vadot gpio-controller; 225*8d13bc63SEmmanuel Vadot vcc-supply = <®_vcc3v3>; 226*8d13bc63SEmmanuel Vadot }; 227*8d13bc63SEmmanuel Vadot 228*8d13bc63SEmmanuel Vadot gpioex1: gpio@21 { 229*8d13bc63SEmmanuel Vadot compatible = "nxp,pca9555"; 230*8d13bc63SEmmanuel Vadot reg = <0x21>; 231*8d13bc63SEmmanuel Vadot #gpio-cells = <2>; 232*8d13bc63SEmmanuel Vadot gpio-controller; 233*8d13bc63SEmmanuel Vadot vcc-supply = <®_vcc3v3>; 234*8d13bc63SEmmanuel Vadot }; 235*8d13bc63SEmmanuel Vadot 236*8d13bc63SEmmanuel Vadot gpioex2: gpio@22 { 237*8d13bc63SEmmanuel Vadot compatible = "nxp,pca9555"; 238*8d13bc63SEmmanuel Vadot reg = <0x22>; 239*8d13bc63SEmmanuel Vadot #gpio-cells = <2>; 240*8d13bc63SEmmanuel Vadot gpio-controller; 241*8d13bc63SEmmanuel Vadot vcc-supply = <®_vcc3v3>; 242*8d13bc63SEmmanuel Vadot }; 243*8d13bc63SEmmanuel Vadot }; 244*8d13bc63SEmmanuel Vadot 245*8d13bc63SEmmanuel Vadot i2c@3 { 246*8d13bc63SEmmanuel Vadot reg = <3>; 247*8d13bc63SEmmanuel Vadot #address-cells = <1>; 248*8d13bc63SEmmanuel Vadot #size-cells = <0>; 249*8d13bc63SEmmanuel Vadot }; 250*8d13bc63SEmmanuel Vadot }; 251*8d13bc63SEmmanuel Vadot}; 252*8d13bc63SEmmanuel Vadot 253*8d13bc63SEmmanuel Vadot&i2c5 { 254*8d13bc63SEmmanuel Vadot status = "okay"; 255*8d13bc63SEmmanuel Vadot 256*8d13bc63SEmmanuel Vadot mux@70 { 257*8d13bc63SEmmanuel Vadot compatible = "nxp,pca9544"; 258*8d13bc63SEmmanuel Vadot reg = <0x70>; 259*8d13bc63SEmmanuel Vadot #address-cells = <1>; 260*8d13bc63SEmmanuel Vadot #size-cells = <0>; 261*8d13bc63SEmmanuel Vadot vdd-supply = <®_vcc3v3>; 262*8d13bc63SEmmanuel Vadot 263*8d13bc63SEmmanuel Vadot i2c@0 { 264*8d13bc63SEmmanuel Vadot reg = <0>; 265*8d13bc63SEmmanuel Vadot #address-cells = <1>; 266*8d13bc63SEmmanuel Vadot #size-cells = <0>; 267*8d13bc63SEmmanuel Vadot }; 268*8d13bc63SEmmanuel Vadot 269*8d13bc63SEmmanuel Vadot xfi1_i2c: i2c@1 { 270*8d13bc63SEmmanuel Vadot reg = <1>; 271*8d13bc63SEmmanuel Vadot #address-cells = <1>; 272*8d13bc63SEmmanuel Vadot #size-cells = <0>; 273*8d13bc63SEmmanuel Vadot }; 274*8d13bc63SEmmanuel Vadot 275*8d13bc63SEmmanuel Vadot xfi2_i2c: i2c@2 { 276*8d13bc63SEmmanuel Vadot reg = <2>; 277*8d13bc63SEmmanuel Vadot #address-cells = <1>; 278*8d13bc63SEmmanuel Vadot #size-cells = <0>; 279*8d13bc63SEmmanuel Vadot }; 280*8d13bc63SEmmanuel Vadot 281*8d13bc63SEmmanuel Vadot i2c@3 { 282*8d13bc63SEmmanuel Vadot reg = <3>; 283*8d13bc63SEmmanuel Vadot #address-cells = <1>; 284*8d13bc63SEmmanuel Vadot #size-cells = <0>; 285*8d13bc63SEmmanuel Vadot }; 286*8d13bc63SEmmanuel Vadot }; 287*8d13bc63SEmmanuel Vadot}; 288*8d13bc63SEmmanuel Vadot 289*8d13bc63SEmmanuel Vadot&pcs_mdio17 { 290*8d13bc63SEmmanuel Vadot status = "okay"; 291*8d13bc63SEmmanuel Vadot}; 292*8d13bc63SEmmanuel Vadot 293*8d13bc63SEmmanuel Vadot&pcs_mdio18 { 294*8d13bc63SEmmanuel Vadot status = "okay"; 295*8d13bc63SEmmanuel Vadot}; 296*8d13bc63SEmmanuel Vadot 297*8d13bc63SEmmanuel Vadot&uart0 { 298*8d13bc63SEmmanuel Vadot status = "okay"; 299*8d13bc63SEmmanuel Vadot}; 300*8d13bc63SEmmanuel Vadot 301*8d13bc63SEmmanuel Vadot&uart1 { 302*8d13bc63SEmmanuel Vadot status = "okay"; 303*8d13bc63SEmmanuel Vadot}; 304*8d13bc63SEmmanuel Vadot 305*8d13bc63SEmmanuel Vadot&uart2 { 306*8d13bc63SEmmanuel Vadot status = "okay"; 307*8d13bc63SEmmanuel Vadot}; 308*8d13bc63SEmmanuel Vadot 309*8d13bc63SEmmanuel Vadot&uart3 { 310*8d13bc63SEmmanuel Vadot status = "okay"; 311*8d13bc63SEmmanuel Vadot}; 312*8d13bc63SEmmanuel Vadot 313*8d13bc63SEmmanuel Vadot&usb0 { 314*8d13bc63SEmmanuel Vadot #address-cells = <1>; 315*8d13bc63SEmmanuel Vadot #size-cells = <0>; 316*8d13bc63SEmmanuel Vadot status = "okay"; 317*8d13bc63SEmmanuel Vadot 318*8d13bc63SEmmanuel Vadot hub_2_0: hub@1 { 319*8d13bc63SEmmanuel Vadot compatible = "usb451,8142"; 320*8d13bc63SEmmanuel Vadot reg = <1>; 321*8d13bc63SEmmanuel Vadot peer-hub = <&hub_3_0>; 322*8d13bc63SEmmanuel Vadot reset-gpios = <&gpioex1 0 GPIO_ACTIVE_LOW>; 323*8d13bc63SEmmanuel Vadot vcc-supply = <®_vcc3v3>; 324*8d13bc63SEmmanuel Vadot }; 325*8d13bc63SEmmanuel Vadot 326*8d13bc63SEmmanuel Vadot hub_3_0: hub@2 { 327*8d13bc63SEmmanuel Vadot compatible = "usb451,8140"; 328*8d13bc63SEmmanuel Vadot reg = <2>; 329*8d13bc63SEmmanuel Vadot peer-hub = <&hub_2_0>; 330*8d13bc63SEmmanuel Vadot reset-gpios = <&gpioex1 0 GPIO_ACTIVE_LOW>; 331*8d13bc63SEmmanuel Vadot vcc-supply = <®_vcc3v3>; 332*8d13bc63SEmmanuel Vadot }; 333*8d13bc63SEmmanuel Vadot}; 334*8d13bc63SEmmanuel Vadot 335*8d13bc63SEmmanuel Vadot&usb1 { 336*8d13bc63SEmmanuel Vadot dr_mode = "otg"; 337*8d13bc63SEmmanuel Vadot status = "okay"; 338*8d13bc63SEmmanuel Vadot}; 339