0001 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
0002 /*
0003 * Common part of the device tree for the Kontron KSwitch D10 MMT
0004 */
0005
0006 /dts-v1/;
0007 #include "lan966x.dtsi"
0008 #include "dt-bindings/phy/phy-lan966x-serdes.h"
0009
0010 / {
0011 aliases {
0012 serial0 = &usart0;
0013 };
0014
0015 chosen {
0016 stdout-path = "serial0:115200n8";
0017 };
0018
0019 gpio-restart {
0020 compatible = "gpio-restart";
0021 gpios = <&gpio 56 GPIO_ACTIVE_LOW>;
0022 priority = <200>;
0023 };
0024 };
0025
0026 &flx0 {
0027 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
0028 status = "okay";
0029
0030 usart0: serial@200 {
0031 pinctrl-0 = <&usart0_pins>;
0032 pinctrl-names = "default";
0033 status = "okay";
0034 };
0035 };
0036
0037 &flx3 {
0038 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>;
0039 status = "okay";
0040
0041 spi3: spi@400 {
0042 pinctrl-0 = <&fc3_b_pins>;
0043 pinctrl-names = "default";
0044 status = "okay";
0045 cs-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
0046 };
0047 };
0048
0049 &gpio {
0050 fc3_b_pins: fc3-b-pins {
0051 /* SCK, MISO, MOSI */
0052 pins = "GPIO_51", "GPIO_52", "GPIO_53";
0053 function = "fc3_b";
0054 };
0055
0056 miim_c_pins: miim-c-pins {
0057 /* MDC, MDIO */
0058 pins = "GPIO_59", "GPIO_60";
0059 function = "miim_c";
0060 };
0061
0062 sgpio_a_pins: sgpio-a-pins {
0063 /* SCK, D0, D1 */
0064 pins = "GPIO_32", "GPIO_33", "GPIO_34";
0065 function = "sgpio_a";
0066 };
0067
0068 sgpio_b_pins: sgpio-b-pins {
0069 /* LD */
0070 pins = "GPIO_64";
0071 function = "sgpio_b";
0072 };
0073
0074 usart0_pins: usart0-pins {
0075 /* RXD, TXD */
0076 pins = "GPIO_25", "GPIO_26";
0077 function = "fc0_b";
0078 };
0079
0080 usbs_a_pins: usbs-a-pins {
0081 /* VBUS_DET */
0082 pins = "GPIO_66";
0083 function = "gpio";
0084 };
0085 };
0086
0087 &mdio0 {
0088 pinctrl-0 = <&miim_c_pins>;
0089 pinctrl-names = "default";
0090 reset-gpios = <&gpio 29 GPIO_ACTIVE_LOW>;
0091 clock-frequency = <2500000>;
0092 status = "okay";
0093
0094 phy4: ethernet-phy@5 {
0095 reg = <5>;
0096 coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>;
0097 };
0098
0099 phy5: ethernet-phy@6 {
0100 reg = <6>;
0101 coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>;
0102 };
0103
0104 phy6: ethernet-phy@7 {
0105 reg = <7>;
0106 coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>;
0107 };
0108
0109 phy7: ethernet-phy@8 {
0110 reg = <8>;
0111 coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>;
0112 };
0113 };
0114
0115 &mdio1 {
0116 status = "okay";
0117 };
0118
0119 &phy0 {
0120 status = "okay";
0121 };
0122
0123 &phy1 {
0124 status = "okay";
0125 };
0126
0127 &port0 {
0128 phys = <&serdes 0 CU(0)>;
0129 phy-handle = <&phy0>;
0130 phy-mode = "gmii";
0131 status = "okay";
0132 };
0133
0134 &port1 {
0135 phys = <&serdes 1 CU(1)>;
0136 phy-handle = <&phy1>;
0137 phy-mode = "gmii";
0138 status = "okay";
0139 };
0140
0141 &port4 {
0142 phys = <&serdes 4 SERDES6G(2)>;
0143 phy-handle = <&phy4>;
0144 phy-mode = "qsgmii";
0145 status = "okay";
0146 };
0147
0148 &port5 {
0149 phys = <&serdes 5 SERDES6G(2)>;
0150 phy-handle = <&phy5>;
0151 phy-mode = "qsgmii";
0152 status = "okay";
0153 };
0154
0155 &port6 {
0156 phys = <&serdes 6 SERDES6G(2)>;
0157 phy-handle = <&phy6>;
0158 phy-mode = "qsgmii";
0159 status = "okay";
0160 };
0161
0162 &port7 {
0163 phys = <&serdes 7 SERDES6G(2)>;
0164 phy-handle = <&phy7>;
0165 phy-mode = "qsgmii";
0166 status = "okay";
0167 };
0168
0169 &serdes {
0170 status = "okay";
0171 };
0172
0173 &sgpio {
0174 pinctrl-0 = <&sgpio_a_pins>, <&sgpio_b_pins>;
0175 pinctrl-names = "default";
0176 bus-frequency = <8000000>;
0177 /* arbitrary range because all GPIOs are in software mode */
0178 microchip,sgpio-port-ranges = <0 11>;
0179 status = "okay";
0180
0181 sgpio_in: gpio@0 {
0182 ngpios = <128>;
0183 };
0184
0185 sgpio_out: gpio@1 {
0186 ngpios = <128>;
0187 };
0188 };
0189
0190 &switch {
0191 status = "okay";
0192 };
0193
0194 &udc {
0195 pinctrl-0 = <&usbs_a_pins>;
0196 pinctrl-names = "default";
0197 atmel,vbus-gpio = <&gpio 66 GPIO_ACTIVE_HIGH>;
0198 status = "okay";
0199 };
0200
0201 &watchdog {
0202 status = "okay";
0203 };