// SPDX-License-Identifier: (GPL-2.0+ OR MIT) /* * Common part of the device tree for the Kontron KSwitch D10 MMT */ /dts-v1/; #include "lan966x.dtsi" #include "dt-bindings/phy/phy-lan966x-serdes.h" / { aliases { serial0 = &usart0; }; chosen { stdout-path = "serial0:115200n8"; }; gpio-restart { compatible = "gpio-restart"; pinctrl-0 = <&reset_pins>; pinctrl-names = "default"; gpios = <&gpio 56 GPIO_ACTIVE_LOW>; priority = <200>; }; }; &flx0 { atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>; status = "okay"; usart0: serial@200 { pinctrl-0 = <&usart0_pins>; pinctrl-names = "default"; status = "okay"; }; }; &flx3 { atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>; status = "okay"; spi3: spi@400 { pinctrl-0 = <&fc3_b_pins>, <&spi3_cs_pins>; pinctrl-names = "default"; status = "okay"; cs-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; }; }; &gpio { pinctrl-0 = <&phy_int_pins>; pinctrl-names = "default"; fc3_b_pins: fc3-b-pins { /* SCK, MISO, MOSI */ pins = "GPIO_51", "GPIO_52", "GPIO_53"; function = "fc3_b"; }; miim_c_pins: miim-c-pins { /* MDC, MDIO */ pins = "GPIO_59", "GPIO_60"; function = "miim_c"; }; phy_int_pins: phy-int-pins { /* PHY_INT# */ pins = "GPIO_24"; function = "gpio"; }; reset_pins: reset-pins { /* SYS_RST# */ pins = "GPIO_56"; function = "gpio"; }; sgpio_a_pins: sgpio-a-pins { /* SCK, D0, D1 */ pins = "GPIO_32", "GPIO_33", "GPIO_34"; function = "sgpio_a"; }; sgpio_b_pins: sgpio-b-pins { /* LD */ pins = "GPIO_64"; function = "sgpio_b"; }; spi3_cs_pins: spi3-cs-pins { /* CS# */ pins = "GPIO_46"; function = "gpio"; }; usart0_pins: usart0-pins { /* RXD, TXD */ pins = "GPIO_25", "GPIO_26"; function = "fc0_b"; }; usbs_a_pins: usbs-a-pins { /* VBUS_DET */ pins = "GPIO_66"; function = "gpio"; }; }; &mdio0 { pinctrl-0 = <&miim_c_pins>; pinctrl-names = "default"; reset-gpios = <&gpio 29 GPIO_ACTIVE_LOW>; clock-frequency = <2500000>; status = "okay"; phy4: ethernet-phy@5 { reg = <5>; interrupts-extended = <&gpio 24 IRQ_TYPE_LEVEL_LOW>; coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>; }; phy5: ethernet-phy@6 { reg = <6>; interrupts-extended = <&gpio 24 IRQ_TYPE_LEVEL_LOW>; coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>; }; phy6: ethernet-phy@7 { reg = <7>; interrupts-extended = <&gpio 24 IRQ_TYPE_LEVEL_LOW>; coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>; }; phy7: ethernet-phy@8 { reg = <8>; interrupts-extended = <&gpio 24 IRQ_TYPE_LEVEL_LOW>; coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>; }; }; &mdio1 { status = "okay"; }; &phy0 { status = "okay"; }; &phy1 { status = "okay"; }; &port0 { phys = <&serdes 0 CU(0)>; phy-handle = <&phy0>; phy-mode = "gmii"; status = "okay"; }; &port1 { phys = <&serdes 1 CU(1)>; phy-handle = <&phy1>; phy-mode = "gmii"; status = "okay"; }; &port4 { phys = <&serdes 4 SERDES6G(2)>; phy-handle = <&phy4>; phy-mode = "qsgmii"; status = "okay"; }; &port5 { phys = <&serdes 5 SERDES6G(2)>; phy-handle = <&phy5>; phy-mode = "qsgmii"; status = "okay"; }; &port6 { phys = <&serdes 6 SERDES6G(2)>; phy-handle = <&phy6>; phy-mode = "qsgmii"; status = "okay"; }; &port7 { phys = <&serdes 7 SERDES6G(2)>; phy-handle = <&phy7>; phy-mode = "qsgmii"; status = "okay"; }; &serdes { status = "okay"; }; &sgpio { pinctrl-0 = <&sgpio_a_pins>, <&sgpio_b_pins>; pinctrl-names = "default"; bus-frequency = <8000000>; /* arbitrary range because all GPIOs are in software mode */ microchip,sgpio-port-ranges = <0 11>; status = "okay"; sgpio_in: gpio@0 { ngpios = <128>; }; sgpio_out: gpio@1 { ngpios = <128>; }; }; &switch { status = "okay"; }; &udc { pinctrl-0 = <&usbs_a_pins>; pinctrl-names = "default"; atmel,vbus-gpio = <&gpio 66 GPIO_ACTIVE_HIGH>; status = "okay"; }; &watchdog { status = "okay"; };