162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Common part of the device tree for the Kontron KSwitch D10 MMT 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci/dts-v1/; 762306a36Sopenharmony_ci#include "lan966x.dtsi" 862306a36Sopenharmony_ci#include "dt-bindings/phy/phy-lan966x-serdes.h" 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci/ { 1162306a36Sopenharmony_ci aliases { 1262306a36Sopenharmony_ci serial0 = &usart0; 1362306a36Sopenharmony_ci }; 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci chosen { 1662306a36Sopenharmony_ci stdout-path = "serial0:115200n8"; 1762306a36Sopenharmony_ci }; 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci gpio-restart { 2062306a36Sopenharmony_ci compatible = "gpio-restart"; 2162306a36Sopenharmony_ci pinctrl-0 = <&reset_pins>; 2262306a36Sopenharmony_ci pinctrl-names = "default"; 2362306a36Sopenharmony_ci gpios = <&gpio 56 GPIO_ACTIVE_LOW>; 2462306a36Sopenharmony_ci priority = <200>; 2562306a36Sopenharmony_ci }; 2662306a36Sopenharmony_ci}; 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci&flx0 { 2962306a36Sopenharmony_ci atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>; 3062306a36Sopenharmony_ci status = "okay"; 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci usart0: serial@200 { 3362306a36Sopenharmony_ci pinctrl-0 = <&usart0_pins>; 3462306a36Sopenharmony_ci pinctrl-names = "default"; 3562306a36Sopenharmony_ci status = "okay"; 3662306a36Sopenharmony_ci }; 3762306a36Sopenharmony_ci}; 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci&flx3 { 4062306a36Sopenharmony_ci atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>; 4162306a36Sopenharmony_ci status = "okay"; 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci spi3: spi@400 { 4462306a36Sopenharmony_ci pinctrl-0 = <&fc3_b_pins>, <&spi3_cs_pins>; 4562306a36Sopenharmony_ci pinctrl-names = "default"; 4662306a36Sopenharmony_ci status = "okay"; 4762306a36Sopenharmony_ci cs-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; 4862306a36Sopenharmony_ci }; 4962306a36Sopenharmony_ci}; 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci&gpio { 5262306a36Sopenharmony_ci pinctrl-0 = <&phy_int_pins>; 5362306a36Sopenharmony_ci pinctrl-names = "default"; 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ci fc3_b_pins: fc3-b-pins { 5662306a36Sopenharmony_ci /* SCK, MISO, MOSI */ 5762306a36Sopenharmony_ci pins = "GPIO_51", "GPIO_52", "GPIO_53"; 5862306a36Sopenharmony_ci function = "fc3_b"; 5962306a36Sopenharmony_ci }; 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci miim_c_pins: miim-c-pins { 6262306a36Sopenharmony_ci /* MDC, MDIO */ 6362306a36Sopenharmony_ci pins = "GPIO_59", "GPIO_60"; 6462306a36Sopenharmony_ci function = "miim_c"; 6562306a36Sopenharmony_ci }; 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci phy_int_pins: phy-int-pins { 6862306a36Sopenharmony_ci /* PHY_INT# */ 6962306a36Sopenharmony_ci pins = "GPIO_24"; 7062306a36Sopenharmony_ci function = "gpio"; 7162306a36Sopenharmony_ci }; 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci reset_pins: reset-pins { 7462306a36Sopenharmony_ci /* SYS_RST# */ 7562306a36Sopenharmony_ci pins = "GPIO_56"; 7662306a36Sopenharmony_ci function = "gpio"; 7762306a36Sopenharmony_ci }; 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ci sgpio_a_pins: sgpio-a-pins { 8062306a36Sopenharmony_ci /* SCK, D0, D1 */ 8162306a36Sopenharmony_ci pins = "GPIO_32", "GPIO_33", "GPIO_34"; 8262306a36Sopenharmony_ci function = "sgpio_a"; 8362306a36Sopenharmony_ci }; 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ci sgpio_b_pins: sgpio-b-pins { 8662306a36Sopenharmony_ci /* LD */ 8762306a36Sopenharmony_ci pins = "GPIO_64"; 8862306a36Sopenharmony_ci function = "sgpio_b"; 8962306a36Sopenharmony_ci }; 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ci spi3_cs_pins: spi3-cs-pins { 9262306a36Sopenharmony_ci /* CS# */ 9362306a36Sopenharmony_ci pins = "GPIO_46"; 9462306a36Sopenharmony_ci function = "gpio"; 9562306a36Sopenharmony_ci }; 9662306a36Sopenharmony_ci 9762306a36Sopenharmony_ci usart0_pins: usart0-pins { 9862306a36Sopenharmony_ci /* RXD, TXD */ 9962306a36Sopenharmony_ci pins = "GPIO_25", "GPIO_26"; 10062306a36Sopenharmony_ci function = "fc0_b"; 10162306a36Sopenharmony_ci }; 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ci usbs_a_pins: usbs-a-pins { 10462306a36Sopenharmony_ci /* VBUS_DET */ 10562306a36Sopenharmony_ci pins = "GPIO_66"; 10662306a36Sopenharmony_ci function = "gpio"; 10762306a36Sopenharmony_ci }; 10862306a36Sopenharmony_ci}; 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_ci&mdio0 { 11162306a36Sopenharmony_ci pinctrl-0 = <&miim_c_pins>; 11262306a36Sopenharmony_ci pinctrl-names = "default"; 11362306a36Sopenharmony_ci reset-gpios = <&gpio 29 GPIO_ACTIVE_LOW>; 11462306a36Sopenharmony_ci clock-frequency = <2500000>; 11562306a36Sopenharmony_ci status = "okay"; 11662306a36Sopenharmony_ci 11762306a36Sopenharmony_ci phy4: ethernet-phy@5 { 11862306a36Sopenharmony_ci reg = <5>; 11962306a36Sopenharmony_ci interrupts-extended = <&gpio 24 IRQ_TYPE_LEVEL_LOW>; 12062306a36Sopenharmony_ci coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>; 12162306a36Sopenharmony_ci }; 12262306a36Sopenharmony_ci 12362306a36Sopenharmony_ci phy5: ethernet-phy@6 { 12462306a36Sopenharmony_ci reg = <6>; 12562306a36Sopenharmony_ci interrupts-extended = <&gpio 24 IRQ_TYPE_LEVEL_LOW>; 12662306a36Sopenharmony_ci coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>; 12762306a36Sopenharmony_ci }; 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ci phy6: ethernet-phy@7 { 13062306a36Sopenharmony_ci reg = <7>; 13162306a36Sopenharmony_ci interrupts-extended = <&gpio 24 IRQ_TYPE_LEVEL_LOW>; 13262306a36Sopenharmony_ci coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>; 13362306a36Sopenharmony_ci }; 13462306a36Sopenharmony_ci 13562306a36Sopenharmony_ci phy7: ethernet-phy@8 { 13662306a36Sopenharmony_ci reg = <8>; 13762306a36Sopenharmony_ci interrupts-extended = <&gpio 24 IRQ_TYPE_LEVEL_LOW>; 13862306a36Sopenharmony_ci coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>; 13962306a36Sopenharmony_ci }; 14062306a36Sopenharmony_ci}; 14162306a36Sopenharmony_ci 14262306a36Sopenharmony_ci&mdio1 { 14362306a36Sopenharmony_ci status = "okay"; 14462306a36Sopenharmony_ci}; 14562306a36Sopenharmony_ci 14662306a36Sopenharmony_ci&phy0 { 14762306a36Sopenharmony_ci status = "okay"; 14862306a36Sopenharmony_ci}; 14962306a36Sopenharmony_ci 15062306a36Sopenharmony_ci&phy1 { 15162306a36Sopenharmony_ci status = "okay"; 15262306a36Sopenharmony_ci}; 15362306a36Sopenharmony_ci 15462306a36Sopenharmony_ci&port0 { 15562306a36Sopenharmony_ci phys = <&serdes 0 CU(0)>; 15662306a36Sopenharmony_ci phy-handle = <&phy0>; 15762306a36Sopenharmony_ci phy-mode = "gmii"; 15862306a36Sopenharmony_ci status = "okay"; 15962306a36Sopenharmony_ci}; 16062306a36Sopenharmony_ci 16162306a36Sopenharmony_ci&port1 { 16262306a36Sopenharmony_ci phys = <&serdes 1 CU(1)>; 16362306a36Sopenharmony_ci phy-handle = <&phy1>; 16462306a36Sopenharmony_ci phy-mode = "gmii"; 16562306a36Sopenharmony_ci status = "okay"; 16662306a36Sopenharmony_ci}; 16762306a36Sopenharmony_ci 16862306a36Sopenharmony_ci&port4 { 16962306a36Sopenharmony_ci phys = <&serdes 4 SERDES6G(2)>; 17062306a36Sopenharmony_ci phy-handle = <&phy4>; 17162306a36Sopenharmony_ci phy-mode = "qsgmii"; 17262306a36Sopenharmony_ci status = "okay"; 17362306a36Sopenharmony_ci}; 17462306a36Sopenharmony_ci 17562306a36Sopenharmony_ci&port5 { 17662306a36Sopenharmony_ci phys = <&serdes 5 SERDES6G(2)>; 17762306a36Sopenharmony_ci phy-handle = <&phy5>; 17862306a36Sopenharmony_ci phy-mode = "qsgmii"; 17962306a36Sopenharmony_ci status = "okay"; 18062306a36Sopenharmony_ci}; 18162306a36Sopenharmony_ci 18262306a36Sopenharmony_ci&port6 { 18362306a36Sopenharmony_ci phys = <&serdes 6 SERDES6G(2)>; 18462306a36Sopenharmony_ci phy-handle = <&phy6>; 18562306a36Sopenharmony_ci phy-mode = "qsgmii"; 18662306a36Sopenharmony_ci status = "okay"; 18762306a36Sopenharmony_ci}; 18862306a36Sopenharmony_ci 18962306a36Sopenharmony_ci&port7 { 19062306a36Sopenharmony_ci phys = <&serdes 7 SERDES6G(2)>; 19162306a36Sopenharmony_ci phy-handle = <&phy7>; 19262306a36Sopenharmony_ci phy-mode = "qsgmii"; 19362306a36Sopenharmony_ci status = "okay"; 19462306a36Sopenharmony_ci}; 19562306a36Sopenharmony_ci 19662306a36Sopenharmony_ci&serdes { 19762306a36Sopenharmony_ci status = "okay"; 19862306a36Sopenharmony_ci}; 19962306a36Sopenharmony_ci 20062306a36Sopenharmony_ci&sgpio { 20162306a36Sopenharmony_ci pinctrl-0 = <&sgpio_a_pins>, <&sgpio_b_pins>; 20262306a36Sopenharmony_ci pinctrl-names = "default"; 20362306a36Sopenharmony_ci bus-frequency = <8000000>; 20462306a36Sopenharmony_ci /* arbitrary range because all GPIOs are in software mode */ 20562306a36Sopenharmony_ci microchip,sgpio-port-ranges = <0 11>; 20662306a36Sopenharmony_ci status = "okay"; 20762306a36Sopenharmony_ci 20862306a36Sopenharmony_ci sgpio_in: gpio@0 { 20962306a36Sopenharmony_ci ngpios = <128>; 21062306a36Sopenharmony_ci }; 21162306a36Sopenharmony_ci 21262306a36Sopenharmony_ci sgpio_out: gpio@1 { 21362306a36Sopenharmony_ci ngpios = <128>; 21462306a36Sopenharmony_ci }; 21562306a36Sopenharmony_ci}; 21662306a36Sopenharmony_ci 21762306a36Sopenharmony_ci&switch { 21862306a36Sopenharmony_ci status = "okay"; 21962306a36Sopenharmony_ci}; 22062306a36Sopenharmony_ci 22162306a36Sopenharmony_ci&udc { 22262306a36Sopenharmony_ci pinctrl-0 = <&usbs_a_pins>; 22362306a36Sopenharmony_ci pinctrl-names = "default"; 22462306a36Sopenharmony_ci atmel,vbus-gpio = <&gpio 66 GPIO_ACTIVE_HIGH>; 22562306a36Sopenharmony_ci status = "okay"; 22662306a36Sopenharmony_ci}; 22762306a36Sopenharmony_ci 22862306a36Sopenharmony_ci&watchdog { 22962306a36Sopenharmony_ci status = "okay"; 23062306a36Sopenharmony_ci}; 231