GNU Linux-libre 5.19-rc6-gnu
[releases.git] / arch / arm / boot / dts / bcm53016-meraki-mr32.dts
1 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2 /*
3  * Broadcom BCM470X / BCM5301X ARM platform code.
4  * DTS for Meraki MR32 / Codename: Espresso
5  *
6  * Copyright (C) 2018-2020 Christian Lamparter <chunkeey@gmail.com>
7  */
8
9 /dts-v1/;
10
11 #include "bcm4708.dtsi"
12 #include "bcm5301x-nand-cs0-bch8.dtsi"
13 #include <dt-bindings/leds/common.h>
14
15 / {
16         compatible = "meraki,mr32", "brcm,bcm53016", "brcm,bcm4708";
17         model = "Meraki MR32";
18
19         chosen {
20                 bootargs = " console=ttyS0,115200n8 earlycon";
21         };
22
23         memory@0 {
24                 reg = <0x00000000 0x08000000>;
25                 device_type = "memory";
26         };
27
28         aliases {
29                 serial1 = &uart2;
30         };
31
32         leds {
33                 compatible = "gpio-leds";
34
35                 sysled3 {
36                         function = LED_FUNCTION_FAULT;
37                         color = <LED_COLOR_ID_AMBER>;
38                         gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
39                         panic-indicator;
40                 };
41                 sysled2 {
42                         function = LED_FUNCTION_INDICATOR;
43                         color = <LED_COLOR_ID_WHITE>;
44                         gpios = <&chipcommon 19 GPIO_ACTIVE_HIGH>;
45                 };
46         };
47
48         keys {
49                 compatible = "gpio-keys";
50                 #address-cells = <1>;
51                 #size-cells = <0>;
52
53                 restart {
54                         label = "Reset";
55                         linux,code = <KEY_RESTART>;
56                         gpios = <&chipcommon 21 GPIO_ACTIVE_LOW>;
57                 };
58         };
59
60         pwm-leds {
61                 compatible = "pwm-leds";
62
63                 red {
64                         /* SYS-LED 1 - Tricolor */
65                         function = LED_FUNCTION_INDICATOR;
66                         color = <LED_COLOR_ID_RED>;
67                         pwms = <&pwm 0 50000 0>;
68                         max-brightness = <255>;
69                 };
70
71                 green {
72                         /* SYS-LED 1 - Tricolor */
73                         function = LED_FUNCTION_POWER;
74                         color = <LED_COLOR_ID_GREEN>;
75                         pwms = <&pwm 1 50000 0>;
76                         max-brightness = <255>;
77                 };
78
79                 blue {
80                         /* SYS-LED 1 - Tricolor */
81                         function = LED_FUNCTION_INDICATOR;
82                         color = <LED_COLOR_ID_BLUE>;
83                         pwms = <&pwm 2 50000 0>;
84                         max-brightness = <255>;
85                 };
86         };
87 };
88
89 &uart0 {
90         clock-frequency = <62500000>;
91         /delete-property/ clocks;
92 };
93
94 &uart1 {
95         status = "disabled";
96 };
97
98 &uart2 {
99         status = "okay";
100         /*
101          * bluetooth-le {
102          *      compatible = "brcm,bcm20732";
103          *      enable-gpios = <&chipcommon 20 GPIO_ACTIVE_HIGH>;
104          *};
105          */
106 };
107
108 &gmac0 {
109         nvmem-cell-names = "mac-address";
110         nvmem-cells = <&mac_address>;
111 };
112
113 &gmac1 {
114         status = "disabled";
115 };
116 &gmac2 {
117         status = "disabled";
118 };
119 &gmac3 {
120         status = "disabled";
121 };
122
123 &pwm {
124         status = "okay";
125         pinctrl-names = "default";
126         pinctrl-0 = <&pinmux_pwm>;
127 };
128
129 &nandcs {
130         nand-ecc-algo = "hw";
131
132         partitions {
133                 /*
134                  * The partition autodetection does not work for this device.
135                  * It will only detect the "nvram" partition with an incorrect size.
136                  *      [    1.721667] 1 bcm47xxpart partitions found on MTD device brcmnand.0
137                  *      [    1.727962] Creating 1 MTD partitions on "brcmnand.0":
138                  *      [    1.733117] 0x000000400000-0x000008000000 : "nvram"
139                  */
140
141                 compatible = "fixed-partitions";
142                 #address-cells = <0x1>;
143                 #size-cells = <0x1>;
144
145                 partition0@0 {
146                         label = "u-boot";
147                         reg = <0x0 0x100000>;
148                         read-only;
149                 };
150
151                 partition1@100000 {
152                         label = "bootkernel1";
153                         reg = <0x100000 0x300000>;
154                         read-only;
155                 };
156
157                 partition2@400000 {
158                         label = "nvram";
159                         reg = <0x400000 0x100000>;
160                         read-only;
161                 };
162
163                 partition3@500000 {
164                         label = "bootkernel2";
165                         reg = <0x500000 0x300000>;
166                         read-only;
167                 };
168
169                 partition4@800000 {
170                         label = "ubi";
171                         reg = <0x800000 0x7780000>;
172                 };
173         };
174 };
175
176 &srab {
177         status = "okay";
178
179         ports {
180                 port@0 {
181                         reg = <0>;
182                         label = "poe";
183                 };
184
185                 port@5 {
186                         reg = <5>;
187                         label = "cpu";
188                         ethernet = <&gmac0>;
189
190                         fixed-link {
191                                 speed = <1000>;
192                                 duplex-full;
193                         };
194                 };
195         };
196 };
197
198 &i2c0 {
199         status = "okay";
200
201         pinctrl-names = "default";
202         pinctrl-0 = <&pinmux_i2c>;
203
204         clock-frequency = <100000>;
205
206         current_sense: ina219@45 {
207                 compatible = "ti,ina219";
208                 reg = <0x45>;
209                 shunt-resistor = <60000>; /* = 60 mOhms */
210         };
211
212         eeprom: eeprom@50 {
213                 compatible = "atmel,24c64";
214                 reg = <0x50>;
215                 pagesize = <32>;
216                 read-only;
217                 #address-cells = <1>;
218                 #size-cells = <1>;
219
220                 mac_address: mac-address@66 {
221                         reg = <0x66 0x6>;
222                 };
223         };
224 };