diff options
author | Arnd Bergmann <arnd@arndb.de> | 2018-10-02 05:47:21 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2018-10-02 05:53:19 -0400 |
commit | e9a4dd999917006274b2479ec898a5385f5bc5a1 (patch) | |
tree | 7c7f3d8c9a9e1ba5abce477bfd71dc0569155424 | |
parent | 3a7c41e59939b1cfb08dcd4cfef51e5633ae0e19 (diff) | |
parent | 620cfb31bad4c5be7d9250f1e47a592750fc364b (diff) |
Merge tag 'mvebu-dt64-4.20-1' of git://git.infradead.org/linux-mvebu into next/dt
mvebu dt64 for 4.20 (part 1)
- Add watchdog node on Armada 37xx
- Update PPv2 interrupts name
- Add support for the SolidRun Clearfog GT 8K (Aramda 8040 based)
- Add thermal-zone nodes for Aramda 7K/8K
* tag 'mvebu-dt64-4.20-1' of git://git.infradead.org/linux-mvebu:
arm64: dts: marvell: armada-37xx: add nodes to support watchdog
arm64: dts: marvell: armada-cp110: describe more PPv2 interrupts
arm64: dts: marvell: armada-cp110: change the PPv2 IRQ names
arm64: dts: add support for SolidRun Clearfog GT 8K
arm64: dts: marvell: add thermal-zone node in cp110 DTSI file
arm64: dts: marvell: add macro to make distinction between node names
arm64: dts: marvell: add thermal-zone node in ap806 DTSI file
arm64: dts: marvell: move AP806/CP110 thermal nodes into a new syscon
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
-rw-r--r-- | arch/arm64/boot/dts/marvell/Makefile | 1 | ||||
-rw-r--r-- | arch/arm64/boot/dts/marvell/armada-37xx.dtsi | 13 | ||||
-rw-r--r-- | arch/arm64/boot/dts/marvell/armada-8040-clearfog-gt-8k.dts | 434 | ||||
-rw-r--r-- | arch/arm64/boot/dts/marvell/armada-ap806.dtsi | 74 | ||||
-rw-r--r-- | arch/arm64/boot/dts/marvell/armada-common.dtsi | 1 | ||||
-rw-r--r-- | arch/arm64/boot/dts/marvell/armada-cp110.dtsi | 64 |
6 files changed, 571 insertions, 16 deletions
diff --git a/arch/arm64/boot/dts/marvell/Makefile b/arch/arm64/boot/dts/marvell/Makefile index ea9d49f2a911..eca8bac6303a 100644 --- a/arch/arm64/boot/dts/marvell/Makefile +++ b/arch/arm64/boot/dts/marvell/Makefile | |||
@@ -3,6 +3,7 @@ | |||
3 | dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-db.dtb | 3 | dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-db.dtb |
4 | dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-espressobin.dtb | 4 | dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-espressobin.dtb |
5 | dtb-$(CONFIG_ARCH_MVEBU) += armada-7040-db.dtb | 5 | dtb-$(CONFIG_ARCH_MVEBU) += armada-7040-db.dtb |
6 | dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-clearfog-gt-8k.dtb | ||
6 | dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-db.dtb | 7 | dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-db.dtb |
7 | dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-mcbin.dtb | 8 | dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-mcbin.dtb |
8 | dtb-$(CONFIG_ARCH_MVEBU) += armada-8080-db.dtb | 9 | dtb-$(CONFIG_ARCH_MVEBU) += armada-8080-db.dtb |
diff --git a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi index d9531e242eb4..f5eaec531aa8 100644 --- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi +++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi | |||
@@ -80,6 +80,19 @@ | |||
80 | /* 32M internal register @ 0xd000_0000 */ | 80 | /* 32M internal register @ 0xd000_0000 */ |
81 | ranges = <0x0 0x0 0xd0000000 0x2000000>; | 81 | ranges = <0x0 0x0 0xd0000000 0x2000000>; |
82 | 82 | ||
83 | wdt: watchdog@8300 { | ||
84 | compatible = "marvell,armada-3700-wdt"; | ||
85 | reg = <0x8300 0x40>; | ||
86 | marvell,system-controller = <&cpu_misc>; | ||
87 | clocks = <&xtalclk>; | ||
88 | }; | ||
89 | |||
90 | cpu_misc: system-controller@d000 { | ||
91 | compatible = "marvell,armada-3700-cpu-misc", | ||
92 | "syscon"; | ||
93 | reg = <0xd000 0x1000>; | ||
94 | }; | ||
95 | |||
83 | spi0: spi@10600 { | 96 | spi0: spi@10600 { |
84 | compatible = "marvell,armada-3700-spi"; | 97 | compatible = "marvell,armada-3700-spi"; |
85 | #address-cells = <1>; | 98 | #address-cells = <1>; |
diff --git a/arch/arm64/boot/dts/marvell/armada-8040-clearfog-gt-8k.dts b/arch/arm64/boot/dts/marvell/armada-8040-clearfog-gt-8k.dts new file mode 100644 index 000000000000..1db44b0ec030 --- /dev/null +++ b/arch/arm64/boot/dts/marvell/armada-8040-clearfog-gt-8k.dts | |||
@@ -0,0 +1,434 @@ | |||
1 | // SPDX-License-Identifier: (GPL-2.0+ OR MIT) | ||
2 | /* | ||
3 | * Copyright (C) 2018 SolidRun ltd. | ||
4 | * Based on Marvell MACCHIATOBin board | ||
5 | * | ||
6 | * Device Tree file for SolidRun's ClearFog GT 8K | ||
7 | */ | ||
8 | |||
9 | #include "armada-8040.dtsi" | ||
10 | |||
11 | #include <dt-bindings/input/input.h> | ||
12 | #include <dt-bindings/gpio/gpio.h> | ||
13 | |||
14 | / { | ||
15 | model = "SolidRun ClearFog GT 8K"; | ||
16 | compatible = "solidrun,clearfog-gt-8k", "marvell,armada8040", | ||
17 | "marvell,armada-ap806-quad", "marvell,armada-ap806"; | ||
18 | |||
19 | chosen { | ||
20 | stdout-path = "serial0:115200n8"; | ||
21 | }; | ||
22 | |||
23 | memory@00000000 { | ||
24 | device_type = "memory"; | ||
25 | reg = <0x0 0x0 0x0 0x80000000>; | ||
26 | }; | ||
27 | |||
28 | aliases { | ||
29 | ethernet0 = &cp1_eth1; | ||
30 | ethernet1 = &cp0_eth0; | ||
31 | ethernet2 = &cp1_eth2; | ||
32 | }; | ||
33 | |||
34 | v_3_3: regulator-3-3v { | ||
35 | compatible = "regulator-fixed"; | ||
36 | regulator-name = "v_3_3"; | ||
37 | regulator-min-microvolt = <3300000>; | ||
38 | regulator-max-microvolt = <3300000>; | ||
39 | regulator-always-on; | ||
40 | status = "okay"; | ||
41 | }; | ||
42 | |||
43 | v_5v0_usb3_hst_vbus: regulator-usb3-vbus0 { | ||
44 | compatible = "regulator-fixed"; | ||
45 | gpio = <&cp0_gpio2 15 GPIO_ACTIVE_HIGH>; | ||
46 | pinctrl-names = "default"; | ||
47 | pinctrl-0 = <&cp0_xhci_vbus_pins>; | ||
48 | regulator-name = "v_5v0_usb3_hst_vbus"; | ||
49 | regulator-min-microvolt = <5000000>; | ||
50 | regulator-max-microvolt = <5000000>; | ||
51 | status = "okay"; | ||
52 | }; | ||
53 | |||
54 | usb3h0_phy: usb3_phy0 { | ||
55 | compatible = "usb-nop-xceiv"; | ||
56 | vcc-supply = <&v_5v0_usb3_hst_vbus>; | ||
57 | }; | ||
58 | |||
59 | sfp_cp0_eth0: sfp-cp0-eth0 { | ||
60 | compatible = "sff,sfp"; | ||
61 | i2c-bus = <&cp0_i2c1>; | ||
62 | mod-def0-gpio = <&cp0_gpio2 17 GPIO_ACTIVE_LOW>; | ||
63 | tx-disable-gpio = <&cp1_gpio1 29 GPIO_ACTIVE_HIGH>; | ||
64 | pinctrl-names = "default"; | ||
65 | pinctrl-0 = <&cp0_sfp_present_pins &cp1_sfp_tx_disable_pins>; | ||
66 | }; | ||
67 | |||
68 | leds { | ||
69 | compatible = "gpio-leds"; | ||
70 | pinctrl-0 = <&cp0_led0_pins | ||
71 | &cp0_led1_pins>; | ||
72 | pinctrl-names = "default"; | ||
73 | /* No designated function for these LEDs at the moment */ | ||
74 | led0 { | ||
75 | label = "clearfog-gt-8k:green:led0"; | ||
76 | gpios = <&cp0_gpio2 8 GPIO_ACTIVE_LOW>; | ||
77 | default-state = "on"; | ||
78 | }; | ||
79 | led1 { | ||
80 | label = "clearfog-gt-8k:green:led1"; | ||
81 | gpios = <&cp0_gpio2 9 GPIO_ACTIVE_LOW>; | ||
82 | default-state = "on"; | ||
83 | }; | ||
84 | }; | ||
85 | |||
86 | keys { | ||
87 | compatible = "gpio-keys"; | ||
88 | pinctrl-0 = <&cp0_gpio_reset_pins &cp1_wps_button_pins>; | ||
89 | pinctrl-names = "default"; | ||
90 | |||
91 | button_0 { | ||
92 | /* The rear button */ | ||
93 | label = "Rear Button"; | ||
94 | gpios = <&cp0_gpio2 7 GPIO_ACTIVE_LOW>; | ||
95 | linux,can-disable; | ||
96 | linux,code = <BTN_0>; | ||
97 | }; | ||
98 | |||
99 | button_1 { | ||
100 | /* The wps button */ | ||
101 | label = "WPS Button"; | ||
102 | gpios = <&cp1_gpio1 30 GPIO_ACTIVE_LOW>; | ||
103 | linux,can-disable; | ||
104 | linux,code = <KEY_WPS_BUTTON>; | ||
105 | }; | ||
106 | }; | ||
107 | }; | ||
108 | |||
109 | &uart0 { | ||
110 | status = "okay"; | ||
111 | pinctrl-0 = <&uart0_pins>; | ||
112 | pinctrl-names = "default"; | ||
113 | }; | ||
114 | |||
115 | &ap_sdhci0 { | ||
116 | bus-width = <8>; | ||
117 | no-1-8-v; | ||
118 | no-sd; | ||
119 | no-sdio; | ||
120 | non-removable; | ||
121 | status = "okay"; | ||
122 | vqmmc-supply = <&v_3_3>; | ||
123 | }; | ||
124 | |||
125 | &cp0_i2c0 { | ||
126 | clock-frequency = <100000>; | ||
127 | pinctrl-names = "default"; | ||
128 | pinctrl-0 = <&cp0_i2c0_pins>; | ||
129 | status = "okay"; | ||
130 | }; | ||
131 | |||
132 | &cp0_i2c1 { | ||
133 | clock-frequency = <100000>; | ||
134 | pinctrl-names = "default"; | ||
135 | pinctrl-0 = <&cp0_i2c1_pins>; | ||
136 | status = "okay"; | ||
137 | }; | ||
138 | |||
139 | &cp0_pinctrl { | ||
140 | /* | ||
141 | * MPP Bus: | ||
142 | * [0-31] = 0xff: Keep default CP0_shared_pins: | ||
143 | * [11] CLKOUT_MPP_11 (out) | ||
144 | * [23] LINK_RD_IN_CP2CP (in) | ||
145 | * [25] CLKOUT_MPP_25 (out) | ||
146 | * [29] AVS_FB_IN_CP2CP (in) | ||
147 | * [32, 33, 34] pci0/1/2 reset | ||
148 | * [35-38] CP0 I2C1 and I2C0 | ||
149 | * [39] GPIO reset button | ||
150 | * [40,41] LED0 and LED1 | ||
151 | * [43] 1512 phy reset | ||
152 | * [47] USB VBUS EN (active low) | ||
153 | * [48] FAN PWM | ||
154 | * [49] SFP+ present signal | ||
155 | * [50] TPM interrupt | ||
156 | * [51] WLAN0 disable | ||
157 | * [52] WLAN1 disable | ||
158 | * [53] LTE disable | ||
159 | * [54] NFC reset | ||
160 | * [55] Micro SD card detect | ||
161 | * [56-61] Micro SD | ||
162 | */ | ||
163 | |||
164 | cp0_pci0_reset_pins: pci0-reset-pins { | ||
165 | marvell,pins = "mpp32"; | ||
166 | marvell,function = "gpio"; | ||
167 | }; | ||
168 | |||
169 | cp0_pci1_reset_pins: pci1-reset-pins { | ||
170 | marvell,pins = "mpp33"; | ||
171 | marvell,function = "gpio"; | ||
172 | }; | ||
173 | |||
174 | cp0_pci2_reset_pins: pci2-reset-pins { | ||
175 | marvell,pins = "mpp34"; | ||
176 | marvell,function = "gpio"; | ||
177 | }; | ||
178 | |||
179 | cp0_i2c1_pins: i2c1-pins { | ||
180 | marvell,pins = "mpp35", "mpp36"; | ||
181 | marvell,function = "i2c1"; | ||
182 | }; | ||
183 | |||
184 | cp0_i2c0_pins: i2c0-pins { | ||
185 | marvell,pins = "mpp37", "mpp38"; | ||
186 | marvell,function = "i2c0"; | ||
187 | }; | ||
188 | |||
189 | cp0_gpio_reset_pins: gpio-reset-pins { | ||
190 | marvell,pins = "mpp39"; | ||
191 | marvell,function = "gpio"; | ||
192 | }; | ||
193 | |||
194 | cp0_led0_pins: led0-pins { | ||
195 | marvell,pins = "mpp40"; | ||
196 | marvell,function = "gpio"; | ||
197 | }; | ||
198 | |||
199 | cp0_led1_pins: led1-pins { | ||
200 | marvell,pins = "mpp41"; | ||
201 | marvell,function = "gpio"; | ||
202 | }; | ||
203 | |||
204 | cp0_copper_eth_phy_reset: copper-eth-phy-reset { | ||
205 | marvell,pins = "mpp43"; | ||
206 | marvell,function = "gpio"; | ||
207 | }; | ||
208 | |||
209 | cp0_xhci_vbus_pins: xhci0-vbus-pins { | ||
210 | marvell,pins = "mpp47"; | ||
211 | marvell,function = "gpio"; | ||
212 | }; | ||
213 | |||
214 | cp0_fan_pwm_pins: fan-pwm-pins { | ||
215 | marvell,pins = "mpp48"; | ||
216 | marvell,function = "gpio"; | ||
217 | }; | ||
218 | |||
219 | cp0_sfp_present_pins: sfp-present-pins { | ||
220 | marvell,pins = "mpp49"; | ||
221 | marvell,function = "gpio"; | ||
222 | }; | ||
223 | |||
224 | cp0_tpm_irq_pins: tpm-irq-pins { | ||
225 | marvell,pins = "mpp50"; | ||
226 | marvell,function = "gpio"; | ||
227 | }; | ||
228 | |||
229 | cp0_sdhci_pins: sdhci-pins { | ||
230 | marvell,pins = "mpp55", "mpp56", "mpp57", "mpp58", "mpp59", | ||
231 | "mpp60", "mpp61"; | ||
232 | marvell,function = "sdio"; | ||
233 | }; | ||
234 | }; | ||
235 | |||
236 | &cp0_gpio2 { | ||
237 | sata_reset { | ||
238 | gpio-hog; | ||
239 | gpios = <1 GPIO_ACTIVE_HIGH>; | ||
240 | output-high; | ||
241 | }; | ||
242 | }; | ||
243 | |||
244 | &cp0_ethernet { | ||
245 | status = "okay"; | ||
246 | }; | ||
247 | |||
248 | /* SFP */ | ||
249 | &cp0_eth0 { | ||
250 | status = "okay"; | ||
251 | phy-mode = "10gbase-kr"; | ||
252 | managed = "in-band-status"; | ||
253 | phys = <&cp0_comphy2 0>; | ||
254 | sfp = <&sfp_cp0_eth0>; | ||
255 | }; | ||
256 | |||
257 | &cp0_sdhci0 { | ||
258 | broken-cd; | ||
259 | bus-width = <4>; | ||
260 | pinctrl-names = "default"; | ||
261 | pinctrl-0 = <&cp0_sdhci_pins>; | ||
262 | status = "okay"; | ||
263 | vqmmc-supply = <&v_3_3>; | ||
264 | }; | ||
265 | |||
266 | &cp1_pinctrl { | ||
267 | /* | ||
268 | * MPP Bus: | ||
269 | * [0-5] TDM | ||
270 | * [6] VHV Enable | ||
271 | * [7] CP1 SPI0 CSn1 (FXS) | ||
272 | * [8] CP1 SPI0 CSn0 (TPM) | ||
273 | * [9.11]CP1 SPI0 MOSI/MISO/CLK | ||
274 | * [13] CP1 SPI1 MISO (TDM and SPI ROM shared) | ||
275 | * [14] CP1 SPI1 CS0n (64Mb SPI ROM) | ||
276 | * [15] CP1 SPI1 MOSI (TDM and SPI ROM shared) | ||
277 | * [16] CP1 SPI1 CLK (TDM and SPI ROM shared) | ||
278 | * [24] Topaz switch reset | ||
279 | * [26] Buzzer | ||
280 | * [27] CP1 SMI MDIO | ||
281 | * [28] CP1 SMI MDC | ||
282 | * [29] CP0 10G SFP TX Disable | ||
283 | * [30] WPS button | ||
284 | * [31] Front panel button | ||
285 | */ | ||
286 | |||
287 | cp1_spi1_pins: spi1-pins { | ||
288 | marvell,pins = "mpp13", "mpp14", "mpp15", "mpp16"; | ||
289 | marvell,function = "spi1"; | ||
290 | }; | ||
291 | |||
292 | cp1_switch_reset_pins: switch-reset-pins { | ||
293 | marvell,pins = "mpp24"; | ||
294 | marvell,function = "gpio"; | ||
295 | }; | ||
296 | |||
297 | cp1_ge_mdio_pins: ge-mdio-pins { | ||
298 | marvell,pins = "mpp27", "mpp28"; | ||
299 | marvell,function = "ge"; | ||
300 | }; | ||
301 | |||
302 | cp1_sfp_tx_disable_pins: sfp-tx-disable-pins { | ||
303 | marvell,pins = "mpp29"; | ||
304 | marvell,function = "gpio"; | ||
305 | }; | ||
306 | |||
307 | cp1_wps_button_pins: wps-button-pins { | ||
308 | marvell,pins = "mpp30"; | ||
309 | marvell,function = "gpio"; | ||
310 | }; | ||
311 | }; | ||
312 | |||
313 | &cp1_sata0 { | ||
314 | pinctrl-0 = <&cp0_pci1_reset_pins>; | ||
315 | status = "okay"; | ||
316 | }; | ||
317 | |||
318 | &cp1_mdio { | ||
319 | pinctrl-names = "default"; | ||
320 | pinctrl-0 = <&cp1_ge_mdio_pins>; | ||
321 | status = "okay"; | ||
322 | |||
323 | ge_phy: ethernet-phy@0 { | ||
324 | /* LED0 - GB link | ||
325 | * LED1 - on: link, blink: activity | ||
326 | */ | ||
327 | marvell,reg-init = <3 16 0 0x1017>; | ||
328 | reg = <0>; | ||
329 | }; | ||
330 | |||
331 | switch0: switch0@4 { | ||
332 | compatible = "marvell,mv88e6085"; | ||
333 | reg = <4>; | ||
334 | pinctrl-names = "default"; | ||
335 | pinctrl-0 = <&cp1_switch_reset_pins>; | ||
336 | reset-gpios = <&cp1_gpio1 24 GPIO_ACTIVE_LOW>; | ||
337 | |||
338 | ports { | ||
339 | #address-cells = <1>; | ||
340 | #size-cells = <0>; | ||
341 | |||
342 | port@1 { | ||
343 | reg = <1>; | ||
344 | label = "lan2"; | ||
345 | phy-handle = <&switch0phy0>; | ||
346 | }; | ||
347 | |||
348 | port@2 { | ||
349 | reg = <2>; | ||
350 | label = "lan1"; | ||
351 | phy-handle = <&switch0phy1>; | ||
352 | }; | ||
353 | |||
354 | port@3 { | ||
355 | reg = <3>; | ||
356 | label = "lan4"; | ||
357 | phy-handle = <&switch0phy2>; | ||
358 | }; | ||
359 | |||
360 | port@4 { | ||
361 | reg = <4>; | ||
362 | label = "lan3"; | ||
363 | phy-handle = <&switch0phy3>; | ||
364 | }; | ||
365 | |||
366 | port@5 { | ||
367 | reg = <5>; | ||
368 | label = "cpu"; | ||
369 | ethernet = <&cp1_eth2>; | ||
370 | }; | ||
371 | }; | ||
372 | |||
373 | mdio { | ||
374 | #address-cells = <1>; | ||
375 | #size-cells = <0>; | ||
376 | |||
377 | switch0phy0: switch0phy0@11 { | ||
378 | reg = <0x11>; | ||
379 | }; | ||
380 | |||
381 | switch0phy1: switch0phy1@12 { | ||
382 | reg = <0x12>; | ||
383 | }; | ||
384 | |||
385 | switch0phy2: switch0phy2@13 { | ||
386 | reg = <0x13>; | ||
387 | }; | ||
388 | |||
389 | switch0phy3: switch0phy3@14 { | ||
390 | reg = <0x14>; | ||
391 | }; | ||
392 | }; | ||
393 | }; | ||
394 | }; | ||
395 | |||
396 | &cp1_ethernet { | ||
397 | status = "okay"; | ||
398 | }; | ||
399 | |||
400 | /* 1G copper */ | ||
401 | &cp1_eth1 { | ||
402 | status = "okay"; | ||
403 | phy-mode = "sgmii"; | ||
404 | phy = <&ge_phy>; | ||
405 | phys = <&cp1_comphy3 1>; | ||
406 | }; | ||
407 | |||
408 | /* Switch uplink */ | ||
409 | &cp1_eth2 { | ||
410 | status = "okay"; | ||
411 | phy-mode = "2500base-x"; | ||
412 | phys = <&cp1_comphy5 2>; | ||
413 | fixed-link { | ||
414 | speed = <2500>; | ||
415 | full-duplex; | ||
416 | }; | ||
417 | }; | ||
418 | |||
419 | &cp1_spi1 { | ||
420 | pinctrl-names = "default"; | ||
421 | pinctrl-0 = <&cp1_spi1_pins>; | ||
422 | status = "okay"; | ||
423 | |||
424 | spi-flash@0 { | ||
425 | compatible = "st,w25q32"; | ||
426 | spi-max-frequency = <50000000>; | ||
427 | reg = <0>; | ||
428 | }; | ||
429 | }; | ||
430 | |||
431 | &cp1_usb3_0 { | ||
432 | usb-phy = <&usb3h0_phy>; | ||
433 | status = "okay"; | ||
434 | }; | ||
diff --git a/arch/arm64/boot/dts/marvell/armada-ap806.dtsi b/arch/arm64/boot/dts/marvell/armada-ap806.dtsi index 176e38d54872..9a5abad72b66 100644 --- a/arch/arm64/boot/dts/marvell/armada-ap806.dtsi +++ b/arch/arm64/boot/dts/marvell/armada-ap806.dtsi | |||
@@ -6,6 +6,7 @@ | |||
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 8 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
9 | #include <dt-bindings/thermal/thermal.h> | ||
9 | 10 | ||
10 | /dts-v1/; | 11 | /dts-v1/; |
11 | 12 | ||
@@ -247,11 +248,76 @@ | |||
247 | }; | 248 | }; |
248 | }; | 249 | }; |
249 | 250 | ||
250 | ap_thermal: thermal@6f808c { | 251 | ap_syscon1: system-controller@6f8000 { |
251 | compatible = "marvell,armada-ap806-thermal"; | 252 | compatible = "syscon", "simple-mfd"; |
252 | reg = <0x6f808c 0x4>, | 253 | reg = <0x6f8000 0x1000>; |
253 | <0x6f8084 0x8>; | 254 | #address-cells = <1>; |
255 | #size-cells = <1>; | ||
256 | |||
257 | ap_thermal: thermal-sensor@80 { | ||
258 | compatible = "marvell,armada-ap806-thermal"; | ||
259 | reg = <0x80 0x10>; | ||
260 | #thermal-sensor-cells = <1>; | ||
261 | }; | ||
254 | }; | 262 | }; |
255 | }; | 263 | }; |
256 | }; | 264 | }; |
265 | |||
266 | /* | ||
267 | * The thermal IP features one internal sensor plus, if applicable, one | ||
268 | * remote channel wired to one sensor per CPU. | ||
269 | * | ||
270 | * The cooling maps are always empty as there are no cooling devices. | ||
271 | */ | ||
272 | thermal-zones { | ||
273 | ap_thermal_ic: ap-thermal-ic { | ||
274 | polling-delay-passive = <1000>; | ||
275 | polling-delay = <1000>; | ||
276 | |||
277 | thermal-sensors = <&ap_thermal 0>; | ||
278 | |||
279 | trips { }; | ||
280 | cooling-maps { }; | ||
281 | }; | ||
282 | |||
283 | ap_thermal_cpu1: ap-thermal-cpu1 { | ||
284 | polling-delay-passive = <1000>; | ||
285 | polling-delay = <1000>; | ||
286 | |||
287 | thermal-sensors = <&ap_thermal 1>; | ||
288 | |||
289 | trips { }; | ||
290 | cooling-maps { }; | ||
291 | }; | ||
292 | |||
293 | ap_thermal_cpu2: ap-thermal-cpu2 { | ||
294 | polling-delay-passive = <1000>; | ||
295 | polling-delay = <1000>; | ||
296 | |||
297 | thermal-sensors = <&ap_thermal 2>; | ||
298 | |||
299 | trips { }; | ||
300 | cooling-maps { }; | ||
301 | }; | ||
302 | |||
303 | ap_thermal_cpu3: ap-thermal-cpu3 { | ||
304 | polling-delay-passive = <1000>; | ||
305 | polling-delay = <1000>; | ||
306 | |||
307 | thermal-sensors = <&ap_thermal 3>; | ||
308 | |||
309 | trips { }; | ||
310 | cooling-maps { }; | ||
311 | }; | ||
312 | |||
313 | ap_thermal_cpu4: ap-thermal-cpu4 { | ||
314 | polling-delay-passive = <1000>; | ||
315 | polling-delay = <1000>; | ||
316 | |||
317 | thermal-sensors = <&ap_thermal 4>; | ||
318 | |||
319 | trips { }; | ||
320 | cooling-maps { }; | ||
321 | }; | ||
322 | }; | ||
257 | }; | 323 | }; |
diff --git a/arch/arm64/boot/dts/marvell/armada-common.dtsi b/arch/arm64/boot/dts/marvell/armada-common.dtsi index d5e8aedec188..b29c6405d214 100644 --- a/arch/arm64/boot/dts/marvell/armada-common.dtsi +++ b/arch/arm64/boot/dts/marvell/armada-common.dtsi | |||
@@ -7,4 +7,5 @@ | |||
7 | #define PASTER(x, y) x ## y | 7 | #define PASTER(x, y) x ## y |
8 | #define EVALUATOR(x, y) PASTER(x, y) | 8 | #define EVALUATOR(x, y) PASTER(x, y) |
9 | #define CP110_LABEL(name) EVALUATOR(CP110_NAME, EVALUATOR(_, name)) | 9 | #define CP110_LABEL(name) EVALUATOR(CP110_NAME, EVALUATOR(_, name)) |
10 | #define CP110_NODE_NAME(name) EVALUATOR(CP110_NAME, EVALUATOR(-, name)) | ||
10 | #define ADDRESSIFY(addr) EVALUATOR(0x, addr) | 11 | #define ADDRESSIFY(addr) EVALUATOR(0x, addr) |
diff --git a/arch/arm64/boot/dts/marvell/armada-cp110.dtsi b/arch/arm64/boot/dts/marvell/armada-cp110.dtsi index 840c8454d03e..f3a630efcf3a 100644 --- a/arch/arm64/boot/dts/marvell/armada-cp110.dtsi +++ b/arch/arm64/boot/dts/marvell/armada-cp110.dtsi | |||
@@ -6,6 +6,7 @@ | |||
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <dt-bindings/interrupt-controller/mvebu-icu.h> | 8 | #include <dt-bindings/interrupt-controller/mvebu-icu.h> |
9 | #include <dt-bindings/thermal/thermal.h> | ||
9 | 10 | ||
10 | #include "armada-common.dtsi" | 11 | #include "armada-common.dtsi" |
11 | 12 | ||
@@ -19,6 +20,23 @@ | |||
19 | * save one indentation level | 20 | * save one indentation level |
20 | */ | 21 | */ |
21 | CP110_NAME: CP110_NAME { }; | 22 | CP110_NAME: CP110_NAME { }; |
23 | |||
24 | /* | ||
25 | * CPs only have one sensor in the thermal IC. | ||
26 | * | ||
27 | * The cooling maps are empty as there are no cooling devices. | ||
28 | */ | ||
29 | thermal-zones { | ||
30 | CP110_LABEL(thermal_ic): CP110_NODE_NAME(thermal-ic) { | ||
31 | polling-delay-passive = <1000>; | ||
32 | polling-delay = <1000>; | ||
33 | |||
34 | thermal-sensors = <&CP110_LABEL(thermal) 0>; | ||
35 | |||
36 | trips { }; | ||
37 | cooling-maps { }; | ||
38 | }; | ||
39 | }; | ||
22 | }; | 40 | }; |
23 | 41 | ||
24 | &CP110_NAME { | 42 | &CP110_NAME { |
@@ -52,9 +70,14 @@ | |||
52 | <ICU_GRP_NSR 47 IRQ_TYPE_LEVEL_HIGH>, | 70 | <ICU_GRP_NSR 47 IRQ_TYPE_LEVEL_HIGH>, |
53 | <ICU_GRP_NSR 51 IRQ_TYPE_LEVEL_HIGH>, | 71 | <ICU_GRP_NSR 51 IRQ_TYPE_LEVEL_HIGH>, |
54 | <ICU_GRP_NSR 55 IRQ_TYPE_LEVEL_HIGH>, | 72 | <ICU_GRP_NSR 55 IRQ_TYPE_LEVEL_HIGH>, |
73 | <ICU_GRP_NSR 59 IRQ_TYPE_LEVEL_HIGH>, | ||
74 | <ICU_GRP_NSR 63 IRQ_TYPE_LEVEL_HIGH>, | ||
75 | <ICU_GRP_NSR 67 IRQ_TYPE_LEVEL_HIGH>, | ||
76 | <ICU_GRP_NSR 71 IRQ_TYPE_LEVEL_HIGH>, | ||
55 | <ICU_GRP_NSR 129 IRQ_TYPE_LEVEL_HIGH>; | 77 | <ICU_GRP_NSR 129 IRQ_TYPE_LEVEL_HIGH>; |
56 | interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2", | 78 | interrupt-names = "hif0", "hif1", "hif2", |
57 | "tx-cpu3", "rx-shared", "link"; | 79 | "hif3", "hif4", "hif5", "hif6", "hif7", |
80 | "hif8", "link"; | ||
58 | port-id = <0>; | 81 | port-id = <0>; |
59 | gop-port-id = <0>; | 82 | gop-port-id = <0>; |
60 | status = "disabled"; | 83 | status = "disabled"; |
@@ -66,9 +89,14 @@ | |||
66 | <ICU_GRP_NSR 48 IRQ_TYPE_LEVEL_HIGH>, | 89 | <ICU_GRP_NSR 48 IRQ_TYPE_LEVEL_HIGH>, |
67 | <ICU_GRP_NSR 52 IRQ_TYPE_LEVEL_HIGH>, | 90 | <ICU_GRP_NSR 52 IRQ_TYPE_LEVEL_HIGH>, |
68 | <ICU_GRP_NSR 56 IRQ_TYPE_LEVEL_HIGH>, | 91 | <ICU_GRP_NSR 56 IRQ_TYPE_LEVEL_HIGH>, |
92 | <ICU_GRP_NSR 60 IRQ_TYPE_LEVEL_HIGH>, | ||
93 | <ICU_GRP_NSR 64 IRQ_TYPE_LEVEL_HIGH>, | ||
94 | <ICU_GRP_NSR 68 IRQ_TYPE_LEVEL_HIGH>, | ||
95 | <ICU_GRP_NSR 72 IRQ_TYPE_LEVEL_HIGH>, | ||
69 | <ICU_GRP_NSR 128 IRQ_TYPE_LEVEL_HIGH>; | 96 | <ICU_GRP_NSR 128 IRQ_TYPE_LEVEL_HIGH>; |
70 | interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2", | 97 | interrupt-names = "hif0", "hif1", "hif2", |
71 | "tx-cpu3", "rx-shared", "link"; | 98 | "hif3", "hif4", "hif5", "hif6", "hif7", |
99 | "hif8", "link"; | ||
72 | port-id = <1>; | 100 | port-id = <1>; |
73 | gop-port-id = <2>; | 101 | gop-port-id = <2>; |
74 | status = "disabled"; | 102 | status = "disabled"; |
@@ -80,9 +108,14 @@ | |||
80 | <ICU_GRP_NSR 49 IRQ_TYPE_LEVEL_HIGH>, | 108 | <ICU_GRP_NSR 49 IRQ_TYPE_LEVEL_HIGH>, |
81 | <ICU_GRP_NSR 53 IRQ_TYPE_LEVEL_HIGH>, | 109 | <ICU_GRP_NSR 53 IRQ_TYPE_LEVEL_HIGH>, |
82 | <ICU_GRP_NSR 57 IRQ_TYPE_LEVEL_HIGH>, | 110 | <ICU_GRP_NSR 57 IRQ_TYPE_LEVEL_HIGH>, |
111 | <ICU_GRP_NSR 61 IRQ_TYPE_LEVEL_HIGH>, | ||
112 | <ICU_GRP_NSR 65 IRQ_TYPE_LEVEL_HIGH>, | ||
113 | <ICU_GRP_NSR 69 IRQ_TYPE_LEVEL_HIGH>, | ||
114 | <ICU_GRP_NSR 73 IRQ_TYPE_LEVEL_HIGH>, | ||
83 | <ICU_GRP_NSR 127 IRQ_TYPE_LEVEL_HIGH>; | 115 | <ICU_GRP_NSR 127 IRQ_TYPE_LEVEL_HIGH>; |
84 | interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2", | 116 | interrupt-names = "hif0", "hif1", "hif2", |
85 | "tx-cpu3", "rx-shared", "link"; | 117 | "hif3", "hif4", "hif5", "hif6", "hif7", |
118 | "hif8", "link"; | ||
86 | port-id = <2>; | 119 | port-id = <2>; |
87 | gop-port-id = <3>; | 120 | gop-port-id = <3>; |
88 | status = "disabled"; | 121 | status = "disabled"; |
@@ -162,12 +195,6 @@ | |||
162 | interrupts = <ICU_GRP_NSR 77 IRQ_TYPE_LEVEL_HIGH>; | 195 | interrupts = <ICU_GRP_NSR 77 IRQ_TYPE_LEVEL_HIGH>; |
163 | }; | 196 | }; |
164 | 197 | ||
165 | CP110_LABEL(thermal): thermal@400078 { | ||
166 | compatible = "marvell,armada-cp110-thermal"; | ||
167 | reg = <0x400078 0x4>, | ||
168 | <0x400070 0x8>; | ||
169 | }; | ||
170 | |||
171 | CP110_LABEL(syscon0): system-controller@440000 { | 198 | CP110_LABEL(syscon0): system-controller@440000 { |
172 | compatible = "syscon", "simple-mfd"; | 199 | compatible = "syscon", "simple-mfd"; |
173 | reg = <0x440000 0x2000>; | 200 | reg = <0x440000 0x2000>; |
@@ -208,6 +235,19 @@ | |||
208 | }; | 235 | }; |
209 | }; | 236 | }; |
210 | 237 | ||
238 | CP110_LABEL(syscon1): system-controller@400000 { | ||
239 | compatible = "syscon", "simple-mfd"; | ||
240 | reg = <0x400000 0x1000>; | ||
241 | #address-cells = <1>; | ||
242 | #size-cells = <1>; | ||
243 | |||
244 | CP110_LABEL(thermal): thermal-sensor@70 { | ||
245 | compatible = "marvell,armada-cp110-thermal"; | ||
246 | reg = <0x70 0x10>; | ||
247 | #thermal-sensor-cells = <1>; | ||
248 | }; | ||
249 | }; | ||
250 | |||
211 | CP110_LABEL(usb3_0): usb3@500000 { | 251 | CP110_LABEL(usb3_0): usb3@500000 { |
212 | compatible = "marvell,armada-8k-xhci", | 252 | compatible = "marvell,armada-8k-xhci", |
213 | "generic-xhci"; | 253 | "generic-xhci"; |