Merge tag 'dt-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / freescale / imx8mq-phanbell.dts
1 // SPDX-License-Identifier: (GPL-2.0 OR MIT)
2 /*
3  * Copyright 2017-2019 NXP
4  */
5
6 /dts-v1/;
7
8 #include "imx8mq.dtsi"
9 #include <dt-bindings/interrupt-controller/irq.h>
10
11 / {
12         model = "Google i.MX8MQ Phanbell";
13         compatible = "google,imx8mq-phanbell", "fsl,imx8mq";
14
15         chosen {
16                 stdout-path = &uart1;
17         };
18
19         memory@40000000 {
20                 device_type = "memory";
21                 reg = <0x00000000 0x40000000 0 0x40000000>;
22         };
23
24         pmic_osc: clock-pmic {
25                 compatible = "fixed-clock";
26                 #clock-cells = <0>;
27                 clock-frequency = <32768>;
28                 clock-output-names = "pmic_osc";
29         };
30
31         reg_usdhc2_vmmc: regulator-usdhc2-vmmc {
32                 compatible = "regulator-fixed";
33                 regulator-name = "VSD_3V3";
34                 regulator-min-microvolt = <3300000>;
35                 regulator-max-microvolt = <3300000>;
36                 gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
37                 enable-active-high;
38         };
39
40         fan: gpio-fan {
41                 compatible = "gpio-fan";
42                 gpio-fan,speed-map = <0 0 8600 1>;
43                 gpios = <&gpio3 5 GPIO_ACTIVE_HIGH>;
44                 #cooling-cells = <2>;
45                 pinctrl-names = "default";
46                 pinctrl-0 = <&pinctrl_gpio_fan>;
47                 status = "okay";
48         };
49 };
50
51 &A53_0 {
52         cpu-supply = <&buck2>;
53 };
54
55 &A53_1 {
56         cpu-supply = <&buck2>;
57 };
58
59 &A53_2 {
60         cpu-supply = <&buck2>;
61 };
62
63 &A53_3 {
64         cpu-supply = <&buck2>;
65 };
66
67 &cpu_thermal {
68         trips {
69                 cpu_alert0: trip0 {
70                         temperature = <75000>;
71                         hysteresis = <2000>;
72                         type = "passive";
73                 };
74
75                 cpu_alert1: trip1 {
76                         temperature = <80000>;
77                         hysteresis = <2000>;
78                         type = "passive";
79                 };
80
81                 cpu_crit0: trip3 {
82                         temperature = <90000>;
83                         hysteresis = <2000>;
84                         type = "critical";
85                 };
86
87                 fan_toggle0: trip4 {
88                         temperature = <65000>;
89                         hysteresis = <10000>;
90                         type = "active";
91                 };
92         };
93
94         cooling-maps {
95                 map0 {
96                         trip = <&cpu_alert0>;
97                         cooling-device =
98                         <&A53_0 0 1>; /* Exclude highest OPP */
99                 };
100
101                 map1 {
102                         trip = <&cpu_alert1>;
103                         cooling-device =
104                         <&A53_0 0 2>; /* Exclude two highest OPPs */
105                 };
106
107                 map4 {
108                         trip = <&fan_toggle0>;
109                         cooling-device = <&fan 0 1>;
110                 };
111         };
112 };
113
114 &i2c1 {
115         clock-frequency = <400000>;
116         pinctrl-names = "default";
117         pinctrl-0 = <&pinctrl_i2c1>;
118         status = "okay";
119
120         pmic: pmic@4b {
121                 compatible = "rohm,bd71837";
122                 reg = <0x4b>;
123                 pinctrl-names = "default";
124                 pinctrl-0 = <&pinctrl_pmic>;
125                 #clock-cells = <0>;
126                 clocks = <&pmic_osc>;
127                 clock-output-names = "pmic_clk";
128                 interrupt-parent = <&gpio1>;
129                 interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
130
131                 regulators {
132                         buck1: BUCK1 {
133                                 regulator-name = "buck1";
134                                 regulator-min-microvolt = <700000>;
135                                 regulator-max-microvolt = <1300000>;
136                                 regulator-boot-on;
137                                 regulator-always-on;
138                                 regulator-ramp-delay = <1250>;
139                                 rohm,dvs-run-voltage = <900000>;
140                                 rohm,dvs-idle-voltage = <900000>;
141                                 rohm,dvs-suspend-voltage = <800000>;
142                         };
143
144                         buck2: BUCK2 {
145                                 regulator-name = "buck2";
146                                 regulator-min-microvolt = <850000>;
147                                 regulator-max-microvolt = <1000000>;
148                                 regulator-boot-on;
149                                 regulator-always-on;
150                                 rohm,dvs-run-voltage = <1000000>;
151                                 rohm,dvs-idle-voltage = <900000>;
152                         };
153
154                         buck3: BUCK3 {
155                                 regulator-name = "buck3";
156                                 regulator-min-microvolt = <700000>;
157                                 regulator-max-microvolt = <1300000>;
158                                 regulator-boot-on;
159                                 rohm,dvs-run-voltage = <900000>;
160                         };
161
162                         buck4: BUCK4 {
163                                 regulator-name = "buck4";
164                                 regulator-min-microvolt = <700000>;
165                                 regulator-max-microvolt = <1300000>;
166                                 regulator-boot-on;
167                                 regulator-always-on;
168                                 rohm,dvs-run-voltage = <900000>;
169                         };
170
171                         buck5: BUCK5 {
172                                 regulator-name = "buck5";
173                                 regulator-min-microvolt = <700000>;
174                                 regulator-max-microvolt = <1350000>;
175                                 regulator-boot-on;
176                                 regulator-always-on;
177                         };
178
179                         buck6: BUCK6 {
180                                 regulator-name = "buck6";
181                                 regulator-min-microvolt = <3000000>;
182                                 regulator-max-microvolt = <3300000>;
183                                 regulator-boot-on;
184                                 regulator-always-on;
185                         };
186
187                         buck7: BUCK7 {
188                                 regulator-name = "buck7";
189                                 regulator-min-microvolt = <1605000>;
190                                 regulator-max-microvolt = <1995000>;
191                                 regulator-boot-on;
192                                 regulator-always-on;
193                         };
194
195                         buck8: BUCK8 {
196                                 regulator-name = "buck8";
197                                 regulator-min-microvolt = <800000>;
198                                 regulator-max-microvolt = <1400000>;
199                                 regulator-boot-on;
200                                 regulator-always-on;
201                         };
202
203                         ldo1: LDO1 {
204                                 regulator-name = "ldo1";
205                                 regulator-min-microvolt = <3000000>;
206                                 regulator-max-microvolt = <3300000>;
207                                 regulator-boot-on;
208                                 regulator-always-on;
209                         };
210
211                         ldo2: LDO2 {
212                                 regulator-name = "ldo2";
213                                 regulator-min-microvolt = <900000>;
214                                 regulator-max-microvolt = <900000>;
215                                 regulator-boot-on;
216                                 regulator-always-on;
217                         };
218
219                         ldo3: LDO3 {
220                                 regulator-name = "ldo3";
221                                 regulator-min-microvolt = <1800000>;
222                                 regulator-max-microvolt = <3300000>;
223                                 regulator-boot-on;
224                                 regulator-always-on;
225                         };
226
227                         ldo4: LDO4 {
228                                 regulator-name = "ldo4";
229                                 regulator-min-microvolt = <900000>;
230                                 regulator-max-microvolt = <1800000>;
231                                 regulator-boot-on;
232                                 regulator-always-on;
233                         };
234
235                         ldo5: LDO5 {
236                                 regulator-name = "ldo5";
237                                 regulator-min-microvolt = <1800000>;
238                                 regulator-max-microvolt = <3300000>;
239                                 regulator-boot-on;
240                                 regulator-always-on;
241                         };
242
243                         ldo6: LDO6 {
244                                 regulator-name = "ldo6";
245                                 regulator-min-microvolt = <900000>;
246                                 regulator-max-microvolt = <1800000>;
247                                 regulator-boot-on;
248                                 regulator-always-on;
249                         };
250
251                         ldo7: LDO7 {
252                                 regulator-name = "ldo7";
253                                 regulator-min-microvolt = <1800000>;
254                                 regulator-max-microvolt = <3300000>;
255                                 regulator-boot-on;
256                                 regulator-always-on;
257                         };
258                 };
259         };
260 };
261
262 &fec1 {
263         pinctrl-names = "default";
264         pinctrl-0 = <&pinctrl_fec1>;
265         phy-mode = "rgmii-id";
266         phy-handle = <&ethphy0>;
267         fsl,magic-packet;
268         status = "okay";
269
270         mdio {
271                 #address-cells = <1>;
272                 #size-cells = <0>;
273                 ethphy0: ethernet-phy@0 {
274                         compatible = "ethernet-phy-ieee802.3-c22";
275                         reg = <0>;
276                         reset-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
277                         reset-assert-us = <10000>;
278                         reset-deassert-us = <50000>;
279                 };
280         };
281 };
282
283 &uart1 {
284         pinctrl-names = "default";
285         pinctrl-0 = <&pinctrl_uart1>;
286         status = "okay";
287 };
288
289 &usdhc1 {
290         pinctrl-names = "default", "state_100mhz", "state_200mhz";
291         pinctrl-0 = <&pinctrl_usdhc1>;
292         pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
293         pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
294         bus-width = <8>;
295         non-removable;
296         status = "okay";
297 };
298
299 &usdhc2 {
300         pinctrl-names = "default", "state_100mhz", "state_200mhz";
301         pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
302         pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
303         pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
304         bus-width = <4>;
305         cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
306         vmmc-supply = <&reg_usdhc2_vmmc>;
307         status = "okay";
308 };
309
310 &usb3_phy0 {
311         status = "okay";
312 };
313
314 &usb_dwc3_0 {
315         dr_mode = "otg";
316         status = "okay";
317 };
318
319 &usb3_phy1 {
320         status = "okay";
321 };
322
323 &usb_dwc3_1 {
324         dr_mode = "host";
325         status = "okay";
326 };
327
328 &wdog1 {
329         pinctrl-names = "default";
330         pinctrl-0 = <&pinctrl_wdog>;
331         fsl,ext-reset-output;
332         status = "okay";
333 };
334
335 &iomuxc {
336         pinctrl_fec1: fec1grp {
337                 fsl,pins = <
338                         MX8MQ_IOMUXC_ENET_MDC_ENET1_MDC                 0x3
339                         MX8MQ_IOMUXC_ENET_MDIO_ENET1_MDIO               0x23
340                         MX8MQ_IOMUXC_ENET_TD3_ENET1_RGMII_TD3           0x1f
341                         MX8MQ_IOMUXC_ENET_TD2_ENET1_RGMII_TD2           0x1f
342                         MX8MQ_IOMUXC_ENET_TD1_ENET1_RGMII_TD1           0x1f
343                         MX8MQ_IOMUXC_ENET_TD0_ENET1_RGMII_TD0           0x1f
344                         MX8MQ_IOMUXC_ENET_RD3_ENET1_RGMII_RD3           0x91
345                         MX8MQ_IOMUXC_ENET_RD2_ENET1_RGMII_RD2           0x91
346                         MX8MQ_IOMUXC_ENET_RD1_ENET1_RGMII_RD1           0x91
347                         MX8MQ_IOMUXC_ENET_RD0_ENET1_RGMII_RD0           0x91
348                         MX8MQ_IOMUXC_ENET_TXC_ENET1_RGMII_TXC           0x1f
349                         MX8MQ_IOMUXC_ENET_RXC_ENET1_RGMII_RXC           0x91
350                         MX8MQ_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL     0x91
351                         MX8MQ_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL     0x1f
352                         MX8MQ_IOMUXC_GPIO1_IO09_GPIO1_IO9               0x19
353                 >;
354         };
355
356         pinctrl_gpio_fan: gpiofangrp {
357                 fsl,pins = <
358                         MX8MQ_IOMUXC_NAND_CLE_GPIO3_IO5                 0x16
359                 >;
360         };
361
362         pinctrl_i2c1: i2c1grp {
363                 fsl,pins = <
364                         MX8MQ_IOMUXC_I2C1_SCL_I2C1_SCL                  0x4000007f
365                         MX8MQ_IOMUXC_I2C1_SDA_I2C1_SDA                  0x4000007f
366                 >;
367         };
368
369         pinctrl_pmic: pmicirqgrp {
370                 fsl,pins = <
371                         MX8MQ_IOMUXC_GPIO1_IO03_GPIO1_IO3       0x41
372                 >;
373         };
374
375         pinctrl_uart1: uart1grp {
376                 fsl,pins = <
377                         MX8MQ_IOMUXC_UART1_RXD_UART1_DCE_RX             0x49
378                         MX8MQ_IOMUXC_UART1_TXD_UART1_DCE_TX             0x49
379                 >;
380         };
381
382         pinctrl_usdhc1: usdhc1grp {
383                 fsl,pins = <
384                         MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK                 0x83
385                         MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD                 0xc3
386                         MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0             0xc3
387                         MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1             0xc3
388                         MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2             0xc3
389                         MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3             0xc3
390                         MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4             0xc3
391                         MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5             0xc3
392                         MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6             0xc3
393                         MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7             0xc3
394                         MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE           0x83
395                         MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B         0xc1
396                 >;
397         };
398
399         pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
400                 fsl,pins = <
401                         MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK                 0x85
402                         MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD                 0xc5
403                         MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0             0xc5
404                         MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1             0xc5
405                         MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2             0xc5
406                         MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3             0xc5
407                         MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4             0xc5
408                         MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5             0xc5
409                         MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6             0xc5
410                         MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7             0xc5
411                         MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE           0x85
412                         MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B         0xc1
413                 >;
414         };
415
416         pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
417                 fsl,pins = <
418                         MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK                 0x87
419                         MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD                 0xc7
420                         MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0             0xc7
421                         MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1             0xc7
422                         MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2             0xc7
423                         MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3             0xc7
424                         MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4             0xc7
425                         MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5             0xc7
426                         MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6             0xc7
427                         MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7             0xc7
428                         MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE           0x87
429                         MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B         0xc1
430                 >;
431         };
432
433         pinctrl_usdhc2_gpio: usdhc2gpiogrp {
434                 fsl,pins = <
435                         MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12        0x41
436                         MX8MQ_IOMUXC_SD2_RESET_B_GPIO2_IO19     0x41
437                 >;
438         };
439
440         pinctrl_usdhc2: usdhc2grp {
441                 fsl,pins = <
442                         MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK                 0x83
443                         MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD                 0xc3
444                         MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0             0xc3
445                         MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1             0xc3
446                         MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2             0xc3
447                         MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3             0xc3
448                         MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT          0xc1
449                 >;
450         };
451
452         pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
453                 fsl,pins = <
454                         MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK                 0x85
455                         MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD                 0xc5
456                         MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0             0xc5
457                         MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1             0xc5
458                         MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2             0xc5
459                         MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3             0xc5
460                         MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT          0xc1
461                 >;
462         };
463
464         pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
465                 fsl,pins = <
466                         MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK                 0x87
467                         MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD                 0xc7
468                         MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0             0xc7
469                         MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1             0xc7
470                         MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2             0xc7
471                         MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3             0xc7
472                         MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT          0xc1
473                 >;
474         };
475
476         pinctrl_wdog: wdoggrp {
477                 fsl,pins = <
478                         MX8MQ_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0xc6
479                 >;
480         };
481 };