blob: 78baec1e73a136543756b52eb668bb7c61a77be1 [file] [log] [blame]
Sebastian Reichel64272ef2020-09-02 19:31:46 +02001/*
2 * GE B1x5v2 Patient Monitor
3 *
4 * Copyright 2018-2020 GE Inc.
5 * Copyright 2018-2020 Collabora Ltd.
6 *
7 * SPDX-License-Identifier: GPL-2.0+
8 */
9
10/dts-v1/;
11
12#include "imx6dl.dtsi"
13#include <dt-bindings/gpio/gpio.h>
14
15/ {
16 compatible = "ge,imx6dl-b1x5v2", "congatec,qmx6", "fsl,imx6dl";
17
18 chosen {
19 bootargs = "console=ttymxc2,115200";
20 stdout-path = &uart3;
21 };
22
23 reg_3p3v: 3p3v {
24 compatible = "regulator-fixed";
25 regulator-name = "3P3V";
26 regulator-min-microvolt = <3300000>;
27 regulator-max-microvolt = <3300000>;
28 regulator-always-on;
29 };
30
31 reg_5v: regulator-5v {
32 compatible = "regulator-fixed";
33 regulator-name = "5V";
34 regulator-min-microvolt = <5000000>;
35 regulator-max-microvolt = <5000000>;
36 regulator-always-on;
37 };
38
39 reg_5v0_audio: regulator-5v0-audio {
40 compatible = "regulator-fixed";
41 regulator-name = "5V0_AUDIO";
42 regulator-min-microvolt = <5000000>;
43 regulator-max-microvolt = <5000000>;
44 vin-supply = <&reg_5v>;
45
46 gpio = <&tca6424a 16 GPIO_ACTIVE_HIGH>;
47 enable-active-high;
48
49 /*
50 * This must be always-on for da7212, which has some not properly
51 * documented dependencies for it's speaker supply pin. The issue
52 * manifests as speaker volume being very low.
53 */
54 regulator-always-on;
55 regulator-boot-on;
56 };
57
58 reg_lcd: regulator-lcd {
59 compatible = "regulator-fixed";
60 regulator-name = "LED_VCC";
61 regulator-min-microvolt = <12000000>;
62 regulator-max-microvolt = <12000000>;
63
64 pinctrl-0 = <&pinctrl_q7_lcd_power>;
65 pinctrl-names = "default";
66 gpio = <&gpio1 7 GPIO_ACTIVE_HIGH>; // LCDPWR
67 enable-active-high;
68 };
69
70 usb_power: regulator-usb-power {
71 compatible = "regulator-fixed";
72 regulator-name = "USB POWER";
73 regulator-min-microvolt = <5000000>;
74 regulator-max-microvolt = <5000000>;
75 vin-supply = <&reg_5v>;
76 };
77
78 backlight: backlight {
79 compatible = "pwm-backlight";
80 pinctrl-names = "default";
81 pinctrl-0 = <&pinctrl_q7_backlight_enable>;
82 power-supply = <&reg_lcd>;
83 pwms = <&pwm4 0 5000000>;
84 brightness-levels = <0 4 8 16 32 64 128 255>;
85 default-brightness-level = <7>;
86 enable-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
87 };
88
89 panel {
90 compatible = "simple-panel";
91 backlight = <&backlight>;
92
93 port {
94 panel_in: endpoint {
95 remote-endpoint = <&lvds0_out>;
96 };
97 };
98 };
99
100 bootcount {
101 compatible = "u-boot,bootcount-spi-flash";
102 spi-flash = <&flash>;
103 offset = <0x01003fe>;
104 };
105
106 leds {
107 compatible = "gpio-leds";
108 pinctrl-names = "default";
109 pinctrl-0 = <&pinctrl_q7_gpio1 &pinctrl_q7_gpio3 &pinctrl_q7_gpio5>;
110
111 alarm1 {
112 label = "alarm:red";
113 gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
114 };
115
116 alarm2 {
117 label = "alarm:yellow";
118 gpios = <&gpio4 27 GPIO_ACTIVE_HIGH>;
119 };
120
121 alarm3 {
122 label = "alarm:blue";
123 gpios = <&gpio4 15 GPIO_ACTIVE_HIGH>;
124 };
125 };
126
127 poweroff {
128 compatible = "gpio-poweroff";
129 pinctrl-names = "default";
130 pinctrl-0 = <&pinctrl_q7_spi_cs1>;
131 gpios = <&gpio4 25 GPIO_ACTIVE_LOW>;
132 active-delay-ms = <1000>;
133 inactive-delay-ms = <0>;
134 timeout-ms = <5000>;
135 };
136
137 i2cmux {
138 compatible = "i2c-mux-gpio";
139 #address-cells = <1>;
140 #size-cells = <0>;
141 pinctrl-names = "default";
142 pinctrl-0 = <&pinctrl_i2cmux>;
143 mux-gpios = <&gpio6 9 GPIO_ACTIVE_HIGH>;
144 i2c-parent = <&i2c2>;
145 idle-state = <1>;
146
147 i2c5: i2c@0 {
148 reg = <0>;
149 #address-cells = <1>;
150 #size-cells = <0>;
151
152 tmp112: temperature-sensor@48 {
153 compatible = "ti,tmp112";
154 reg = <0x48>;
155 interrupt-parent = <&tca6424a>;
156 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
157 };
158
159 tca6424a: gpio-controller@22 {
160 compatible = "ti,tca6424";
161 reg = <0x22>;
162 gpio-controller;
163 #gpio-cells = <2>;
164
165 interrupt-parent = <&gpio7>;
166 interrupts = <11 IRQ_TYPE_EDGE_RISING>;
167 pinctrl-names = "default";
168 pinctrl-0 = <&pinctrl_q7_gpio6>;
169 interrupt-controller;
170 #interrupt-cells = <2>;
171
172 gpio-line-names = "GPIO_ROTOR#", "", "TMP_SENSOR_IRQ", "ACM_GPIO1", "ACM_GPIO2", "BATT_T", "", "",
173 "ACM_GPIO3", "ACM_GPIO4", "USB1_POWER_EN", "EGPIO_CC_CTL0", "EGPIO_CC_CTL1", "12V_OEMNBP_EN", "CP2105_RST", "",
174 "SPEAKER_PA_EN", "ARM7_UPI_RESET", "ARM7_PWR_RST", "NURSE_CALL", "MARKER_EN", "EGPIO_TOUCH_RST", "", "";
175 };
176 };
177
178 i2c6: i2c@1 {
179 reg = <1>;
180 #address-cells = <1>;
181 #size-cells = <0>;
182
183 pmic: pmic@08 {
184 compatible = "fsl,pfuze100";
185 reg = <0x08>;
186 };
187 };
188 };
189};
190
191&usbh1 {
192 /* Connected to USB-Hub SMSC USB2514, provides P0, P2, P3, P4 on Qseven connector */
193 vbus-supply = <&reg_5v>;
194 status = "okay";
195};
196
197&usbotg {
198 pinctrl-names = "default";
199 pinctrl-0 = <&pinctrl_usbotg>;
200 vbus-supply = <&usb_power>;
201 disable-over-current;
202 dr_mode = "host";
203 status = "okay";
204};
205
206&pmic {
207 regulators {
208 sw1a_reg: sw1ab {
209 regulator-min-microvolt = <300000>;
210 regulator-max-microvolt = <1875000>;
211 regulator-boot-on;
212 regulator-always-on;
213 regulator-ramp-delay = <6250>;
214 };
215
216 sw1c_reg: sw1c {
217 regulator-min-microvolt = <300000>;
218 regulator-max-microvolt = <1875000>;
219 regulator-boot-on;
220 regulator-always-on;
221 regulator-ramp-delay = <6250>;
222 };
223
224 sw2_reg: sw2 {
225 regulator-min-microvolt = <800000>;
226 regulator-max-microvolt = <3300000>;
227 regulator-boot-on;
228 regulator-always-on;
229 };
230
231 sw3a_reg: sw3a {
232 regulator-min-microvolt = <400000>;
233 regulator-max-microvolt = <1975000>;
234 regulator-boot-on;
235 regulator-always-on;
236 };
237
238 sw3b_reg: sw3b {
239 regulator-min-microvolt = <400000>;
240 regulator-max-microvolt = <1975000>;
241 regulator-boot-on;
242 regulator-always-on;
243 };
244
245 sw4_reg: sw4 {
246 regulator-min-microvolt = <675000>;
247 regulator-max-microvolt = <3300000>;
248 regulator-boot-on;
249 regulator-always-on;
250 };
251
252 swbst_reg: swbst {
253 regulator-min-microvolt = <5000000>;
254 regulator-max-microvolt = <5150000>;
255 };
256
257 snvs_reg: vsnvs {
258 regulator-min-microvolt = <1000000>;
259 regulator-max-microvolt = <3000000>;
260 regulator-boot-on;
261 regulator-always-on;
262 };
263
264 vref_reg: vrefddr {
265 regulator-boot-on;
266 regulator-always-on;
267 };
268
269 /* keep VGEN3, VGEN4 and VGEN5 enabled in order to maintain backward compatibility with hw-rev. A.0 */
270 vgen3_reg: vgen3 {
271 regulator-min-microvolt = <1800000>;
272 regulator-max-microvolt = <3300000>;
273 regulator-always-on;
274 };
275
276 vgen4_reg: vgen4 {
277 regulator-min-microvolt = <2500000>;
278 regulator-max-microvolt = <2500000>;
279 regulator-always-on;
280 };
281
282 vgen5_reg: vgen5 {
283 regulator-min-microvolt = <1800000>;
284 regulator-max-microvolt = <3300000>;
285 regulator-always-on;
286 };
287
288 /* supply voltage for eMMC */
289 vgen6_reg: vgen6 {
290 regulator-min-microvolt = <1800000>;
291 regulator-max-microvolt = <1800000>;
292 regulator-boot-on;
293 regulator-always-on;
294 };
295 };
296};
297
298&uart2 {
299 pinctrl-names = "default";
300 pinctrl-0 = <&pinctrl_uart2>;
301 status = "okay";
302};
303
304&uart3 {
305 pinctrl-names = "default";
306 pinctrl-0 = <&pinctrl_uart3>;
307 status = "okay";
308};
309
310&usdhc2 {
311 /* MicroSD card slot */
312 pinctrl-names = "default";
313 pinctrl-0 = <&pinctrl_usdhc2>;
314 cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
315 no-1-8-v;
316 keep-power-in-suspend;
317 wakeup-source;
318 vmmc-supply = <&reg_3p3v>;
319 status = "okay";
320};
321
322&usdhc3 {
323 /* eMMC module */
324 pinctrl-names = "default";
325 pinctrl-0 = <&pinctrl_usdhc3>;
326 non-removable;
327 bus-width = <8>;
328 no-1-8-v;
329 keep-power-in-suspend;
330 wakeup-source;
331 vmmc-supply = <&reg_3p3v>;
332 status = "okay";
333};
334
335&i2c1 {
336 status = "okay";
337 pinctrl-names = "default", "gpio";
338 pinctrl-0 = <&pinctrl_i2c1>;
339 pinctrl-1 = <&pinctrl_i2c1_gpio>;
340 scl-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
341 sda-gpios = <&gpio3 28 GPIO_ACTIVE_HIGH>;
342
343 clock-frequency = <100000>;
344};
345
346&i2c2 {
347 status = "okay";
348 pinctrl-names = "default", "gpio";
349 pinctrl-0 = <&pinctrl_i2c2>;
350 pinctrl-1 = <&pinctrl_i2c2_gpio>;
351 scl-gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;
352 sda-gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>;
353
354 clock-frequency = <100000>;
355};
356
357&i2c3 {
358 status = "okay";
359 pinctrl-names = "default", "gpio";
360 pinctrl-0 = <&pinctrl_i2c3>;
361 pinctrl-1 = <&pinctrl_i2c3_gpio>;
362 scl-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
363 sda-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
364
365 clock-frequency = <100000>;
366
367 rtc: m41t62@68 {
368 compatible = "st,m41t62";
369 reg = <0x68>;
370 };
371};
372
373&ldb {
374 status = "okay";
375
376 lvds0: lvds-channel@0 {
377 status = "okay";
378 fsl,data-mapping = "spwg";
379 fsl,data-width = <24>;
380
381 port@4 {
382 reg = <4>;
383 lvds0_out: endpoint {
384 remote-endpoint = <&panel_in>;
385 };
386 };
387 };
388};
389
390&hdmi {
391 status = "okay";
392};
393
394&fec {
395 pinctrl-names = "default";
396 pinctrl-0 = <&pinctrl_enet &pinctrl_phy_reset>;
397 phy-mode = "rgmii-id";
398 phy-handle = <&phy>;
399 status = "okay";
400
401 fsl,magic-packet;
402
403 mdio {
404 #address-cells = <1>;
405 #size-cells = <0>;
406
407 phy: ethernet-phy@6 {
408 compatible = "ethernet-phy-ieee802.3-c22";
409 reg = <6>;
410 qca,clk-out-frequency = <125000000>;
411 reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>;
412 reset-assert-us = <2000>;
413 };
414 };
415};
416
417&ecspi1 {
418 pinctrl-names = "default";
419 pinctrl-0 = <&pinctrl_ecspi1>;
420 status = "okay";
421
422 num-cs = <1>;
423 cs-gpios = <&gpio3 19 GPIO_ACTIVE_LOW>;
424
425 flash: m25p80@0 {
426 #address-cells = <1>;
427 #size-cells = <1>;
428 compatible = "st,sst25vf032b", "jedec,spi-nor";
429 spi-max-frequency = <20000000>;
430 reg = <0>;
431
432 partition@0 {
433 label = "bootloader";
434 reg = <0x0000000 0x100000>;
435 };
436
437 partition@100000 {
438 label = "user";
439 reg = <0x0100000 0x2fc000>;
440 };
441
442 partition@3fc000 {
443 label = "reserved";
444 reg = <0x03fc000 0x4000>;
445 read-only;
446 };
447 };
448};
449
450&pwm4 {
451 pinctrl-names = "default";
452 pinctrl-0 = <&pinctrl_pwm4>;
453 status = "okay";
454};
455
456&wdog1 {
457 pinctrl-names = "default";
458 pinctrl-0 = <&pinctrl_wdog>;
459 fsl,ext-reset-output;
460};
461
462&iomuxc {
463 imx6qdl-congatec-qmx6 {
464 pinctrl_uart2: uart2grp {
465 fsl,pins = <
466 MX6QDL_PAD_EIM_D26__UART2_TX_DATA 0x1b0b1
467 MX6QDL_PAD_EIM_D27__UART2_RX_DATA 0x1b0b1
468 >;
469 };
470
471 pinctrl_uart3: uart3grp {
472 fsl,pins = <
473 MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1
474 MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1
475 >;
476 };
477
478 pinctrl_wdog: wdoggrp {
479 fsl,pins = <
480 MX6QDL_PAD_DISP0_DAT8__WDOG1_B 0x1b0b0
481 >;
482 };
483
484 pinctrl_usdhc2: usdhc2grp {
485 fsl,pins = <
486 MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17059
487 MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10059
488 MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059
489 MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059
490 MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059
491 MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17059
492 >;
493 };
494
495 pinctrl_usdhc2_cd: sd2cdgrp {
496 fsl,pins = <
497 MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1b0b0
498 >;
499 };
500
501 pinctrl_usdhc3: usdhc4grp {
502 fsl,pins = <
503 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
504 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059
505 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
506 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
507 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
508 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
509 MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x17059
510 MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x17059
511 MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x17059
512 MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x17059
513 >;
514 };
515
516 pinctrl_i2c1: i2c1grp {
517 fsl,pins = <
518 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
519 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
520 >;
521 };
522
523 pinctrl_i2c1_gpio: i2c1gpiogrp {
524 fsl,pins = <
525 MX6QDL_PAD_EIM_D21__GPIO3_IO21 0x1b0b0
526 MX6QDL_PAD_EIM_D28__GPIO3_IO28 0x1b0b0
527 >;
528 };
529
530 pinctrl_i2c2: i2c2grp {
531 fsl,pins = <
532 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
533 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
534 >;
535 };
536
537 pinctrl_i2c2_gpio: i2c2gpiogrp {
538 fsl,pins = <
539 MX6QDL_PAD_KEY_COL3__GPIO4_IO12 0x1b0b0
540 MX6QDL_PAD_KEY_ROW3__GPIO4_IO13 0x1b0b0
541 >;
542 };
543
544 pinctrl_i2c3: i2c3grp {
545 fsl,pins = <
546 MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1
547 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1
548 >;
549 };
550
551 pinctrl_i2c3_gpio: i2c3gpiogrp {
552 fsl,pins = <
553 MX6QDL_PAD_GPIO_3__GPIO1_IO03 0x1b0b0
554 MX6QDL_PAD_GPIO_6__GPIO1_IO06 0x1b0b0
555 >;
556 };
557
558 pinctrl_ecspi1: ecspi1grp {
559 fsl,pins = <
560 MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0x100b1
561 MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x100b1
562 MX6QDL_PAD_EIM_D18__ECSPI1_MOSI 0x100b1
563 MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x1b0b0
564 >;
565 };
566
567 pinctrl_enet: enetgrp {
568 fsl,pins = <
569 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
570 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
571 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b030
572 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b030
573 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b030
574 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b030
575 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b030
576 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030
577 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0
578 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030
579 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b030
580 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b030
581 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030
582 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030
583 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030
584 MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x1b0b0
585 >;
586 };
587
588 pinctrl_phy_reset: phyrstgrp {
589 fsl,pins = <
590 MX6QDL_PAD_EIM_D23__GPIO3_IO23 0x4001b0b0 /* RGMII Phy Reset */
591 >;
592 };
593
594 pinctrl_pwm4: pwm4grp {
595 fsl,pins = <
596 MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1 /* Q7[123] LVDS_BLT_CTRL */
597 >;
598 };
599
600 pinctrl_q7_lcd_power: lcdpwrgrp {
601 fsl,pins = <
602 MX6QDL_PAD_GPIO_7__GPIO1_IO07 0x4001b0b0 /* Q7[111] LVDS_PPEN */
603 >;
604 };
605
606 pinctrl_q7_backlight_enable: blengrp {
607 fsl,pins = <
608 MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x4001b0b0 /* Q7[112] LVDS_BLEN */
609 >;
610 };
611
612 pinctrl_q7_gpio1: q7gpio1grp {
613 fsl,pins = <
614 MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x4001b0b0 /* Q7[186] GPIO1 */
615 >;
616 };
617
618 pinctrl_q7_gpio3: q7gpio3grp {
619 fsl,pins = <
620 MX6QDL_PAD_DISP0_DAT6__GPIO4_IO27 0x4001b0b0 /* Q7[188] GPIO3 */
621 >;
622 };
623
624 pinctrl_q7_gpio5: q7gpio5grp {
625 fsl,pins = <
626 MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x4001b0b0 /* Q7[190] GPIO5 */
627 >;
628 };
629
630 pinctrl_q7_gpio6: q7gpio6grp {
631 fsl,pins = <
632 MX6QDL_PAD_GPIO_16__GPIO7_IO11 0x1b0b0 /* Q7[191] GPIO6 */
633 >;
634 };
635
636 pinctrl_q7_spi_cs1: spics1grp {
637 fsl,pins = <
638 MX6QDL_PAD_DISP0_DAT4__GPIO4_IO25 0x4001b0b0 /* Q7[202] SPI_CS1# */
639 >;
640 };
641
642 pinctrl_i2cmux: i2cmuxgrp {
643 fsl,pins = <
644 MX6QDL_PAD_NANDF_WP_B__GPIO6_IO09 0x4001b0b0
645 >;
646 };
647
648 pinctrl_usbotg: usbotggrp {
649 fsl,pins = <
650 MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059 /* Q7[92] USB_ID */
651 >;
652 };
653 };
654};