/* * Copyright 2018 NXP * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ /dts-v1/; #include #include #include #include #include #include #include #include #include / { model = "Freescale i.MX8QM DOMU"; compatible = "fsl,imx8qm-mek", "fsl,imx8qm", "xen,xenvm-4.10", "xen,xenvm"; interrupt-parent = <&gic>; #address-cells = <0x2>; #size-cells = <0x2>; /delete-node/ aliases; aliases { mmc0 = &usdhc1; dpu0 = &dpu1; ldb0 = &ldb1; serial1 = &lpuart1; isi0 = &isi_0; isi1 = &isi_1; isi2 = &isi_2; isi3 = &isi_3; csi0 = &mipi_csi_0; }; cpus { #address-cells = <0x2>; #size-cells = <0x0>; cpu@0 { device_type = "cpu"; compatible = "arm,armv8"; enable-method = "psci"; reg = <0x0 0x0>; }; cpu@1 { device_type = "cpu"; compatible = "arm,armv8"; enable-method = "psci"; reg = <0x0 0x1>; }; }; psci { compatible = "arm,psci-1.0"; method = "hvc"; }; memory@80000000 { device_type = "memory"; /* Will be updated by U-Boot or XEN TOOL */ reg = <0x00000000 0x80000000 0 0x80000000>; }; /* * The reserved memory will be used when using U-Boot loading android * image. For booting kernel using xl tool, pass args: * cma=960M@2400M-3584M * For the rpmsg_reserved area, need xl tool to create for non-android. */ reserved-memory { #address-cells = <2>; #size-cells = <2>; ranges; passthrough; /* * reserved-memory layout * 0x8800_0000 ~ 0x8FFF_FFFF is reserved for M4 * Shouldn't be used at A core and Linux side. * */ decoder_boot: decoder_boot@0x84000000 { no-map; reg = <0 0x84000000 0 0x2000000>; }; encoder_boot: encoder_boot@0x86000000 { no-map; reg = <0 0x86000000 0 0x400000>; }; /* * CM40 rpmsg memory is still for Dom0, the domu.cfg * not map 0x90000000 - 0x90100000 to DomU. */ rpmsg_reserved: rpmsg@0x90000000 { no-map; reg = <0 0x90000000 0 0x400000>; }; rpmsg_dma_reserved:rpmsg_dma@0x90400000 { compatible = "shared-dma-pool"; no-map; reg = <0 0x90400000 0 0x1C00000>; }; decoder_rpc: decoder_rpc@0x92000000 { no-map; reg = <0 0x92000000 0 0x200000>; }; encoder_rpc: encoder_rpc@0x92200000 { no-map; reg = <0 0x92200000 0 0x200000>; }; encoder_reserved: encoder_reserved@0x94400000 { no-map; reg = <0 0x94400000 0 0x800000>; }; /* global autoconfigured region for contiguous allocations */ linux,cma { compatible = "shared-dma-pool"; reusable; size = <0 0x3c000000>; alloc-ranges = <0 0x96000000 0 0x3c000000>; linux,cma-default; }; }; gic: interrupt-controller@3001000 { compatible = "arm,gic-v3"; #interrupt-cells = <3>; #address-cells = <0x0>; interrupt-controller; redistributor-stride = <0x20000>; #redistributor-regions = <0x1>; reg = <0x0 0x3001000 0 0x10000>, /* GIC Dist */ <0x0 0x3020000 0 0x1000000>; /* GICR */ interrupts = ; interrupt-parent = <&gic>; linux,phandle = <0xfde8>; phandle = <0xfde8>; }; timer { compatible = "arm,armv8-timer"; interrupts = , , ; interrupt-parent = <&gic>; clock-frequency = <8000000>; }; hypervisor { compatible = "xen,xen-4.11", "xen,xen"; reg = <0x0 0x38000000 0x0 0x1000000>; interrupts = ; interrupt-parent = <&gic>; }; passthrough { compatible = "simple-bus"; ranges; #address-cells = <2>; #size-cells = <2>; firmware { android { compatible = "android,firmware"; fstab { compatible = "android,fstab"; vendor { compatible = "android,vendor"; /* emmc node which used if androidboot.storage_type=emmc */ dev_emmc = "/dev/block/platform/passthrough/5b010000.usdhc/by-name/vendor"; type = "ext4"; mnt_flags = "ro,barrier=1,inode_readahead_blks=8"; fsmgr_flags = "wait,slotselect,avb"; }; }; vbmeta { /*we need use FirstStageMountVBootV2 if we enable avb*/ compatible = "android,vbmeta"; /*parts means the partition witch can be mount in first stage*/ parts = "vbmeta,boot,system,vendor"; }; }; }; mu_m0: mu_m0@2d000000 { compatible = "fsl,imx8-mu0-vpu-m0"; reg = <0x0 0x2d000000 0x0 0x20000>; interrupts = ; fsl,vpu_ap_mu_id = <16>; status = "okay"; }; mu1_m0: mu1_m0@2d020000 { compatible = "fsl,imx8-mu1-vpu-m0"; reg = <0x0 0x2d020000 0x0 0x20000>; interrupts = ; fsl,vpu_ap_mu_id = <17>; status = "okay"; }; mu2_m0: mu2_m0@2d040000 { compatible = "fsl,imx8-mu2-vpu-m0"; reg = <0x0 0x2d040000 0x0 0x20000>; interrupts = ; fsl,vpu_ap_mu_id = <18>; status = "okay"; }; vpu_decoder: vpu_decoder@2c000000 { compatible = "nxp,imx8qm-b0-vpudec", "nxp,imx8qxp-b0-vpudec"; boot-region = <&decoder_boot>; rpc-region = <&decoder_rpc>; reg = <0x0 0x2c000000 0x0 0x1000000>; reg-names = "vpu_regs"; reg-csr = <0x2d080000>; power-domains = <&pd_vpu_dec>; status = "disabled"; }; vpu_encoder: vpu_encoder@2d000000 { compatible = "nxp,imx8qm-b0-vpuenc"; #address-cells = <1>; #size-cells = <1>; boot-region = <&encoder_boot>; rpc-region = <&encoder_rpc>; reserved-region = <&encoder_reserved>; reg = <0x0 0x2d000000 0x0 0x1000000>, /*VPU Encoder*/ <0x0 0x2c000000 0x0 0x2000000>; /*VPU*/ reg-names = "vpu_regs"; power-domains = <&pd_vpu_enc>; reg-rpc-system = <0x40000000>; resolution-max = <1920 1920>; fps-max = <120>; status = "disabled"; core0@1020000 { compatible = "fsl,imx8-mu1-vpu-m0"; reg = <0x1020000 0x20000>; reg-csr = <0x1090000 0x10000>; interrupts = ; fsl,vpu_ap_mu_id = <17>; fw-buf-size = <0x200000>; rpc-buf-size = <0x80000>; print-buf-size = <0x80000>; }; core1@1040000 { compatible = "fsl,imx8-mu2-vpu-m0"; reg = <0x1040000 0x20000>; reg-csr = <0x10a0000 0x10000>; interrupts = ; fsl,vpu_ap_mu_id = <18>; fw-buf-size = <0x200000>; rpc-buf-size = <0x80000>; print-buf-size = <0x80000>; }; }; clk: clk { compatible = "fsl,imx8qm-clk"; #clock-cells = <1>; fsl,lpcg_base_offset = <0x00000000 0x00000000>; }; iomuxc: iomuxc { compatible = "fsl,imx8qm-iomuxc"; }; regulators { compatible = "simple-bus"; #address-cells = <1>; #size-cells = <0>; epdev_on: fixedregulator@100 { compatible = "regulator-fixed"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-name = "epdev_on"; gpio = <&gpio4 9 0>; enable-active-high; }; }; #include "fsl-imx8qm-device.dtsi" mu2: mu@5d1d0000 { compatible = "fsl,imx8-mu"; reg = <0x0 0x5d1d0000 0x0 0x10000>; interrupts = ; fsl,scu_ap_mu_id = <0>; status = "okay"; }; usb_lpcg { reg = <0x0 0x5b270000 0x0 0x10000>; }; edma01: dma-controller1@5a1f0000 { compatible = "fsl,imx8qm-edma"; reg = <0x0 0x5a2e0000 0x0 0x10000>, /* channel14 UART1 rx */ <0x0 0x5a2f0000 0x0 0x10000>; /* channel15 UART1 tx */ #dma-cells = <3>; dma-channels = <2>; interrupts = , ; interrupt-names = "edma0-chan14-rx", "edma0-chan15-tx"; status = "okay"; }; xen_i2c0: xen_i2c@0 { compatible = "xen,i2c"; be-adapter = "5a800000.i2c"; status = "okay"; }; }; }; /delete-node/ &tsens; /delete-node/ &thermal_zones; /delete-node/ &rtc; &display { ports = <&dpu1_disp0>, <&dpu1_disp1>; }; &dpu1_intsteer { status = "okay"; }; &prg1 { status = "okay"; }; &prg2 { status = "okay"; }; &prg3 { status = "okay"; }; &prg4 { status = "okay"; }; &prg5 { status = "okay"; }; &prg6 { status = "okay"; }; &prg7 { status = "okay"; }; &prg8 { status = "okay"; }; &prg9 { status = "okay"; }; &dpr1_channel1 { status = "okay"; }; &dpr1_channel2 { status = "okay"; }; &dpr1_channel3 { status = "okay"; }; &dpr2_channel1 { status = "okay"; }; &dpr2_channel2 { status = "okay"; }; &dpr2_channel3 { status = "okay"; }; &dpu1 { status = "okay"; }; &pixel_combiner1 { status = "okay"; }; &hdmi { status = "disabled"; }; /*/delete-node/ &irqsteer_dsi0;*/ /*/delete-node/ &i2c0_mipi_dsi0;*/ /*/delete-node/ &mipi_dsi_csr1;*/ /*/delete-node/ &mipi_dsi_phy1;*/ /*/delete-node/ &mipi_dsi1;*/ /*/delete-node/ &mipi_dsi_bridge1;*/ &lvds_region1 { status = "okay"; }; &ldb1_phy { status = "okay"; }; &ldb1 { status = "okay"; lvds-channel@0 { fsl,data-mapping = "jeida"; fsl,data-width = <24>; status = "okay"; port@1 { reg = <1>; lvds0_out: endpoint { remote-endpoint = <&it6263_0_in>; }; }; }; }; /delete-node/ &dpu2_intsteer; /delete-node/ &prg10; /delete-node/ &prg11; /delete-node/ &prg12; /delete-node/ &prg13; /delete-node/ &prg14; /delete-node/ &prg15; /delete-node/ &prg16; /delete-node/ &prg17; /delete-node/ &prg18; /delete-node/ &dpr3_channel1; /delete-node/ &dpr3_channel2; /delete-node/ &dpr3_channel3; /delete-node/ &dpr4_channel1; /delete-node/ &dpr4_channel2; /delete-node/ &dpr4_channel3; /delete-node/ &dpu2; /delete-node/ &pixel_combiner2; /delete-node/ &dsp; /delete-node/ &irqsteer_dsi1; /delete-node/ &i2c0_mipi_dsi1; /delete-node/ &mipi_dsi_csr2; /delete-node/ &mipi_dsi_phy2; /delete-node/ &mipi_dsi2; /delete-node/ &mipi_dsi_bridge2; /delete-node/ &lvds_region2; /delete-node/ &ldb2_phy; /delete-node/ &ldb2; /delete-node/ &lvds1_pwm; /*/delete-node/ &camera;*/ /delete-node/ &adc0; /delete-node/ &adc1; /delete-node/ &i2c0; /delete-node/ &i2c1; /delete-node/ &i2c2; /delete-node/ &i2c3; /delete-node/ &i2c4; /delete-node/ &i2c0_cm40; /delete-node/ &i2c0_cm41; &irqsteer_hdmi { status = "okay"; }; /*/delete-node/ &i2c0_hdmi;*/ &irqsteer_hdmi_rx { status = "okay"; }; /delete-node/ &irqsteer_lvds1; /delete-node/ &flexcan1; /delete-node/ &flexcan2; /delete-node/ &flexcan3; /delete-node/ &i2c1_lvds1; &irqsteer_lvds0 { /delete-property/ interrupt-parent; status = "okay"; }; &i2c1_lvds0 { #address-cells = <1>; #size-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_lvds0_lpi2c1>; clock-frequency = <100000>; status = "okay"; lvds-to-hdmi-bridge@4c { compatible = "ite,it6263"; reg = <0x4c>; port { it6263_0_in: endpoint { clock-lanes = <3>; data-lanes = <0 1 2 4>; remote-endpoint = <&lvds0_out>; }; }; }; }; &lvds0_pwm { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_lvds0_pwm0>; status = "okay"; }; /*/delete-node/ &irqsteer_csi0;*/ /*/delete-node/ &i2c0_mipi_csi0;*/ /delete-node/ &irqsteer_csi1; /delete-node/ &i2c0_mipi_csi1; /delete-node/ &lpspi0; /delete-node/ &lpspi2; /delete-node/ &lpspi3; /delete-node/ &lpuart0; &lpuart1 { /delete-property/ interrupt-parent; reg = <0x0 0x5a070000 0 0x1000>; dmas = <&edma01 15 0 0>, <&edma01 14 0 1>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_lpuart1>; status = "okay"; }; /delete-node/ &lpuart2; /delete-node/ &lpuart3; /delete-node/ &lpuart4; /delete-node/ &emvsim0; /delete-node/ &edma0; /delete-node/ &edma2; /delete-node/ &edma3; &gpio0 { /delete-property/ power-domains; status = "disabled"; }; &gpio1 { /delete-property/ power-domains; status = "okay"; }; &gpio2 { /delete-property/ power-domains; status = "disabled"; }; &gpio3 { /delete-property/ power-domains; status = "disabled"; }; &gpio4 { /delete-property/ power-domains; status = "okay"; }; &gpio5 { /delete-property/ power-domains; status = "disabled"; }; &gpio6 { /delete-property/ power-domains; status = "disabled"; }; &gpio7 { /delete-property/ power-domains; status = "disabled"; }; /*/delete-node/ &gpio0_mipi_csi0;*/ /delete-node/ &gpio0_mipi_csi1; /delete-node/ &gpt0; /delete-node/ &pwm0; /delete-node/ &pwm1; /delete-node/ &pwm2; /delete-node/ &pwm3; /delete-node/ &pwm4; /delete-node/ &pwm5; /delete-node/ &pwm6; /delete-node/ &pwm7; &gpu_3d0 { status = "okay"; }; /delete-node/ &gpu_3d1; &imx8_gpu_ss { /* xen guests have 2GB of low RAM @ 2GB */ reg = <0x0 0x80000000 0x0 0x80000000>; reg-names = "phys_baseaddr"; cores = <&gpu_3d0>; status = "okay"; }; /delete-node/ &mlb; &usdhc1 { compatible = "fsl,imx8qm-usdhc", "fsl,imx6sl-usdhc"; /*interrupt-parent = <&gic>;*/ /delete-property/ interrupt-parent; reg = <0x0 0x5b010000 0x0 0x10000>; }; /delete-node/ &usdhc2; /delete-node/ &usdhc3; /delete-node/ &fec1; /delete-node/ &fec2; &usbmisc1 { reg = <0x0 0x5b0d0200 0x0 0x200>; }; &usbmisc2 { status = "okay"; }; &usbphy1 { reg = <0x0 0x5b100000 0x0 0x200>; }; /delete-node/ &usbh1; &usbotg3 { /delete-property/ interrupt-parent; dr_mode = "otg"; extcon = <&typec_ptn5110>; status = "okay"; }; &usbphynop1 { status = "okay"; }; /delete-node/ &usbphynop2; &usbotg1 { reg = <0x0 0x5b0d0000 0x0 0x200>; /delete-property/ interrupt-parent; }; /delete-node/ &ddr_pmu0; /delete-node/ &ddr_pmu1; /delete-node/ &vpu; /delete-node/ &acm; /delete-node/ &esai0; /delete-node/ &esai1; /delete-node/ &spdif0; /delete-node/ &spdif1; /delete-node/ &sai1; /delete-node/ &sai0; /delete-node/ &sai2; /delete-node/ &sai3; /delete-node/ &sai_hdmi_rx; /delete-node/ &sai_hdmi_tx; /delete-node/ &sai6; /delete-node/ &sai7; /delete-node/ &amix; /delete-node/ &asrc0; /delete-node/ &asrc1; /delete-node/ &mqs; /delete-node/ &flexspi0; &dma_cap { compatible = "dma-capability"; only-dma-mask32 = <1>; }; /delete-node/ &ocotp; &pciea { ext_osc = <1>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_pciea>; disable-gpio = <&gpio1 13 GPIO_ACTIVE_LOW>; reset-gpio = <&gpio4 29 GPIO_ACTIVE_LOW>; clkreq-gpio = <&gpio4 27 GPIO_ACTIVE_LOW>; epdev_on-supply = <&epdev_on>; status = "okay"; }; /delete-node/ &pcieb; /delete-node/ &sata; /delete-node/ &intmux_cm40; /delete-node/ &intmux_cm41; &rpmsg1{ /* * 64K for one rpmsg instance: */ vdev-nums = <2>; reg = <0x0 0x90100000 0x0 0x20000>; status = "okay"; }; &mu_rpmsg1 { reg = <0x0 0x5d210000 0x0 0x10000>; }; /*/delete-node/ &crypto;*/ /*/delete-node/ &caam_sm;*/ /*/delete-node/ &sc_pwrkey;*/ /delete-node/ &wdog; /delete-node/ &wu; &iomuxc { imx8qm-mek { pinctrl_usdhc1: usdhc1grp { fsl,pins = < SC_P_EMMC0_CLK_CONN_EMMC0_CLK 0x06000041 SC_P_EMMC0_CMD_CONN_EMMC0_CMD 0x00000021 SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0 0x00000021 SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1 0x00000021 SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2 0x00000021 SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3 0x00000021 SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4 0x00000021 SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5 0x00000021 SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6 0x00000021 SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7 0x00000021 SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE 0x06000041 SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET_B 0x00000021 >; }; pinctrl_usdhc1_100mhz: usdhc1grp100mhz { fsl,pins = < SC_P_EMMC0_CLK_CONN_EMMC0_CLK 0x06000040 SC_P_EMMC0_CMD_CONN_EMMC0_CMD 0x00000020 SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0 0x00000020 SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1 0x00000020 SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2 0x00000020 SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3 0x00000020 SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4 0x00000020 SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5 0x00000020 SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6 0x00000020 SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7 0x00000020 SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE 0x06000040 SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET_B 0x00000020 >; }; pinctrl_usdhc1_200mhz: usdhc1grp200mhz { fsl,pins = < SC_P_EMMC0_CLK_CONN_EMMC0_CLK 0x06000040 SC_P_EMMC0_CMD_CONN_EMMC0_CMD 0x00000020 SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0 0x00000020 SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1 0x00000020 SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2 0x00000020 SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3 0x00000020 SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4 0x00000020 SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5 0x00000020 SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6 0x00000020 SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7 0x00000020 SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE 0x06000040 SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET_B 0x00000020 >; }; pinctrl_usbotg1: usbotg1 { fsl,pins = < SC_P_USB_SS3_TC0_CONN_USB_OTG1_PWR 0x00000021 >; }; pinctrl_lvds0_lpi2c1: lvds0lpi2c1grp { fsl,pins = < SC_P_LVDS0_I2C1_SCL_LVDS0_I2C1_SCL 0xc600004c SC_P_LVDS0_I2C1_SDA_LVDS0_I2C1_SDA 0xc600004c >; }; pinctrl_lpuart1: lpuart1grp { fsl,pins = < SC_P_UART1_RX_DMA_UART1_RX 0x06000020 SC_P_UART1_TX_DMA_UART1_TX 0x06000020 SC_P_UART1_CTS_B_DMA_UART1_CTS_B 0x06000020 SC_P_UART1_RTS_B_DMA_UART1_RTS_B 0x06000020 SC_P_QSPI1A_DQS_LSIO_GPIO4_IO22 0x00000021 >; }; pinctrl_pciea: pcieagrp{ fsl,pins = < SC_P_PCIE_CTRL0_CLKREQ_B_LSIO_GPIO4_IO27 0x06000021 SC_P_PCIE_CTRL0_WAKE_B_LSIO_GPIO4_IO28 0x04000021 SC_P_PCIE_CTRL0_PERST_B_LSIO_GPIO4_IO29 0x06000021 SC_P_LVDS1_I2C0_SDA_LSIO_GPIO1_IO13 0x06000000 SC_P_USDHC2_RESET_B_LSIO_GPIO4_IO09 0x06000021 >; }; pinctrl_typec: typecgrp { fsl,pins = < SC_P_QSPI1A_SS0_B_LSIO_GPIO4_IO19 0x60 SC_P_USB_SS3_TC3_LSIO_GPIO4_IO06 0x60 SC_P_QSPI1A_DATA0_LSIO_GPIO4_IO26 0x00000021 >; }; pinctrl_isl29023: isl29023grp { fsl,pins = < SC_P_USDHC2_WP_LSIO_GPIO4_IO11 0x00000021 >; }; pinctrl_lvds0_pwm0: lvds0pwm0grp { fsl,pins = < SC_P_LVDS0_GPIO00_LVDS0_PWM0_OUT 0x00000020 >; }; }; }; &usdhc1 { /delete-property/ iommus; pinctrl-names = "default", "state_100mhz", "state_200mhz"; pinctrl-0 = <&pinctrl_usdhc1>; pinctrl-1 = <&pinctrl_usdhc1_100mhz>; pinctrl-2 = <&pinctrl_usdhc1_200mhz>; bus-width = <8>; non-removable; status = "okay"; }; &usbotg1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usbotg1>; srp-disable; hnp-disable; adp-disable; power-polarity-active-high; disable-over-current; status = "okay"; }; &vpu_decoder { core_type = <2>; status = "okay"; }; &vpu_encoder { status = "okay"; }; &xen_i2c0 { #address-cells = <1>; #size-cells = <0>; clock-frequency = <100000>; status = "okay"; isl29023@44 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_isl29023>; compatible = "fsl,isl29023"; reg = <0x44>; rext = <499>; interrupt-parent = <&gpio4>; interrupts = <11 2>; }; fxos8700@1e { compatible = "fsl,fxos8700"; reg = <0x1e>; interrupt-open-drain; }; fxas2100x@20 { compatible = "fsl,fxas2100x"; reg = <0x20>; interrupt-open-drain; }; mpl3115@60 { compatible = "fsl,mpl3115"; reg = <0x60>; interrupt-open-drain; }; typec_ptn5110: typec@50 { compatible = "usb,tcpci"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_typec>; reg = <0x51>; interrupt-parent = <&gpio4>; interrupts = <26 IRQ_TYPE_LEVEL_LOW>; ss-sel-gpios = <&gpio4 6 GPIO_ACTIVE_LOW>; reset-gpios = <&gpio4 19 GPIO_ACTIVE_HIGH>; src-pdos = <0x380190c8 0x3803c0c8>; port-type = "drp"; sink-disable; default-role = "source"; status = "okay"; }; }; /* Camera */ /delete-node/ &isi_4; /delete-node/ &isi_5; /delete-node/ &isi_6; /delete-node/ &isi_7; /delete-node/ &mipi_csi_1; /delete-node/ &jpegdec; /delete-node/ &jpegenc; &gpio0_mipi_csi0 { status = "okay"; }; &irqsteer_csi0 { status = "okay"; }; &isi_0 { status = "okay"; }; &isi_1 { status = "okay"; }; &isi_2 { status = "okay"; }; &isi_3 { status = "okay"; }; &mipi_csi_0 { #address-cells = <1>; #size-cells = <0>; virtual-channel; status = "okay"; /* Camera 0 MIPI CSI-2 (CSIS0) */ port@0 { reg = <0>; mipi_csi0_ep: endpoint { remote-endpoint = <&max9286_0_ep>; data-lanes = <1 2 3 4>; }; }; }; &i2c0_mipi_csi0 { #address-cells = <1>; #size-cells = <0>; pinctrl-names = "default"; clock-frequency = <100000>; status = "okay"; max9286_mipi@6A { compatible = "maxim,max9286_mipi"; reg = <0x6A>; clocks = <&clk IMX8QM_CLK_DUMMY>; clock-names = "capture_mclk"; mclk = <27000000>; mclk_source = <0>; pwn-gpios = <&gpio1 27 GPIO_ACTIVE_HIGH>; virtual-channel; port { max9286_0_ep: endpoint { remote-endpoint = <&mipi_csi0_ep>; data-lanes = <1 2 3 4>; }; }; }; };