1/* 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 = <®_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 = <®_5v>; 76 }; 77 78 backlight: backlight { 79 compatible = "pwm-backlight"; 80 pinctrl-names = "default"; 81 pinctrl-0 = <&pinctrl_q7_backlight_enable>; 82 power-supply = <®_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 = <®_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 = <®_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 = <®_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}; 655