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