// SPDX-License-Identifier: GPL-2.0+ OR X11 /* * Copyright 2018-2019 Toradex */ /dts-v1/; /* * Choose output point for LCDIF block: * By default use LCD Panel driver: * - Panel connected to * - Generic Display Connector X20; * - Unified Interface Display Connector X34; * OR * - VGA monitor connected to X24. * * Define LCDIF_OUT_ADV7125 to use ONLY (!) VGA monitor connected to X24 * with our without DDC channel to use higher resolutions. * * NOTE: LCDIF output to LVDS transmitter is not supported for now. */ //#define LCDIF_OUT_ADV7125 #include "dt-bindings/pwm/pwm.h" #include "fsl-imx8qxp-colibri.dtsi" / { model = "Toradex Colibri iMX8QXP/DX on Colibri Evaluation Board V3"; compatible = "toradex,colibri-imx8qxp-eval-v3", "toradex,colibri-imx8qxp", "fsl,imx8qxp"; aliases { rtc0 = &rtc_i2c; rtc1 = &rtc; }; display-subsystem { status = "disabled"; }; extcon_usbc_det: usbc_det { compatible = "linux,extcon-usb-gpio"; debounce = <25>; id-gpio = <&gpio5 9 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usbc_det &pinctrl_ext_io0>; }; compatible = "pwm-backlight"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_gpio_bl_on>; gpios = <&gpio3 12 GPIO_ACTIVE_HIGH>; /* BKL1_ON */ pwms = <&pwm_adma_lcdif 0 100000 PWM_POLARITY_INVERTED>; brightness-levels = <0 4 8 16 32 64 128 255>; default-brightness-level = <6>; status = "okay"; }; panel { compatible = "edt,et070080dh6"; backlight = <&backlight>; enable-gpios = <&gpio4 19 GPIO_ACTIVE_HIGH>; port { lcd_display_in: endpoint { remote-endpoint = <&lcdif_out>; }; }; }; #else vga { compatible = "vga-connector"; label = "vga"; status = "okay"; port { vga_in: endpoint { remote-endpoint = <&adv7125_out>; }; }; }; vga-encoder { compatible = "adi,adv7125", "adi,adv7123"; status = "okay"; vdd-supply = <&vdd_3v3_vga>; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; lcd_display_in: endpoint { remote-endpoint = <&lcdif_out>; }; }; port@1 { reg = <1>; adv7125_out: endpoint { remote-endpoint = <&vga_in>; }; }; }; }; #endif regulators { reg_usbh_vbus: regulator-usbh-vbus { compatible = "regulator-fixed"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usbh1_reg>; regulator-name = "usbh_vbus"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; gpio = <&gpio4 3 GPIO_ACTIVE_LOW>; regulator-always-on; }; }; }; &adma_lcdif { pinctrl-names = "default"; /* Dumb DAC to VGA converter doesn't support backlight, so * instead use enable-gpios for LCDIF driver for this configuration */ #ifndef LCDIF_OUT_ADV7125 pinctrl-0 = <&pinctrl_lcdif>; #else pinctrl-0 = <&pinctrl_lcdif &pinctrl_gpio_bl_on>; enable-gpios = <&gpio3 12 GPIO_ACTIVE_HIGH>; /* BKL1_ON */ pinctrl-assert-gpios = <&gpio4 19 GPIO_ACTIVE_HIGH>; #endif /* By default, Colibri iMX8QXP uses 18-bits output bus for eLCDIF. * However, you can configure it to support 24-bits output. * "X20 Generic Display Connector" of Colibri Evaluation Board v3.2 * supports 24-bits mode. */ bus-width = <18>; status = "okay"; port@0 { lcdif_out: lcdif-endpoint { remote-endpoint = <&lcd_display_in>; }; }; }; /* DSI/LVDS port 0 */ &i2c0_mipi_lvds0 { #address-cells = <1>; #size-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c0_mipi_lvds0>; clock-frequency = <100000>; status = "disabled"; }; /* On-module MIPI CSI I2C accessible on FFC (X3) */ &i2c0_mipi_lvds1 { status = "okay"; ov5640_mipi: ov5640_mipi@3c { compatible = "ovti,ov5640_mipi_v3"; clocks = <&clk IMX8QXP_24MHZ>; clock-names = "csi_mclk"; csi_id = <0>; mclk = <24000000>; mclk_source = <0>; mipi_csi; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_csi_ctl>; pwn-gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>; reg = <0x3c>; rst-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>; status = "okay"; port { ov5640_ep: endpoint { remote-endpoint = <&mipi_csi0_ep>; }; }; }; }; &ldb1 { status = "disabled"; }; &ldb1_phy { status = "disabled"; }; /* Colibri SPI */ &lpspi2 { status = "okay"; spidev0: spidev@0 { compatible = "toradex,evalspi"; reg = <0>; spi-max-frequency = <10000000>; }; }; /* On-module MIPI CSI accessible via FFC (X3) */ &mipi_csi_0 { status = "okay"; /* Camera 0 MIPI CSI-2 (CSIS0) */ port@0 { reg = <0>; mipi_csi0_ep: endpoint { data-lanes = <1 2>; remote-endpoint = <&ov5640_ep>; }; }; }; &i2c1 { status = "okay"; /* M41T0M6 real time clock on carrier board */ rtc_i2c: rtc@68 { compatible = "st,m41t0"; reg = <0x68>; }; }; &ldb2_phy { status = "disabled"; }; &ldb2 { status = "disabled"; lvds-channel@0 { fsl,data-mapping = "jeida"; fsl,data-width = <24>; status = "okay"; }; }; &pwm_adma_lcdif { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_pwm_a>; status = "okay"; }; &usbotg1 { extcon = <&extcon_usbc_det &extcon_usbc_det>; vbus-supply = <®_usbh_vbus>; srp-disable; hnp-disable; adp-disable; power-polarity-active-high; disable-over-current; status = "okay"; }; &usbotg3 { dr_mode = "host"; status = "okay"; };