xref: /openbmc/u-boot/arch/mips/dts/mscc,ocelot.dtsi (revision aff66f22d6eeb27c6329c0a3c1ebc52914c8affa)
16787c1ecSGregory CLEMENT// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
26787c1ecSGregory CLEMENT/*
36787c1ecSGregory CLEMENT * Copyright (c) 2018 Microsemi Corporation
46787c1ecSGregory CLEMENT */
56787c1ecSGregory CLEMENT
66787c1ecSGregory CLEMENT/ {
76787c1ecSGregory CLEMENT	#address-cells = <1>;
86787c1ecSGregory CLEMENT	#size-cells = <1>;
96787c1ecSGregory CLEMENT	compatible = "mscc,ocelot";
106787c1ecSGregory CLEMENT
116787c1ecSGregory CLEMENT	cpus {
126787c1ecSGregory CLEMENT		#address-cells = <1>;
136787c1ecSGregory CLEMENT		#size-cells = <0>;
146787c1ecSGregory CLEMENT
156787c1ecSGregory CLEMENT		cpu@0 {
166787c1ecSGregory CLEMENT			compatible = "mips,mips24KEc";
176787c1ecSGregory CLEMENT			device_type = "cpu";
186787c1ecSGregory CLEMENT			clocks = <&cpu_clk>;
196787c1ecSGregory CLEMENT			reg = <0>;
206787c1ecSGregory CLEMENT		};
216787c1ecSGregory CLEMENT	};
226787c1ecSGregory CLEMENT
236787c1ecSGregory CLEMENT	aliases {
246787c1ecSGregory CLEMENT		serial0 = &uart0;
256787c1ecSGregory CLEMENT	};
266787c1ecSGregory CLEMENT
276787c1ecSGregory CLEMENT	cpuintc: interrupt-controller@0 {
286787c1ecSGregory CLEMENT		#address-cells = <0>;
296787c1ecSGregory CLEMENT		#interrupt-cells = <1>;
306787c1ecSGregory CLEMENT		interrupt-controller;
316787c1ecSGregory CLEMENT		compatible = "mti,cpu-interrupt-controller";
326787c1ecSGregory CLEMENT	};
336787c1ecSGregory CLEMENT
346787c1ecSGregory CLEMENT	cpu_clk: cpu-clock {
356787c1ecSGregory CLEMENT		compatible = "fixed-clock";
366787c1ecSGregory CLEMENT		#clock-cells = <0>;
376787c1ecSGregory CLEMENT		clock-frequency = <500000000>;
386787c1ecSGregory CLEMENT	};
396787c1ecSGregory CLEMENT
4026ad3c43SLars Povlsen	sys_clk: sys-clk {
4126ad3c43SLars Povlsen		compatible = "fixed-clock";
4226ad3c43SLars Povlsen		#clock-cells = <0>;
4326ad3c43SLars Povlsen		clock-frequency = <250000000>;
4426ad3c43SLars Povlsen	};
4526ad3c43SLars Povlsen
466787c1ecSGregory CLEMENT	ahb_clk: ahb-clk {
476787c1ecSGregory CLEMENT		compatible = "fixed-clock";
486787c1ecSGregory CLEMENT		#clock-cells = <0>;
496787c1ecSGregory CLEMENT		clock-frequency = <250000000>;
506787c1ecSGregory CLEMENT	};
516787c1ecSGregory CLEMENT
526787c1ecSGregory CLEMENT	ahb {
536787c1ecSGregory CLEMENT		compatible = "simple-bus";
546787c1ecSGregory CLEMENT		#address-cells = <1>;
556787c1ecSGregory CLEMENT		#size-cells = <1>;
566787c1ecSGregory CLEMENT		ranges = <0 0x70000000 0x2000000>;
576787c1ecSGregory CLEMENT
586787c1ecSGregory CLEMENT		interrupt-parent = <&intc>;
596787c1ecSGregory CLEMENT
606787c1ecSGregory CLEMENT		cpu_ctrl: syscon@0 {
616787c1ecSGregory CLEMENT			compatible = "mscc,ocelot-cpu-syscon", "syscon";
626787c1ecSGregory CLEMENT			reg = <0x0 0x2c>;
636787c1ecSGregory CLEMENT		};
646787c1ecSGregory CLEMENT
656787c1ecSGregory CLEMENT		intc: interrupt-controller@70 {
666787c1ecSGregory CLEMENT			compatible = "mscc,ocelot-icpu-intr";
676787c1ecSGregory CLEMENT			reg = <0x70 0x70>;
686787c1ecSGregory CLEMENT			#interrupt-cells = <1>;
696787c1ecSGregory CLEMENT			interrupt-controller;
706787c1ecSGregory CLEMENT			interrupt-parent = <&cpuintc>;
716787c1ecSGregory CLEMENT			interrupts = <2>;
726787c1ecSGregory CLEMENT		};
736787c1ecSGregory CLEMENT
746787c1ecSGregory CLEMENT		uart0: serial@100000 {
756787c1ecSGregory CLEMENT			pinctrl-0 = <&uart_pins>;
766787c1ecSGregory CLEMENT			pinctrl-names = "default";
776787c1ecSGregory CLEMENT			compatible = "ns16550a";
786787c1ecSGregory CLEMENT			reg = <0x100000 0x20>;
796787c1ecSGregory CLEMENT			interrupts = <6>;
806787c1ecSGregory CLEMENT			clocks = <&ahb_clk>;
816787c1ecSGregory CLEMENT			reg-io-width = <4>;
826787c1ecSGregory CLEMENT			reg-shift = <2>;
836787c1ecSGregory CLEMENT
846787c1ecSGregory CLEMENT			status = "disabled";
856787c1ecSGregory CLEMENT		};
866787c1ecSGregory CLEMENT
876787c1ecSGregory CLEMENT		uart2: serial@100800 {
886787c1ecSGregory CLEMENT			pinctrl-0 = <&uart2_pins>;
896787c1ecSGregory CLEMENT			pinctrl-names = "default";
906787c1ecSGregory CLEMENT			compatible = "ns16550a";
916787c1ecSGregory CLEMENT			reg = <0x100800 0x20>;
926787c1ecSGregory CLEMENT			interrupts = <7>;
936787c1ecSGregory CLEMENT			clocks = <&ahb_clk>;
946787c1ecSGregory CLEMENT			reg-io-width = <4>;
956787c1ecSGregory CLEMENT			reg-shift = <2>;
966787c1ecSGregory CLEMENT
976787c1ecSGregory CLEMENT			status = "disabled";
986787c1ecSGregory CLEMENT		};
996787c1ecSGregory CLEMENT
1006787c1ecSGregory CLEMENT		spi0: spi-master@101000 {
1016787c1ecSGregory CLEMENT			#address-cells = <1>;
1026787c1ecSGregory CLEMENT			#size-cells = <0>;
1036787c1ecSGregory CLEMENT			compatible = "snps,dw-apb-ssi";
1046787c1ecSGregory CLEMENT			reg = <0x101000 0x40>;
1056787c1ecSGregory CLEMENT			num-chipselect = <4>;
1066787c1ecSGregory CLEMENT			bus-num = <0>;
1076787c1ecSGregory CLEMENT			reg-io-width = <4>;
1086787c1ecSGregory CLEMENT			reg-shift = <2>;
1096787c1ecSGregory CLEMENT			spi-max-frequency = <18000000>; /* input clock */
1106787c1ecSGregory CLEMENT			clocks = <&ahb_clk>;
1116787c1ecSGregory CLEMENT
1126787c1ecSGregory CLEMENT			status = "disabled";
1136787c1ecSGregory CLEMENT		};
1146787c1ecSGregory CLEMENT
115*55037902SGregory CLEMENT		switch@1010000 {
116*55037902SGregory CLEMENT			pinctrl-0 = <&miim1_pins>;
117*55037902SGregory CLEMENT			pinctrl-names = "default";
118*55037902SGregory CLEMENT
119*55037902SGregory CLEMENT			compatible = "mscc,vsc7514-switch";
120*55037902SGregory CLEMENT			reg = <0x1010000 0x10000>, /* VTSS_TO_SYS */
121*55037902SGregory CLEMENT			      <0x1030000 0x10000>, /* VTSS_TO_REW */
122*55037902SGregory CLEMENT			      <0x1080000 0x100>, /* VTSS_TO_DEVCPU_QS */
123*55037902SGregory CLEMENT			      <0x10d0000 0x10000>, /* VTSS_TO_HSIO */
124*55037902SGregory CLEMENT			      <0x11e0000 0x100>, /* VTSS_TO_DEV_0 */
125*55037902SGregory CLEMENT			      <0x11f0000 0x100>, /* VTSS_TO_DEV_1 */
126*55037902SGregory CLEMENT			      <0x1200000 0x100>, /* VTSS_TO_DEV_2 */
127*55037902SGregory CLEMENT			      <0x1210000 0x100>, /* VTSS_TO_DEV_3 */
128*55037902SGregory CLEMENT			      <0x1220000 0x100>, /* VTSS_TO_DEV_4 */
129*55037902SGregory CLEMENT			      <0x1230000 0x100>, /* VTSS_TO_DEV_5 */
130*55037902SGregory CLEMENT			      <0x1240000 0x100>, /* VTSS_TO_DEV_6 */
131*55037902SGregory CLEMENT			      <0x1250000 0x100>, /* VTSS_TO_DEV_7 */
132*55037902SGregory CLEMENT			      <0x1260000 0x100>, /* VTSS_TO_DEV_8 */
133*55037902SGregory CLEMENT			      <0x1270000 0x100>, /* NA */
134*55037902SGregory CLEMENT			      <0x1280000 0x100>, /* NA */
135*55037902SGregory CLEMENT			      <0x1800000 0x80000>, /* VTSS_TO_QSYS */
136*55037902SGregory CLEMENT			      <0x1880000 0x10000>; /* VTSS_TO_ANA */
137*55037902SGregory CLEMENT			reg-names = "sys", "rew", "qs", "hsio", "port0",
138*55037902SGregory CLEMENT				    "port1", "port2", "port3", "port4", "port5",
139*55037902SGregory CLEMENT				    "port6", "port7", "port8", "port9",
140*55037902SGregory CLEMENT				    "port10", "qsys", "ana";
141*55037902SGregory CLEMENT			interrupts = <21 22>;
142*55037902SGregory CLEMENT			interrupt-names = "xtr", "inj";
143*55037902SGregory CLEMENT			status = "okay";
144*55037902SGregory CLEMENT
145*55037902SGregory CLEMENT			ethernet-ports {
146*55037902SGregory CLEMENT				#address-cells = <1>;
147*55037902SGregory CLEMENT				#size-cells = <0>;
148*55037902SGregory CLEMENT
149*55037902SGregory CLEMENT				port0: port@0 {
150*55037902SGregory CLEMENT					reg = <0>;
151*55037902SGregory CLEMENT				};
152*55037902SGregory CLEMENT				port1: port@1 {
153*55037902SGregory CLEMENT					reg = <1>;
154*55037902SGregory CLEMENT				};
155*55037902SGregory CLEMENT				port2: port@2 {
156*55037902SGregory CLEMENT					reg = <2>;
157*55037902SGregory CLEMENT				};
158*55037902SGregory CLEMENT				port3: port@3 {
159*55037902SGregory CLEMENT					reg = <3>;
160*55037902SGregory CLEMENT				};
161*55037902SGregory CLEMENT				port4: port@4 {
162*55037902SGregory CLEMENT					reg = <4>;
163*55037902SGregory CLEMENT				};
164*55037902SGregory CLEMENT				port5: port@5 {
165*55037902SGregory CLEMENT					reg = <5>;
166*55037902SGregory CLEMENT				};
167*55037902SGregory CLEMENT				port6: port@6 {
168*55037902SGregory CLEMENT					reg = <6>;
169*55037902SGregory CLEMENT				};
170*55037902SGregory CLEMENT				port7: port@7 {
171*55037902SGregory CLEMENT					reg = <7>;
172*55037902SGregory CLEMENT				};
173*55037902SGregory CLEMENT				port8: port@8 {
174*55037902SGregory CLEMENT					reg = <8>;
175*55037902SGregory CLEMENT				};
176*55037902SGregory CLEMENT				port9: port@9 {
177*55037902SGregory CLEMENT					reg = <9>;
178*55037902SGregory CLEMENT				};
179*55037902SGregory CLEMENT				port10: port@10 {
180*55037902SGregory CLEMENT					reg = <10>;
181*55037902SGregory CLEMENT				};
182*55037902SGregory CLEMENT			};
183*55037902SGregory CLEMENT		};
184*55037902SGregory CLEMENT
185*55037902SGregory CLEMENT		mdio0: mdio@107009c {
186*55037902SGregory CLEMENT			#address-cells = <1>;
187*55037902SGregory CLEMENT			#size-cells = <0>;
188*55037902SGregory CLEMENT			compatible = "mscc,ocelot-miim";
189*55037902SGregory CLEMENT			reg = <0x107009c 0x24>, <0x10700f0 0x8>;
190*55037902SGregory CLEMENT			interrupts = <14>;
191*55037902SGregory CLEMENT			status = "disabled";
192*55037902SGregory CLEMENT
193*55037902SGregory CLEMENT			phy0: ethernet-phy@0 {
194*55037902SGregory CLEMENT				reg = <0>;
195*55037902SGregory CLEMENT			};
196*55037902SGregory CLEMENT			phy1: ethernet-phy@1 {
197*55037902SGregory CLEMENT				reg = <1>;
198*55037902SGregory CLEMENT			};
199*55037902SGregory CLEMENT			phy2: ethernet-phy@2 {
200*55037902SGregory CLEMENT				reg = <2>;
201*55037902SGregory CLEMENT			};
202*55037902SGregory CLEMENT			phy3: ethernet-phy@3 {
203*55037902SGregory CLEMENT				reg = <3>;
204*55037902SGregory CLEMENT			};
205*55037902SGregory CLEMENT		};
206*55037902SGregory CLEMENT
2076787c1ecSGregory CLEMENT		reset@1070008 {
2086787c1ecSGregory CLEMENT			compatible = "mscc,ocelot-chip-reset";
2096787c1ecSGregory CLEMENT			reg = <0x1070008 0x4>;
2106787c1ecSGregory CLEMENT		};
2116787c1ecSGregory CLEMENT
2126787c1ecSGregory CLEMENT		gpio: pinctrl@1070034 {
2136787c1ecSGregory CLEMENT			compatible = "mscc,ocelot-pinctrl";
2146787c1ecSGregory CLEMENT			reg = <0x1070034 0x68>;
2156787c1ecSGregory CLEMENT			gpio-controller;
2166787c1ecSGregory CLEMENT			#gpio-cells = <2>;
2176787c1ecSGregory CLEMENT			gpio-ranges = <&gpio 0 0 22>;
2186787c1ecSGregory CLEMENT
21926ad3c43SLars Povlsen			sgpio_pins: sgpio-pins {
22026ad3c43SLars Povlsen				pins = "GPIO_0", "GPIO_1", "GPIO_2", "GPIO_3";
22126ad3c43SLars Povlsen				function = "sg0";
22226ad3c43SLars Povlsen			};
22326ad3c43SLars Povlsen
2246787c1ecSGregory CLEMENT			uart_pins: uart-pins {
2256787c1ecSGregory CLEMENT				pins = "GPIO_6", "GPIO_7";
2266787c1ecSGregory CLEMENT				function = "uart";
2276787c1ecSGregory CLEMENT			};
2286787c1ecSGregory CLEMENT
2296787c1ecSGregory CLEMENT			uart2_pins: uart2-pins {
2306787c1ecSGregory CLEMENT				pins = "GPIO_12", "GPIO_13";
2316787c1ecSGregory CLEMENT				function = "uart2";
2326787c1ecSGregory CLEMENT			};
2336787c1ecSGregory CLEMENT
2346787c1ecSGregory CLEMENT			spi_cs1_pin: spi-cs1-pin {
2356787c1ecSGregory CLEMENT				pins = "GPIO_8";
2366787c1ecSGregory CLEMENT				function = "si";
2376787c1ecSGregory CLEMENT			};
2386787c1ecSGregory CLEMENT
239*55037902SGregory CLEMENT			miim1_pins: miim1-pins {
240*55037902SGregory CLEMENT				pins = "GPIO_14", "GPIO_15";
241*55037902SGregory CLEMENT				function = "miim1";
242*55037902SGregory CLEMENT			};
243*55037902SGregory CLEMENT
2446787c1ecSGregory CLEMENT			spi_cs2_pin: spi-cs2-pin {
2456787c1ecSGregory CLEMENT				pins = "GPIO_9";
2466787c1ecSGregory CLEMENT				function = "si";
2476787c1ecSGregory CLEMENT			};
2486787c1ecSGregory CLEMENT
2496787c1ecSGregory CLEMENT			spi_cs3_pin: spi-cs3-pin {
2506787c1ecSGregory CLEMENT				pins = "GPIO_16";
2516787c1ecSGregory CLEMENT				function = "si";
2526787c1ecSGregory CLEMENT			};
2536787c1ecSGregory CLEMENT
2546787c1ecSGregory CLEMENT			spi_cs4_pin: spi-cs4-pin {
2556787c1ecSGregory CLEMENT				pins = "GPIO_17";
2566787c1ecSGregory CLEMENT				function = "si";
2576787c1ecSGregory CLEMENT			};
2586787c1ecSGregory CLEMENT		};
25926ad3c43SLars Povlsen
26026ad3c43SLars Povlsen		sgpio: gpio@10700f8 {
26126ad3c43SLars Povlsen			compatible = "mscc,ocelot-sgpio";
26226ad3c43SLars Povlsen			status = "disabled";
26326ad3c43SLars Povlsen			clocks = <&sys_clk>;
26426ad3c43SLars Povlsen			pinctrl-0 = <&sgpio_pins>;
26526ad3c43SLars Povlsen			pinctrl-names = "default";
26626ad3c43SLars Povlsen			reg = <0x10700f8 0x100>;
26726ad3c43SLars Povlsen			gpio-controller;
26826ad3c43SLars Povlsen			#gpio-cells = <2>;
26926ad3c43SLars Povlsen			gpio-ranges = <&sgpio 0 0 64>;
27026ad3c43SLars Povlsen		};
2716787c1ecSGregory CLEMENT	};
2726787c1ecSGregory CLEMENT};
273