1 // SPDX-License-Identifier: GPL-2.0
3 * Copyright (C) 2022 Microchip UNG
6 #include <dt-bindings/clock/microchip,lan966x.h>
7 #include <dt-bindings/gpio/gpio.h>
8 #include <dt-bindings/interrupt-controller/irq.h>
9 #include <dt-bindings/mfd/atmel-flexcom.h>
10 #include <dt-bindings/phy/phy-lan966x-serdes.h>
20 * These properties allow to avoid a dtc warnings.
21 * The real interrupt controller is the PCI device itself. It
22 * is the node on which the device tree overlay will be applied.
23 * This node has those properties.
25 #interrupt-cells = <1>;
32 cpu_clk: clock-600000000 {
33 compatible = "fixed-clock";
35 clock-frequency = <600000000>; /* CPU clock = 600MHz */
38 ddr_clk: clock-30000000 {
39 compatible = "fixed-clock";
41 clock-frequency = <30000000>; /* Fabric clock = 30MHz */
44 sys_clk: clock-15625000 {
45 compatible = "fixed-clock";
47 clock-frequency = <15625000>; /* System clock = 15.625MHz */
51 compatible = "simple-bus";
56 * map @0xe2000000 (32MB) to BAR0 (CPU)
57 * map @0xe0000000 (16MB) to BAR1 (AMBA)
59 ranges = <0xe2000000 0x00 0x00 0x00 0x2000000
60 0xe0000000 0x01 0x00 0x00 0x1000000>;
63 compatible = "microchip,lan966x-oic";
64 #interrupt-cells = <2>;
66 interrupts = <0>; /* PCI INTx assigned interrupt */
67 reg = <0xe00c0120 0x190>;
70 cpu_ctrl: syscon@e00c0000 {
71 compatible = "microchip,lan966x-cpu-syscon", "syscon";
72 reg = <0xe00c0000 0xa8>;
75 reset: reset@e200400c {
76 compatible = "microchip,lan966x-switch-reset";
77 reg = <0xe200400c 0x4>, <0xe00c0000 0xa8>;
78 reg-names = "gcb","cpu";
80 cpu-syscon = <&cpu_ctrl>;
83 gpio: pinctrl@e2004064 {
84 compatible = "microchip,lan966x-pinctrl";
85 reg = <0xe2004064 0xb4>,
88 reset-names = "switch";
91 gpio-ranges = <&gpio 0 0 78>;
92 interrupt-parent = <&oic>;
94 interrupts = <17 IRQ_TYPE_LEVEL_HIGH>;
95 #interrupt-cells = <2>;
99 function = "ptpsync_1";
102 fc0_a_pins: fcb4-i2c-pins {
104 pins = "GPIO_9", "GPIO_10";
110 serdes: serdes@e202c000 {
111 compatible = "microchip,lan966x-serdes";
112 reg = <0xe202c000 0x9c>,
117 mdio1: mdio@e200413c {
118 #address-cells = <1>;
120 compatible = "microchip,lan966x-miim";
121 reg = <0xe200413c 0x24>,
125 reset-names = "switch";
127 lan966x_phy0: ethernet-lan966x_phy@1 {
131 lan966x_phy1: ethernet-lan966x_phy@2 {
136 switch: switch@e0000000 {
137 compatible = "microchip,lan966x-switch";
138 reg = <0xe0000000 0x0100000>,
139 <0xe2000000 0x0800000>;
140 reg-names = "cpu", "gcb";
142 interrupt-parent = <&oic>;
143 interrupts = <12 IRQ_TYPE_LEVEL_HIGH>,
144 <9 IRQ_TYPE_LEVEL_HIGH>;
145 interrupt-names = "xtr", "ana";
148 reset-names = "switch";
150 pinctrl-names = "default";
151 pinctrl-0 = <&tod_pins>;
154 #address-cells = <1>;
158 phy-handle = <&lan966x_phy0>;
162 phys = <&serdes 0 CU(0)>;
166 phy-handle = <&lan966x_phy1>;
170 phys = <&serdes 1 CU(1)>;