1724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2724ba675SRob Herring/* 3724ba675SRob Herring * Common part of the device tree for the Kontron KSwitch D10 MMT 4724ba675SRob Herring */ 5724ba675SRob Herring 6724ba675SRob Herring/dts-v1/; 7724ba675SRob Herring#include "lan966x.dtsi" 8724ba675SRob Herring#include "dt-bindings/phy/phy-lan966x-serdes.h" 9724ba675SRob Herring 10724ba675SRob Herring/ { 11724ba675SRob Herring aliases { 12724ba675SRob Herring serial0 = &usart0; 13724ba675SRob Herring }; 14724ba675SRob Herring 15724ba675SRob Herring chosen { 16724ba675SRob Herring stdout-path = "serial0:115200n8"; 17724ba675SRob Herring }; 18724ba675SRob Herring 19724ba675SRob Herring gpio-restart { 20724ba675SRob Herring compatible = "gpio-restart"; 21*a4bd03e7SArnd Bergmann pinctrl-0 = <&reset_pins>; 22*a4bd03e7SArnd Bergmann pinctrl-names = "default"; 23724ba675SRob Herring gpios = <&gpio 56 GPIO_ACTIVE_LOW>; 24724ba675SRob Herring priority = <200>; 25724ba675SRob Herring }; 26724ba675SRob Herring}; 27724ba675SRob Herring 28724ba675SRob Herring&flx0 { 29724ba675SRob Herring atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>; 30724ba675SRob Herring status = "okay"; 31724ba675SRob Herring 32724ba675SRob Herring usart0: serial@200 { 33724ba675SRob Herring pinctrl-0 = <&usart0_pins>; 34724ba675SRob Herring pinctrl-names = "default"; 35724ba675SRob Herring status = "okay"; 36724ba675SRob Herring }; 37724ba675SRob Herring}; 38724ba675SRob Herring 39724ba675SRob Herring&flx3 { 40724ba675SRob Herring atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>; 41724ba675SRob Herring status = "okay"; 42724ba675SRob Herring 43724ba675SRob Herring spi3: spi@400 { 44*a4bd03e7SArnd Bergmann pinctrl-0 = <&fc3_b_pins>, <&spi3_cs_pins>; 45724ba675SRob Herring pinctrl-names = "default"; 46724ba675SRob Herring status = "okay"; 47724ba675SRob Herring cs-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; 48724ba675SRob Herring }; 49724ba675SRob Herring}; 50724ba675SRob Herring 51724ba675SRob Herring&gpio { 52*a4bd03e7SArnd Bergmann pinctrl-0 = <&phy_int_pins>; 53*a4bd03e7SArnd Bergmann pinctrl-names = "default"; 54*a4bd03e7SArnd Bergmann 55724ba675SRob Herring fc3_b_pins: fc3-b-pins { 56724ba675SRob Herring /* SCK, MISO, MOSI */ 57724ba675SRob Herring pins = "GPIO_51", "GPIO_52", "GPIO_53"; 58724ba675SRob Herring function = "fc3_b"; 59724ba675SRob Herring }; 60724ba675SRob Herring 61724ba675SRob Herring miim_c_pins: miim-c-pins { 62724ba675SRob Herring /* MDC, MDIO */ 63724ba675SRob Herring pins = "GPIO_59", "GPIO_60"; 64724ba675SRob Herring function = "miim_c"; 65724ba675SRob Herring }; 66724ba675SRob Herring 67*a4bd03e7SArnd Bergmann phy_int_pins: phy-int-pins { 68*a4bd03e7SArnd Bergmann /* PHY_INT# */ 69*a4bd03e7SArnd Bergmann pins = "GPIO_24"; 70*a4bd03e7SArnd Bergmann function = "gpio"; 71*a4bd03e7SArnd Bergmann }; 72*a4bd03e7SArnd Bergmann 73*a4bd03e7SArnd Bergmann reset_pins: reset-pins { 74*a4bd03e7SArnd Bergmann /* SYS_RST# */ 75*a4bd03e7SArnd Bergmann pins = "GPIO_56"; 76*a4bd03e7SArnd Bergmann function = "gpio"; 77*a4bd03e7SArnd Bergmann }; 78*a4bd03e7SArnd Bergmann 79724ba675SRob Herring sgpio_a_pins: sgpio-a-pins { 80724ba675SRob Herring /* SCK, D0, D1 */ 81724ba675SRob Herring pins = "GPIO_32", "GPIO_33", "GPIO_34"; 82724ba675SRob Herring function = "sgpio_a"; 83724ba675SRob Herring }; 84724ba675SRob Herring 85724ba675SRob Herring sgpio_b_pins: sgpio-b-pins { 86724ba675SRob Herring /* LD */ 87724ba675SRob Herring pins = "GPIO_64"; 88724ba675SRob Herring function = "sgpio_b"; 89724ba675SRob Herring }; 90724ba675SRob Herring 91*a4bd03e7SArnd Bergmann spi3_cs_pins: spi3-cs-pins { 92*a4bd03e7SArnd Bergmann /* CS# */ 93*a4bd03e7SArnd Bergmann pins = "GPIO_46"; 94*a4bd03e7SArnd Bergmann function = "gpio"; 95*a4bd03e7SArnd Bergmann }; 96*a4bd03e7SArnd Bergmann 97724ba675SRob Herring usart0_pins: usart0-pins { 98724ba675SRob Herring /* RXD, TXD */ 99724ba675SRob Herring pins = "GPIO_25", "GPIO_26"; 100724ba675SRob Herring function = "fc0_b"; 101724ba675SRob Herring }; 102724ba675SRob Herring 103724ba675SRob Herring usbs_a_pins: usbs-a-pins { 104724ba675SRob Herring /* VBUS_DET */ 105724ba675SRob Herring pins = "GPIO_66"; 106724ba675SRob Herring function = "gpio"; 107724ba675SRob Herring }; 108724ba675SRob Herring}; 109724ba675SRob Herring 110724ba675SRob Herring&mdio0 { 111724ba675SRob Herring pinctrl-0 = <&miim_c_pins>; 112724ba675SRob Herring pinctrl-names = "default"; 113724ba675SRob Herring reset-gpios = <&gpio 29 GPIO_ACTIVE_LOW>; 114724ba675SRob Herring clock-frequency = <2500000>; 115724ba675SRob Herring status = "okay"; 116724ba675SRob Herring 117724ba675SRob Herring phy4: ethernet-phy@5 { 118724ba675SRob Herring reg = <5>; 119*a4bd03e7SArnd Bergmann interrupts-extended = <&gpio 24 IRQ_TYPE_LEVEL_LOW>; 120724ba675SRob Herring coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>; 121724ba675SRob Herring }; 122724ba675SRob Herring 123724ba675SRob Herring phy5: ethernet-phy@6 { 124724ba675SRob Herring reg = <6>; 125*a4bd03e7SArnd Bergmann interrupts-extended = <&gpio 24 IRQ_TYPE_LEVEL_LOW>; 126724ba675SRob Herring coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>; 127724ba675SRob Herring }; 128724ba675SRob Herring 129724ba675SRob Herring phy6: ethernet-phy@7 { 130724ba675SRob Herring reg = <7>; 131*a4bd03e7SArnd Bergmann interrupts-extended = <&gpio 24 IRQ_TYPE_LEVEL_LOW>; 132724ba675SRob Herring coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>; 133724ba675SRob Herring }; 134724ba675SRob Herring 135724ba675SRob Herring phy7: ethernet-phy@8 { 136724ba675SRob Herring reg = <8>; 137*a4bd03e7SArnd Bergmann interrupts-extended = <&gpio 24 IRQ_TYPE_LEVEL_LOW>; 138724ba675SRob Herring coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>; 139724ba675SRob Herring }; 140724ba675SRob Herring}; 141724ba675SRob Herring 142724ba675SRob Herring&mdio1 { 143724ba675SRob Herring status = "okay"; 144724ba675SRob Herring}; 145724ba675SRob Herring 146724ba675SRob Herring&phy0 { 147724ba675SRob Herring status = "okay"; 148724ba675SRob Herring}; 149724ba675SRob Herring 150724ba675SRob Herring&phy1 { 151724ba675SRob Herring status = "okay"; 152724ba675SRob Herring}; 153724ba675SRob Herring 154724ba675SRob Herring&port0 { 155724ba675SRob Herring phys = <&serdes 0 CU(0)>; 156724ba675SRob Herring phy-handle = <&phy0>; 157724ba675SRob Herring phy-mode = "gmii"; 158724ba675SRob Herring status = "okay"; 159724ba675SRob Herring}; 160724ba675SRob Herring 161724ba675SRob Herring&port1 { 162724ba675SRob Herring phys = <&serdes 1 CU(1)>; 163724ba675SRob Herring phy-handle = <&phy1>; 164724ba675SRob Herring phy-mode = "gmii"; 165724ba675SRob Herring status = "okay"; 166724ba675SRob Herring}; 167724ba675SRob Herring 168724ba675SRob Herring&port4 { 169724ba675SRob Herring phys = <&serdes 4 SERDES6G(2)>; 170724ba675SRob Herring phy-handle = <&phy4>; 171724ba675SRob Herring phy-mode = "qsgmii"; 172724ba675SRob Herring status = "okay"; 173724ba675SRob Herring}; 174724ba675SRob Herring 175724ba675SRob Herring&port5 { 176724ba675SRob Herring phys = <&serdes 5 SERDES6G(2)>; 177724ba675SRob Herring phy-handle = <&phy5>; 178724ba675SRob Herring phy-mode = "qsgmii"; 179724ba675SRob Herring status = "okay"; 180724ba675SRob Herring}; 181724ba675SRob Herring 182724ba675SRob Herring&port6 { 183724ba675SRob Herring phys = <&serdes 6 SERDES6G(2)>; 184724ba675SRob Herring phy-handle = <&phy6>; 185724ba675SRob Herring phy-mode = "qsgmii"; 186724ba675SRob Herring status = "okay"; 187724ba675SRob Herring}; 188724ba675SRob Herring 189724ba675SRob Herring&port7 { 190724ba675SRob Herring phys = <&serdes 7 SERDES6G(2)>; 191724ba675SRob Herring phy-handle = <&phy7>; 192724ba675SRob Herring phy-mode = "qsgmii"; 193724ba675SRob Herring status = "okay"; 194724ba675SRob Herring}; 195724ba675SRob Herring 196724ba675SRob Herring&serdes { 197724ba675SRob Herring status = "okay"; 198724ba675SRob Herring}; 199724ba675SRob Herring 200724ba675SRob Herring&sgpio { 201724ba675SRob Herring pinctrl-0 = <&sgpio_a_pins>, <&sgpio_b_pins>; 202724ba675SRob Herring pinctrl-names = "default"; 203724ba675SRob Herring bus-frequency = <8000000>; 204724ba675SRob Herring /* arbitrary range because all GPIOs are in software mode */ 205724ba675SRob Herring microchip,sgpio-port-ranges = <0 11>; 206724ba675SRob Herring status = "okay"; 207724ba675SRob Herring 208724ba675SRob Herring sgpio_in: gpio@0 { 209724ba675SRob Herring ngpios = <128>; 210724ba675SRob Herring }; 211724ba675SRob Herring 212724ba675SRob Herring sgpio_out: gpio@1 { 213724ba675SRob Herring ngpios = <128>; 214724ba675SRob Herring }; 215724ba675SRob Herring}; 216724ba675SRob Herring 217724ba675SRob Herring&switch { 218724ba675SRob Herring status = "okay"; 219724ba675SRob Herring}; 220724ba675SRob Herring 221724ba675SRob Herring&udc { 222724ba675SRob Herring pinctrl-0 = <&usbs_a_pins>; 223724ba675SRob Herring pinctrl-names = "default"; 224724ba675SRob Herring atmel,vbus-gpio = <&gpio 66 GPIO_ACTIVE_HIGH>; 225724ba675SRob Herring status = "okay"; 226724ba675SRob Herring}; 227724ba675SRob Herring 228724ba675SRob Herring&watchdog { 229724ba675SRob Herring status = "okay"; 230724ba675SRob Herring}; 231