ipq40xx: add support for AVM FRITZ!Repeater 3000
[openwrt/openwrt.git] / target / linux / ipq40xx / files-4.14 / arch / arm / boot / dts / qcom-ipq4019-fritzrepeater-3000.dts
1 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2
3 #include "qcom-ipq4019.dtsi"
4 #include <dt-bindings/gpio/gpio.h>
5 #include <dt-bindings/input/input.h>
6 #include <dt-bindings/soc/qcom,tcsr.h>
7
8 / {
9 model = "AVM FRITZ!Repeater 3000";
10 compatible = "avm,fritzrepeater-3000";
11
12 aliases {
13 led-boot = &power_led;
14 led-failsafe = &power_led;
15 led-running = &power_led;
16 led-upgrade = &power_led;
17 };
18
19 soc {
20 mdio@90000 {
21 status = "okay";
22 };
23
24 ess-psgmii@98000 {
25 status = "okay";
26 };
27
28 tcsr@1949000 {
29 compatible = "qcom,tcsr";
30 reg = <0x1949000 0x100>;
31 qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>;
32 };
33
34 ess_tcsr@1953000 {
35 compatible = "qcom,tcsr";
36 reg = <0x1953000 0x1000>;
37 qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
38 };
39
40 tcsr@1957000 {
41 compatible = "qcom,tcsr";
42 reg = <0x1957000 0x100>;
43 qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>;
44 };
45
46 crypto@8e3a000 {
47 status = "okay";
48 };
49
50 watchdog@b017000 {
51 status = "okay";
52 };
53
54 ess-switch@c000000 {
55 status = "okay";
56
57 switch_lan_bmp = <0x10>;
58 switch_wan_bmp = <0x20>;
59 };
60
61 edma@c080000 {
62 status = "okay";
63 };
64 };
65
66 key {
67 compatible = "gpio-keys";
68
69 connect {
70 label = "Connect";
71 gpios = <&tlmm 10 GPIO_ACTIVE_LOW>;
72 linux,code = <KEY_WPS_BUTTON>;
73 };
74 };
75
76 leds {
77 compatible = "gpio-leds";
78
79 connect_red {
80 label = "fritzwlan-3000:red:connect";
81 gpios = <&tlmm 30 GPIO_ACTIVE_LOW>;
82 };
83
84 connect_green {
85 label = "fritzwlan-3000:green:connect";
86 gpios = <&tlmm 31 GPIO_ACTIVE_LOW>;
87 };
88
89 connect_blue {
90 label = "fritzwlan-3000:blue:connect";
91 gpios = <&tlmm 32 GPIO_ACTIVE_LOW>;
92 };
93
94 power_led: power {
95 label = "fritzwlan-3000:green:power";
96 gpios = <&tlmm 33 GPIO_ACTIVE_LOW>;
97 };
98 };
99 };
100
101 &tlmm {
102 serial_0_pins: serial_pinmux {
103 mux {
104 pins = "gpio16", "gpio17";
105 function = "blsp_uart0";
106 bias-disable;
107 };
108 };
109
110 nand_pins: nand_pins {
111 pullups {
112 pins = "gpio53", "gpio58", "gpio59";
113 function = "qpic";
114 bias-pull-up;
115 };
116
117 pulldowns {
118 pins = "gpio54", "gpio55", "gpio56",
119 "gpio57", "gpio60", "gpio61",
120 "gpio62", "gpio63", "gpio64",
121 "gpio65", "gpio66", "gpio67",
122 "gpio68", "gpio69";
123 function = "qpic";
124 bias-pull-down;
125 };
126 };
127 };
128
129 &nand {
130 pinctrl-0 = <&nand_pins>;
131 pinctrl-names = "default";
132 status = "okay";
133
134 nand@0 {
135 partitions {
136 compatible = "fixed-partitions";
137 #address-cells = <1>;
138 #size-cells = <1>;
139
140 partition@0 {
141 label = "SBL1";
142 reg = <0x000000 0x80000>;
143 read-only;
144 };
145
146 partition@80000 {
147 label = "MIBIB";
148 reg = <0x080000 0x80000>;
149 read-only;
150 };
151
152 partition@100000 {
153 label = "QSEE";
154 reg = <0x100000 0x80000>;
155 read-only;
156 };
157
158 partition@180000 {
159 label = "CDT";
160 reg = <0x180000 0x40000>;
161 read-only;
162 };
163
164 partition@1c0000 {
165 label = "QSEE_B";
166 reg = <0x1c0000 0x80000>;
167 read-only;
168 };
169
170 partition@240000 {
171 label = "urlader0";
172 reg = <0x240000 0x40000>;
173 read-only;
174 };
175
176 partition@280000 {
177 label = "urlader1";
178 reg = <0x280000 0x40000>;
179 read-only;
180 };
181
182 partition@2c0000 {
183 label = "nand-tffs";
184 reg = <0x2c0000 0x840000>;
185 read-only;
186 };
187
188 partition@b00000 {
189 /* 'kernel1' in AVM firmware */
190 label = "uboot0";
191 reg = <0xb00000 0x400000>;
192 };
193
194 partition@f00000 {
195 /* 'kernel2' in AVM firmware */
196 label = "uboot1";
197 reg = <0xf00000 0x400000>;
198 };
199
200 partition@1300000 {
201 label = "ubi";
202 reg = <0x1300000 0x6d00000>;
203 };
204 };
205 };
206 };
207
208 &cryptobam {
209 status = "okay";
210 };
211
212 &blsp_dma {
213 status = "okay";
214 };
215
216 &blsp1_uart1 {
217 pinctrl-0 = <&serial_0_pins>;
218 pinctrl-names = "default";
219 status = "okay";
220 };
221
222 &qpic_bam {
223 status = "okay";
224 };
225
226 &wifi0 {
227 status = "okay";
228 /* BDFs are identical for the FRITZ!Box 7530 and the FRITZ!Repeater 3000 */
229 qcom,ath10k-calibration-variant = "AVM-FRITZRepeater-3000";
230 };
231
232 &wifi1 {
233 status = "okay";
234 ieee80211-freq-limit = <5170000 5350000>;
235 /* BDFs are identical for the FRITZ!Box 7530 and the FRITZ!Repeater 3000 */
236 qcom,ath10k-calibration-variant = "AVM-FRITZRepeater-3000";
237 };
238
239 &pcie0 {
240 status = "okay";
241
242 perst-gpio = <&tlmm 35 GPIO_ACTIVE_LOW>;
243 wake-gpio = <&tlmm 50 GPIO_ACTIVE_LOW>;
244
245 bridge@0,0 {
246 reg = <0x00000000 0 0 0 0>;
247 #address-cells = <3>;
248 #size-cells = <2>;
249 ranges;
250
251 wifi@1,0 {
252 /* QCA9984 */
253 compatible = "qcom,ath10k";
254 status = "okay";
255 reg = <0x00010000 0 0 0 0>;
256 ieee80211-freq-limit = <5470000 5875000>;
257 /* Uses the reference BDF */
258 };
259 };
260 };