Merge tag 'soc-dt-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[linux-block.git] / arch / arm / boot / dts / imx7d-remarkable2.dts
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Copyright (C) 2015 Freescale Semiconductor, Inc.
4  * Copyright (C) 2019 reMarkable AS - http://www.remarkable.com/
5  *
6  */
7
8 /dts-v1/;
9
10 #include "imx7d.dtsi"
11 #include <dt-bindings/input/linux-event-codes.h>
12
13 / {
14         model = "reMarkable 2.0";
15         compatible = "remarkable,imx7d-remarkable2", "fsl,imx7d";
16
17         chosen {
18                 stdout-path = &uart6;
19         };
20
21         memory@80000000 {
22                 device_type = "memory";
23                 reg = <0x80000000 0x40000000>;
24         };
25
26         thermal-zones {
27                 epd-thermal {
28                         thermal-sensors = <&sy7636a>;
29                         polling-delay-passive = <30000>;
30                         polling-delay = <30000>;
31
32                         trips {
33                                 trip0 {
34                                         temperature = <49000>;
35                                         hysteresis = <2000>;
36                                         type = "passive";
37                                 };
38
39                                 trip1 {
40                                         temperature = <50000>;
41                                         hysteresis = <2000>;
42                                         type = "critical";
43                                 };
44                         };
45                 };
46         };
47
48         reg_brcm: regulator-brcm {
49                 compatible = "regulator-fixed";
50                 regulator-name = "brcm_reg";
51                 regulator-min-microvolt = <3300000>;
52                 regulator-max-microvolt = <3300000>;
53                 pinctrl-names = "default";
54                 pinctrl-0 = <&pinctrl_brcm_reg>;
55                 gpio = <&gpio6 13 GPIO_ACTIVE_HIGH>;
56                 enable-active-high;
57                 startup-delay-us = <150>;
58         };
59
60         reg_digitizer: regulator-digitizer {
61                 compatible = "regulator-fixed";
62                 regulator-name = "VDD_3V3_DIGITIZER";
63                 regulator-min-microvolt = <3300000>;
64                 regulator-max-microvolt = <3300000>;
65                 pinctrl-names = "default", "sleep";
66                 pinctrl-0 = <&pinctrl_digitizer_reg>;
67                 pinctrl-1 = <&pinctrl_digitizer_reg>;
68                 gpio = <&gpio1 6 GPIO_ACTIVE_HIGH>;
69                 enable-active-high;
70                 startup-delay-us = <100000>; /* 100 ms */
71         };
72
73         reg_touch: regulator-touch {
74                 compatible = "regulator-fixed";
75                 regulator-name = "VDD_3V3_TOUCH";
76                 regulator-min-microvolt = <3300000>;
77                 regulator-max-microvolt = <3300000>;
78                 pinctrl-names = "default";
79                 pinctrl-0 = <&pinctrl_touch_reg>;
80                 gpio = <&gpio1 11 GPIO_ACTIVE_HIGH>;
81                 enable-active-high;
82         };
83
84         wifi_pwrseq: wifi_pwrseq {
85                 compatible = "mmc-pwrseq-simple";
86                 pinctrl-names = "default";
87                 pinctrl-0 = <&pinctrl_wifi>;
88                 reset-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
89                 clocks = <&clks IMX7D_CLKO2_ROOT_DIV>;
90                 clock-names = "ext_clock";
91         };
92 };
93
94 &cpu0 {
95         cpu-supply = <&buck1>;
96 };
97
98 &clks {
99         assigned-clocks = <&clks IMX7D_CLKO2_ROOT_SRC>,
100                           <&clks IMX7D_CLKO2_ROOT_DIV>;
101         assigned-clock-parents = <&clks IMX7D_CKIL>;
102         assigned-clock-rates = <0>, <32768>;
103 };
104
105 &i2c1 {
106         clock-frequency = <400000>;
107         pinctrl-names = "default";
108         pinctrl-0 = <&pinctrl_i2c1>;
109         status = "okay";
110
111         wacom_digitizer: digitizer@9 {
112                 compatible = "hid-over-i2c";
113                 reg = <0x09>;
114                 hid-descr-addr = <0x01>;
115                 pinctrl-names = "default";
116                 pinctrl-0 = <&pinctrl_wacom>;
117                 interrupt-parent = <&gpio1>;
118                 interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
119                 touchscreen-inverted-x;
120                 touchscreen-inverted-y;
121                 vdd-supply = <&reg_digitizer>;
122         };
123 };
124
125 &i2c2 {
126         clock-frequency = <100000>;
127         pinctrl-names = "default";
128         pinctrl-0 = <&pinctrl_i2c2>;
129         status = "okay";
130
131         bd71815: pmic@4b {
132                 compatible = "rohm,bd71815";
133                 reg = <0x4b>;
134                 pinctrl-names = "default";
135                 pinctrl-0 = <&pinctrl_bd71815>;
136                 interrupt-parent = <&gpio6>; /* PMIC_INT_B GPIO6_IO16 */
137                 interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
138                 gpio-controller;
139                 clocks = <&clks IMX7D_CLKO2_ROOT_SRC>;
140                 clock-output-names = "bd71815-32k-out";
141                 #clock-cells = <0>;
142                 #gpio-cells = <2>;
143
144                 regulators {
145                         buck1: buck1 {
146                                 regulator-name = "buck1";
147                                 regulator-min-microvolt = <800000>;
148                                 regulator-max-microvolt = <2000000>;
149                                 regulator-boot-on;
150                                 regulator-always-on;
151                                 regulator-ramp-delay = <1250>;
152                         };
153
154                         buck2: buck2 {
155                                 regulator-name = "buck2";
156                                 regulator-min-microvolt = <800000>;
157                                 regulator-max-microvolt = <2000000>;
158                                 regulator-boot-on;
159                                 regulator-always-on;
160                                 regulator-ramp-delay = <1250>;
161                         };
162
163                         buck3: buck3 {
164                                 regulator-name = "buck3";
165                                 regulator-min-microvolt = <1200000>;
166                                 regulator-max-microvolt = <2700000>;
167                                 regulator-boot-on;
168                                 regulator-always-on;
169                         };
170
171                         buck4: buck4 {
172                                 regulator-name = "buck4";
173                                 regulator-min-microvolt = <1100000>;
174                                 regulator-max-microvolt = <1850000>;
175                                 regulator-boot-on;
176                                 regulator-always-on;
177                         };
178
179                         buck5: buck5 {
180                                 regulator-name = "buck5";
181                                 regulator-min-microvolt = <1800000>;
182                                 regulator-max-microvolt = <3300000>;
183                                 regulator-boot-on;
184                                 regulator-always-on;
185                         };
186
187                         ldo1: ldo1 {
188                                 regulator-name = "ldo1";
189                                 regulator-min-microvolt = <800000>;
190                                 regulator-max-microvolt = <3300000>;
191                                 regulator-boot-on;
192                                 regulator-always-on;
193                         };
194
195                         ldo2: ldo2 {
196                                 regulator-name = "ldo2";
197                                 regulator-min-microvolt = <800000>;
198                                 regulator-max-microvolt = <3300000>;
199                                 regulator-boot-on;
200                                 regulator-always-on;
201                         };
202
203                         ldo3: ldo3 {
204                                 regulator-name = "ldo3";
205                                 regulator-min-microvolt = <800000>;
206                                 regulator-max-microvolt = <3300000>;
207                                 regulator-boot-on;
208                                 regulator-always-on;
209                         };
210
211                         ldo4: ldo4 {
212                                 regulator-name = "ldo4";
213                                 regulator-min-microvolt = <800000>;
214                                 regulator-max-microvolt = <3300000>;
215                                 regulator-boot-on;
216                                 regulator-always-on;
217                         };
218
219                         ldo5: ldo5 {
220                                 regulator-name = "ldo5";
221                                 regulator-min-microvolt = <800000>;
222                                 regulator-max-microvolt = <3300000>;
223                                 regulator-boot-on;
224                                 regulator-always-on;
225                         };
226
227                         ldo6: ldodvref {
228                                 regulator-name = "ldodvref";
229                                 regulator-boot-on;
230                                 regulator-always-on;
231                         };
232
233                         ldo7: ldolpsr {
234                                 regulator-name = "ldolpsr";
235                                 regulator-boot-on;
236                                 regulator-always-on;
237                         };
238
239                         boost: wled {
240                                 regulator-name = "wled";
241                                 regulator-min-microamp = <10>;
242                                 regulator-max-microamp = <25000>;
243                                 regulator-boot-on;
244                                 regulator-always-on;
245                         };
246                 };
247         };
248 };
249
250 &i2c3 {
251         clock-frequency = <100000>;
252         pinctrl-names = "default";
253         pinctrl-0 = <&pinctrl_i2c3>;
254         status = "okay";
255
256         touchscreen@24 {
257                 compatible = "cypress,tt21000";
258                 reg = <0x24>;
259                 pinctrl-names = "default";
260                 pinctrl-0 = <&pinctrl_touch>;
261                 interrupt-parent = <&gpio1>;
262                 interrupts = <14 IRQ_TYPE_EDGE_FALLING>;
263                 reset-gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
264                 vdd-supply = <&reg_touch>;
265                 touchscreen-size-x = <880>;
266                 touchscreen-size-y = <1280>;
267                 #address-cells = <1>;
268                 #size-cells = <0>;
269
270                 button@0 {
271                         reg = <0>;
272                         linux,keycodes = <KEY_HOMEPAGE>;
273                 };
274
275                 button@1 {
276                         reg = <1>;
277                         linux,keycodes = <KEY_MENU>;
278                 };
279
280                 button@2 {
281                         reg = <2>;
282                         linux,keycodes = <KEY_BACK>;
283                 };
284
285                 button@3 {
286                         reg = <3>;
287                         linux,keycodes = <KEY_SEARCH>;
288                 };
289
290                 button@4 {
291                         reg = <4>;
292                         linux,keycodes = <KEY_VOLUMEDOWN>;
293                 };
294
295                 button@5 {
296                         reg = <5>;
297                         linux,keycodes = <KEY_VOLUMEUP>;
298                 };
299
300                 button@6 {
301                         reg = <6>;
302                         linux,keycodes = <KEY_CAMERA>;
303                 };
304
305                 button@7 {
306                         reg = <7>;
307                         linux,keycodes = <KEY_POWER>;
308                 };
309         };
310 };
311
312 &i2c4 {
313         clock-frequency = <100000>;
314         pinctrl-names = "default", "sleep";
315         pinctrl-0 = <&pinctrl_i2c4>;
316         pinctrl-1 = <&pinctrl_i2c4>;
317         status = "okay";
318
319         sy7636a: pmic@62 {
320                 compatible = "silergy,sy7636a";
321                 reg = <0x62>;
322                 pinctrl-names = "default";
323                 pinctrl-0 = <&pinctrl_epdpmic>;
324                 #thermal-sensor-cells = <0>;
325                 epd-pwr-good-gpios = <&gpio6 21 GPIO_ACTIVE_HIGH>;
326
327                 regulators {
328                         reg_epdpmic: vcom {
329                                 regulator-name = "vcom";
330                                 regulator-boot-on;
331                         };
332                 };
333         };
334 };
335
336 &snvs_pwrkey {
337         status = "okay";
338 };
339
340 &uart1 {
341         pinctrl-names = "default";
342         pinctrl-0 = <&pinctrl_uart1>;
343         assigned-clocks = <&clks IMX7D_UART1_ROOT_SRC>;
344         assigned-clock-parents = <&clks IMX7D_OSC_24M_CLK>;
345         status = "okay";
346 };
347
348 &uart6 {
349         pinctrl-names = "default";
350         pinctrl-0 = <&pinctrl_uart6>;
351         assigned-clocks = <&clks IMX7D_UART6_ROOT_SRC>;
352         assigned-clock-parents = <&clks IMX7D_OSC_24M_CLK>;
353         status = "okay";
354 };
355
356 &usbotg2 {
357         srp-disable;
358         hnp-disable;
359         status = "okay";
360 };
361
362 &usdhc2 {
363         #address-cells = <1>;
364         #size-cells = <0>;
365         pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
366         pinctrl-0 = <&pinctrl_usdhc2>;
367         pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
368         pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
369         mmc-pwrseq = <&wifi_pwrseq>;
370         vmmc-supply = <&reg_brcm>;
371         bus-width = <4>;
372         non-removable;
373         keep-power-in-suspend;
374         cap-power-off-card;
375         status = "okay";
376
377         brcmf: bcrmf@1 {
378                 reg = <1>;
379                 compatible = "brcm,bcm4329-fmac";
380         };
381 };
382
383 &usdhc3 {
384         pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
385         pinctrl-0 = <&pinctrl_usdhc3>;
386         pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
387         pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
388         pinctrl-3 = <&pinctrl_usdhc3>;
389         assigned-clocks = <&clks IMX7D_USDHC3_ROOT_CLK>;
390         assigned-clock-rates = <400000000>;
391         bus-width = <8>;
392         non-removable;
393         status = "okay";
394 };
395
396 &wdog1 {
397         pinctrl-names = "default";
398         pinctrl-0 = <&pinctrl_wdog>;
399         fsl,ext-reset-output;
400 };
401
402 &iomuxc_lpsr {
403         pinctrl_digitizer_reg: digitizerreggrp {
404                 fsl,pins = <
405                         /* DIGITIZER_PWR_EN */
406                         MX7D_PAD_LPSR_GPIO1_IO06__GPIO1_IO6     0x14
407                 >;
408         };
409
410         pinctrl_wacom: wacomgrp {
411                 fsl,pins = <
412                         /*MX7D_PAD_LPSR_GPIO1_IO05__GPIO1_IO5   0x00000014 FWE */
413                         MX7D_PAD_LPSR_GPIO1_IO04__GPIO1_IO4     0x00000074 /* PDCTB */
414                         MX7D_PAD_LPSR_GPIO1_IO01__GPIO1_IO1     0x00000034 /* WACOM INT */
415                         /*MX7D_PAD_LPSR_GPIO1_IO06__GPIO1_IO6   0x00000014 WACOM PWR ENABLE */
416                         /*MX7D_PAD_LPSR_GPIO1_IO00__GPIO1_IO0   0x00000074 WACOM RESET */
417                 >;
418         };
419 };
420
421 &iomuxc {
422         pinctrl_bd71815: bd71815grp {
423                 fsl,pins = <
424                         MX7D_PAD_SAI1_RX_SYNC__GPIO6_IO16       0x59
425                 >;
426         };
427
428         pinctrl_brcm_reg: brcmreggrp {
429                 fsl,pins = <
430                         /* WIFI_PWR_EN */
431                         MX7D_PAD_SAI1_TX_BCLK__GPIO6_IO13       0x14
432                 >;
433         };
434
435         pinctrl_epdpmic: epdpmicgrp {
436                 fsl,pins = <
437                         MX7D_PAD_SAI2_RX_DATA__GPIO6_IO21       0x00000074
438                         MX7D_PAD_ENET1_RGMII_TXC__GPIO7_IO11    0x00000014
439                 >;
440         };
441
442         pinctrl_touch: touchgrp {
443                 fsl,pins = <
444                         /* CYTTSP interrupt */
445                         MX7D_PAD_GPIO1_IO14__GPIO1_IO14         0x54
446                         /* CYTTSP reset */
447                         MX7D_PAD_GPIO1_IO13__GPIO1_IO13         0x04
448                 >;
449         };
450
451         pinctrl_i2c1: i2c1grp {
452                 fsl,pins = <
453                         MX7D_PAD_I2C1_SDA__I2C1_SDA             0x4000007f
454                         MX7D_PAD_I2C1_SCL__I2C1_SCL             0x4000007f
455                 >;
456         };
457
458         pinctrl_i2c2: i2c2grp {
459                 fsl,pins = <
460                         MX7D_PAD_I2C2_SDA__I2C2_SDA             0x4000007f
461                         MX7D_PAD_I2C2_SCL__I2C2_SCL             0x4000007f
462                 >;
463         };
464
465         pinctrl_i2c3: i2c3grp {
466                 fsl,pins = <
467                         MX7D_PAD_I2C3_SDA__I2C3_SDA             0x4000007f
468                         MX7D_PAD_I2C3_SCL__I2C3_SCL             0x4000007f
469                 >;
470         };
471
472         pinctrl_i2c4: i2c4grp {
473                 fsl,pins = <
474                         MX7D_PAD_I2C4_SDA__I2C4_SDA             0x4000007f
475                         MX7D_PAD_I2C4_SCL__I2C4_SCL             0x4000007f
476                 >;
477         };
478
479         pinctrl_touch_reg: touchreggrp {
480                 fsl,pins = <
481                         /* TOUCH_PWR_EN */
482                         MX7D_PAD_GPIO1_IO11__GPIO1_IO11         0x14
483                 >;
484         };
485
486         pinctrl_uart1: uart1grp {
487                 fsl,pins = <
488                         MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX    0x79
489                         MX7D_PAD_UART1_RX_DATA__UART1_DCE_RX    0x79
490                 >;
491         };
492
493         pinctrl_uart6: uart6grp {
494                 fsl,pins = <
495                         MX7D_PAD_EPDC_DATA09__UART6_DCE_TX              0x79
496                         MX7D_PAD_EPDC_DATA08__UART6_DCE_RX              0x79
497                 >;
498         };
499
500         pinctrl_usdhc2: usdhc2grp {
501                 fsl,pins = <
502                         MX7D_PAD_SD2_CMD__SD2_CMD               0x59
503                         MX7D_PAD_SD2_CLK__SD2_CLK               0x19
504                         MX7D_PAD_SD2_DATA0__SD2_DATA0           0x59
505                         MX7D_PAD_SD2_DATA1__SD2_DATA1           0x59
506                         MX7D_PAD_SD2_DATA2__SD2_DATA2           0x59
507                         MX7D_PAD_SD2_DATA3__SD2_DATA3           0x59
508                 >;
509         };
510
511         pinctrl_usdhc2_100mhz: usdhc2grp_100mhz {
512                 fsl,pins = <
513                         MX7D_PAD_SD2_CMD__SD2_CMD               0x5a
514                         MX7D_PAD_SD2_CLK__SD2_CLK               0x1a
515                         MX7D_PAD_SD2_DATA0__SD2_DATA0           0x5a
516                         MX7D_PAD_SD2_DATA1__SD2_DATA1           0x5a
517                         MX7D_PAD_SD2_DATA2__SD2_DATA2           0x5a
518                         MX7D_PAD_SD2_DATA3__SD2_DATA3           0x5a
519                 >;
520         };
521
522         pinctrl_usdhc2_200mhz: usdhc2grp_200mhz {
523                 fsl,pins = <
524                         MX7D_PAD_SD2_CMD__SD2_CMD               0x5b
525                         MX7D_PAD_SD2_CLK__SD2_CLK               0x1b
526                         MX7D_PAD_SD2_DATA0__SD2_DATA0           0x5b
527                         MX7D_PAD_SD2_DATA1__SD2_DATA1           0x5b
528                         MX7D_PAD_SD2_DATA2__SD2_DATA2           0x5b
529                         MX7D_PAD_SD2_DATA3__SD2_DATA3           0x5b
530                 >;
531         };
532
533         pinctrl_usdhc3: usdhc3grp {
534                 fsl,pins = <
535                         MX7D_PAD_SD3_CMD__SD3_CMD               0x59
536                         MX7D_PAD_SD3_CLK__SD3_CLK               0x19
537                         MX7D_PAD_SD3_DATA0__SD3_DATA0           0x59
538                         MX7D_PAD_SD3_DATA1__SD3_DATA1           0x59
539                         MX7D_PAD_SD3_DATA2__SD3_DATA2           0x59
540                         MX7D_PAD_SD3_DATA3__SD3_DATA3           0x59
541                         MX7D_PAD_SD3_DATA4__SD3_DATA4           0x59
542                         MX7D_PAD_SD3_DATA5__SD3_DATA5           0x59
543                         MX7D_PAD_SD3_DATA6__SD3_DATA6           0x59
544                         MX7D_PAD_SD3_DATA7__SD3_DATA7           0x59
545                         MX7D_PAD_SD3_STROBE__SD3_STROBE         0x19
546                 >;
547         };
548
549         pinctrl_usdhc3_100mhz: usdhc3grp_100mhz {
550                 fsl,pins = <
551                         MX7D_PAD_SD3_CMD__SD3_CMD               0x5a
552                         MX7D_PAD_SD3_CLK__SD3_CLK               0x1a
553                         MX7D_PAD_SD3_DATA0__SD3_DATA0           0x5a
554                         MX7D_PAD_SD3_DATA1__SD3_DATA1           0x5a
555                         MX7D_PAD_SD3_DATA2__SD3_DATA2           0x5a
556                         MX7D_PAD_SD3_DATA3__SD3_DATA3           0x5a
557                         MX7D_PAD_SD3_DATA4__SD3_DATA4           0x5a
558                         MX7D_PAD_SD3_DATA5__SD3_DATA5           0x5a
559                         MX7D_PAD_SD3_DATA6__SD3_DATA6           0x5a
560                         MX7D_PAD_SD3_DATA7__SD3_DATA7           0x5a
561                         MX7D_PAD_SD3_STROBE__SD3_STROBE         0x1a
562                 >;
563         };
564
565         pinctrl_usdhc3_200mhz: usdhc3grp_200mhz {
566                 fsl,pins = <
567                         MX7D_PAD_SD3_CMD__SD3_CMD               0x5b
568                         MX7D_PAD_SD3_CLK__SD3_CLK               0x1b
569                         MX7D_PAD_SD3_DATA0__SD3_DATA0           0x5b
570                         MX7D_PAD_SD3_DATA1__SD3_DATA1           0x5b
571                         MX7D_PAD_SD3_DATA2__SD3_DATA2           0x5b
572                         MX7D_PAD_SD3_DATA3__SD3_DATA3           0x5b
573                         MX7D_PAD_SD3_DATA4__SD3_DATA4           0x5b
574                         MX7D_PAD_SD3_DATA5__SD3_DATA5           0x5b
575                         MX7D_PAD_SD3_DATA6__SD3_DATA6           0x5b
576                         MX7D_PAD_SD3_DATA7__SD3_DATA7           0x5b
577                         MX7D_PAD_SD3_STROBE__SD3_STROBE         0x1b
578                 >;
579         };
580
581         pinctrl_wdog: wdoggrp {
582                 fsl,pins = <
583                         MX7D_PAD_ENET1_COL__WDOG1_WDOG_ANY      0x74
584                 >;
585         };
586
587         pinctrl_wifi: wifigrp {
588                 fsl,pins = <
589                         /* WiFi Reg On */
590                         MX7D_PAD_SD2_CD_B__GPIO5_IO9            0x00000014
591                         /* WiFi Sleep 32k */
592                         MX7D_PAD_SD1_WP__CCM_CLKO2              0x00000014
593                 >;
594         };
595 };