xref: /linux/arch/arm/boot/dts/broadcom/bcm53016-meraki-mr32.dts (revision c771600c6af14749609b49565ffb4cac2959710d)
1ec88a9c3SChristian Lamparter// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2ec88a9c3SChristian Lamparter/*
3ec88a9c3SChristian Lamparter * Broadcom BCM470X / BCM5301X ARM platform code.
4ec88a9c3SChristian Lamparter * DTS for Meraki MR32 / Codename: Espresso
5ec88a9c3SChristian Lamparter *
6ec88a9c3SChristian Lamparter * Copyright (C) 2018-2020 Christian Lamparter <chunkeey@gmail.com>
7ec88a9c3SChristian Lamparter */
8ec88a9c3SChristian Lamparter
9ec88a9c3SChristian Lamparter/dts-v1/;
10ec88a9c3SChristian Lamparter
11ec88a9c3SChristian Lamparter#include "bcm4708.dtsi"
12ec88a9c3SChristian Lamparter#include "bcm5301x-nand-cs0-bch8.dtsi"
13ec88a9c3SChristian Lamparter#include <dt-bindings/leds/common.h>
14ec88a9c3SChristian Lamparter
15ec88a9c3SChristian Lamparter/ {
1669bb5c6fSArınç ÜNAL	compatible = "meraki,mr32", "brcm,bcm53016", "brcm,bcm4708";
17ec88a9c3SChristian Lamparter	model = "Meraki MR32";
18ec88a9c3SChristian Lamparter
19ec88a9c3SChristian Lamparter	chosen {
20ec88a9c3SChristian Lamparter		bootargs = " console=ttyS0,115200n8 earlycon";
21ec88a9c3SChristian Lamparter	};
22ec88a9c3SChristian Lamparter
23c5e1df32SRafał Miłecki	memory@0 {
24ec88a9c3SChristian Lamparter		reg = <0x00000000 0x08000000>;
25ec88a9c3SChristian Lamparter		device_type = "memory";
26ec88a9c3SChristian Lamparter	};
27ec88a9c3SChristian Lamparter
28ec88a9c3SChristian Lamparter	aliases {
29ec88a9c3SChristian Lamparter		serial1 = &uart2;
30ec88a9c3SChristian Lamparter	};
31ec88a9c3SChristian Lamparter
32ec88a9c3SChristian Lamparter	leds {
33ec88a9c3SChristian Lamparter		compatible = "gpio-leds";
34ec88a9c3SChristian Lamparter
35ec88a9c3SChristian Lamparter		sysled3 {
36ec88a9c3SChristian Lamparter			function = LED_FUNCTION_FAULT;
37ec88a9c3SChristian Lamparter			color = <LED_COLOR_ID_AMBER>;
38ec88a9c3SChristian Lamparter			gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
39ec88a9c3SChristian Lamparter			panic-indicator;
40ec88a9c3SChristian Lamparter		};
41ec88a9c3SChristian Lamparter		sysled2 {
42ec88a9c3SChristian Lamparter			function = LED_FUNCTION_INDICATOR;
43ec88a9c3SChristian Lamparter			color = <LED_COLOR_ID_WHITE>;
44ec88a9c3SChristian Lamparter			gpios = <&chipcommon 19 GPIO_ACTIVE_HIGH>;
45ec88a9c3SChristian Lamparter		};
46ec88a9c3SChristian Lamparter	};
47ec88a9c3SChristian Lamparter
48ec88a9c3SChristian Lamparter	keys {
49ec88a9c3SChristian Lamparter		compatible = "gpio-keys";
50ec88a9c3SChristian Lamparter
51c5aec561SKrzysztof Kozlowski		button-restart {
52ec88a9c3SChristian Lamparter			label = "Reset";
53ec88a9c3SChristian Lamparter			linux,code = <KEY_RESTART>;
54ec88a9c3SChristian Lamparter			gpios = <&chipcommon 21 GPIO_ACTIVE_LOW>;
55ec88a9c3SChristian Lamparter		};
56ec88a9c3SChristian Lamparter	};
57ec88a9c3SChristian Lamparter
58ec88a9c3SChristian Lamparter	pwm-leds {
59ec88a9c3SChristian Lamparter		compatible = "pwm-leds";
60ec88a9c3SChristian Lamparter
61af84101eSKrzysztof Kozlowski		led-0 {
62ec88a9c3SChristian Lamparter			/* SYS-LED 1 - Tricolor */
63ec88a9c3SChristian Lamparter			function = LED_FUNCTION_INDICATOR;
64ec88a9c3SChristian Lamparter			color = <LED_COLOR_ID_RED>;
65ec88a9c3SChristian Lamparter			pwms = <&pwm 0 50000 0>;
66ec88a9c3SChristian Lamparter			max-brightness = <255>;
67ec88a9c3SChristian Lamparter		};
68ec88a9c3SChristian Lamparter
69af84101eSKrzysztof Kozlowski		led-1 {
70ec88a9c3SChristian Lamparter			/* SYS-LED 1 - Tricolor */
71ec88a9c3SChristian Lamparter			function = LED_FUNCTION_POWER;
72ec88a9c3SChristian Lamparter			color = <LED_COLOR_ID_GREEN>;
73ec88a9c3SChristian Lamparter			pwms = <&pwm 1 50000 0>;
74ec88a9c3SChristian Lamparter			max-brightness = <255>;
75ec88a9c3SChristian Lamparter		};
76ec88a9c3SChristian Lamparter
77af84101eSKrzysztof Kozlowski		led-2 {
78ec88a9c3SChristian Lamparter			/* SYS-LED 1 - Tricolor */
79ec88a9c3SChristian Lamparter			function = LED_FUNCTION_INDICATOR;
80ec88a9c3SChristian Lamparter			color = <LED_COLOR_ID_BLUE>;
81ec88a9c3SChristian Lamparter			pwms = <&pwm 2 50000 0>;
82ec88a9c3SChristian Lamparter			max-brightness = <255>;
83ec88a9c3SChristian Lamparter		};
84ec88a9c3SChristian Lamparter	};
85ec88a9c3SChristian Lamparter};
86ec88a9c3SChristian Lamparter
87ec88a9c3SChristian Lamparter&uart0 {
88ec88a9c3SChristian Lamparter	clock-frequency = <62500000>;
89ec88a9c3SChristian Lamparter	/delete-property/ clocks;
90ec88a9c3SChristian Lamparter};
91ec88a9c3SChristian Lamparter
92ec88a9c3SChristian Lamparter&uart1 {
93ec88a9c3SChristian Lamparter	status = "disabled";
94ec88a9c3SChristian Lamparter};
95ec88a9c3SChristian Lamparter
96ec88a9c3SChristian Lamparter&uart2 {
97ec88a9c3SChristian Lamparter	status = "okay";
98ec88a9c3SChristian Lamparter	/*
99ec88a9c3SChristian Lamparter	 * bluetooth-le {
100ec88a9c3SChristian Lamparter	 *	compatible = "brcm,bcm20732";
101ec88a9c3SChristian Lamparter	 *	enable-gpios = <&chipcommon 20 GPIO_ACTIVE_HIGH>;
102ec88a9c3SChristian Lamparter	 *};
103ec88a9c3SChristian Lamparter	 */
104ec88a9c3SChristian Lamparter};
105ec88a9c3SChristian Lamparter
106477ffdbdSChristian Lamparter&gmac0 {
107477ffdbdSChristian Lamparter	nvmem-cell-names = "mac-address";
108477ffdbdSChristian Lamparter	nvmem-cells = <&mac_address>;
109477ffdbdSChristian Lamparter};
110477ffdbdSChristian Lamparter
111ec88a9c3SChristian Lamparter&gmac1 {
112ec88a9c3SChristian Lamparter	status = "disabled";
113ec88a9c3SChristian Lamparter};
114ec88a9c3SChristian Lamparter&gmac2 {
115ec88a9c3SChristian Lamparter	status = "disabled";
116ec88a9c3SChristian Lamparter};
117ec88a9c3SChristian Lamparter&gmac3 {
118ec88a9c3SChristian Lamparter	status = "disabled";
119ec88a9c3SChristian Lamparter};
120ec88a9c3SChristian Lamparter
121ec88a9c3SChristian Lamparter&pwm {
122ec88a9c3SChristian Lamparter	status = "okay";
123ec88a9c3SChristian Lamparter	pinctrl-names = "default";
124ec88a9c3SChristian Lamparter	pinctrl-0 = <&pinmux_pwm>;
125ec88a9c3SChristian Lamparter};
126ec88a9c3SChristian Lamparter
127ec88a9c3SChristian Lamparter&nandcs {
128ec88a9c3SChristian Lamparter	partitions {
129ec88a9c3SChristian Lamparter		/*
130ec88a9c3SChristian Lamparter		 * The partition autodetection does not work for this device.
131ec88a9c3SChristian Lamparter		 * It will only detect the "nvram" partition with an incorrect size.
132ec88a9c3SChristian Lamparter		 *	[    1.721667] 1 bcm47xxpart partitions found on MTD device brcmnand.0
133ec88a9c3SChristian Lamparter		 *	[    1.727962] Creating 1 MTD partitions on "brcmnand.0":
134ec88a9c3SChristian Lamparter		 *	[    1.733117] 0x000000400000-0x000008000000 : "nvram"
135ec88a9c3SChristian Lamparter		 */
136ec88a9c3SChristian Lamparter
137ec88a9c3SChristian Lamparter		compatible = "fixed-partitions";
138ec88a9c3SChristian Lamparter		#address-cells = <0x1>;
139ec88a9c3SChristian Lamparter		#size-cells = <0x1>;
140ec88a9c3SChristian Lamparter
141d68b2f7dSChristian Lamparter		partition@0 {
142ec88a9c3SChristian Lamparter			label = "u-boot";
143ec88a9c3SChristian Lamparter			reg = <0x0 0x100000>;
144ec88a9c3SChristian Lamparter			read-only;
145ec88a9c3SChristian Lamparter		};
146ec88a9c3SChristian Lamparter
147d68b2f7dSChristian Lamparter		partition@100000 {
148ec88a9c3SChristian Lamparter			label = "bootkernel1";
149ec88a9c3SChristian Lamparter			reg = <0x100000 0x300000>;
150ec88a9c3SChristian Lamparter			read-only;
151ec88a9c3SChristian Lamparter		};
152ec88a9c3SChristian Lamparter
153d68b2f7dSChristian Lamparter		partition@400000 {
154ec88a9c3SChristian Lamparter			label = "nvram";
155ec88a9c3SChristian Lamparter			reg = <0x400000 0x100000>;
156ec88a9c3SChristian Lamparter			read-only;
157ec88a9c3SChristian Lamparter		};
158ec88a9c3SChristian Lamparter
159d68b2f7dSChristian Lamparter		partition@500000 {
160ec88a9c3SChristian Lamparter			label = "bootkernel2";
161ec88a9c3SChristian Lamparter			reg = <0x500000 0x300000>;
162ec88a9c3SChristian Lamparter			read-only;
163ec88a9c3SChristian Lamparter		};
164ec88a9c3SChristian Lamparter
165d68b2f7dSChristian Lamparter		partition@800000 {
166ec88a9c3SChristian Lamparter			label = "ubi";
167ec88a9c3SChristian Lamparter			reg = <0x800000 0x7780000>;
168ec88a9c3SChristian Lamparter		};
169ec88a9c3SChristian Lamparter	};
170ec88a9c3SChristian Lamparter};
1716abc4ca5SChristian Lamparter
1726abc4ca5SChristian Lamparter&srab {
1736abc4ca5SChristian Lamparter	status = "okay";
1746abc4ca5SChristian Lamparter
1756abc4ca5SChristian Lamparter	ports {
1766abc4ca5SChristian Lamparter		port@0 {
1776abc4ca5SChristian Lamparter			label = "poe";
1786abc4ca5SChristian Lamparter		};
1796abc4ca5SChristian Lamparter
1806abc4ca5SChristian Lamparter		port@5 {
1816abc4ca5SChristian Lamparter			label = "cpu";
1826abc4ca5SChristian Lamparter
1836abc4ca5SChristian Lamparter			fixed-link {
1846abc4ca5SChristian Lamparter				speed = <1000>;
185fd274b73SChristian Lamparter				full-duplex;
1866abc4ca5SChristian Lamparter			};
1876abc4ca5SChristian Lamparter		};
188473baeabSRafał Miłecki
189473baeabSRafał Miłecki		port@7 {
190473baeabSRafał Miłecki			status = "disabled";
191473baeabSRafał Miłecki		};
192473baeabSRafał Miłecki
193473baeabSRafał Miłecki		port@8 {
194473baeabSRafał Miłecki			status = "disabled";
195473baeabSRafał Miłecki		};
1966abc4ca5SChristian Lamparter	};
1976abc4ca5SChristian Lamparter};
198de788001SChristian Lamparter
199de788001SChristian Lamparter&i2c0 {
200de788001SChristian Lamparter	status = "okay";
201de788001SChristian Lamparter
202de788001SChristian Lamparter	pinctrl-names = "default";
203de788001SChristian Lamparter	pinctrl-0 = <&pinmux_i2c>;
204de788001SChristian Lamparter
205de788001SChristian Lamparter	clock-frequency = <100000>;
206de788001SChristian Lamparter
207de788001SChristian Lamparter	current_sense: ina219@45 {
208de788001SChristian Lamparter		compatible = "ti,ina219";
209de788001SChristian Lamparter		reg = <0x45>;
210de788001SChristian Lamparter		shunt-resistor = <60000>; /* = 60 mOhms */
211de788001SChristian Lamparter	};
212de788001SChristian Lamparter
213de788001SChristian Lamparter	eeprom: eeprom@50 {
214de788001SChristian Lamparter		compatible = "atmel,24c64";
215de788001SChristian Lamparter		reg = <0x50>;
216de788001SChristian Lamparter		pagesize = <32>;
217de788001SChristian Lamparter		read-only;
218ed0d78c7SRafał Miłecki
219ed0d78c7SRafał Miłecki		nvmem-layout {
220ed0d78c7SRafał Miłecki			compatible = "fixed-layout";
221de788001SChristian Lamparter			#address-cells = <1>;
222de788001SChristian Lamparter			#size-cells = <1>;
223de788001SChristian Lamparter
224de788001SChristian Lamparter			mac_address: mac-address@66 {
225de788001SChristian Lamparter				reg = <0x66 0x6>;
226de788001SChristian Lamparter			};
227de788001SChristian Lamparter		};
228de788001SChristian Lamparter	};
229ed0d78c7SRafał Miłecki};
230