xref: /freebsd/sys/contrib/device-tree/src/arm/broadcom/bcm6846-genexis-xg6846b.dts (revision 2846c90520eb4cc74e24d586a0ea0f4a0006bc73)
1*2846c905SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*2846c905SEmmanuel Vadot/*
3*2846c905SEmmanuel Vadot * Copyright 2024 Linus Walleij <linus.walleij@linaro.org>
4*2846c905SEmmanuel Vadot */
5*2846c905SEmmanuel Vadot
6*2846c905SEmmanuel Vadot/dts-v1/;
7*2846c905SEmmanuel Vadot
8*2846c905SEmmanuel Vadot#include "bcm6846.dtsi"
9*2846c905SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
10*2846c905SEmmanuel Vadot#include <dt-bindings/input/input.h>
11*2846c905SEmmanuel Vadot#include <dt-bindings/leds/common.h>
12*2846c905SEmmanuel Vadot
13*2846c905SEmmanuel Vadot/ {
14*2846c905SEmmanuel Vadot	model = "Genexis XG6846B Ethernet layer 2/3 router";
15*2846c905SEmmanuel Vadot	compatible = "genexis,xg6846b", "brcm,bcm6846", "brcm,bcmbca";
16*2846c905SEmmanuel Vadot
17*2846c905SEmmanuel Vadot	aliases {
18*2846c905SEmmanuel Vadot		serial0 = &uart0;
19*2846c905SEmmanuel Vadot	};
20*2846c905SEmmanuel Vadot
21*2846c905SEmmanuel Vadot	chosen {
22*2846c905SEmmanuel Vadot		stdout-path = "serial0:115200n8";
23*2846c905SEmmanuel Vadot	};
24*2846c905SEmmanuel Vadot
25*2846c905SEmmanuel Vadot	/* Micron D9PTK 256 MB RAM */
26*2846c905SEmmanuel Vadot	memory@0 {
27*2846c905SEmmanuel Vadot		device_type = "memory";
28*2846c905SEmmanuel Vadot		reg = <0x0 0x10000000>;
29*2846c905SEmmanuel Vadot	};
30*2846c905SEmmanuel Vadot
31*2846c905SEmmanuel Vadot	reserved-memory {
32*2846c905SEmmanuel Vadot		#address-cells = <1>;
33*2846c905SEmmanuel Vadot		#size-cells = <1>;
34*2846c905SEmmanuel Vadot		ranges;
35*2846c905SEmmanuel Vadot
36*2846c905SEmmanuel Vadot		secondary-boot@0 {
37*2846c905SEmmanuel Vadot			no-map;
38*2846c905SEmmanuel Vadot			reg = <0x00000000 0x00008000>;
39*2846c905SEmmanuel Vadot		};
40*2846c905SEmmanuel Vadot		pmc3-firmware@8000 {
41*2846c905SEmmanuel Vadot			no-map;
42*2846c905SEmmanuel Vadot			reg = <0x00008000 0x00100000>;
43*2846c905SEmmanuel Vadot		};
44*2846c905SEmmanuel Vadot	};
45*2846c905SEmmanuel Vadot
46*2846c905SEmmanuel Vadot	gpio-keys {
47*2846c905SEmmanuel Vadot		compatible = "gpio-keys-polled";
48*2846c905SEmmanuel Vadot		poll-interval = <20000>;
49*2846c905SEmmanuel Vadot
50*2846c905SEmmanuel Vadot		/* Called "canyon rescue button" in the vendor DTB */
51*2846c905SEmmanuel Vadot		button-restart {
52*2846c905SEmmanuel Vadot			label = "Reset";
53*2846c905SEmmanuel Vadot			linux,code = <KEY_RESTART>;
54*2846c905SEmmanuel Vadot			gpios = <&gpio0 41 GPIO_ACTIVE_LOW>;
55*2846c905SEmmanuel Vadot		};
56*2846c905SEmmanuel Vadot	};
57*2846c905SEmmanuel Vadot};
58*2846c905SEmmanuel Vadot
59*2846c905SEmmanuel Vadot&gpio0 {
60*2846c905SEmmanuel Vadot	status = "okay";
61*2846c905SEmmanuel Vadot};
62*2846c905SEmmanuel Vadot
63*2846c905SEmmanuel Vadot&gpio1 {
64*2846c905SEmmanuel Vadot	status = "okay";
65*2846c905SEmmanuel Vadot};
66*2846c905SEmmanuel Vadot
67*2846c905SEmmanuel Vadot&gpio2 {
68*2846c905SEmmanuel Vadot	status = "okay";
69*2846c905SEmmanuel Vadot	/* Totally 79 GPIOs are available */
70*2846c905SEmmanuel Vadot	ngpios = <15>;
71*2846c905SEmmanuel Vadot};
72*2846c905SEmmanuel Vadot
73*2846c905SEmmanuel Vadot&uart0 {
74*2846c905SEmmanuel Vadot	status = "okay";
75*2846c905SEmmanuel Vadot};
76*2846c905SEmmanuel Vadot
77*2846c905SEmmanuel Vadot&leds {
78*2846c905SEmmanuel Vadot	status = "okay";
79*2846c905SEmmanuel Vadot	brcm,serial-shift-bits = <16>;
80*2846c905SEmmanuel Vadot
81*2846c905SEmmanuel Vadot	led@0 {
82*2846c905SEmmanuel Vadot		reg = <0>;
83*2846c905SEmmanuel Vadot		active-low;
84*2846c905SEmmanuel Vadot		function = "ext";
85*2846c905SEmmanuel Vadot		color = <LED_COLOR_ID_GREEN>;
86*2846c905SEmmanuel Vadot	};
87*2846c905SEmmanuel Vadot
88*2846c905SEmmanuel Vadot	led@1 {
89*2846c905SEmmanuel Vadot		reg = <1>;
90*2846c905SEmmanuel Vadot		active-low;
91*2846c905SEmmanuel Vadot		function = "ext";
92*2846c905SEmmanuel Vadot		color = <LED_COLOR_ID_AMBER>;
93*2846c905SEmmanuel Vadot	};
94*2846c905SEmmanuel Vadot
95*2846c905SEmmanuel Vadot	led@3 {
96*2846c905SEmmanuel Vadot		reg = <3>;
97*2846c905SEmmanuel Vadot		active-low;
98*2846c905SEmmanuel Vadot		function = LED_FUNCTION_WAN;
99*2846c905SEmmanuel Vadot		color = <LED_COLOR_ID_AMBER>;
100*2846c905SEmmanuel Vadot	};
101*2846c905SEmmanuel Vadot
102*2846c905SEmmanuel Vadot	led@4 {
103*2846c905SEmmanuel Vadot		reg = <4>;
104*2846c905SEmmanuel Vadot		active-low;
105*2846c905SEmmanuel Vadot		function = LED_FUNCTION_WAN;
106*2846c905SEmmanuel Vadot		color = <LED_COLOR_ID_GREEN>;
107*2846c905SEmmanuel Vadot	};
108*2846c905SEmmanuel Vadot
109*2846c905SEmmanuel Vadot	led@5 {
110*2846c905SEmmanuel Vadot		reg = <5>;
111*2846c905SEmmanuel Vadot		active-low;
112*2846c905SEmmanuel Vadot		function = LED_FUNCTION_POWER;
113*2846c905SEmmanuel Vadot		color = <LED_COLOR_ID_GREEN>;
114*2846c905SEmmanuel Vadot	};
115*2846c905SEmmanuel Vadot
116*2846c905SEmmanuel Vadot	led@6 {
117*2846c905SEmmanuel Vadot		reg = <6>;
118*2846c905SEmmanuel Vadot		active-low;
119*2846c905SEmmanuel Vadot		function = LED_FUNCTION_POWER;
120*2846c905SEmmanuel Vadot		color = <LED_COLOR_ID_RED>;
121*2846c905SEmmanuel Vadot	};
122*2846c905SEmmanuel Vadot
123*2846c905SEmmanuel Vadot	led@15 {
124*2846c905SEmmanuel Vadot		reg = <15>;
125*2846c905SEmmanuel Vadot		active-low;
126*2846c905SEmmanuel Vadot		function = LED_FUNCTION_USB;
127*2846c905SEmmanuel Vadot		color = <LED_COLOR_ID_GREEN>;
128*2846c905SEmmanuel Vadot	};
129*2846c905SEmmanuel Vadot
130*2846c905SEmmanuel Vadot	led@7 {
131*2846c905SEmmanuel Vadot		/* Activity 03 */
132*2846c905SEmmanuel Vadot		reg = <7>;
133*2846c905SEmmanuel Vadot		active-low;
134*2846c905SEmmanuel Vadot		function = "lan1";
135*2846c905SEmmanuel Vadot		color = <LED_COLOR_ID_AMBER>;
136*2846c905SEmmanuel Vadot	};
137*2846c905SEmmanuel Vadot
138*2846c905SEmmanuel Vadot	led@8 {
139*2846c905SEmmanuel Vadot		/* Activity 04 */
140*2846c905SEmmanuel Vadot		reg = <8>;
141*2846c905SEmmanuel Vadot		active-low;
142*2846c905SEmmanuel Vadot		function = "lan1";
143*2846c905SEmmanuel Vadot		color = <LED_COLOR_ID_GREEN>;
144*2846c905SEmmanuel Vadot	};
145*2846c905SEmmanuel Vadot
146*2846c905SEmmanuel Vadot	led@9 {
147*2846c905SEmmanuel Vadot		/* Activity 03 */
148*2846c905SEmmanuel Vadot		reg = <9>;
149*2846c905SEmmanuel Vadot		active-low;
150*2846c905SEmmanuel Vadot		function = "lan2";
151*2846c905SEmmanuel Vadot		color = <LED_COLOR_ID_AMBER>;
152*2846c905SEmmanuel Vadot	};
153*2846c905SEmmanuel Vadot
154*2846c905SEmmanuel Vadot	led@10 {
155*2846c905SEmmanuel Vadot		/* Activity 04 */
156*2846c905SEmmanuel Vadot		reg = <10>;
157*2846c905SEmmanuel Vadot		active-low;
158*2846c905SEmmanuel Vadot		function = "lan2";
159*2846c905SEmmanuel Vadot		color = <LED_COLOR_ID_GREEN>;
160*2846c905SEmmanuel Vadot	};
161*2846c905SEmmanuel Vadot
162*2846c905SEmmanuel Vadot	led@11 {
163*2846c905SEmmanuel Vadot		/* Activity 03 */
164*2846c905SEmmanuel Vadot		reg = <11>;
165*2846c905SEmmanuel Vadot		active-low;
166*2846c905SEmmanuel Vadot		function = "lan3";
167*2846c905SEmmanuel Vadot		color = <LED_COLOR_ID_AMBER>;
168*2846c905SEmmanuel Vadot	};
169*2846c905SEmmanuel Vadot
170*2846c905SEmmanuel Vadot	led@12 {
171*2846c905SEmmanuel Vadot		/* Activity 04 */
172*2846c905SEmmanuel Vadot		reg = <12>;
173*2846c905SEmmanuel Vadot		active-low;
174*2846c905SEmmanuel Vadot		function = "lan3";
175*2846c905SEmmanuel Vadot		color = <LED_COLOR_ID_GREEN>;
176*2846c905SEmmanuel Vadot	};
177*2846c905SEmmanuel Vadot
178*2846c905SEmmanuel Vadot	led@13 {
179*2846c905SEmmanuel Vadot		/* Activity 03 */
180*2846c905SEmmanuel Vadot		reg = <13>;
181*2846c905SEmmanuel Vadot		active-low;
182*2846c905SEmmanuel Vadot		function = "lan4";
183*2846c905SEmmanuel Vadot		color = <LED_COLOR_ID_AMBER>;
184*2846c905SEmmanuel Vadot	};
185*2846c905SEmmanuel Vadot
186*2846c905SEmmanuel Vadot	led@14 {
187*2846c905SEmmanuel Vadot		/* Activity 04 */
188*2846c905SEmmanuel Vadot		reg = <14>;
189*2846c905SEmmanuel Vadot		active-low;
190*2846c905SEmmanuel Vadot		function = "lan4";
191*2846c905SEmmanuel Vadot		color = <LED_COLOR_ID_GREEN>;
192*2846c905SEmmanuel Vadot	};
193*2846c905SEmmanuel Vadot};
194*2846c905SEmmanuel Vadot
195*2846c905SEmmanuel Vadot&hsspi {
196*2846c905SEmmanuel Vadot	status = "okay";
197*2846c905SEmmanuel Vadot};
198*2846c905SEmmanuel Vadot
199*2846c905SEmmanuel Vadot&nand_controller {
200*2846c905SEmmanuel Vadot	brcm,wp-not-connected;
201*2846c905SEmmanuel Vadot	status = "okay";
202*2846c905SEmmanuel Vadot};
203*2846c905SEmmanuel Vadot
204*2846c905SEmmanuel Vadot&nandcs {
205*2846c905SEmmanuel Vadot	nand-on-flash-bbt;
206*2846c905SEmmanuel Vadot	brcm,nand-ecc-use-strap;
207*2846c905SEmmanuel Vadot
208*2846c905SEmmanuel Vadot	/* Winbond W29N02GV, 256MB with 128KB erase blocks */
209*2846c905SEmmanuel Vadot	partitions {
210*2846c905SEmmanuel Vadot		compatible = "fixed-partitions";
211*2846c905SEmmanuel Vadot		#address-cells = <1>;
212*2846c905SEmmanuel Vadot		#size-cells = <1>;
213*2846c905SEmmanuel Vadot
214*2846c905SEmmanuel Vadot		loader@0 {
215*2846c905SEmmanuel Vadot			label = "loader";
216*2846c905SEmmanuel Vadot			reg = <0x00000000 0x00400000>;
217*2846c905SEmmanuel Vadot		};
218*2846c905SEmmanuel Vadot		image@400000 {
219*2846c905SEmmanuel Vadot			label = "image";
220*2846c905SEmmanuel Vadot			reg = <0x00400000 0x0fb00000>;
221*2846c905SEmmanuel Vadot		};
222*2846c905SEmmanuel Vadot		/* 0x00ff0000-0x00ffffff: bad block list */
223*2846c905SEmmanuel Vadot	};
224*2846c905SEmmanuel Vadot};
225*2846c905SEmmanuel Vadot
226*2846c905SEmmanuel Vadot&mdio {
227*2846c905SEmmanuel Vadot	status = "okay";
228*2846c905SEmmanuel Vadot
229*2846c905SEmmanuel Vadot	phy1: ethernet-phy@1 {
230*2846c905SEmmanuel Vadot		reg = <1>;
231*2846c905SEmmanuel Vadot	};
232*2846c905SEmmanuel Vadot	phy2: ethernet-phy@2 {
233*2846c905SEmmanuel Vadot		reg = <2>;
234*2846c905SEmmanuel Vadot	};
235*2846c905SEmmanuel Vadot	phy3: ethernet-phy@3 {
236*2846c905SEmmanuel Vadot		reg = <3>;
237*2846c905SEmmanuel Vadot	};
238*2846c905SEmmanuel Vadot	phy4: ethernet-phy@4 {
239*2846c905SEmmanuel Vadot		reg = <4>;
240*2846c905SEmmanuel Vadot	};
241*2846c905SEmmanuel Vadot	phy21: ethernet-phy@21 {
242*2846c905SEmmanuel Vadot		reg = <21>;
243*2846c905SEmmanuel Vadot	};
244*2846c905SEmmanuel Vadot};
245