Initial commit, not usable yet
authorstrongtz <strongtz@yeah.net>
星期一, 25 May 2020 14:43:45 +0000 (22:43 +0800)
committerstrongtz <strongtz@yeah.net>
星期一, 25 May 2020 14:43:45 +0000 (22:43 +0800)
166 files changed:
README.md [new file with mode: 0644]
bootimg.cfg [new file with mode: 0644]
build_polaris.sh [new file with mode: 0644]
device_specific/polaris.dtb [new file with mode: 0644]
device_specific/polaris.dts [new file with mode: 0644]
firstrun.sh [new file with mode: 0644]
firstrun_common.sh [new file with mode: 0644]
ramdisk [new file with mode: 0644]
sdm845Pkg/AcpiTables/AcpiSsdtRootPci.asl [new file with mode: 0644]
sdm845Pkg/AcpiTables/AcpiTables.inf [new file with mode: 0644]
sdm845Pkg/AcpiTables/Dbg2.aslc [new file with mode: 0644]
sdm845Pkg/AcpiTables/Dsdt.asl [new file with mode: 0644]
sdm845Pkg/AcpiTables/Fadt.aslc [new file with mode: 0644]
sdm845Pkg/AcpiTables/Gtdt.aslc [new file with mode: 0644]
sdm845Pkg/AcpiTables/Madt.aslc [new file with mode: 0644]
sdm845Pkg/AcpiTables/Spcr.aslc [new file with mode: 0644]
sdm845Pkg/AcpiTables/minimal/APIC.aml [new file with mode: 0644]
sdm845Pkg/AcpiTables/minimal/DBG2.aml [new file with mode: 0644]
sdm845Pkg/AcpiTables/minimal/DSDT.aml [new file with mode: 0644]
sdm845Pkg/AcpiTables/minimal/FACP.aml [new file with mode: 0644]
sdm845Pkg/AcpiTables/minimal/GTDT.aml [new file with mode: 0644]
sdm845Pkg/AcpiTables/test/CSRT.aml [new file with mode: 0644]
sdm845Pkg/AcpiTables/test/DBG2.aml [new file with mode: 0644]
sdm845Pkg/AcpiTables/test/DSDT.aml [new file with mode: 0644]
sdm845Pkg/AcpiTables/test/FACS.aml [new file with mode: 0644]
sdm845Pkg/AcpiTables/test/FADT.aml [new file with mode: 0644]
sdm845Pkg/AcpiTables/test/GTDT.aml [new file with mode: 0644]
sdm845Pkg/AcpiTables/test/IORT.aml [new file with mode: 0644]
sdm845Pkg/AcpiTables/test/MADT.aml [new file with mode: 0644]
sdm845Pkg/AcpiTables/test/MCFG.aml [new file with mode: 0644]
sdm845Pkg/AcpiTables/test/PPTT.aml [new file with mode: 0644]
sdm845Pkg/AcpiTables/test/TPM2.aml [new file with mode: 0644]
sdm845Pkg/Binary/.gitignore [new file with mode: 0644]
sdm845Pkg/Binary/ASN1X509Dxe/file.obj [new file with mode: 0644]
sdm845Pkg/Binary/ASN1X509Dxe/section1.ui [new file with mode: 0644]
sdm845Pkg/Binary/AdcDxe/AdcDxe.depex [new file with mode: 0644]
sdm845Pkg/Binary/AdcDxe/file.obj [new file with mode: 0644]
sdm845Pkg/Binary/AdcDxe/section2.ui [new file with mode: 0644]
sdm845Pkg/Binary/ButtonsDxe/ButtonsDxe.depex [new file with mode: 0644]
sdm845Pkg/Binary/ButtonsDxe/file.obj [new file with mode: 0644]
sdm845Pkg/Binary/ButtonsDxe/section2.ui [new file with mode: 0644]
sdm845Pkg/Binary/ChipInfo/ChipInfo.depex [new file with mode: 0644]
sdm845Pkg/Binary/ChipInfo/file.obj [new file with mode: 0644]
sdm845Pkg/Binary/ChipInfo/section2.ui [new file with mode: 0644]
sdm845Pkg/Binary/ClockDxe/ClockDxe.depex [new file with mode: 0644]
sdm845Pkg/Binary/ClockDxe/file.obj [new file with mode: 0644]
sdm845Pkg/Binary/ClockDxe/section2.ui [new file with mode: 0644]
sdm845Pkg/Binary/DALSys/DALSys.depex [new file with mode: 0644]
sdm845Pkg/Binary/DALTLMM/.depex [new file with mode: 0644]
sdm845Pkg/Binary/DALTLMM/DALTLMM.depex [new file with mode: 0644]
sdm845Pkg/Binary/DALTLMM/file.obj [new file with mode: 0644]
sdm845Pkg/Binary/DALTLMM/section2.ui [new file with mode: 0644]
sdm845Pkg/Binary/EmuVariableRuntimeDxe/EmuVariableRuntimeDxe.depex [new file with mode: 0644]
sdm845Pkg/Binary/EmuVariableRuntimeDxe/file.obj [new file with mode: 0644]
sdm845Pkg/Binary/EmuVariableRuntimeDxe/section2.ui [new file with mode: 0644]
sdm845Pkg/Binary/EnvDxe/EnvDxe.depex [new file with mode: 0644]
sdm845Pkg/Binary/GlinkDxe/GlinkDxe.depex [new file with mode: 0644]
sdm845Pkg/Binary/HWIODxeDriver/HWIODxeDriver.depex [new file with mode: 0644]
sdm845Pkg/Binary/HWIODxeDriver/HWIODxeDriver.ui [new file with mode: 0644]
sdm845Pkg/Binary/HWIODxeDriver/file.obj [new file with mode: 0644]
sdm845Pkg/Binary/HWIODxeDriver/section2.ui [new file with mode: 0644]
sdm845Pkg/Binary/HashDxe/file.obj [new file with mode: 0644]
sdm845Pkg/Binary/HashDxe/section1.ui [new file with mode: 0644]
sdm845Pkg/Binary/I2C/I2C.depex [new file with mode: 0644]
sdm845Pkg/Binary/NpaDxe/NpaDxe.depex [new file with mode: 0644]
sdm845Pkg/Binary/PlatformInfoDxeDriver/PlatformInfoDxeDriver.depex [new file with mode: 0644]
sdm845Pkg/Binary/PlatformInfoDxeDriver/file.obj [new file with mode: 0644]
sdm845Pkg/Binary/PlatformInfoDxeDriver/section2.ui [new file with mode: 0644]
sdm845Pkg/Binary/PmicDxe/PmicDxe.depex [new file with mode: 0644]
sdm845Pkg/Binary/PmicDxe/PmicDxe.ui [new file with mode: 0644]
sdm845Pkg/Binary/PmicDxe/file.obj [new file with mode: 0644]
sdm845Pkg/Binary/PmicDxe/section2.ui [new file with mode: 0644]
sdm845Pkg/Binary/QcomChargerDxeLA/QcomChargerDxeLA.depex [new file with mode: 0644]
sdm845Pkg/Binary/QcomChargerDxeLA/file.obj [new file with mode: 0644]
sdm845Pkg/Binary/QcomChargerDxeLA/section2.ui [new file with mode: 0644]
sdm845Pkg/Binary/QdssDxe/QdssDxe.depex [new file with mode: 0644]
sdm845Pkg/Binary/README [new file with mode: 0644]
sdm845Pkg/Binary/RealTimeClock/RealTimeClock.depex [new file with mode: 0644]
sdm845Pkg/Binary/SPI/SPI.depex [new file with mode: 0644]
sdm845Pkg/Binary/SPMI/SPMI.depex [new file with mode: 0644]
sdm845Pkg/Binary/SPMI/file.obj [new file with mode: 0644]
sdm845Pkg/Binary/SPMI/section2.ui [new file with mode: 0644]
sdm845Pkg/Binary/SdccDxe/SdccDxe.depex [new file with mode: 0644]
sdm845Pkg/Binary/SdccDxe/file.obj [new file with mode: 0644]
sdm845Pkg/Binary/SdccDxe/section2.ui [new file with mode: 0644]
sdm845Pkg/Binary/SecRSADxe/file.obj [new file with mode: 0644]
sdm845Pkg/Binary/SecRSADxe/section1.ui [new file with mode: 0644]
sdm845Pkg/Binary/SmemDxe/SmemDxe.depex [new file with mode: 0644]
sdm845Pkg/Binary/SmemDxe/file.obj [new file with mode: 0644]
sdm845Pkg/Binary/SmemDxe/section2.ui [new file with mode: 0644]
sdm845Pkg/Binary/UFSDxe/UFSDxe.depex [new file with mode: 0644]
sdm845Pkg/Binary/UFSDxe/file.obj [new file with mode: 0644]
sdm845Pkg/Binary/UFSDxe/section2.ui [new file with mode: 0644]
sdm845Pkg/Binary/ULogDxe/ULogDxe.depex [new file with mode: 0644]
sdm845Pkg/Binary/UsbConfigDxe/UsbConfigDxe.depex [new file with mode: 0644]
sdm845Pkg/Binary/UsbConfigDxe/file.obj [new file with mode: 0644]
sdm845Pkg/Binary/UsbConfigDxe/section2.ui [new file with mode: 0644]
sdm845Pkg/Binary/UsbDeviceDxe/UsbDeviceDxe.depex [new file with mode: 0644]
sdm845Pkg/Binary/UsbDeviceDxe/file.obj [new file with mode: 0644]
sdm845Pkg/Binary/UsbDeviceDxe/section2.ui [new file with mode: 0644]
sdm845Pkg/Binary/UsbMsdDxe/UsbMsdDxe.depex [new file with mode: 0644]
sdm845Pkg/Binary/UsbMsdDxe/file.obj [new file with mode: 0644]
sdm845Pkg/Binary/UsbMsdDxe/section2.ui [new file with mode: 0644]
sdm845Pkg/Binary/UsbPwrCtrlDxe/UsbPwrCtrlDxe.depex [new file with mode: 0644]
sdm845Pkg/Binary/UsbPwrCtrlDxe/file.obj [new file with mode: 0644]
sdm845Pkg/Binary/UsbPwrCtrlDxe/section2.ui [new file with mode: 0644]
sdm845Pkg/Binary/UsbfnDwc3Dxe/UsbfnDwc3Dxe.depex [new file with mode: 0644]
sdm845Pkg/Binary/UsbfnDwc3Dxe/file.obj [new file with mode: 0644]
sdm845Pkg/Binary/UsbfnDwc3Dxe/section2.ui [new file with mode: 0644]
sdm845Pkg/CommonDsc.dsc.inc [new file with mode: 0644]
sdm845Pkg/CommonDsc.dsc.inc_debug [new file with mode: 0644]
sdm845Pkg/CommonFdf.fdf.inc [new file with mode: 0644]
sdm845Pkg/Drivers/GenericKeypadDeviceDxe/GenericKeypadDevice.c [new file with mode: 0644]
sdm845Pkg/Drivers/GenericKeypadDeviceDxe/GenericKeypadDeviceDxe.inf [new file with mode: 0644]
sdm845Pkg/Drivers/KeypadDxe/ComponentName.c [new file with mode: 0644]
sdm845Pkg/Drivers/KeypadDxe/Keypad.c [new file with mode: 0644]
sdm845Pkg/Drivers/KeypadDxe/Keypad.h [new file with mode: 0644]
sdm845Pkg/Drivers/KeypadDxe/KeypadController.c [new file with mode: 0644]
sdm845Pkg/Drivers/KeypadDxe/KeypadDxe.inf [new file with mode: 0644]
sdm845Pkg/Drivers/KeypadDxe/KeypadTextIn.c [new file with mode: 0644]
sdm845Pkg/Drivers/KeypadDxe/Source.txt [new file with mode: 0644]
sdm845Pkg/Drivers/LogoDxe/Logo.bmp [new file with mode: 0644]
sdm845Pkg/Drivers/LogoDxe/Logo.c [new file with mode: 0644]
sdm845Pkg/Drivers/LogoDxe/Logo.idf [new file with mode: 0644]
sdm845Pkg/Drivers/LogoDxe/Logo.inf [new file with mode: 0644]
sdm845Pkg/Drivers/LogoDxe/Logo.uni [new file with mode: 0644]
sdm845Pkg/Drivers/LogoDxe/LogoDxe.inf [new file with mode: 0644]
sdm845Pkg/Drivers/LogoDxe/LogoDxe.uni [new file with mode: 0644]
sdm845Pkg/Drivers/LogoDxe/LogoDxeExtra.uni [new file with mode: 0644]
sdm845Pkg/Drivers/LogoDxe/LogoExtra.uni [new file with mode: 0644]
sdm845Pkg/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.c [new file with mode: 0644]
sdm845Pkg/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.inf [new file with mode: 0644]
sdm845Pkg/Include/ArmPlatform.h [new file with mode: 0644]
sdm845Pkg/Include/Configuration/BootDevices.h [new file with mode: 0644]
sdm845Pkg/Include/Configuration/DeviceMemoryMap.h [new file with mode: 0644]
sdm845Pkg/Include/Configuration/Hob.h [new file with mode: 0644]
sdm845Pkg/Include/Library/FrameBufferSerialPortLib.h [new file with mode: 0644]
sdm845Pkg/Include/Resources/FbColor.h [new file with mode: 0644]
sdm845Pkg/Include/Resources/font5x12.h [new file with mode: 0644]
sdm845Pkg/Library/FrameBufferSerialPortLib/FrameBufferSerialPortLib.c [new file with mode: 0644]
sdm845Pkg/Library/FrameBufferSerialPortLib/FrameBufferSerialPortLib.h [new file with mode: 0644]
sdm845Pkg/Library/FrameBufferSerialPortLib/FrameBufferSerialPortLib.inf [new file with mode: 0644]
sdm845Pkg/Library/InMemorySerialPortLib/InMemorySerialPortLib.c [new file with mode: 0644]
sdm845Pkg/Library/InMemorySerialPortLib/InMemorySerialPortLib.inf [new file with mode: 0644]
sdm845Pkg/Library/InMemorySerialPortLib/InMemorySerialPortLib.uni [new file with mode: 0644]
sdm845Pkg/Library/MemoryInitPeiLib/MemoryInitPeiLib.c [new file with mode: 0644]
sdm845Pkg/Library/MemoryInitPeiLib/PeiMemoryAllocationLib.inf [new file with mode: 0644]
sdm845Pkg/Library/PlatformBootManagerLib/PlatformBm.c [new file with mode: 0644]
sdm845Pkg/Library/PlatformBootManagerLib/PlatformBm.h [new file with mode: 0644]
sdm845Pkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf [new file with mode: 0644]
sdm845Pkg/Library/PlatformPeiLib/PlatformPeiLib.c [new file with mode: 0644]
sdm845Pkg/Library/PlatformPeiLib/PlatformPeiLib.inf [new file with mode: 0644]
sdm845Pkg/Library/VirtualRealTimeClockLib/VirtualRealTimeClockLib.c [new file with mode: 0644]
sdm845Pkg/Library/VirtualRealTimeClockLib/VirtualRealTimeClockLib.inf [new file with mode: 0644]
sdm845Pkg/Library/XiaomiMI8Lib/XiaomiMI8.c [new file with mode: 0644]
sdm845Pkg/Library/XiaomiMI8Lib/XiaomiMI8Helper.S [new file with mode: 0644]
sdm845Pkg/Library/XiaomiMI8Lib/XiaomiMI8Lib.inf [new file with mode: 0644]
sdm845Pkg/Library/XiaomiMI8Lib/XiaomiMI8Mem.c [new file with mode: 0644]
sdm845Pkg/SimpleFbDxe/SimpleFbDxe.c [new file with mode: 0644]
sdm845Pkg/SimpleFbDxe/SimpleFbDxe.inf [new file with mode: 0644]
sdm845Pkg/sdm845Dxe/sdm845Dxe.c [new file with mode: 0644]
sdm845Pkg/sdm845Dxe/sdm845Dxe.h [new file with mode: 0644]
sdm845Pkg/sdm845Dxe/sdm845Dxe.inf [new file with mode: 0644]
sdm845Pkg/sdm845Pkg.dec [new file with mode: 0644]
sdm845Pkg/sdm845Pkg.dsc [new file with mode: 0644]
sdm845Pkg/sdm845Pkg.fdf [new file with mode: 0644]

diff --git a/README.md b/README.md
new file mode 100644 (file)
index 0000000..d37c8ec
--- /dev/null
+++ b/README.md
@@ -0,0 +1,128 @@
+# EDK2 UEFI Firmware For Xiaomi MI 8 (Dipper)\r
+Attempt to create a normal EDK2 for Xiaomi MI8 - dipper.\r
+\r
+Based on zhuowei's port for [Pixel3XL](https://github.com/Pixel3Dev/edk2-pixel3/).\r
+\r
+[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FNekokeCore%2Fedk2-dipper.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FNekokeCore%2Fedk2-dipper?ref=badge_shield)\r
+[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FNekokeCore%2Fedk2-dipper.svg?type=small)](https://app.fossa.com/projects/git%2Bgithub.com%2FNekokeCore%2Fedk2-dipper?ref=badge_small)\r
+\r
+## The Most Important\r
+DO NOT FLASH THIS UEFI FIRMWARE IN YOUR MAIN PHONE !!!\r
+\r
+It's very unstable and you may lost your data.\r
+\r
+## Status \r
+ UFS WORK!\r
+\r
+ Can boot Linux Arm\r
+\r
+ Clock WORK!\r
+\r
+ Test ACPI etc. tables removeed.\r
+\r
+ And can load Windows PE.\r
+\r
+## Dev Logs\r
+2020.1.6 Fix 5 compiler error.\r
+\r
+2020.1.7 Start work and successfully run on my phone.\r
+\r
+2020.1.8 Fix Display.\r
+\r
+2020.4.17 Fix UFS drive and Fix MemoryMap(Thanks [Lemon1Ice](https://github.com/Lemon1Ice)).\r
+\r
+2020.4.19 Add ACPI etc. Tables and Fix DSDT 24 Errors. (PS.The ACPI and SSDT etc. Tables Provided by [5超级菜鸟5](https://github.com/sunshuyu)\r
+\r
+2020.4.24 Fix Clock and The Clock is work well && Add SmemDxe SPI SPMI HWIODxeDriver PmicDxe ButtonsDxe ChipInfoDxe to Binary && Add USB driver\r
+\r
+2020.4.30 Re added MemoryMap and can boot Windows to BlueScreen(Stop Code:Memory Managent) and (Stop Code:IRQL NOT LESS OR EQUAL)\r
+\r
+2020.5.6 Fix A Lot but Nothing.\r
+\r
+2020.5.8 Fix A Lot but Nothing.\r
+\r
+2020.5.10 Can boot WindowsPE . Thank for [Lemon1Ice](https://github.com/Lemon1Ice) patience and great help!\r
+\r
+## To-Do\r
+1.Fix fts touchscreen\r
+2.Fix ACPI tables\r
+3.Partition UFS\r
+4.make USB work\r
+\r
+## Dependencies\r
+\r
+Ubuntu 18.04:\r
+\r
+```\r
+sudo apt update\r
+sudo apt install build-essential uuid-dev iasl git nasm python3-distutils gcc-aarch64-linux-gnu\r
+```\r
+Or\r
+```\r
+sudo apt update\r
+sudo apt install build-essential\r
+sudo apt install uuid-dev\r
+sudo apt install iasl\r
+sudo apt install git\r
+sudo apt install nasm\r
+sudo apt install python3-distutils\r
+sudo apt install gcc-aarch64-linux-gnu\r
+```\r
+\r
+\r
+## Building\r
+1.Clone edk2 and edk2-platforms (Place three directories side by side.)\r
+\r
+edk2:\r
+```\r
+commit:3a3713e62cfad00d78bb938b0d9fb1eedaeff314\r
+```\r
+\r
+edk2-platforms:\r
+```\r
+commit:cfdc7f907d545b14302295b819ea078bc36c6a40\r
+```\r
+\r
+```\r
+mkdir workspaceedk2\r
+cd workspaceedk2\r
+git clone https://github.com/tianocore/edk2.git --recursive\r
+git clone https://github.com/tianocore/edk2-platforms.git\r
+cd edk2\r
+git checkout 3a3713e62cfad00d78bb938b0d9fb1eedaeff314\r
+cd ..\r
+cd edk2-platforms\r
+git checkout cfdc7f907d545b14302295b819ea078bc36c6a40\r
+```\r
+\r
+2.Clone this project\r
+```\r
+git clone https://github.com/NekokeCore/edk2-dipper.git\r
+```\r
+\r
+3.Build eenvironment\r
+```\r
+cd edk2-dipper\r
+mkdir workspace\r
+bash firstrun.sh\r
+```\r
+\r
+4.Build this project\r
+```\r
+bash build.sh\r
+```\r
+5.Debug and use\r
+```\r
+fastboot boot uefi.img\r
+```\r
+\r
+## Credits\r
+MemoryMap thanks [Lemon1Ice](https://github.com/Lemon1Ice).\r
+\r
+ACPI etc. tables thanks [5超级菜鸟5](https://github.com/sunshuyu)\r
+\r
+Orther edk2 project [EngLearnsh](https://github.com/EngLearnsh/edk2-dipper).\r
+\r
+SimpleFbDxe screen driver is from imbushuo's [Lumia950XLPkg](https://github.com/WOA-Project/Lumia950XLPkg).\r
+\r
+Also thanks [edk2 website](https://github.com/tianocore/tianocore.github.io/wiki/Using-EDK-II-with-Native-GCC#Install_required_software_from_apt).\r
diff --git a/bootimg.cfg b/bootimg.cfg
new file mode 100644 (file)
index 0000000..3327c3c
--- /dev/null
@@ -0,0 +1,8 @@
+bootsize = 
+pagesize = 0x1000
+kerneladdr = 0x8000
+ramdiskaddr = 0x1000000
+secondaddr = 0xf00000
+tagsaddr = 0x100
+name = thisconfig
+cmdline = 
\ No newline at end of file
diff --git a/build_polaris.sh b/build_polaris.sh
new file mode 100644 (file)
index 0000000..e63a55c
--- /dev/null
@@ -0,0 +1,13 @@
+#!/bin/bash
+# based on the instructions from edk2-platform
+echo cleanning BuidFiles
+rm -rf boot_polaris.img
+echo Done.
+set -e
+. firstrun_common.sh
+# not actually GCC5; it's GCC7 on Ubuntu 18.04.
+GCC5_AARCH64_PREFIX=aarch64-linux-gnu- build -s -n 0 -a AARCH64 -t GCC5 -p sdm845Pkg/sdm845Pkg.dsc
+gzip -c < workspace/Build/sdm845Pkg/DEBUG_GCC5/FV/sdm845PKG_UEFI.fd >uefi_img
+cat ./device_specific/polaris.dtb >>uefi_img
+abootimg --create boot_polaris.img -k uefi_img -r ramdisk -f bootimg.cfg
+rm -rf ./uefi_img
diff --git a/device_specific/polaris.dtb b/device_specific/polaris.dtb
new file mode 100644 (file)
index 0000000..92c34b1
Binary files /dev/null and b/device_specific/polaris.dtb differ
diff --git a/device_specific/polaris.dts b/device_specific/polaris.dts
new file mode 100644 (file)
index 0000000..7619143
--- /dev/null
@@ -0,0 +1,26046 @@
+/dts-v1/;
+
+/ {
+       #address-cells = <0x2>;
+       #size-cells = <0x2>;
+       model = "Xiaomi Technologies, Inc. Dipper new P2 v2";
+       compatible = "qcom,sdm845-mtp", "qcom,sdm845", "qcom,mtp";
+       qcom,msm-id = <0x141 0x20000>;
+       interrupt-parent = <0x1>;
+       qcom,board-id = <0x36 0x0>;
+
+       cpus {
+               #address-cells = <0x2>;
+               #size-cells = <0x0>;
+
+               cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,armv8";
+                       reg = <0x0 0x0>;
+                       enable-method = "psci";
+                       efficiency = <0x400>;
+                       cache-size = <0x8000>;
+                       cpu-release-addr = <0x0 0x90000000>;
+                       qcom,lmh-dcvs = <0x2>;
+                       #cooling-cells = <0x2>;
+                       next-level-cache = <0x3>;
+                       sched-energy-costs = <0x4 0x5>;
+                       linux,phandle = <0x11>;
+                       phandle = <0x11>;
+
+                       l2-cache {
+                               compatible = "arm,arch-cache";
+                               cache-size = <0x20000>;
+                               cache-level = <0x2>;
+                               next-level-cache = <0x6>;
+                               linux,phandle = <0x3>;
+                               phandle = <0x3>;
+
+                               l3-cache {
+                                       compatible = "arm,arch-cache";
+                                       cache-size = <0x200000>;
+                                       cache-level = <0x3>;
+                                       linux,phandle = <0x6>;
+                                       phandle = <0x6>;
+                               };
+                       };
+
+                       l1-icache {
+                               compatible = "arm,arch-cache";
+                               qcom,dump-size = <0x12000>;
+                               linux,phandle = <0x120>;
+                               phandle = <0x120>;
+                       };
+
+                       l1-dcache {
+                               compatible = "arm,arch-cache";
+                               qcom,dump-size = <0xa000>;
+                               linux,phandle = <0x128>;
+                               phandle = <0x128>;
+                       };
+
+                       l1-tlb {
+                               qcom,dump-size = <0x6000>;
+                               linux,phandle = <0x134>;
+                               phandle = <0x134>;
+                       };
+               };
+
+               cpu@100 {
+                       device_type = "cpu";
+                       compatible = "arm,armv8";
+                       reg = <0x0 0x100>;
+                       enable-method = "psci";
+                       efficiency = <0x400>;
+                       cache-size = <0x8000>;
+                       cpu-release-addr = <0x0 0x90000000>;
+                       qcom,lmh-dcvs = <0x2>;
+                       #cooling-cells = <0x2>;
+                       next-level-cache = <0x7>;
+                       sched-energy-costs = <0x4 0x5>;
+                       linux,phandle = <0x12>;
+                       phandle = <0x12>;
+
+                       l2-cache {
+                               compatible = "arm,arch-cache";
+                               cache-size = <0x20000>;
+                               cache-level = <0x2>;
+                               next-level-cache = <0x6>;
+                               linux,phandle = <0x7>;
+                               phandle = <0x7>;
+                       };
+
+                       l1-icache {
+                               compatible = "arm,arch-cache";
+                               qcom,dump-size = <0x12000>;
+                               linux,phandle = <0x121>;
+                               phandle = <0x121>;
+                       };
+
+                       l1-dcache {
+                               compatible = "arm,arch-cache";
+                               qcom,dump-size = <0xa000>;
+                               linux,phandle = <0x129>;
+                               phandle = <0x129>;
+                       };
+
+                       l1-tlb {
+                               qcom,dump-size = <0x6000>;
+                               linux,phandle = <0x135>;
+                               phandle = <0x135>;
+                       };
+               };
+
+               cpu@200 {
+                       device_type = "cpu";
+                       compatible = "arm,armv8";
+                       reg = <0x0 0x200>;
+                       enable-method = "psci";
+                       efficiency = <0x400>;
+                       cache-size = <0x8000>;
+                       cpu-release-addr = <0x0 0x90000000>;
+                       qcom,lmh-dcvs = <0x2>;
+                       #cooling-cells = <0x2>;
+                       next-level-cache = <0x8>;
+                       sched-energy-costs = <0x4 0x5>;
+                       linux,phandle = <0x13>;
+                       phandle = <0x13>;
+
+                       l2-cache {
+                               compatible = "arm,arch-cache";
+                               cache-size = <0x20000>;
+                               cache-level = <0x2>;
+                               next-level-cache = <0x6>;
+                               linux,phandle = <0x8>;
+                               phandle = <0x8>;
+                       };
+
+                       l1-icache {
+                               compatible = "arm,arch-cache";
+                               qcom,dump-size = <0x12000>;
+                               linux,phandle = <0x122>;
+                               phandle = <0x122>;
+                       };
+
+                       l1-dcache {
+                               compatible = "arm,arch-cache";
+                               qcom,dump-size = <0xa000>;
+                               linux,phandle = <0x12a>;
+                               phandle = <0x12a>;
+                       };
+
+                       l1-tlb {
+                               qcom,dump-size = <0x6000>;
+                               linux,phandle = <0x136>;
+                               phandle = <0x136>;
+                       };
+               };
+
+               cpu@300 {
+                       device_type = "cpu";
+                       compatible = "arm,armv8";
+                       reg = <0x0 0x300>;
+                       enable-method = "psci";
+                       efficiency = <0x400>;
+                       cache-size = <0x8000>;
+                       cpu-release-addr = <0x0 0x90000000>;
+                       qcom,lmh-dcvs = <0x2>;
+                       #cooling-cells = <0x2>;
+                       next-level-cache = <0x9>;
+                       sched-energy-costs = <0x4 0x5>;
+                       linux,phandle = <0x14>;
+                       phandle = <0x14>;
+
+                       l2-cache {
+                               compatible = "arm,arch-cache";
+                               cache-size = <0x20000>;
+                               cache-level = <0x2>;
+                               next-level-cache = <0x6>;
+                               linux,phandle = <0x9>;
+                               phandle = <0x9>;
+                       };
+
+                       l1-icache {
+                               compatible = "arm,arch-cache";
+                               qcom,dump-size = <0x12000>;
+                               linux,phandle = <0x123>;
+                               phandle = <0x123>;
+                       };
+
+                       l1-dcache {
+                               compatible = "arm,arch-cache";
+                               qcom,dump-size = <0xa000>;
+                               linux,phandle = <0x12b>;
+                               phandle = <0x12b>;
+                       };
+
+                       l1-tlb {
+                               qcom,dump-size = <0x6000>;
+                               linux,phandle = <0x137>;
+                               phandle = <0x137>;
+                       };
+               };
+
+               cpu@400 {
+                       device_type = "cpu";
+                       compatible = "arm,armv8";
+                       reg = <0x0 0x400>;
+                       enable-method = "psci";
+                       efficiency = <0x6cc>;
+                       cache-size = <0x20000>;
+                       cpu-release-addr = <0x0 0x90000000>;
+                       qcom,lmh-dcvs = <0xa>;
+                       #cooling-cells = <0x2>;
+                       next-level-cache = <0xb>;
+                       sched-energy-costs = <0xc 0xd>;
+                       linux,phandle = <0x15>;
+                       phandle = <0x15>;
+
+                       l2-cache {
+                               compatible = "arm,arch-cache";
+                               cache-size = <0x40000>;
+                               cache-level = <0x2>;
+                               next-level-cache = <0x6>;
+                               linux,phandle = <0xb>;
+                               phandle = <0xb>;
+                       };
+
+                       l1-icache {
+                               compatible = "arm,arch-cache";
+                               qcom,dump-size = <0x24000>;
+                               linux,phandle = <0x124>;
+                               phandle = <0x124>;
+                       };
+
+                       l1-dcache {
+                               compatible = "arm,arch-cache";
+                               qcom,dump-size = <0x14000>;
+                               linux,phandle = <0x12c>;
+                               phandle = <0x12c>;
+                       };
+
+                       l1-tlb {
+                               qcom,dump-size = <0x6800>;
+                               linux,phandle = <0x138>;
+                               phandle = <0x138>;
+                       };
+               };
+
+               cpu@500 {
+                       device_type = "cpu";
+                       compatible = "arm,armv8";
+                       reg = <0x0 0x500>;
+                       enable-method = "psci";
+                       efficiency = <0x6cc>;
+                       cache-size = <0x20000>;
+                       cpu-release-addr = <0x0 0x90000000>;
+                       qcom,lmh-dcvs = <0xa>;
+                       #cooling-cells = <0x2>;
+                       next-level-cache = <0xe>;
+                       sched-energy-costs = <0xc 0xd>;
+                       linux,phandle = <0x16>;
+                       phandle = <0x16>;
+
+                       l2-cache {
+                               compatible = "arm,arch-cache";
+                               cache-size = <0x40000>;
+                               cache-level = <0x2>;
+                               next-level-cache = <0x6>;
+                               linux,phandle = <0xe>;
+                               phandle = <0xe>;
+                       };
+
+                       l1-icache {
+                               compatible = "arm,arch-cache";
+                               qcom,dump-size = <0x24000>;
+                               linux,phandle = <0x125>;
+                               phandle = <0x125>;
+                       };
+
+                       l1-dcache {
+                               compatible = "arm,arch-cache";
+                               qcom,dump-size = <0x14000>;
+                               linux,phandle = <0x12d>;
+                               phandle = <0x12d>;
+                       };
+
+                       l1-tlb {
+                               qcom,dump-size = <0x6800>;
+                               linux,phandle = <0x139>;
+                               phandle = <0x139>;
+                       };
+               };
+
+               cpu@600 {
+                       device_type = "cpu";
+                       compatible = "arm,armv8";
+                       reg = <0x0 0x600>;
+                       enable-method = "psci";
+                       efficiency = <0x6cc>;
+                       cache-size = <0x20000>;
+                       cpu-release-addr = <0x0 0x90000000>;
+                       qcom,lmh-dcvs = <0xa>;
+                       #cooling-cells = <0x2>;
+                       next-level-cache = <0xf>;
+                       sched-energy-costs = <0xc 0xd>;
+                       linux,phandle = <0x17>;
+                       phandle = <0x17>;
+
+                       l2-cache {
+                               compatible = "arm,arch-cache";
+                               cache-size = <0x40000>;
+                               cache-level = <0x2>;
+                               next-level-cache = <0x6>;
+                               linux,phandle = <0xf>;
+                               phandle = <0xf>;
+                       };
+
+                       l1-icache {
+                               compatible = "arm,arch-cache";
+                               qcom,dump-size = <0x24000>;
+                               linux,phandle = <0x126>;
+                               phandle = <0x126>;
+                       };
+
+                       l1-dcache {
+                               compatible = "arm,arch-cache";
+                               qcom,dump-size = <0x14000>;
+                               linux,phandle = <0x12e>;
+                               phandle = <0x12e>;
+                       };
+
+                       l1-tlb {
+                               qcom,dump-size = <0x6800>;
+                               linux,phandle = <0x13a>;
+                               phandle = <0x13a>;
+                       };
+               };
+
+               cpu@700 {
+                       device_type = "cpu";
+                       compatible = "arm,armv8";
+                       reg = <0x0 0x700>;
+                       enable-method = "psci";
+                       efficiency = <0x6cc>;
+                       cache-size = <0x20000>;
+                       cpu-release-addr = <0x0 0x90000000>;
+                       qcom,lmh-dcvs = <0xa>;
+                       #cooling-cells = <0x2>;
+                       next-level-cache = <0x10>;
+                       sched-energy-costs = <0xc 0xd>;
+                       linux,phandle = <0x18>;
+                       phandle = <0x18>;
+
+                       l2-cache {
+                               compatible = "arm,arch-cache";
+                               cache-size = <0x40000>;
+                               cache-level = <0x2>;
+                               next-level-cache = <0x6>;
+                               linux,phandle = <0x10>;
+                               phandle = <0x10>;
+                       };
+
+                       l1-icache {
+                               compatible = "arm,arch-cache";
+                               qcom,dump-size = <0x24000>;
+                               linux,phandle = <0x127>;
+                               phandle = <0x127>;
+                       };
+
+                       l1-dcache {
+                               compatible = "arm,arch-cache";
+                               qcom,dump-size = <0x14000>;
+                               linux,phandle = <0x12f>;
+                               phandle = <0x12f>;
+                       };
+
+                       l1-tlb {
+                               qcom,dump-size = <0x6800>;
+                               linux,phandle = <0x13b>;
+                               phandle = <0x13b>;
+                       };
+               };
+
+               cpu-map {
+
+                       cluster0 {
+
+                               core0 {
+                                       cpu = <0x11>;
+                               };
+
+                               core1 {
+                                       cpu = <0x12>;
+                               };
+
+                               core2 {
+                                       cpu = <0x13>;
+                               };
+
+                               core3 {
+                                       cpu = <0x14>;
+                               };
+                       };
+
+                       cluster1 {
+
+                               core0 {
+                                       cpu = <0x15>;
+                               };
+
+                               core1 {
+                                       cpu = <0x16>;
+                               };
+
+                               core2 {
+                                       cpu = <0x17>;
+                               };
+
+                               core3 {
+                                       cpu = <0x18>;
+                               };
+                       };
+               };
+       };
+
+       soc {
+               #address-cells = <0x1>;
+               #size-cells = <0x1>;
+               ranges = <0x0 0x0 0x0 0xffffffff>;
+               compatible = "simple-bus";
+
+               qcom,gdsc@0x16b004 {
+                       compatible = "qcom,gdsc";
+                       regulator-name = "pcie_0_gdsc";
+                       reg = <0x16b004 0x4>;
+                       qcom,poll-cfg-gdscr;
+                       status = "ok";
+                       linux,phandle = <0x2e8>;
+                       phandle = <0x2e8>;
+               };
+
+               qcom,gdsc@0x18d004 {
+                       compatible = "qcom,gdsc";
+                       regulator-name = "pcie_1_gdsc";
+                       reg = <0x18d004 0x4>;
+                       qcom,poll-cfg-gdscr;
+                       status = "ok";
+                       linux,phandle = <0x2ed>;
+                       phandle = <0x2ed>;
+               };
+
+               qcom,gdsc@0x175004 {
+                       compatible = "qcom,gdsc";
+                       regulator-name = "ufs_card_gdsc";
+                       reg = <0x175004 0x4>;
+                       qcom,poll-cfg-gdscr;
+                       status = "ok";
+               };
+
+               qcom,gdsc@0x177004 {
+                       compatible = "qcom,gdsc";
+                       regulator-name = "ufs_phy_gdsc";
+                       reg = <0x177004 0x4>;
+                       qcom,poll-cfg-gdscr;
+                       status = "ok";
+                       linux,phandle = <0xe0>;
+                       phandle = <0xe0>;
+               };
+
+               qcom,gdsc@0x10f004 {
+                       compatible = "qcom,gdsc";
+                       regulator-name = "usb30_prim_gdsc";
+                       reg = <0x10f004 0x4>;
+                       qcom,poll-cfg-gdscr;
+                       status = "ok";
+                       linux,phandle = <0x338>;
+                       phandle = <0x338>;
+               };
+
+               qcom,gdsc@0x110004 {
+                       compatible = "qcom,gdsc";
+                       regulator-name = "usb30_sec_gdsc";
+                       reg = <0x110004 0x4>;
+                       qcom,poll-cfg-gdscr;
+                       status = "ok";
+                       linux,phandle = <0x33e>;
+                       phandle = <0x33e>;
+               };
+
+               qcom,gdsc@0x17d030 {
+                       compatible = "qcom,gdsc";
+                       regulator-name = "hlos1_vote_aggre_noc_mmu_audio_tbu_gdsc";
+                       reg = <0x17d030 0x4>;
+                       qcom,no-status-check-on-disable;
+                       qcom,gds-timeout = <0x1f4>;
+                       status = "ok";
+                       linux,phandle = <0x20b>;
+                       phandle = <0x20b>;
+               };
+
+               qcom,gdsc@0x17d03c {
+                       compatible = "qcom,gdsc";
+                       regulator-name = "hlos1_vote_aggre_noc_mmu_pcie_tbu_gdsc";
+                       reg = <0x17d03c 0x4>;
+                       qcom,no-status-check-on-disable;
+                       qcom,gds-timeout = <0x1f4>;
+                       status = "ok";
+                       linux,phandle = <0x20c>;
+                       phandle = <0x20c>;
+               };
+
+               qcom,gdsc@0x17d034 {
+                       compatible = "qcom,gdsc";
+                       regulator-name = "hlos1_vote_aggre_noc_mmu_tbu1_gdsc";
+                       reg = <0x17d034 0x4>;
+                       qcom,no-status-check-on-disable;
+                       qcom,gds-timeout = <0x1f4>;
+                       status = "ok";
+                       linux,phandle = <0x206>;
+                       phandle = <0x206>;
+               };
+
+               qcom,gdsc@0x17d038 {
+                       compatible = "qcom,gdsc";
+                       regulator-name = "hlos1_vote_aggre_noc_mmu_tbu2_gdsc";
+                       reg = <0x17d038 0x4>;
+                       qcom,no-status-check-on-disable;
+                       qcom,gds-timeout = <0x1f4>;
+                       status = "ok";
+                       linux,phandle = <0x207>;
+                       phandle = <0x207>;
+               };
+
+               qcom,gdsc@0x17d040 {
+                       compatible = "qcom,gdsc";
+                       regulator-name = "hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc";
+                       reg = <0x17d040 0x4>;
+                       qcom,no-status-check-on-disable;
+                       qcom,gds-timeout = <0x1f4>;
+                       status = "ok";
+                       linux,phandle = <0x208>;
+                       phandle = <0x208>;
+               };
+
+               qcom,gdsc@0x17d048 {
+                       compatible = "qcom,gdsc";
+                       regulator-name = "hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc";
+                       reg = <0x17d048 0x4>;
+                       qcom,no-status-check-on-disable;
+                       qcom,gds-timeout = <0x1f4>;
+                       status = "ok";
+                       linux,phandle = <0x209>;
+                       phandle = <0x209>;
+               };
+
+               qcom,gdsc@0x17d044 {
+                       compatible = "qcom,gdsc";
+                       regulator-name = "hlos1_vote_mmnoc_mmu_tbu_sf_gdsc";
+                       reg = <0x17d044 0x4>;
+                       qcom,no-status-check-on-disable;
+                       qcom,gds-timeout = <0x1f4>;
+                       status = "ok";
+                       linux,phandle = <0x20a>;
+                       phandle = <0x20a>;
+               };
+
+               qcom,gdsc@0xad06004 {
+                       compatible = "qcom,gdsc";
+                       regulator-name = "bps_gdsc";
+                       reg = <0xad06004 0x4>;
+                       qcom,poll-cfg-gdscr;
+                       status = "ok";
+                       qcom,support-hw-trigger;
+                       linux,phandle = <0x248>;
+                       phandle = <0x248>;
+               };
+
+               qcom,gdsc@0xad09004 {
+                       compatible = "qcom,gdsc";
+                       regulator-name = "ife_0_gdsc";
+                       reg = <0xad09004 0x4>;
+                       qcom,poll-cfg-gdscr;
+                       status = "ok";
+                       linux,phandle = <0x244>;
+                       phandle = <0x244>;
+               };
+
+               qcom,gdsc@0xad0a004 {
+                       compatible = "qcom,gdsc";
+                       regulator-name = "ife_1_gdsc";
+                       reg = <0xad0a004 0x4>;
+                       qcom,poll-cfg-gdscr;
+                       status = "ok";
+                       linux,phandle = <0x245>;
+                       phandle = <0x245>;
+               };
+
+               qcom,gdsc@0xad07004 {
+                       compatible = "qcom,gdsc";
+                       regulator-name = "ipe_0_gdsc";
+                       reg = <0xad07004 0x4>;
+                       qcom,poll-cfg-gdscr;
+                       status = "ok";
+                       qcom,support-hw-trigger;
+                       linux,phandle = <0x246>;
+                       phandle = <0x246>;
+               };
+
+               qcom,gdsc@0xad08004 {
+                       compatible = "qcom,gdsc";
+                       regulator-name = "ipe_1_gdsc";
+                       reg = <0xad08004 0x4>;
+                       qcom,poll-cfg-gdscr;
+                       status = "ok";
+                       qcom,support-hw-trigger;
+                       linux,phandle = <0x247>;
+                       phandle = <0x247>;
+               };
+
+               qcom,gdsc@0xad0b134 {
+                       compatible = "qcom,gdsc";
+                       regulator-name = "titan_top_gdsc";
+                       reg = <0xad0b134 0x4>;
+                       qcom,poll-cfg-gdscr;
+                       status = "ok";
+                       linux,phandle = <0x21d>;
+                       phandle = <0x21d>;
+               };
+
+               qcom,gdsc@0xaf03000 {
+                       compatible = "qcom,gdsc";
+                       regulator-name = "mdss_core_gdsc";
+                       reg = <0xaf03000 0x4>;
+                       qcom,poll-cfg-gdscr;
+                       qcom,support-hw-trigger;
+                       status = "ok";
+                       proxy-supply = <0x19>;
+                       qcom,proxy-consumer-enable;
+                       qcom,en-few-wait-val = <0x6>;
+                       qcom,en-rest-wait-val = <0x5>;
+                       linux,phandle = <0x19>;
+                       phandle = <0x19>;
+               };
+
+               syscon@0x5091540 {
+                       compatible = "syscon";
+                       reg = <0x5091540 0x4>;
+                       linux,phandle = <0x1a>;
+                       phandle = <0x1a>;
+               };
+
+               qcom,gdsc@0x509106c {
+                       compatible = "qcom,gdsc";
+                       regulator-name = "gpu_cx_gdsc";
+                       reg = <0x509106c 0x4>;
+                       hw-ctrl-addr = <0x1a>;
+                       qcom,no-status-check-on-disable;
+                       qcom,gds-timeout = <0x1f4>;
+                       qcom,clk-dis-wait-val = <0x8>;
+                       status = "ok";
+                       parent-supply = <0x1b>;
+                       vdd_parent-supply = <0x1b>;
+                       linux,phandle = <0x205>;
+                       phandle = <0x205>;
+               };
+
+               qcom,gdsc@0x509100c {
+                       compatible = "qcom,gdsc";
+                       regulator-name = "gpu_gx_gdsc";
+                       reg = <0x509100c 0x4>;
+                       qcom,poll-cfg-gdscr;
+                       status = "ok";
+                       clock-names = "core_root_clk";
+                       clocks = <0x1c 0x2>;
+                       qcom,force-enable-root-clk;
+                       parent-supply = <0x1d>;
+                       domain-addr = <0x1e>;
+                       sw-reset = <0x1f>;
+                       qcom,reset-aon-logic;
+                       linux,phandle = <0x335>;
+                       phandle = <0x335>;
+               };
+
+               qcom,gdsc@0xab00874 {
+                       compatible = "qcom,gdsc";
+                       regulator-name = "vcodec0_gdsc";
+                       reg = <0xab00874 0x4>;
+                       qcom,poll-cfg-gdscr;
+                       status = "ok";
+                       qcom,support-hw-trigger;
+                       linux,phandle = <0x2e3>;
+                       phandle = <0x2e3>;
+               };
+
+               qcom,gdsc@0xab008b4 {
+                       compatible = "qcom,gdsc";
+                       regulator-name = "vcodec1_gdsc";
+                       reg = <0xab008b4 0x4>;
+                       qcom,poll-cfg-gdscr;
+                       status = "ok";
+                       qcom,support-hw-trigger;
+                       linux,phandle = <0x2e4>;
+                       phandle = <0x2e4>;
+               };
+
+               qcom,gdsc@0xab00814 {
+                       compatible = "qcom,gdsc";
+                       regulator-name = "venus_gdsc";
+                       reg = <0xab00814 0x4>;
+                       qcom,poll-cfg-gdscr;
+                       status = "ok";
+                       linux,phandle = <0x11e>;
+                       phandle = <0x11e>;
+               };
+
+               qcom,mdss_dsi_pll@ae94a00 {
+                       compatible = "qcom,mdss_dsi_pll_10nm";
+                       label = "MDSS DSI 0 PLL";
+                       cell-index = <0x0>;
+                       #clock-cells = <0x1>;
+                       reg = <0xae94a00 0x1e0 0xae94400 0x800 0xaf03000 0x8>;
+                       reg-names = "pll_base", "phy_base", "gdsc_base";
+                       clocks = <0x20 0x0>;
+                       clock-names = "iface_clk";
+                       clock-rate = <0x0>;
+                       qcom,dsi-pll-ssc-en;
+                       qcom,dsi-pll-ssc-mode = "down-spread";
+                       gdsc-supply = <0x19>;
+                       linux,phandle = <0x345>;
+                       phandle = <0x345>;
+
+                       qcom,platform-supply-entries {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               qcom,platform-supply-entry@0 {
+                                       reg = <0x0>;
+                                       qcom,supply-name = "gdsc";
+                                       qcom,supply-min-voltage = <0x0>;
+                                       qcom,supply-max-voltage = <0x0>;
+                                       qcom,supply-enable-load = <0x0>;
+                                       qcom,supply-disable-load = <0x0>;
+                               };
+                       };
+               };
+
+               qcom,mdss_dsi_pll@ae96a00 {
+                       compatible = "qcom,mdss_dsi_pll_10nm";
+                       label = "MDSS DSI 1 PLL";
+                       cell-index = <0x1>;
+                       #clock-cells = <0x1>;
+                       reg = <0xae96a00 0x1e0 0xae96400 0x800 0xaf03000 0x8>;
+                       reg-names = "pll_base", "phy_base", "gdsc_base";
+                       clocks = <0x20 0x0>;
+                       clock-names = "iface_clk";
+                       clock-rate = <0x0>;
+                       qcom,dsi-pll-ssc-en;
+                       qcom,dsi-pll-ssc-mode = "down-spread";
+                       gdsc-supply = <0x19>;
+                       linux,phandle = <0x352>;
+                       phandle = <0x352>;
+
+                       qcom,platform-supply-entries {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               qcom,platform-supply-entry@0 {
+                                       reg = <0x0>;
+                                       qcom,supply-name = "gdsc";
+                                       qcom,supply-min-voltage = <0x0>;
+                                       qcom,supply-max-voltage = <0x0>;
+                                       qcom,supply-enable-load = <0x0>;
+                                       qcom,supply-disable-load = <0x0>;
+                               };
+                       };
+               };
+
+               qcom,mdss_dp_pll@c011000 {
+                       compatible = "qcom,mdss_dp_pll_10nm";
+                       label = "MDSS DP PLL";
+                       cell-index = <0x0>;
+                       #clock-cells = <0x1>;
+                       reg = <0x88ea000 0x200 0x88eaa00 0x200 0x88ea200 0x200 0x88ea600 0x200 0xaf03000 0x8>;
+                       reg-names = "pll_base", "phy_base", "ln_tx0_base", "ln_tx1_base", "gdsc_base";
+                       gdsc-supply = <0x19>;
+                       clocks = <0x20 0x0 0x21 0x0 0x22 0x9f 0x22 0xa9 0x22 0xa3>;
+                       clock-names = "iface_clk", "ref_clk_src", "ref_clk", "cfg_ahb_clk", "pipe_clk";
+                       clock-rate = <0x0>;
+                       linux,phandle = <0x37>;
+                       phandle = <0x37>;
+
+                       qcom,platform-supply-entries {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               qcom,platform-supply-entry@0 {
+                                       reg = <0x0>;
+                                       qcom,supply-name = "gdsc";
+                                       qcom,supply-min-voltage = <0x0>;
+                                       qcom,supply-max-voltage = <0x0>;
+                                       qcom,supply-enable-load = <0x0>;
+                                       qcom,supply-disable-load = <0x0>;
+                               };
+                       };
+               };
+
+               qcom,smp2pgpio-rdbg-2-in {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "rdbg";
+                       qcom,remote-pid = <0x2>;
+                       qcom,is-inbound;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x23>;
+                       phandle = <0x23>;
+               };
+
+               qcom,smp2pgpio_client_rdbg_2_in {
+                       compatible = "qcom,smp2pgpio_client_rdbg_2_in";
+                       gpios = <0x23 0x0 0x0>;
+               };
+
+               qcom,smp2pgpio-rdbg-2-out {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "rdbg";
+                       qcom,remote-pid = <0x2>;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x24>;
+                       phandle = <0x24>;
+               };
+
+               qcom,smp2pgpio_client_rdbg_2_out {
+                       compatible = "qcom,smp2pgpio_client_rdbg_2_out";
+                       gpios = <0x24 0x0 0x0>;
+               };
+
+               qcom,smp2pgpio-rdbg-1-in {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "rdbg";
+                       qcom,remote-pid = <0x1>;
+                       qcom,is-inbound;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x25>;
+                       phandle = <0x25>;
+               };
+
+               qcom,smp2pgpio_client_rdbg_1_in {
+                       compatible = "qcom,smp2pgpio_client_rdbg_1_in";
+                       gpios = <0x25 0x0 0x0>;
+               };
+
+               qcom,smp2pgpio-rdbg-1-out {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "rdbg";
+                       qcom,remote-pid = <0x1>;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x26>;
+                       phandle = <0x26>;
+               };
+
+               qcom,smp2pgpio_client_rdbg_1_out {
+                       compatible = "qcom,smp2pgpio_client_rdbg_1_out";
+                       gpios = <0x26 0x0 0x0>;
+               };
+
+               qcom,smp2pgpio-rdbg-5-in {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "rdbg";
+                       qcom,remote-pid = <0x5>;
+                       qcom,is-inbound;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x27>;
+                       phandle = <0x27>;
+               };
+
+               qcom,smp2pgpio_client_rdbg_5_in {
+                       compatible = "qcom,smp2pgpio_client_rdbg_5_in";
+                       gpios = <0x27 0x0 0x0>;
+               };
+
+               qcom,smp2pgpio-rdbg-5-out {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "rdbg";
+                       qcom,remote-pid = <0x5>;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x28>;
+                       phandle = <0x28>;
+               };
+
+               qcom,smp2pgpio_client_rdbg_5_out {
+                       compatible = "qcom,smp2pgpio_client_rdbg_5_out";
+                       gpios = <0x28 0x0 0x0>;
+               };
+
+               qcom,mdss_mdp@ae00000 {
+                       compatible = "qcom,sde-kms";
+                       reg = <0xae00000 0x81d40 0xaeb0000 0x2008 0xaeac000 0xf0>;
+                       reg-names = "mdp_phys", "vbif_phys", "regdma_phys";
+                       clocks = <0x22 0x1b 0x22 0x1c 0x20 0x0 0x20 0x1 0x20 0x17 0x20 0x24>;
+                       clock-names = "gcc_iface", "gcc_bus", "iface_clk", "bus_clk", "core_clk", "vsync_clk";
+                       clock-rate = <0x0 0x0 0x0 0x0 0x11e1a300 0x124f800 0x0>;
+                       clock-max-rate = <0x0 0x0 0x0 0x0 0x19a14780 0x124f800 0x0>;
+                       sde-vdd-supply = <0x19>;
+                       interrupt-parent = <0x1>;
+                       interrupts = <0x0 0x53 0x0>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x1>;
+                       iommus = <0x29 0x880 0x8 0x29 0xc80 0x8>;
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       #power-domain-cells = <0x0>;
+                       qcom,sde-off = <0x1000>;
+                       qcom,sde-len = <0x45c>;
+                       qcom,sde-ctl-off = <0x2000 0x2200 0x2400 0x2600 0x2800>;
+                       qcom,sde-ctl-size = <0xe4>;
+                       qcom,sde-ctl-display-pref = "primary", "primary", "none", "none", "none";
+                       qcom,sde-mixer-off = <0x45000 0x46000 0x47000 0x0 0x0 0x4a000>;
+                       qcom,sde-mixer-size = <0x320>;
+                       qcom,sde-mixer-display-pref = "primary", "primary", "none", "none", "none", "none";
+                       qcom,sde-dspp-top-off = <0x1300>;
+                       qcom,sde-dspp-top-size = <0xc>;
+                       qcom,sde-dspp-off = <0x55000 0x57000 0x59000 0x5b000>;
+                       qcom,sde-dspp-size = <0x17e0>;
+                       qcom,sde-dest-scaler-top-off = <0x61000>;
+                       qcom,sde-dest-scaler-top-size = <0xc>;
+                       qcom,sde-dest-scaler-off = <0x800 0x1000>;
+                       qcom,sde-dest-scaler-size = <0x800>;
+                       qcom,sde-wb-off = <0x66000>;
+                       qcom,sde-wb-size = <0x2c8>;
+                       qcom,sde-wb-xin-id = <0x6>;
+                       qcom,sde-wb-id = <0x2>;
+                       qcom,sde-wb-clk-ctrl = <0x3b8 0x18>;
+                       qcom,sde-intf-off = <0x6b000 0x6b800 0x6c000 0x6c800>;
+                       qcom,sde-intf-size = <0x280>;
+                       qcom,sde-intf-type = "dp", "dsi", "dsi", "dp";
+                       qcom,sde-pp-off = <0x71000 0x71800 0x72000 0x72800 0x73000>;
+                       qcom,sde-pp-slave = <0x0 0x0 0x0 0x0 0x1>;
+                       qcom,sde-pp-size = <0xd4>;
+                       qcom,sde-te2-off = <0x2000 0x2000 0x0 0x0 0x0>;
+                       qcom,sde-cdm-off = <0x7a200>;
+                       qcom,sde-cdm-size = <0x224>;
+                       qcom,sde-dsc-off = <0x81000 0x81400 0x81800 0x81c00>;
+                       qcom,sde-dsc-size = <0x140>;
+                       qcom,sde-dither-off = <0x30e0 0x30e0 0x30e0 0x30e0 0x0>;
+                       qcom,sde-dither-version = <0x10000>;
+                       qcom,sde-dither-size = <0x20>;
+                       qcom,sde-sspp-type = "vig", "vig", "vig", "vig", "dma", "dma", "dma", "dma";
+                       qcom,sde-sspp-off = <0x5000 0x7000 0x9000 0xb000 0x25000 0x27000 0x29000 0x2b000>;
+                       qcom,sde-sspp-src-size = <0x1c8>;
+                       qcom,sde-sspp-xin-id = <0x0 0x4 0x8 0xc 0x1 0x5 0x9 0xd>;
+                       qcom,sde-sspp-excl-rect = <0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1>;
+                       qcom,sde-sspp-smart-dma-priority = <0x5 0x6 0x7 0x8 0x1 0x2 0x3 0x4>;
+                       qcom,sde-smart-dma-rev = "smart_dma_v2";
+                       qcom,sde-mixer-pair-mask = <0x2 0x1 0x6 0x0 0x0 0x3>;
+                       qcom,sde-mixer-blend-op-off = <0x20 0x38 0x50 0x68 0x80 0x98 0xb0 0xc8 0xe0 0xf8 0x110>;
+                       qcom,sde-sspp-clk-ctrl = <0x2ac 0x0 0x2b4 0x0 0x2bc 0x0 0x2c4 0x0 0x2ac 0x8 0x2b4 0x8 0x2bc 0x8 0x2c4 0x8>;
+                       qcom,sde-sspp-csc-off = <0x1a00>;
+                       qcom,sde-csc-type = "csc-10bit";
+                       qcom,sde-qseed-type = "qseedv3";
+                       qcom,sde-sspp-qseed-off = <0xa00>;
+                       qcom,sde-mixer-linewidth = <0xa00>;
+                       qcom,sde-sspp-linewidth = <0xa00>;
+                       qcom,sde-wb-linewidth = <0x1000>;
+                       qcom,sde-mixer-blendstages = <0xb>;
+                       qcom,sde-highest-bank-bit = <0x2>;
+                       qcom,sde-ubwc-version = <0x200>;
+                       qcom,sde-smart-panel-align-mode = <0xc>;
+                       qcom,sde-panic-per-pipe;
+                       qcom,sde-has-cdp;
+                       qcom,sde-has-src-split;
+                       qcom,sde-has-dim-layer;
+                       qcom,sde-has-idle-pc;
+                       qcom,sde-has-dest-scaler;
+                       qcom,sde-max-dest-scaler-input-linewidth = <0x800>;
+                       qcom,sde-max-dest-scaler-output-linewidth = <0xa00>;
+                       qcom,sde-max-bw-low-kbps = <0x927c00>;
+                       qcom,sde-max-bw-high-kbps = <0x927c00>;
+                       qcom,sde-min-core-ib-kbps = <0x493e00>;
+                       qcom,sde-min-llcc-ib-kbps = <0xc3500>;
+                       qcom,sde-min-dram-ib-kbps = <0xc3500>;
+                       qcom,sde-dram-channels = <0x2>;
+                       qcom,sde-num-nrt-paths = <0x0>;
+                       qcom,sde-dspp-ad-version = <0x40000>;
+                       qcom,sde-dspp-ad-off = <0x28000 0x27000>;
+                       qcom,sde-vbif-off = <0x0>;
+                       qcom,sde-vbif-size = <0x1040>;
+                       qcom,sde-vbif-id = <0x0>;
+                       qcom,sde-vbif-memtype-0 = <0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3>;
+                       qcom,sde-vbif-memtype-1 = <0x3 0x3 0x3 0x3 0x3 0x3>;
+                       qcom,sde-vbif-qos-rt-remap = <0x3 0x3 0x4 0x4 0x5 0x5 0x6 0x6>;
+                       qcom,sde-vbif-qos-nrt-remap = <0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3>;
+                       qcom,sde-danger-lut = <0xf 0xffff 0x0 0x0>;
+                       qcom,sde-safe-lut-linear = <0x4 0xfff8 0x0 0xfff0>;
+                       qcom,sde-safe-lut-macrotile = <0xa 0xfe00 0xb 0xfc00 0xc 0xf800 0x0 0xf000>;
+                       qcom,sde-safe-lut-nrt = <0x0 0xffff>;
+                       qcom,sde-safe-lut-cwb = <0x0 0xffff>;
+                       qcom,sde-qos-lut-linear = <0x4 0x0 0x357 0x5 0x0 0x3357 0x6 0x0 0x23357 0x7 0x0 0x223357 0x8 0x0 0x2223357 0x9 0x0 0x22223357 0xa 0x2 0x22223357 0xb 0x22 0x22223357 0xc 0x222 0x22223357 0xd 0x2222 0x22223357 0xe 0x12222 0x22223357 0x0 0x112222 0x22223357>;
+                       qcom,sde-qos-lut-macrotile = <0xa 0x3 0x44556677 0xb 0x33 0x44556677 0xc 0x233 0x44556677 0xd 0x2233 0x44556677 0xe 0x12233 0x44556677 0x0 0x112233 0x44556677>;
+                       qcom,sde-qos-lut-nrt = <0x0 0x0 0x0>;
+                       qcom,sde-qos-lut-cwb = <0x0 0x75300000 0x0>;
+                       qcom,sde-cdp-setting = <0x1 0x1 0x1 0x0>;
+                       qcom,sde-qos-cpu-mask = <0x3>;
+                       qcom,sde-qos-cpu-dma-latency = <0x12c>;
+                       qcom,sde-inline-rotator = <0x2a 0x0>;
+                       qcom,sde-inline-rot-xin = <0xa 0xb>;
+                       qcom,sde-inline-rot-xin-type = "sspp", "wb";
+                       qcom,sde-inline-rot-clk-ctrl = <0x2bc 0x8 0x2bc 0xc>;
+                       qcom,sde-reg-dma-off = <0x0>;
+                       qcom,sde-reg-dma-version = <0x1>;
+                       qcom,sde-reg-dma-trigger-off = <0x119c>;
+                       connectors = <0x2b 0x2c>;
+                       #cooling-cells = <0x2>;
+                       linux,phandle = <0x33>;
+                       phandle = <0x33>;
+
+                       qcom,sde-sspp-vig-blocks {
+                               qcom,sde-vig-csc-off = <0x1a00>;
+                               qcom,sde-vig-qseed-off = <0xa00>;
+                               qcom,sde-vig-qseed-size = <0xa0>;
+                       };
+
+                       qcom,sde-dspp-blocks {
+                               qcom,sde-dspp-igc = <0x0 0x30001>;
+                               qcom,sde-dspp-hsic = <0x800 0x10007>;
+                               qcom,sde-dspp-memcolor = <0x880 0x10007>;
+                               qcom,sde-dspp-sixzone = <0x900 0x10007>;
+                               qcom,sde-dspp-vlut = <0xa00 0x10008>;
+                               qcom,sde-dspp-gamut = <0x1000 0x40000>;
+                               qcom,sde-dspp-pcc = <0x1700 0x40000>;
+                               qcom,sde-dspp-gc = <0x17c0 0x10008>;
+                               qcom,sde-dspp-hist = <0x800 0x10007>;
+                               qcom,sde-dspp-dither = <0x82c 0x10007>;
+                       };
+
+                       qcom,platform-supply-entries {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               qcom,platform-supply-entry@0 {
+                                       reg = <0x0>;
+                                       qcom,supply-name = "sde-vdd";
+                                       qcom,supply-min-voltage = <0x0>;
+                                       qcom,supply-max-voltage = <0x0>;
+                                       qcom,supply-enable-load = <0x0>;
+                                       qcom,supply-disable-load = <0x0>;
+                               };
+                       };
+
+                       qcom,smmu_sde_sec_cb {
+                               compatible = "qcom,smmu_sde_sec";
+                               iommus = <0x29 0x881 0x8 0x29 0xc81 0x8>;
+                       };
+
+                       qcom,sde-data-bus {
+                               qcom,msm-bus,name = "mdss_sde";
+                               qcom,msm-bus,num-cases = <0x3>;
+                               qcom,msm-bus,num-paths = <0x2>;
+                               qcom,msm-bus,vectors-KBps = <0x16 0x200 0x0 0x0 0x17 0x200 0x0 0x0 0x16 0x200 0x0 0x61a800 0x17 0x200 0x0 0x61a800 0x16 0x200 0x0 0x61a800 0x17 0x200 0x0 0x61a800>;
+                       };
+
+                       qcom,sde-reg-bus {
+                               qcom,msm-bus,name = "mdss_reg";
+                               qcom,msm-bus,num-cases = <0x4>;
+                               qcom,msm-bus,num-paths = <0x1>;
+                               qcom,msm-bus,active-only;
+                               qcom,msm-bus,vectors-KBps = <0x1 0x24e 0x0 0x0 0x1 0x24e 0x0 0x12c00 0x1 0x24e 0x0 0x249f0 0x1 0x24e 0x0 0x493e0>;
+                       };
+
+                       qcom,mdss_dsi_sim_video {
+                               qcom,mdss-dsi-panel-name = "Simulator video mode dsi panel";
+                               qcom,mdss-dsi-panel-type = "dsi_video_mode";
+                               qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                               qcom,mdss-dsi-stream = <0x0>;
+                               qcom,mdss-dsi-bpp = <0x18>;
+                               qcom,mdss-dsi-underflow-color = <0xff>;
+                               qcom,mdss-dsi-border-color = <0x0>;
+                               qcom,mdss-dsi-panel-hdr-enabled;
+                               qcom,mdss-dsi-panel-hdr-color-primaries = <0x38a4 0x3c8c 0x7d00 0x4268 0x3c8c 0x7530 0x1f40 0xbb8>;
+                               qcom,mdss-dsi-panel-peak-brightness = <0x401640>;
+                               qcom,mdss-dsi-panel-blackness-level = <0xc9e>;
+                               qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
+                               qcom,mdss-dsi-bllp-eof-power-mode;
+                               qcom,mdss-dsi-bllp-power-mode;
+                               qcom,mdss-dsi-lane-0-state;
+                               qcom,mdss-dsi-lane-1-state;
+                               qcom,mdss-dsi-lane-2-state;
+                               qcom,mdss-dsi-lane-3-state;
+                               qcom,mdss-dsi-t-clk-post = <0xe>;
+                               qcom,mdss-dsi-t-clk-pre = <0x34>;
+                               qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                               qcom,mdss-dsi-mdp-trigger = "none";
+                               qcom,mdss-dsi-reset-sequence = <0x1 0x0 0x0 0x0 0x1 0x0>;
+                               qcom,panel-ack-disabled;
+                               qcom,panel-supply-entries = <0x2d>;
+                               qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
+                               qcom,platform-reset-gpio = <0x2e 0x6 0x0>;
+                               linux,phandle = <0x355>;
+                               phandle = <0x355>;
+
+                               qcom,mdss-dsi-display-timings {
+
+                                       timing@0 {
+                                               qcom,mdss-dsi-panel-width = <0x438>;
+                                               qcom,mdss-dsi-panel-height = <0x870>;
+                                               qcom,mdss-dsi-h-front-porch = <0x10>;
+                                               qcom,mdss-dsi-h-back-porch = <0x28>;
+                                               qcom,mdss-dsi-h-pulse-width = <0x1c>;
+                                               qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                               qcom,mdss-dsi-v-back-porch = <0x18>;
+                                               qcom,mdss-dsi-v-front-porch = <0x7>;
+                                               qcom,mdss-dsi-v-pulse-width = <0x4>;
+                                               qcom,mdss-dsi-h-left-border = <0x0>;
+                                               qcom,mdss-dsi-h-right-border = <0x0>;
+                                               qcom,mdss-dsi-v-top-border = <0x0>;
+                                               qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                               qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                               qcom,mdss-dsi-panel-timings = <0x0 0x0 0x0>;
+                                               qcom,mdss-dsi-on-command = [32 01 00 00 00 00 02 00 00];
+                                               qcom,mdss-dsi-off-command = [22 01 00 00 00 00 02 00 00];
+                                               qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                               qcom,mdss-dsi-off-command-state = "dsi_lp_mode";
+                                               qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                                               qcom,mdss-dsi-panel-phy-timings = <0x220808 0x24240808 0x5030400>;
+                                               qcom,display-topology = <0x1 0x0 0x1 0x2 0x0 0x1>;
+                                               qcom,default-topology-index = <0x0>;
+                                       };
+                               };
+                       };
+
+                       qcom,mdss_dsi_sim_cmd {
+                               qcom,mdss-dsi-panel-name = "Simulator cmd mode dsi panel";
+                               qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
+                               qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                               qcom,mdss-dsi-stream = <0x0>;
+                               qcom,mdss-dsi-bpp = <0x18>;
+                               qcom,mdss-dsi-color-order = "rgb_swap_rgb";
+                               qcom,mdss-dsi-underflow-color = <0xff>;
+                               qcom,mdss-dsi-border-color = <0x0>;
+                               qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
+                               qcom,mdss-dsi-bllp-eof-power-mode;
+                               qcom,mdss-dsi-bllp-power-mode;
+                               qcom,mdss-dsi-lane-0-state;
+                               qcom,mdss-dsi-lane-1-state;
+                               qcom,mdss-dsi-lane-2-state;
+                               qcom,mdss-dsi-lane-3-state;
+                               qcom,mdss-dsi-reset-sequence = <0x1 0xa 0x0 0xa 0x1 0xa>;
+                               qcom,mdss-dsi-t-clk-post = <0xc>;
+                               qcom,mdss-dsi-t-clk-pre = <0x29>;
+                               qcom,mdss-dsi-bl-max-level = <0xfff>;
+                               qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                               qcom,mdss-dsi-mdp-trigger = "none";
+                               qcom,mdss-dsi-te-pin-select = <0x1>;
+                               qcom,mdss-dsi-wr-mem-start = <0x2c>;
+                               qcom,mdss-dsi-wr-mem-continue = <0x3c>;
+                               qcom,mdss-dsi-te-dcs-command = <0x1>;
+                               qcom,mdss-dsi-te-check-enable;
+                               qcom,mdss-dsi-te-using-wd;
+                               qcom,mdss-dsi-te-using-te-pin;
+                               qcom,mdss-dsi-panel-hdr-enabled;
+                               qcom,ulps-enabled;
+                               qcom,mdss-dsi-panel-hdr-color-primaries = <0x38a4 0x3c8c 0x7d00 0x4268 0x3c8c 0x7530 0x1f40 0xbb8>;
+                               qcom,mdss-dsi-panel-peak-brightness = <0x401640>;
+                               qcom,mdss-dsi-panel-blackness-level = <0xc9e>;
+                               qcom,panel-ack-disabled;
+                               linux,phandle = <0x357>;
+                               phandle = <0x357>;
+
+                               qcom,mdss-dsi-display-timings {
+
+                                       timing@0 {
+                                               qcom,mdss-dsi-panel-width = <0x5a0>;
+                                               qcom,mdss-dsi-panel-height = <0xa00>;
+                                               qcom,mdss-dsi-h-front-porch = <0x78>;
+                                               qcom,mdss-dsi-h-back-porch = <0x64>;
+                                               qcom,mdss-dsi-h-pulse-width = <0x28>;
+                                               qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                               qcom,mdss-dsi-v-back-porch = <0x64>;
+                                               qcom,mdss-dsi-v-front-porch = <0x64>;
+                                               qcom,mdss-dsi-v-pulse-width = <0x28>;
+                                               qcom,mdss-dsi-h-left-border = <0x0>;
+                                               qcom,mdss-dsi-h-right-border = <0x0>;
+                                               qcom,mdss-dsi-v-top-border = <0x0>;
+                                               qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                               qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                               qcom,mdss-dsi-panel-timings = <0x210909 0x24230808 0x8030400>;
+                                               qcom,mdss-dsi-on-command = <0x29010000 0x2b0 0x3050100 0xa0001 0x150100 0xa0002 0x3a773901 0xa00 0x52a0000 0x4ff3901 0xa00 0x52b0000 0x59f1501 0xa00 0x2350039 0x100000a 0x34400 0x150100 0xa0002 0x51ff1501 0xa00 0x2532415 0x100000a 0x25500 0x5010000 0x78000111 0x5010000 0x10000129>;
+                                               qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                               qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00 05 01 00 00 78 00 02 10 00];
+                                               qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                               qcom,compression-mode = "dsc";
+                                               qcom,mdss-dsc-slice-height = <0x28>;
+                                               qcom,mdss-dsc-slice-width = <0x2d0>;
+                                               qcom,mdss-dsc-slice-per-pkt = <0x1>;
+                                               qcom,mdss-dsc-bit-per-component = <0x8>;
+                                               qcom,mdss-dsc-bit-per-pixel = <0x8>;
+                                               qcom,mdss-dsc-block-prediction-enable;
+                                               qcom,display-topology = <0x1 0x0 0x1 0x2 0x2 0x1>;
+                                               qcom,default-topology-index = <0x1>;
+                                               qcom,panel-roi-alignment = <0x2d0 0x28 0x2d0 0x28 0x2d0 0x28>;
+                                               qcom,partial-update-enabled = "single_roi";
+                                               qcom,mdss-dsi-panel-phy-timings = <0x1a0606 0x22200707 0x4030400>;
+                                       };
+
+                                       timing@1 {
+                                               qcom,mdss-dsi-panel-width = <0x438>;
+                                               qcom,mdss-dsi-panel-height = <0x780>;
+                                               qcom,mdss-dsi-h-front-porch = <0x78>;
+                                               qcom,mdss-dsi-h-back-porch = <0x1cc>;
+                                               qcom,mdss-dsi-h-pulse-width = <0x28>;
+                                               qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                               qcom,mdss-dsi-v-back-porch = <0x64>;
+                                               qcom,mdss-dsi-v-front-porch = <0x2e4>;
+                                               qcom,mdss-dsi-v-pulse-width = <0x28>;
+                                               qcom,mdss-dsi-h-left-border = <0x0>;
+                                               qcom,mdss-dsi-h-right-border = <0x0>;
+                                               qcom,mdss-dsi-v-top-border = <0x0>;
+                                               qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                               qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                               qcom,mdss-dsi-panel-timings = <0x210909 0x24230808 0x8030400>;
+                                               qcom,mdss-dsi-on-command = <0x29010000 0x2b0 0x3050100 0xa0001 0x150100 0xa0002 0x3a773901 0xa00 0x52a0000 0x4ff3901 0xa00 0x52b0000 0x59f1501 0xa00 0x2350039 0x100000a 0x34400 0x150100 0xa0002 0x51ff1501 0xa00 0x2532415 0x100000a 0x25500 0x5010000 0x78000111 0x5010000 0x10000129>;
+                                               qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                               qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00 05 01 00 00 78 00 02 10 00];
+                                               qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                               qcom,compression-mode = "dsc";
+                                               qcom,mdss-dsc-slice-height = <0x28>;
+                                               qcom,mdss-dsc-slice-width = <0x21c>;
+                                               qcom,mdss-dsc-slice-per-pkt = <0x1>;
+                                               qcom,mdss-dsc-bit-per-component = <0x8>;
+                                               qcom,mdss-dsc-bit-per-pixel = <0x8>;
+                                               qcom,mdss-dsc-block-prediction-enable;
+                                               qcom,display-topology = <0x1 0x0 0x1 0x2 0x2 0x1>;
+                                               qcom,default-topology-index = <0x1>;
+                                               qcom,panel-roi-alignment = <0x21c 0x28 0x21c 0x28 0x21c 0x28>;
+                                               qcom,partial-update-enabled = "single_roi";
+                                               qcom,mdss-dsi-panel-phy-timings = <0x1a0606 0x22200707 0x4030400>;
+                                       };
+
+                                       timing@2 {
+                                               qcom,mdss-dsi-panel-width = <0x2d0>;
+                                               qcom,mdss-dsi-panel-height = <0x500>;
+                                               qcom,mdss-dsi-h-front-porch = <0x64>;
+                                               qcom,mdss-dsi-h-back-porch = <0x348>;
+                                               qcom,mdss-dsi-h-pulse-width = <0x28>;
+                                               qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                               qcom,mdss-dsi-v-back-porch = <0x64>;
+                                               qcom,mdss-dsi-v-front-porch = <0x564>;
+                                               qcom,mdss-dsi-v-pulse-width = <0x28>;
+                                               qcom,mdss-dsi-h-left-border = <0x0>;
+                                               qcom,mdss-dsi-h-right-border = <0x0>;
+                                               qcom,mdss-dsi-v-top-border = <0x0>;
+                                               qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                               qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                               qcom,mdss-dsi-panel-timings = <0x210909 0x24230808 0x8030400>;
+                                               qcom,mdss-dsi-on-command = <0x29010000 0x2b0 0x3050100 0xa0001 0x150100 0xa0002 0x3a773901 0xa00 0x52a0000 0x4ff3901 0xa00 0x52b0000 0x59f1501 0xa00 0x2350039 0x100000a 0x34400 0x150100 0xa0002 0x51ff1501 0xa00 0x2532415 0x100000a 0x25500 0x5010000 0x78000111 0x5010000 0x10000129>;
+                                               qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                               qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00 05 01 00 00 78 00 02 10 00];
+                                               qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                               qcom,compression-mode = "dsc";
+                                               qcom,mdss-dsc-slice-height = <0x28>;
+                                               qcom,mdss-dsc-slice-width = <0x168>;
+                                               qcom,mdss-dsc-slice-per-pkt = <0x1>;
+                                               qcom,mdss-dsc-bit-per-component = <0x8>;
+                                               qcom,mdss-dsc-bit-per-pixel = <0x8>;
+                                               qcom,mdss-dsc-block-prediction-enable;
+                                               qcom,display-topology = <0x1 0x0 0x1 0x2 0x2 0x1>;
+                                               qcom,default-topology-index = <0x1>;
+                                               qcom,panel-roi-alignment = <0x168 0x28 0x168 0x28 0x168 0x28>;
+                                               qcom,partial-update-enabled = "single_roi";
+                                               qcom,mdss-dsi-panel-phy-timings = <0x1a0606 0x22200707 0x4030400>;
+                                       };
+                               };
+                       };
+
+                       qcom,mdss_dsi_sim_dsc_375_cmd {
+                               qcom,mdss-dsi-panel-name = "Simulator cmd mode DSC 3.75:1 dsi panel";
+                               qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
+                               qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                               qcom,mdss-dsi-stream = <0x0>;
+                               qcom,mdss-dsi-bpp = <0x18>;
+                               qcom,mdss-dsi-color-order = "rgb_swap_rgb";
+                               qcom,mdss-dsi-underflow-color = <0xff>;
+                               qcom,mdss-dsi-border-color = <0x0>;
+                               qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
+                               qcom,mdss-dsi-bllp-eof-power-mode;
+                               qcom,mdss-dsi-bllp-power-mode;
+                               qcom,mdss-dsi-lane-0-state;
+                               qcom,mdss-dsi-lane-1-state;
+                               qcom,mdss-dsi-lane-2-state;
+                               qcom,mdss-dsi-lane-3-state;
+                               qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                               qcom,mdss-dsi-mdp-trigger = "none";
+                               qcom,mdss-dsi-reset-sequence = <0x1 0xa 0x0 0xa 0x1 0xa>;
+                               qcom,mdss-dsi-bl-max-level = <0xfff>;
+                               qcom,adjust-timer-wakeup-ms = <0x1>;
+                               qcom,mdss-dsi-te-pin-select = <0x1>;
+                               qcom,mdss-dsi-wr-mem-start = <0x2c>;
+                               qcom,mdss-dsi-wr-mem-continue = <0x3c>;
+                               qcom,mdss-dsi-te-dcs-command = <0x1>;
+                               qcom,mdss-dsi-te-check-enable;
+                               qcom,mdss-dsi-te-using-wd;
+                               qcom,mdss-dsi-te-using-te-pin;
+                               qcom,panel-ack-disabled;
+                               qcom,mdss-dsi-t-clk-post = <0xd>;
+                               qcom,mdss-dsi-t-clk-pre = <0x2d>;
+                               linux,phandle = <0x359>;
+                               phandle = <0x359>;
+
+                               qcom,mdss-dsi-display-timings {
+
+                                       timing@0 {
+                                               qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                               qcom,mdss-dsi-panel-width = <0x5a0>;
+                                               qcom,mdss-dsi-panel-height = <0xa00>;
+                                               qcom,mdss-dsi-h-front-porch = <0x64>;
+                                               qcom,mdss-dsi-h-back-porch = <0x20>;
+                                               qcom,mdss-dsi-h-pulse-width = <0x10>;
+                                               qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                               qcom,mdss-dsi-v-back-porch = <0x8>;
+                                               qcom,mdss-dsi-v-front-porch = <0xa>;
+                                               qcom,mdss-dsi-v-pulse-width = <0x2>;
+                                               qcom,mdss-dsi-h-left-border = <0x0>;
+                                               qcom,mdss-dsi-h-right-border = <0x0>;
+                                               qcom,mdss-dsi-v-top-border = <0x0>;
+                                               qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                               qcom,mdss-dsi-on-command = <0x15010000 0x2ff 0x20150100 0x2 0xfb011501 0x0 0x2000115 0x1000000 0x20155 0x15010000 0x202 0x45150100 0x2 0x5401501 0x0 0x2061915 0x1000000 0x2071e 0x15010000 0x20b 0x73150100 0x2 0xc731501 0x0 0x20eb015 0x1000000 0x20fae 0x15010000 0x211 0xb8150100 0x2 0x13001501 0x0 0x2588015 0x1000000 0x25901 0x15010000 0x25a 0x150100 0x2 0x5b011501 0x0 0x25c8015 0x1000000 0x25d81 0x15010000 0x25e 0x150100 0x2 0x5f011501 0x0 0x2723115 0x1000000 0x26803 0x15010000 0x2ff 0x24150100 0x2 0xfb011501 0x0 0x2001c15 0x1000000 0x2010b 0x15010000 0x202 0xc150100 0x2 0x3011501 0x0 0x2040f15 0x1000000 0x20510 0x15010000 0x206 0x10150100 0x2 0x7101501 0x0 0x2088915 0x1000000 0x2098a 0x15010000 0x20a 0x13150100 0x2 0xb131501 0x0 0x20c1515 0x1000000 0x20d15 0x15010000 0x20e 0x17150100 0x2 0xf171501 0x0 0x2101c15 0x1000000 0x2110b 0x15010000 0x212 0xc150100 0x2 0x13011501 0x0 0x2140f15 0x1000000 0x21510 0x15010000 0x216 0x10150100 0x2 0x17101501 0x0 0x2188915 0x1000000 0x2198a 0x15010000 0x21a 0x13150100 0x2 0x1b131501 0x0 0x21c1515 0x1000000 0x21d15 0x15010000 0x21e 0x17150100 0x2 0x1f171501 0x0 0x2204015 0x1000000 0x22101 0x15010000 0x222 0x150100 0x2 0x23401501 0x0 0x2244015 0x1000000 0x2256d 0x15010000 0x226 0x40150100 0x2 0x27401501 0x0 0x2e00015 0x1000000 0x2dc21 0x15010000 0x2dd 0x22150100 0x2 0xde071501 0x0 0x2df0715 0x1000000 0x2e36d 0x15010000 0x2e1 0x7150100 0x2 0xe2071501 0x0 0x229d815 0x1000000 0x22a2a 0x15010000 0x24b 0x3150100 0x2 0x4c111501 0x0 0x24d1015 0x1000000 0x24e01 0x15010000 0x24f 0x1150100 0x2 0x50101501 0x0 0x2510015 0x1000000 0x25280 0x15010000 0x253 0x150100 0x2 0x56001501 0x0 0x2540715 0x1000000 0x25807 0x15010000 0x255 0x25150100 0x2 0x5b431501 0x0 0x25c0015 0x1000000 0x25f73 0x15010000 0x260 0x73150100 0x2 0x63221501 0x0 0x2640015 0x1000000 0x26708 0x15010000 0x268 0x4150100 0x2 0x72021501 0x0 0x27a8015 0x1000000 0x27b91 0x15010000 0x27c 0xd8150100 0x2 0x7d601501 0x0 0x27f1515 0x1000000 0x27515 0x15010000 0x2b3 0xc0150100 0x2 0xb4001501 0x0 0x2b50015 0x1000000 0x27800 0x15010000 0x279 0x150100 0x2 0x80001501 0x0 0x2830015 0x1000000 0x2930a 0x15010000 0x294 0xa150100 0x2 0x8a001501 0x0 0x29bff15 0x1000000 0x29db0 0x15010000 0x29f 0x63150100 0x2 0x98101501 0x0 0x2ec0015 0x1000000 0x2ff10 0x39010000 0x11c1 0x9200010 0x2000268 0x1bb000a 0x66704c5 0x39010000 0x3c2 0x10f01501 0x0 0x2c00315 0x1000000 0x43b03 0xa0a1501 0x0 0x2350015 0x1000000 0x2e501 0x15010000 0x2bb 0x10150100 0x2 0xfb010501 0x7800 0x2110005 0x1000078 0x22900>;
+                                               qcom,mdss-dsi-off-command = [05 01 00 00 78 00 02 28 00 05 01 00 00 78 00 02 10 00];
+                                               qcom,mdss-dsi-on-command-state = "dsi_hs_mode";
+                                               qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                               qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                                               qcom,compression-mode = "dsc";
+                                               qcom,mdss-dsc-slice-height = <0x10>;
+                                               qcom,mdss-dsc-slice-width = <0x2d0>;
+                                               qcom,mdss-dsc-slice-per-pkt = <0x2>;
+                                               qcom,mdss-dsc-bit-per-component = <0xa>;
+                                               qcom,mdss-dsc-bit-per-pixel = <0x8>;
+                                               qcom,mdss-dsc-block-prediction-enable;
+                                               qcom,mdss-dsi-panel-phy-timings = <0x1a0606 0x22200707 0x4030400>;
+                                               qcom,display-topology = <0x1 0x1 0x1>;
+                                               qcom,default-topology-index = <0x0>;
+                                       };
+
+                                       timing@1 {
+                                               qcom,mdss-dsi-panel-width = <0x438>;
+                                               qcom,mdss-dsi-panel-height = <0x780>;
+                                               qcom,mdss-dsi-h-front-porch = <0x0>;
+                                               qcom,mdss-dsi-h-back-porch = <0x0>;
+                                               qcom,mdss-dsi-h-pulse-width = <0x0>;
+                                               qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                               qcom,mdss-dsi-v-back-porch = <0x0>;
+                                               qcom,mdss-dsi-v-front-porch = <0x0>;
+                                               qcom,mdss-dsi-v-pulse-width = <0x0>;
+                                               qcom,mdss-dsi-h-left-border = <0x0>;
+                                               qcom,mdss-dsi-h-right-border = <0x0>;
+                                               qcom,mdss-dsi-v-top-border = <0x0>;
+                                               qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                               qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                               qcom,mdss-dsi-on-command = <0x15010000 0x2bb 0x10150100 0x2 0xb0030501 0x7800 0x1111501 0x0 0x251ff15 0x1000000 0x25324 0x15010000 0x2ff 0x23150100 0x2 0x8051501 0x0 0x2469015 0x1000000 0x2ff10 0x15010000 0x2ff 0xf0150100 0x2 0x92011501 0x0 0x2ff1015 0x1000000 0x23500 0x5010000 0x28000129>;
+                                               qcom,mdss-dsi-off-command = <0x5010000 0x10000128 0x5010000 0x40000110>;
+                                               qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                               qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                               qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                                               qcom,compression-mode = "dsc";
+                                               qcom,mdss-dsc-slice-height = <0x10>;
+                                               qcom,mdss-dsc-slice-width = <0x21c>;
+                                               qcom,mdss-dsc-slice-per-pkt = <0x2>;
+                                               qcom,mdss-dsc-bit-per-component = <0xa>;
+                                               qcom,mdss-dsc-bit-per-pixel = <0x8>;
+                                               qcom,mdss-dsc-block-prediction-enable;
+                                               qcom,mdss-dsi-panel-phy-timings = <0x150505 0x201f0505 0x3030400>;
+                                               qcom,display-topology = <0x1 0x1 0x1 0x2 0x2 0x1 0x2 0x1 0x1>;
+                                               qcom,default-topology-index = <0x0>;
+                                       };
+                               };
+                       };
+
+                       qcom,mdss_dsi_dual_sim_video {
+                               qcom,mdss-dsi-panel-name = "Sim dual video mode dsi panel";
+                               qcom,mdss-dsi-panel-type = "dsi_video_mode";
+                               qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                               qcom,mdss-dsi-stream = <0x0>;
+                               qcom,mdss-dsi-bpp = <0x18>;
+                               qcom,mdss-dsi-underflow-color = <0xff>;
+                               qcom,mdss-dsi-border-color = <0x0>;
+                               qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
+                               qcom,mdss-dsi-bllp-eof-power-mode;
+                               qcom,mdss-dsi-bllp-power-mode;
+                               qcom,mdss-dsi-panel-broadcast-mode;
+                               qcom,mdss-dsi-lane-0-state;
+                               qcom,mdss-dsi-lane-1-state;
+                               qcom,mdss-dsi-lane-2-state;
+                               qcom,mdss-dsi-lane-3-state;
+                               qcom,mdss-dsi-bl-max-level = <0xfff>;
+                               qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                               qcom,mdss-dsi-mdp-trigger = "none";
+                               qcom,mdss-dsi-reset-sequence = <0x1 0x14 0x0 0xc8 0x1 0x14>;
+                               qcom,panel-ack-disabled;
+                               qcom,mdss-dsi-t-clk-post = <0xd>;
+                               qcom,mdss-dsi-t-clk-pre = <0x2d>;
+                               linux,phandle = <0x356>;
+                               phandle = <0x356>;
+
+                               qcom,mdss-dsi-display-timings {
+
+                                       timing@0 {
+                                               qcom,mdss-dsi-panel-width = <0x500>;
+                                               qcom,mdss-dsi-panel-height = <0x5a0>;
+                                               qcom,mdss-dsi-h-front-porch = <0x78>;
+                                               qcom,mdss-dsi-h-back-porch = <0x2c>;
+                                               qcom,mdss-dsi-h-pulse-width = <0x10>;
+                                               qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                               qcom,mdss-dsi-v-back-porch = <0x4>;
+                                               qcom,mdss-dsi-v-front-porch = <0x8>;
+                                               qcom,mdss-dsi-v-pulse-width = <0x4>;
+                                               qcom,mdss-dsi-h-left-border = <0x0>;
+                                               qcom,mdss-dsi-h-right-border = <0x0>;
+                                               qcom,mdss-dsi-v-top-border = <0x0>;
+                                               qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                               qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                                               qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                               qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                               qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00 05 01 00 00 78 00 02 10 00];
+                                               qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                               qcom,mdss-dsi-panel-phy-timings = <0x1c0707 0x23210707 0x5030400>;
+                                               qcom,display-topology = <0x2 0x0 0x2 0x1 0x0 0x2>;
+                                               qcom,default-topology-index = <0x0>;
+                                       };
+                               };
+                       };
+
+                       qcom,mdss_dsi_dual_sim_cmd {
+                               qcom,mdss-dsi-panel-name = "Sim dual cmd mode dsi panel";
+                               qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
+                               qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                               qcom,mdss-dsi-stream = <0x0>;
+                               qcom,mdss-dsi-bpp = <0x18>;
+                               qcom,mdss-dsi-color-order = "rgb_swap_rgb";
+                               qcom,mdss-dsi-underflow-color = <0xff>;
+                               qcom,mdss-dsi-border-color = <0x0>;
+                               qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
+                               qcom,mdss-dsi-bllp-eof-power-mode;
+                               qcom,mdss-dsi-bllp-power-mode;
+                               qcom,cmd-sync-wait-broadcast;
+                               qcom,mdss-dsi-lane-0-state;
+                               qcom,mdss-dsi-lane-1-state;
+                               qcom,mdss-dsi-lane-2-state;
+                               qcom,mdss-dsi-lane-3-state;
+                               qcom,mdss-dsi-hor-line-idle = <0x0 0x28 0x100 0x28 0x78 0x80 0x78 0xf0 0x40>;
+                               qcom,mdss-dsi-reset-sequence = <0x1 0xa 0x0 0xa 0x1 0xa>;
+                               qcom,mdss-dsi-bl-max-level = <0xfff>;
+                               qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                               qcom,mdss-dsi-mdp-trigger = "none";
+                               qcom,mdss-dsi-te-pin-select = <0x1>;
+                               qcom,mdss-dsi-wr-mem-start = <0x2c>;
+                               qcom,mdss-dsi-wr-mem-continue = <0x3c>;
+                               qcom,mdss-dsi-te-dcs-command = <0x1>;
+                               qcom,mdss-dsi-te-check-enable;
+                               qcom,mdss-dsi-te-using-wd;
+                               qcom,mdss-dsi-te-using-te-pin;
+                               qcom,panel-ack-disabled;
+                               qcom,mdss-dsi-t-clk-post = <0xd>;
+                               qcom,mdss-dsi-t-clk-pre = <0x2d>;
+                               linux,phandle = <0x358>;
+                               phandle = <0x358>;
+
+                               qcom,mdss-dsi-display-timings {
+
+                                       timing@0 {
+                                               qcom,mdss-dsi-panel-width = <0x21c>;
+                                               qcom,mdss-dsi-panel-height = <0x780>;
+                                               qcom,mdss-dsi-h-front-porch = <0x1c>;
+                                               qcom,mdss-dsi-h-back-porch = <0x4>;
+                                               qcom,mdss-dsi-h-pulse-width = <0x4>;
+                                               qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                               qcom,mdss-dsi-v-back-porch = <0xc>;
+                                               qcom,mdss-dsi-v-front-porch = <0xc>;
+                                               qcom,mdss-dsi-v-pulse-width = <0x2>;
+                                               qcom,mdss-dsi-h-left-border = <0x0>;
+                                               qcom,mdss-dsi-h-right-border = <0x0>;
+                                               qcom,mdss-dsi-v-top-border = <0x0>;
+                                               qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                               qcom,mdss-dsi-panel-framerate = <0x78>;
+                                               qcom,mdss-dsi-on-command = <0x5010000 0x129>;
+                                               qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                               qcom,mdss-dsi-off-command = [05 01 00 00 00 00 02 28 00 05 01 00 00 00 00 02 10 00];
+                                               qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                               qcom,mdss-dsi-panel-phy-timings = <0x240909 0x26240909 0x6030400>;
+                                               qcom,display-topology = <0x2 0x0 0x2>;
+                                               qcom,default-topology-index = <0x0>;
+                                       };
+
+                                       timing@1 {
+                                               qcom,mdss-dsi-panel-width = <0x2d0>;
+                                               qcom,mdss-dsi-panel-height = <0xa00>;
+                                               qcom,mdss-dsi-h-front-porch = <0x64>;
+                                               qcom,mdss-dsi-h-back-porch = <0x20>;
+                                               qcom,mdss-dsi-h-pulse-width = <0x10>;
+                                               qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                               qcom,mdss-dsi-v-back-porch = <0x7>;
+                                               qcom,mdss-dsi-v-front-porch = <0x8>;
+                                               qcom,mdss-dsi-v-pulse-width = <0x1>;
+                                               qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                                               qcom,mdss-dsi-h-left-border = <0x0>;
+                                               qcom,mdss-dsi-h-right-border = <0x0>;
+                                               qcom,mdss-dsi-v-top-border = <0x0>;
+                                               qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                               qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                               qcom,mdss-dsi-on-command = <0x5010000 0x129>;
+                                               qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                               qcom,mdss-dsi-off-command = [05 01 00 00 00 00 02 28 00 05 01 00 00 00 00 02 10 00];
+                                               qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                               qcom,mdss-dsi-panel-phy-timings = <0x300c0d 0x2a270c0d 0x9030400>;
+                                               qcom,display-topology = <0x2 0x0 0x2 0x1 0x0 0x2>;
+                                               qcom,default-topology-index = <0x0>;
+                                       };
+
+                                       timing@2 {
+                                               qcom,mdss-dsi-panel-width = <0x438>;
+                                               qcom,mdss-dsi-panel-height = <0xf00>;
+                                               qcom,mdss-dsi-h-front-porch = <0x1e>;
+                                               qcom,mdss-dsi-h-back-porch = <0x64>;
+                                               qcom,mdss-dsi-h-pulse-width = <0x4>;
+                                               qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                               qcom,mdss-dsi-v-back-porch = <0x7>;
+                                               qcom,mdss-dsi-v-front-porch = <0x8>;
+                                               qcom,mdss-dsi-v-pulse-width = <0x1>;
+                                               qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                                               qcom,mdss-dsi-panel-framerate = <0x28>;
+                                               qcom,mdss-dsi-on-command = <0x5010000 0x129>;
+                                               qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                               qcom,mdss-dsi-off-command = [05 01 00 00 00 00 02 28 00 05 01 00 00 00 00 02 10 00];
+                                               qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                               qcom,mdss-dsi-panel-phy-timings = <0x180606 0x21200606 0x4030400>;
+                                               qcom,display-topology = <0x2 0x0 0x2>;
+                                               qcom,default-topology-index = <0x0>;
+                                       };
+                               };
+                       };
+
+                       qcom,mdss_dsi_dual_sim_dsc_375_cmd {
+                               qcom,mdss-dsi-panel-name = "Sim dual cmd mode DSC 3.75:1 dsi panel";
+                               qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
+                               qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                               qcom,mdss-dsi-stream = <0x0>;
+                               qcom,mdss-dsi-bpp = <0x18>;
+                               qcom,mdss-dsi-color-order = "rgb_swap_rgb";
+                               qcom,mdss-dsi-underflow-color = <0xff>;
+                               qcom,mdss-dsi-border-color = <0x0>;
+                               qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
+                               qcom,mdss-dsi-bllp-eof-power-mode;
+                               qcom,mdss-dsi-bllp-power-mode;
+                               qcom,cmd-sync-wait-broadcast;
+                               qcom,mdss-dsi-lane-0-state;
+                               qcom,mdss-dsi-lane-1-state;
+                               qcom,mdss-dsi-lane-2-state;
+                               qcom,mdss-dsi-lane-3-state;
+                               qcom,mdss-dsi-hor-line-idle = <0x0 0x28 0x100 0x28 0x78 0x80 0x78 0xf0 0x40>;
+                               qcom,mdss-dsi-reset-sequence = <0x1 0xa 0x0 0xa 0x1 0xa>;
+                               qcom,mdss-dsi-bl-max-level = <0xfff>;
+                               qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                               qcom,mdss-dsi-mdp-trigger = "none";
+                               qcom,mdss-dsi-te-pin-select = <0x1>;
+                               qcom,mdss-dsi-wr-mem-start = <0x2c>;
+                               qcom,mdss-dsi-wr-mem-continue = <0x3c>;
+                               qcom,mdss-dsi-te-dcs-command = <0x1>;
+                               qcom,mdss-dsi-te-check-enable;
+                               qcom,mdss-dsi-te-using-wd;
+                               qcom,mdss-dsi-te-using-te-pin;
+                               qcom,panel-ack-disabled;
+                               qcom,mdss-dsi-t-clk-post = <0xd>;
+                               qcom,mdss-dsi-t-clk-pre = <0x2d>;
+                               linux,phandle = <0x35a>;
+                               phandle = <0x35a>;
+
+                               qcom,mdss-dsi-display-timings {
+
+                                       timing@0 {
+                                               qcom,mdss-dsi-panel-width = <0x438>;
+                                               qcom,mdss-dsi-panel-height = <0xf00>;
+                                               qcom,mdss-dsi-h-front-porch = <0x1e>;
+                                               qcom,mdss-dsi-h-back-porch = <0x64>;
+                                               qcom,mdss-dsi-h-pulse-width = <0x4>;
+                                               qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                               qcom,mdss-dsi-v-back-porch = <0x7>;
+                                               qcom,mdss-dsi-v-front-porch = <0x8>;
+                                               qcom,mdss-dsi-v-pulse-width = <0x1>;
+                                               qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                                               qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                               qcom,mdss-dsi-on-command = [39 01 00 00 00 00 11 91 09 20 00 20 02 00 03 1c 04 21 00 0f 03 19 01 97 39 01 00 00 00 00 03 92 10 f0 15 01 00 00 00 00 02 90 03 15 01 00 00 00 00 02 03 01 39 01 00 00 00 00 06 f0 55 aa 52 08 04 15 01 00 00 00 00 02 c0 03 39 01 00 00 00 00 06 f0 55 aa 52 08 07 15 01 00 00 00 00 02 ef 01 39 01 00 00 00 00 06 f0 55 aa 52 08 00 15 01 00 00 00 00 02 b4 01 15 01 00 00 00 00 02 35 00 39 01 00 00 00 00 06 f0 55 aa 52 08 01 39 01 00 00 00 00 05 ff aa 55 a5 80 15 01 00 00 00 00 02 6f 01 15 01 00 00 00 00 02 f3 10 39 01 00 00 00 00 05 ff aa 55 a5 00 05 01 00 00 78 00 01 11 05 01 00 00 78 00 01 29];
+                                               qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                               qcom,mdss-dsi-off-command = [05 01 00 00 78 00 02 28 00 05 01 00 00 78 00 02 10 00];
+                                               qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                               qcom,compression-mode = "dsc";
+                                               qcom,mdss-dsc-slice-height = <0x20>;
+                                               qcom,mdss-dsc-slice-width = <0x438>;
+                                               qcom,mdss-dsc-slice-per-pkt = <0x1>;
+                                               qcom,mdss-dsc-bit-per-component = <0xa>;
+                                               qcom,mdss-dsc-bit-per-pixel = <0x8>;
+                                               qcom,mdss-dsc-block-prediction-enable;
+                                               qcom,mdss-dsi-panel-phy-timings = <0x1c0707 0x23210707 0x5030400>;
+                                               qcom,display-topology = <0x2 0x2 0x2>;
+                                               qcom,default-topology-index = <0x0>;
+                                       };
+
+                                       timing@1 {
+                                               qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                               qcom,mdss-dsi-panel-width = <0x2d0>;
+                                               qcom,mdss-dsi-panel-height = <0xa00>;
+                                               qcom,mdss-dsi-h-front-porch = <0x64>;
+                                               qcom,mdss-dsi-h-back-porch = <0x20>;
+                                               qcom,mdss-dsi-h-pulse-width = <0x10>;
+                                               qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                               qcom,mdss-dsi-v-back-porch = <0x7>;
+                                               qcom,mdss-dsi-v-front-porch = <0x8>;
+                                               qcom,mdss-dsi-v-pulse-width = <0x1>;
+                                               qcom,mdss-dsi-h-left-border = <0x0>;
+                                               qcom,mdss-dsi-h-right-border = <0x0>;
+                                               qcom,mdss-dsi-v-top-border = <0x0>;
+                                               qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                               qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                                               qcom,mdss-dsi-on-command = [15 01 00 00 00 00 02 ff 20 15 01 00 00 00 00 02 fb 01 15 01 00 00 00 00 02 00 01 15 01 00 00 00 00 02 01 55 15 01 00 00 00 00 02 02 45 15 01 00 00 00 00 02 05 40 15 01 00 00 00 00 02 06 19 15 01 00 00 00 00 02 07 1e 15 01 00 00 00 00 02 0b 73 15 01 00 00 00 00 02 0c 73 15 01 00 00 00 00 02 0e b0 15 01 00 00 00 00 02 0f ae 15 01 00 00 00 00 02 11 b8 15 01 00 00 00 00 02 13 00 15 01 00 00 00 00 02 58 80 15 01 00 00 00 00 02 59 01 15 01 00 00 00 00 02 5a 00 15 01 00 00 00 00 02 5b 01 15 01 00 00 00 00 02 5c 80 15 01 00 00 00 00 02 5d 81 15 01 00 00 00 00 02 5e 00 15 01 00 00 00 00 02 5f 01 15 01 00 00 00 00 02 72 31 15 01 00 00 00 00 02 68 03 15 01 00 00 00 00 02 ff 24 15 01 00 00 00 00 02 fb 01 15 01 00 00 00 00 02 00 1c 15 01 00 00 00 00 02 01 0b 15 01 00 00 00 00 02 02 0c 15 01 00 00 00 00 02 03 01 15 01 00 00 00 00 02 04 0f 15 01 00 00 00 00 02 05 10 15 01 00 00 00 00 02 06 10 15 01 00 00 00 00 02 07 10 15 01 00 00 00 00 02 08 89 15 01 00 00 00 00 02 09 8a 15 01 00 00 00 00 02 0a 13 15 01 00 00 00 00 02 0b 13 15 01 00 00 00 00 02 0c 15 15 01 00 00 00 00 02 0d 15 15 01 00 00 00 00 02 0e 17 15 01 00 00 00 00 02 0f 17 15 01 00 00 00 00 02 10 1c 15 01 00 00 00 00 02 11 0b 15 01 00 00 00 00 02 12 0c 15 01 00 00 00 00 02 13 01 15 01 00 00 00 00 02 14 0f 15 01 00 00 00 00 02 15 10 15 01 00 00 00 00 02 16 10 15 01 00 00 00 00 02 17 10 15 01 00 00 00 00 02 18 89 15 01 00 00 00 00 02 19 8a 15 01 00 00 00 00 02 1a 13 15 01 00 00 00 00 02 1b 13 15 01 00 00 00 00 02 1c 15 15 01 00 00 00 00 02 1d 15 15 01 00 00 00 00 02 1e 17 15 01 00 00 00 00 02 1f 17 15 01 00 00 00 00 02 20 40 15 01 00 00 00 00 02 21 01 15 01 00 00 00 00 02 22 00 15 01 00 00 00 00 02 23 40 15 01 00 00 00 00 02 24 40 15 01 00 00 00 00 02 25 6d 15 01 00 00 00 00 02 26 40 15 01 00 00 00 00 02 27 40 15 01 00 00 00 00 02 e0 00 15 01 00 00 00 00 02 dc 21 15 01 00 00 00 00 02 dd 22 15 01 00 00 00 00 02 de 07 15 01 00 00 00 00 02 df 07 15 01 00 00 00 00 02 e3 6d 15 01 00 00 00 00 02 e1 07 15 01 00 00 00 00 02 e2 07 15 01 00 00 00 00 02 29 d8 15 01 00 00 00 00 02 2a 2a 15 01 00 00 00 00 02 4b 03 15 01 00 00 00 00 02 4c 11 15 01 00 00 00 00 02 4d 10 15 01 00 00 00 00 02 4e 01 15 01 00 00 00 00 02 4f 01 15 01 00 00 00 00 02 50 10 15 01 00 00 00 00 02 51 00 15 01 00 00 00 00 02 52 80 15 01 00 00 00 00 02 53 00 15 01 00 00 00 00 02 56 00 15 01 00 00 00 00 02 54 07 15 01 00 00 00 00 02 58 07 15 01 00 00 00 00 02 55 25 15 01 00 00 00 00 02 5b 43 15 01 00 00 00 00 02 5c 00 15 01 00 00 00 00 02 5f 73 15 01 00 00 00 00 02 60 73 15 01 00 00 00 00 02 63 22 15 01 00 00 00 00 02 64 00 15 01 00 00 00 00 02 67 08 15 01 00 00 00 00 02 68 04 15 01 00 00 00 00 02 72 02 15 01 00 00 00 00 02 7a 80 15 01 00 00 00 00 02 7b 91 15 01 00 00 00 00 02 7c d8 15 01 00 00 00 00 02 7d 60 15 01 00 00 00 00 02 7f 15 15 01 00 00 00 00 02 75 15 15 01 00 00 00 00 02 b3 c0 15 01 00 00 00 00 02 b4 00 15 01 00 00 00 00 02 b5 00 15 01 00 00 00 00 02 78 00 15 01 00 00 00 00 02 79 00 15 01 00 00 00 00 02 80 00 15 01 00 00 00 00 02 83 00 15 01 00 00 00 00 02 93 0a 15 01 00 00 00 00 02 94 0a 15 01 00 00 00 00 02 8a 00 15 01 00 00 00 00 02 9b ff 15 01 00 00 00 00 02 9d b0 15 01 00 00 00 00 02 9f 63 15 01 00 00 00 00 02 98 10 15 01 00 00 00 00 02 ec 00 15 01 00 00 00 00 02 ff 10 15 01 00 00 00 00 04 3b 03 0a 0a 15 01 00 00 00 00 02 35 00 15 01 00 00 00 00 02 e5 01 15 01 00 00 00 00 02 bb 10 15 01 00 00 00 00 02 fb 01 05 01 00 00 78 00 02 11 00 05 01 00 00 78 00 02 29 00];
+                                               qcom,mdss-dsi-off-command = [05 01 00 00 78 00 02 28 00 05 01 00 00 78 00 02 10 00];
+                                               qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                               qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                               qcom,compression-mode = "dsc";
+                                               qcom,mdss-dsc-slice-height = <0x10>;
+                                               qcom,mdss-dsc-slice-width = <0x2d0>;
+                                               qcom,mdss-dsc-slice-per-pkt = <0x1>;
+                                               qcom,mdss-dsc-bit-per-component = <0xa>;
+                                               qcom,mdss-dsc-bit-per-pixel = <0x8>;
+                                               qcom,mdss-dsc-block-prediction-enable;
+                                               qcom,mdss-dsi-panel-phy-timings = <0x180606 0x21200606 0x4030400>;
+                                               qcom,display-topology = <0x2 0x2 0x2>;
+                                               qcom,default-topology-index = <0x0>;
+                                       };
+                               };
+                       };
+
+                       qcom,mdss_dsi_sharp_4k_dsc_video {
+                               qcom,mdss-dsi-panel-name = "Sharp 4k video mode dsc dsi panel";
+                               qcom,mdss-dsi-panel-type = "dsi_video_mode";
+                               qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                               qcom,mdss-dsi-stream = <0x0>;
+                               qcom,mdss-dsi-bpp = <0x18>;
+                               qcom,mdss-dsi-border-color = <0x0>;
+                               qcom,mdss-dsi-traffic-mode = "burst_mode";
+                               qcom,mdss-dsi-bllp-eof-power-mode;
+                               qcom,mdss-dsi-bllp-power-mode;
+                               qcom,mdss-dsi-lane-0-state;
+                               qcom,mdss-dsi-lane-1-state;
+                               qcom,mdss-dsi-lane-2-state;
+                               qcom,mdss-dsi-lane-3-state;
+                               qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                               qcom,mdss-dsi-mdp-trigger = "none";
+                               qcom,mdss-dsi-reset-sequence = <0x1 0xc8 0x0 0xc8 0x1 0xc8>;
+                               qcom,mdss-pan-physical-width-dimension = <0x47>;
+                               qcom,mdss-pan-physical-height-dimension = <0x81>;
+                               qcom,mdss-dsi-tx-eot-append;
+                               qcom,adjust-timer-wakeup-ms = <0x1>;
+                               qcom,mdss-dsi-panel-hdr-enabled;
+                               qcom,mdss-dsi-panel-hdr-color-primaries = <0x38a4 0x3c8c 0x7d00 0x4268 0x3c8c 0x7530 0x1f40 0xbb8>;
+                               qcom,mdss-dsi-panel-peak-brightness = <0x401640>;
+                               qcom,mdss-dsi-panel-blackness-level = <0xc9e>;
+                               qcom,mdss-dsi-t-clk-post = <0xc>;
+                               qcom,mdss-dsi-t-clk-pre = <0x27>;
+                               linux,phandle = <0x34a>;
+                               phandle = <0x34a>;
+
+                               qcom,mdss-dsi-display-timings {
+
+                                       timing@0 {
+                                               qcom,mdss-dsi-panel-width = <0x438>;
+                                               qcom,mdss-dsi-panel-height = <0xf00>;
+                                               qcom,mdss-dsi-h-front-porch = <0x1e>;
+                                               qcom,mdss-dsi-h-back-porch = <0x64>;
+                                               qcom,mdss-dsi-h-pulse-width = <0x4>;
+                                               qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                               qcom,mdss-dsi-v-back-porch = <0x7>;
+                                               qcom,mdss-dsi-v-front-porch = <0x8>;
+                                               qcom,mdss-dsi-v-pulse-width = <0x1>;
+                                               qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                                               qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                               qcom,mdss-dsi-on-command = [39 01 00 00 00 00 11 91 09 20 00 20 02 00 03 1c 04 21 00 0f 03 19 01 97 39 01 00 00 00 00 03 92 10 f0 15 01 00 00 00 00 02 90 03 15 01 00 00 00 00 02 03 01 39 01 00 00 00 00 06 f0 55 aa 52 08 04 15 01 00 00 00 00 02 c0 03 39 01 00 00 00 00 06 f0 55 aa 52 08 07 15 01 00 00 00 00 02 ef 01 39 01 00 00 00 00 06 f0 55 aa 52 08 00 15 01 00 00 00 00 02 b4 10 15 01 00 00 00 00 02 35 00 39 01 00 00 00 00 06 f0 55 aa 52 08 01 39 01 00 00 00 00 05 ff aa 55 a5 80 15 01 00 00 00 00 02 6f 01 15 01 00 00 00 00 02 f3 10 39 01 00 00 00 00 05 ff aa 55 a5 00 05 01 00 00 78 00 01 11 05 01 00 00 78 00 01 29];
+                                               qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                               qcom,mdss-dsi-off-command = [05 01 00 00 78 00 02 28 00 05 01 00 00 78 00 02 10 00];
+                                               qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                               qcom,compression-mode = "dsc";
+                                               qcom,mdss-dsc-slice-height = <0x20>;
+                                               qcom,mdss-dsc-slice-width = <0x438>;
+                                               qcom,mdss-dsc-slice-per-pkt = <0x1>;
+                                               qcom,mdss-dsc-bit-per-component = <0x8>;
+                                               qcom,mdss-dsc-bit-per-pixel = <0x8>;
+                                               qcom,mdss-dsc-block-prediction-enable;
+                                               qcom,mdss-dsi-panel-phy-timings = <0x180606 0x21200606 0x4030400>;
+                                               qcom,display-topology = <0x2 0x2 0x2>;
+                                               qcom,default-topology-index = <0x0>;
+                                       };
+                               };
+                       };
+
+                       qcom,mdss_dsi_sharp_4k_dsc_cmd {
+                               qcom,mdss-dsi-panel-name = "Sharp 4k cmd mode dsc dsi panel";
+                               qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
+                               qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                               qcom,mdss-dsi-stream = <0x0>;
+                               qcom,mdss-dsi-bpp = <0x18>;
+                               qcom,mdss-dsi-border-color = <0x0>;
+                               qcom,mdss-dsi-traffic-mode = "burst_mode";
+                               qcom,mdss-dsi-bllp-eof-power-mode;
+                               qcom,mdss-dsi-bllp-power-mode;
+                               qcom,mdss-dsi-lane-0-state;
+                               qcom,mdss-dsi-lane-1-state;
+                               qcom,mdss-dsi-lane-2-state;
+                               qcom,mdss-dsi-lane-3-state;
+                               qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                               qcom,mdss-dsi-mdp-trigger = "none";
+                               qcom,mdss-dsi-reset-sequence = <0x1 0xc8 0x0 0xc8 0x1 0xc8>;
+                               qcom,mdss-pan-physical-width-dimension = <0x47>;
+                               qcom,mdss-pan-physical-height-dimension = <0x81>;
+                               qcom,mdss-dsi-te-pin-select = <0x1>;
+                               qcom,mdss-dsi-wr-mem-start = <0x2c>;
+                               qcom,mdss-dsi-wr-mem-continue = <0x3c>;
+                               qcom,mdss-dsi-te-dcs-command = <0x1>;
+                               qcom,mdss-dsi-te-check-enable;
+                               qcom,mdss-dsi-te-using-te-pin;
+                               qcom,dcs-cmd-by-left;
+                               qcom,mdss-dsi-tx-eot-append;
+                               qcom,adjust-timer-wakeup-ms = <0x1>;
+                               qcom,mdss-dsi-panel-hdr-enabled;
+                               qcom,mdss-dsi-panel-hdr-color-primaries = <0x38a4 0x3c8c 0x7d00 0x4268 0x3c8c 0x7530 0x1f40 0xbb8>;
+                               qcom,mdss-dsi-panel-peak-brightness = <0x401640>;
+                               qcom,mdss-dsi-panel-blackness-level = <0xc9e>;
+                               qcom,mdss-dsi-t-clk-post = <0xc>;
+                               qcom,mdss-dsi-t-clk-pre = <0x27>;
+                               linux,phandle = <0x34d>;
+                               phandle = <0x34d>;
+
+                               qcom,mdss-dsi-display-timings {
+
+                                       timing@0 {
+                                               qcom,mdss-dsi-panel-width = <0x438>;
+                                               qcom,mdss-dsi-panel-height = <0xf00>;
+                                               qcom,mdss-dsi-h-front-porch = <0x1e>;
+                                               qcom,mdss-dsi-h-back-porch = <0x64>;
+                                               qcom,mdss-dsi-h-pulse-width = <0x4>;
+                                               qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                               qcom,mdss-dsi-v-back-porch = <0x7>;
+                                               qcom,mdss-dsi-v-front-porch = <0x8>;
+                                               qcom,mdss-dsi-v-pulse-width = <0x1>;
+                                               qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                                               qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                               qcom,mdss-dsi-panel-jitter = <0x8 0xa>;
+                                               qcom,mdss-dsi-on-command = [39 01 00 00 00 00 11 91 09 20 00 20 02 00 03 1c 04 21 00 0f 03 19 01 97 39 01 00 00 00 00 03 92 10 f0 15 01 00 00 00 00 02 90 03 15 01 00 00 00 00 02 03 01 39 01 00 00 00 00 06 f0 55 aa 52 08 04 15 01 00 00 00 00 02 c0 03 39 01 00 00 00 00 06 f0 55 aa 52 08 07 15 01 00 00 00 00 02 ef 01 39 01 00 00 00 00 06 f0 55 aa 52 08 00 15 01 00 00 00 00 02 b4 01 15 01 00 00 00 00 02 35 00 39 01 00 00 00 00 06 f0 55 aa 52 08 01 39 01 00 00 00 00 05 ff aa 55 a5 80 15 01 00 00 00 00 02 6f 01 15 01 00 00 00 00 02 f3 10 39 01 00 00 00 00 05 ff aa 55 a5 00 05 01 00 00 78 00 01 11 05 01 00 00 78 00 01 29];
+                                               qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                               qcom,mdss-dsi-off-command = [05 01 00 00 78 00 02 28 00 05 01 00 00 78 00 02 10 00];
+                                               qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                               qcom,compression-mode = "dsc";
+                                               qcom,mdss-dsc-slice-height = <0x20>;
+                                               qcom,mdss-dsc-slice-width = <0x438>;
+                                               qcom,mdss-dsc-slice-per-pkt = <0x1>;
+                                               qcom,mdss-dsc-bit-per-component = <0x8>;
+                                               qcom,mdss-dsc-bit-per-pixel = <0x8>;
+                                               qcom,mdss-dsc-block-prediction-enable;
+                                               qcom,mdss-dsi-panel-phy-timings = <0x180606 0x21200606 0x4030400>;
+                                               qcom,display-topology = <0x2 0x2 0x2>;
+                                               qcom,default-topology-index = <0x0>;
+                                       };
+                               };
+                       };
+
+                       qcom,mdss_dsi_nt35597_wqxga_video_truly {
+                               qcom,mdss-dsi-panel-name = "Dual nt35597 video mode dsi truly panel without DSC";
+                               qcom,mdss-dsi-panel-type = "dsi_video_mode";
+                               qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                               qcom,mdss-dsi-stream = <0x0>;
+                               qcom,mdss-dsi-panel-hdr-enabled;
+                               qcom,mdss-dsi-panel-hdr-color-primaries = <0x38a4 0x3c8c 0x7d00 0x4268 0x3c8c 0x7530 0x1f40 0xbb8>;
+                               qcom,mdss-dsi-panel-peak-brightness = <0x401640>;
+                               qcom,mdss-dsi-panel-blackness-level = <0xc9e>;
+                               qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
+                               qcom,mdss-dsi-bllp-eof-power-mode;
+                               qcom,mdss-dsi-bllp-power-mode;
+                               qcom,mdss-dsi-lane-0-state;
+                               qcom,mdss-dsi-lane-1-state;
+                               qcom,mdss-dsi-lane-2-state;
+                               qcom,mdss-dsi-lane-3-state;
+                               qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                               qcom,mdss-dsi-mdp-trigger = "none";
+                               qcom,mdss-dsi-reset-sequence = <0x1 0x14 0x0 0x14 0x1 0x32>;
+                               qcom,mdss-pan-physical-width-dimension = <0x4a>;
+                               qcom,mdss-pan-physical-height-dimension = <0x83>;
+                               qcom,mdss-dsi-tx-eot-append;
+                               qcom,mdss-dsi-underflow-color = <0x3ff>;
+                               qcom,mdss-dsi-border-color = <0x0>;
+                               qcom,mdss-dsi-bpp = <0x18>;
+                               qcom,mdss-dsi-t-clk-post = <0xd>;
+                               qcom,mdss-dsi-t-clk-pre = <0x2d>;
+                               qcom,mdss-dsi-pan-enable-dynamic-fps;
+                               qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp";
+                               qcom,dsi-supported-dfps-list = <0x3c 0x37 0x35>;
+                               qcom,esd-check-enabled;
+                               qcom,mdss-dsi-panel-status-check-mode = "reg_read";
+                               qcom,mdss-dsi-panel-status-command = <0x6010001 0x10a>;
+                               qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
+                               qcom,mdss-dsi-panel-status-value = <0x9c>;
+                               qcom,mdss-dsi-panel-on-check-value = <0x9c>;
+                               qcom,mdss-dsi-panel-status-read-length = <0x1>;
+                               linux,phandle = <0x350>;
+                               phandle = <0x350>;
+
+                               qcom,mdss-dsi-display-timings {
+
+                                       timing@0 {
+                                               qcom,mdss-dsi-panel-width = <0x2d0>;
+                                               qcom,mdss-dsi-panel-height = <0xa00>;
+                                               qcom,mdss-dsi-h-front-porch = <0x64>;
+                                               qcom,mdss-dsi-h-back-porch = <0x20>;
+                                               qcom,mdss-dsi-h-pulse-width = <0x10>;
+                                               qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                               qcom,mdss-dsi-v-back-porch = <0x7>;
+                                               qcom,mdss-dsi-v-front-porch = <0x8>;
+                                               qcom,mdss-dsi-v-pulse-width = <0x1>;
+                                               qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                               qcom,mdss-dsi-on-command = [15 01 00 00 00 00 02 ff 20 15 01 00 00 00 00 02 fb 01 15 01 00 00 00 00 02 00 01 15 01 00 00 00 00 02 01 55 15 01 00 00 00 00 02 02 45 15 01 00 00 00 00 02 05 40 15 01 00 00 00 00 02 06 19 15 01 00 00 00 00 02 07 1e 15 01 00 00 00 00 02 0b 73 15 01 00 00 00 00 02 0c 73 15 01 00 00 00 00 02 0e b0 15 01 00 00 00 00 02 0f ae 15 01 00 00 00 00 02 11 b8 15 01 00 00 00 00 02 13 00 15 01 00 00 00 00 02 58 80 15 01 00 00 00 00 02 59 01 15 01 00 00 00 00 02 5a 00 15 01 00 00 00 00 02 5b 01 15 01 00 00 00 00 02 5c 80 15 01 00 00 00 00 02 5d 81 15 01 00 00 00 00 02 5e 00 15 01 00 00 00 00 02 5f 01 15 01 00 00 00 00 02 72 11 15 01 00 00 00 00 02 68 03 15 01 00 00 00 00 02 ff 24 15 01 00 00 00 00 02 fb 01 15 01 00 00 00 00 02 00 1c 15 01 00 00 00 00 02 01 0b 15 01 00 00 00 00 02 02 0c 15 01 00 00 00 00 02 03 01 15 01 00 00 00 00 02 04 0f 15 01 00 00 00 00 02 05 10 15 01 00 00 00 00 02 06 10 15 01 00 00 00 00 02 07 10 15 01 00 00 00 00 02 08 89 15 01 00 00 00 00 02 09 8a 15 01 00 00 00 00 02 0a 13 15 01 00 00 00 00 02 0b 13 15 01 00 00 00 00 02 0c 15 15 01 00 00 00 00 02 0d 15 15 01 00 00 00 00 02 0e 17 15 01 00 00 00 00 02 0f 17 15 01 00 00 00 00 02 10 1c 15 01 00 00 00 00 02 11 0b 15 01 00 00 00 00 02 12 0c 15 01 00 00 00 00 02 13 01 15 01 00 00 00 00 02 14 0f 15 01 00 00 00 00 02 15 10 15 01 00 00 00 00 02 16 10 15 01 00 00 00 00 02 17 10 15 01 00 00 00 00 02 18 89 15 01 00 00 00 00 02 19 8a 15 01 00 00 00 00 02 1a 13 15 01 00 00 00 00 02 1b 13 15 01 00 00 00 00 02 1c 15 15 01 00 00 00 00 02 1d 15 15 01 00 00 00 00 02 1e 17 15 01 00 00 00 00 02 1f 17 15 01 00 00 00 00 02 20 40 15 01 00 00 00 00 02 21 01 15 01 00 00 00 00 02 22 00 15 01 00 00 00 00 02 23 40 15 01 00 00 00 00 02 24 40 15 01 00 00 00 00 02 25 6d 15 01 00 00 00 00 02 26 40 15 01 00 00 00 00 02 27 40 15 01 00 00 00 00 02 e0 00 15 01 00 00 00 00 02 dc 21 15 01 00 00 00 00 02 dd 22 15 01 00 00 00 00 02 de 07 15 01 00 00 00 00 02 df 07 15 01 00 00 00 00 02 e3 6d 15 01 00 00 00 00 02 e1 07 15 01 00 00 00 00 02 e2 07 15 01 00 00 00 00 02 29 d8 15 01 00 00 00 00 02 2a 2a 15 01 00 00 00 00 02 4b 03 15 01 00 00 00 00 02 4c 11 15 01 00 00 00 00 02 4d 10 15 01 00 00 00 00 02 4e 01 15 01 00 00 00 00 02 4f 01 15 01 00 00 00 00 02 50 10 15 01 00 00 00 00 02 51 00 15 01 00 00 00 00 02 52 80 15 01 00 00 00 00 02 53 00 15 01 00 00 00 00 02 56 00 15 01 00 00 00 00 02 54 07 15 01 00 00 00 00 02 58 07 15 01 00 00 00 00 02 55 25 15 01 00 00 00 00 02 5b 43 15 01 00 00 00 00 02 5c 00 15 01 00 00 00 00 02 5f 73 15 01 00 00 00 00 02 60 73 15 01 00 00 00 00 02 63 22 15 01 00 00 00 00 02 64 00 15 01 00 00 00 00 02 67 08 15 01 00 00 00 00 02 68 04 15 01 00 00 00 00 02 72 02 15 01 00 00 00 00 02 7a 80 15 01 00 00 00 00 02 7b 91 15 01 00 00 00 00 02 7c d8 15 01 00 00 00 00 02 7d 60 15 01 00 00 00 00 02 7f 15 15 01 00 00 00 00 02 75 15 15 01 00 00 00 00 02 b3 c0 15 01 00 00 00 00 02 b4 00 15 01 00 00 00 00 02 b5 00 15 01 00 00 00 00 02 78 00 15 01 00 00 00 00 02 79 00 15 01 00 00 00 00 02 80 00 15 01 00 00 00 00 02 83 00 15 01 00 00 00 00 02 93 0a 15 01 00 00 00 00 02 94 0a 15 01 00 00 00 00 02 8a 00 15 01 00 00 00 00 02 9b ff 15 01 00 00 00 00 02 9d b0 15 01 00 00 00 00 02 9f 63 15 01 00 00 00 00 02 98 10 15 01 00 00 00 00 02 ec 00 15 01 00 00 00 00 02 ff 10 15 01 00 00 00 00 04 3b 03 0a 0a 15 01 00 00 00 00 02 35 00 15 01 00 00 00 00 02 e5 01 15 01 00 00 00 00 02 bb 03 15 01 00 00 00 00 02 fb 01 05 01 00 00 78 00 02 11 00 05 01 00 00 78 00 02 29 00];
+                                               qcom,mdss-dsi-off-command = [05 01 00 00 78 00 02 28 00 05 01 00 00 78 00 02 10 00];
+                                               qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                               qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                               qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                                               qcom,mdss-dsi-panel-phy-timings = <0x1c0707 0x23210707 0x5030400>;
+                                               qcom,display-topology = <0x2 0x0 0x2 0x1 0x0 0x2>;
+                                               qcom,default-topology-index = <0x0>;
+                                       };
+                               };
+                       };
+
+                       qcom,mdss_dsi_nt35597_truly_wqxga_cmd {
+                               qcom,mdss-dsi-panel-name = "Dual nt35597 cmd mode dsi truly panel without DSC";
+                               qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
+                               qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                               qcom,mdss-dsi-stream = <0x0>;
+                               qcom,mdss-dsi-bpp = <0x18>;
+                               qcom,mdss-dsi-color-order = "rgb_swap_rgb";
+                               qcom,mdss-dsi-underflow-color = <0xff>;
+                               qcom,mdss-dsi-border-color = <0x0>;
+                               qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
+                               qcom,mdss-dsi-bllp-eof-power-mode;
+                               qcom,mdss-dsi-bllp-power-mode;
+                               qcom,mdss-dsi-lane-0-state;
+                               qcom,mdss-dsi-lane-1-state;
+                               qcom,mdss-dsi-lane-2-state;
+                               qcom,mdss-dsi-lane-3-state;
+                               qcom,adjust-timer-wakeup-ms = <0x1>;
+                               qcom,mdss-dsi-reset-sequence = <0x1 0xa 0x0 0xa 0x1 0xa>;
+                               qcom,mdss-pan-physical-width-dimension = <0x4a>;
+                               qcom,mdss-pan-physical-height-dimension = <0x83>;
+                               qcom,mdss-dsi-bl-max-level = <0xfff>;
+                               qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                               qcom,mdss-dsi-mdp-trigger = "none";
+                               qcom,mdss-dsi-te-pin-select = <0x1>;
+                               qcom,mdss-dsi-wr-mem-start = <0x2c>;
+                               qcom,mdss-dsi-wr-mem-continue = <0x3c>;
+                               qcom,mdss-dsi-te-dcs-command = <0x1>;
+                               qcom,mdss-dsi-te-check-enable;
+                               qcom,mdss-dsi-te-using-te-pin;
+                               qcom,mdss-dsi-panel-hdr-enabled;
+                               qcom,mdss-dsi-panel-hdr-color-primaries = <0x38a4 0x3c8c 0x7d00 0x4268 0x3c8c 0x7530 0x1f40 0xbb8>;
+                               qcom,mdss-dsi-panel-peak-brightness = <0x401640>;
+                               qcom,mdss-dsi-panel-blackness-level = <0xc9e>;
+                               qcom,mdss-dsi-t-clk-post = <0xd>;
+                               qcom,mdss-dsi-t-clk-pre = <0x2d>;
+                               qcom,ulps-enabled;
+                               qcom,esd-check-enabled;
+                               qcom,mdss-dsi-panel-status-check-mode = "reg_read";
+                               qcom,mdss-dsi-panel-status-command = <0x6010001 0x10a>;
+                               qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
+                               qcom,mdss-dsi-panel-status-value = <0x9c>;
+                               qcom,mdss-dsi-panel-on-check-value = <0x9c>;
+                               qcom,mdss-dsi-panel-status-read-length = <0x1>;
+                               linux,phandle = <0x351>;
+                               phandle = <0x351>;
+
+                               qcom,mdss-dsi-display-timings {
+
+                                       timing@0 {
+                                               qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                               qcom,mdss-dsi-panel-width = <0x2d0>;
+                                               qcom,mdss-dsi-panel-height = <0xa00>;
+                                               qcom,mdss-dsi-h-front-porch = <0x64>;
+                                               qcom,mdss-dsi-h-back-porch = <0x20>;
+                                               qcom,mdss-dsi-h-pulse-width = <0x10>;
+                                               qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                               qcom,mdss-dsi-v-back-porch = <0x7>;
+                                               qcom,mdss-dsi-v-front-porch = <0x8>;
+                                               qcom,mdss-dsi-v-pulse-width = <0x1>;
+                                               qcom,mdss-dsi-h-left-border = <0x0>;
+                                               qcom,mdss-dsi-h-right-border = <0x0>;
+                                               qcom,mdss-dsi-v-top-border = <0x0>;
+                                               qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                               qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                                               qcom,mdss-dsi-panel-jitter = <0x1 0x1>;
+                                               qcom,mdss-dsi-on-command = [15 01 00 00 00 00 02 ff 20 15 01 00 00 00 00 02 fb 01 15 01 00 00 00 00 02 00 01 15 01 00 00 00 00 02 01 55 15 01 00 00 00 00 02 02 45 15 01 00 00 00 00 02 05 40 15 01 00 00 00 00 02 06 19 15 01 00 00 00 00 02 07 1e 15 01 00 00 00 00 02 0b 73 15 01 00 00 00 00 02 0c 73 15 01 00 00 00 00 02 0e b0 15 01 00 00 00 00 02 0f ae 15 01 00 00 00 00 02 11 b8 15 01 00 00 00 00 02 13 00 15 01 00 00 00 00 02 58 80 15 01 00 00 00 00 02 59 01 15 01 00 00 00 00 02 5a 00 15 01 00 00 00 00 02 5b 01 15 01 00 00 00 00 02 5c 80 15 01 00 00 00 00 02 5d 81 15 01 00 00 00 00 02 5e 00 15 01 00 00 00 00 02 5f 01 15 01 00 00 00 00 02 72 11 15 01 00 00 00 00 02 68 03 15 01 00 00 00 00 02 ff 24 15 01 00 00 00 00 02 fb 01 15 01 00 00 00 00 02 00 1c 15 01 00 00 00 00 02 01 0b 15 01 00 00 00 00 02 02 0c 15 01 00 00 00 00 02 03 01 15 01 00 00 00 00 02 04 0f 15 01 00 00 00 00 02 05 10 15 01 00 00 00 00 02 06 10 15 01 00 00 00 00 02 07 10 15 01 00 00 00 00 02 08 89 15 01 00 00 00 00 02 09 8a 15 01 00 00 00 00 02 0a 13 15 01 00 00 00 00 02 0b 13 15 01 00 00 00 00 02 0c 15 15 01 00 00 00 00 02 0d 15 15 01 00 00 00 00 02 0e 17 15 01 00 00 00 00 02 0f 17 15 01 00 00 00 00 02 10 1c 15 01 00 00 00 00 02 11 0b 15 01 00 00 00 00 02 12 0c 15 01 00 00 00 00 02 13 01 15 01 00 00 00 00 02 14 0f 15 01 00 00 00 00 02 15 10 15 01 00 00 00 00 02 16 10 15 01 00 00 00 00 02 17 10 15 01 00 00 00 00 02 18 89 15 01 00 00 00 00 02 19 8a 15 01 00 00 00 00 02 1a 13 15 01 00 00 00 00 02 1b 13 15 01 00 00 00 00 02 1c 15 15 01 00 00 00 00 02 1d 15 15 01 00 00 00 00 02 1e 17 15 01 00 00 00 00 02 1f 17 15 01 00 00 00 00 02 20 40 15 01 00 00 00 00 02 21 01 15 01 00 00 00 00 02 22 00 15 01 00 00 00 00 02 23 40 15 01 00 00 00 00 02 24 40 15 01 00 00 00 00 02 25 6d 15 01 00 00 00 00 02 26 40 15 01 00 00 00 00 02 27 40 15 01 00 00 00 00 02 e0 00 15 01 00 00 00 00 02 dc 21 15 01 00 00 00 00 02 dd 22 15 01 00 00 00 00 02 de 07 15 01 00 00 00 00 02 df 07 15 01 00 00 00 00 02 e3 6d 15 01 00 00 00 00 02 e1 07 15 01 00 00 00 00 02 e2 07 15 01 00 00 00 00 02 29 d8 15 01 00 00 00 00 02 2a 2a 15 01 00 00 00 00 02 4b 03 15 01 00 00 00 00 02 4c 11 15 01 00 00 00 00 02 4d 10 15 01 00 00 00 00 02 4e 01 15 01 00 00 00 00 02 4f 01 15 01 00 00 00 00 02 50 10 15 01 00 00 00 00 02 51 00 15 01 00 00 00 00 02 52 80 15 01 00 00 00 00 02 53 00 15 01 00 00 00 00 02 56 00 15 01 00 00 00 00 02 54 07 15 01 00 00 00 00 02 58 07 15 01 00 00 00 00 02 55 25 15 01 00 00 00 00 02 5b 43 15 01 00 00 00 00 02 5c 00 15 01 00 00 00 00 02 5f 73 15 01 00 00 00 00 02 60 73 15 01 00 00 00 00 02 63 22 15 01 00 00 00 00 02 64 00 15 01 00 00 00 00 02 67 08 15 01 00 00 00 00 02 68 04 15 01 00 00 00 00 02 72 02 15 01 00 00 00 00 02 7a 80 15 01 00 00 00 00 02 7b 91 15 01 00 00 00 00 02 7c d8 15 01 00 00 00 00 02 7d 60 15 01 00 00 00 00 02 7f 15 15 01 00 00 00 00 02 75 15 15 01 00 00 00 00 02 b3 c0 15 01 00 00 00 00 02 b4 00 15 01 00 00 00 00 02 b5 00 15 01 00 00 00 00 02 78 00 15 01 00 00 00 00 02 79 00 15 01 00 00 00 00 02 80 00 15 01 00 00 00 00 02 83 00 15 01 00 00 00 00 02 93 0a 15 01 00 00 00 00 02 94 0a 15 01 00 00 00 00 02 8a 00 15 01 00 00 00 00 02 9b ff 15 01 00 00 00 00 02 9d b0 15 01 00 00 00 00 02 9f 63 15 01 00 00 00 00 02 98 10 15 01 00 00 00 00 02 ec 00 15 01 00 00 00 00 02 ff 10 15 01 00 00 00 00 04 3b 03 0a 0a 15 01 00 00 00 00 02 35 00 15 01 00 00 00 00 02 e5 01 15 01 00 00 00 00 02 bb 10 15 01 00 00 00 00 02 c0 00 29 01 00 00 00 00 0c c9 01 01 70 00 0a 06 67 04 c5 12 18 15 01 00 00 00 00 02 fb 01 05 01 00 00 78 00 02 11 00 05 01 00 00 78 00 02 29 00];
+                                               qcom,mdss-dsi-off-command = [05 01 00 00 78 00 02 28 00 05 01 00 00 78 00 02 10 00];
+                                               qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                               qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                               qcom,mdss-dsi-panel-phy-timings = <0x1c0707 0x23210707 0x5030400>;
+                                               qcom,display-topology = <0x2 0x0 0x2 0x1 0x0 0x2>;
+                                               qcom,default-topology-index = <0x0>;
+                                               qcom,partial-update-enabled = "single_roi";
+                                               qcom,panel-roi-alignment = <0x2d0 0x80 0x2d0 0x80 0x5a0 0x80>;
+                                       };
+                               };
+                       };
+
+                       qcom,mdss_dsi_nt35597_dsc_cmd_truly {
+                               qcom,mdss-dsi-panel-name = "nt35597 cmd mode dsi truly panel with DSC";
+                               qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
+                               qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                               qcom,mdss-dsi-stream = <0x0>;
+                               qcom,mdss-pan-physical-width-dimension = <0x4a>;
+                               qcom,mdss-pan-physical-height-dimension = <0x83>;
+                               qcom,mdss-dsi-bpp = <0x18>;
+                               qcom,mdss-dsi-color-order = "rgb_swap_rgb";
+                               qcom,mdss-dsi-underflow-color = <0xff>;
+                               qcom,mdss-dsi-border-color = <0x0>;
+                               qcom,mdss-dsi-panel-hdr-enabled;
+                               qcom,mdss-dsi-panel-hdr-color-primaries = <0x38a4 0x3c8c 0x7d00 0x4268 0x3c8c 0x7530 0x1f40 0xbb8>;
+                               qcom,mdss-dsi-panel-peak-brightness = <0x401640>;
+                               qcom,mdss-dsi-panel-blackness-level = <0xc9e>;
+                               qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
+                               qcom,mdss-dsi-bllp-eof-power-mode;
+                               qcom,mdss-dsi-bllp-power-mode;
+                               qcom,mdss-dsi-lane-0-state;
+                               qcom,mdss-dsi-lane-1-state;
+                               qcom,mdss-dsi-lane-2-state;
+                               qcom,mdss-dsi-lane-3-state;
+                               qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                               qcom,mdss-dsi-mdp-trigger = "none";
+                               qcom,mdss-dsi-reset-sequence = <0x1 0xa 0x0 0xa 0x1 0xa>;
+                               qcom,mdss-dsi-bl-max-level = <0xfff>;
+                               qcom,adjust-timer-wakeup-ms = <0x1>;
+                               qcom,mdss-dsi-te-pin-select = <0x1>;
+                               qcom,mdss-dsi-wr-mem-start = <0x2c>;
+                               qcom,mdss-dsi-wr-mem-continue = <0x3c>;
+                               qcom,mdss-dsi-te-dcs-command = <0x1>;
+                               qcom,mdss-dsi-te-check-enable;
+                               qcom,mdss-dsi-te-using-te-pin;
+                               qcom,mdss-dsi-t-clk-post = <0xb>;
+                               qcom,mdss-dsi-t-clk-pre = <0x23>;
+                               qcom,ulps-enabled;
+                               qcom,esd-check-enabled;
+                               qcom,mdss-dsi-panel-status-check-mode = "reg_read";
+                               qcom,mdss-dsi-panel-status-command = <0x6010001 0x10a>;
+                               qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
+                               qcom,mdss-dsi-panel-status-value = <0x9c>;
+                               qcom,mdss-dsi-panel-on-check-value = <0x9c>;
+                               qcom,mdss-dsi-panel-status-read-length = <0x1>;
+                               linux,phandle = <0x353>;
+                               phandle = <0x353>;
+
+                               qcom,mdss-dsi-display-timings {
+
+                                       timing@0 {
+                                               qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                               qcom,mdss-dsi-panel-width = <0x5a0>;
+                                               qcom,mdss-dsi-panel-height = <0xa00>;
+                                               qcom,mdss-dsi-h-front-porch = <0x64>;
+                                               qcom,mdss-dsi-h-back-porch = <0x20>;
+                                               qcom,mdss-dsi-h-pulse-width = <0x10>;
+                                               qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                               qcom,mdss-dsi-v-back-porch = <0x8>;
+                                               qcom,mdss-dsi-v-front-porch = <0xa>;
+                                               qcom,mdss-dsi-v-pulse-width = <0x2>;
+                                               qcom,mdss-dsi-h-left-border = <0x0>;
+                                               qcom,mdss-dsi-h-right-border = <0x0>;
+                                               qcom,mdss-dsi-v-top-border = <0x0>;
+                                               qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                               qcom,mdss-dsi-panel-jitter = <0x1 0x1>;
+                                               qcom,mdss-dsi-on-command = <0x15010000 0x2ff 0x20150100 0x2 0xfb011501 0x0 0x2000115 0x1000000 0x20155 0x15010000 0x202 0x45150100 0x2 0x5401501 0x0 0x2061915 0x1000000 0x2071e 0x15010000 0x20b 0x73150100 0x2 0xc731501 0x0 0x20eb015 0x1000000 0x20fae 0x15010000 0x211 0xb8150100 0x2 0x13001501 0x0 0x2588015 0x1000000 0x25901 0x15010000 0x25a 0x150100 0x2 0x5b011501 0x0 0x25c8015 0x1000000 0x25d81 0x15010000 0x25e 0x150100 0x2 0x5f011501 0x0 0x2721115 0x1000000 0x26803 0x15010000 0x2ff 0x24150100 0x2 0xfb011501 0x0 0x2001c15 0x1000000 0x2010b 0x15010000 0x202 0xc150100 0x2 0x3011501 0x0 0x2040f15 0x1000000 0x20510 0x15010000 0x206 0x10150100 0x2 0x7101501 0x0 0x2088915 0x1000000 0x2098a 0x15010000 0x20a 0x13150100 0x2 0xb131501 0x0 0x20c1515 0x1000000 0x20d15 0x15010000 0x20e 0x17150100 0x2 0xf171501 0x0 0x2101c15 0x1000000 0x2110b 0x15010000 0x212 0xc150100 0x2 0x13011501 0x0 0x2140f15 0x1000000 0x21510 0x15010000 0x216 0x10150100 0x2 0x17101501 0x0 0x2188915 0x1000000 0x2198a 0x15010000 0x21a 0x13150100 0x2 0x1b131501 0x0 0x21c1515 0x1000000 0x21d15 0x15010000 0x21e 0x17150100 0x2 0x1f171501 0x0 0x2204015 0x1000000 0x22101 0x15010000 0x222 0x150100 0x2 0x23401501 0x0 0x2244015 0x1000000 0x2256d 0x15010000 0x226 0x40150100 0x2 0x27401501 0x0 0x2e00015 0x1000000 0x2dc21 0x15010000 0x2dd 0x22150100 0x2 0xde071501 0x0 0x2df0715 0x1000000 0x2e36d 0x15010000 0x2e1 0x7150100 0x2 0xe2071501 0x0 0x229d815 0x1000000 0x22a2a 0x15010000 0x24b 0x3150100 0x2 0x4c111501 0x0 0x24d1015 0x1000000 0x24e01 0x15010000 0x24f 0x1150100 0x2 0x50101501 0x0 0x2510015 0x1000000 0x25280 0x15010000 0x253 0x150100 0x2 0x56001501 0x0 0x2540715 0x1000000 0x25807 0x15010000 0x255 0x25150100 0x2 0x5b431501 0x0 0x25c0015 0x1000000 0x25f73 0x15010000 0x260 0x73150100 0x2 0x63221501 0x0 0x2640015 0x1000000 0x26708 0x15010000 0x268 0x4150100 0x2 0x72021501 0x0 0x27a8015 0x1000000 0x27b91 0x15010000 0x27c 0xd8150100 0x2 0x7d601501 0x0 0x27f1515 0x1000000 0x27515 0x15010000 0x2b3 0xc0150100 0x2 0xb4001501 0x0 0x2b50015 0x1000000 0x27800 0x15010000 0x279 0x150100 0x2 0x80001501 0x0 0x2830015 0x1000000 0x2930a 0x15010000 0x294 0xa150100 0x2 0x8a001501 0x0 0x29bff15 0x1000000 0x29db0 0x15010000 0x29f 0x63150100 0x2 0x98101501 0x0 0x2ec0015 0x1000000 0x2ff10 0x39010000 0x11c1 0x9200010 0x2000268 0x1bb000a 0x66704c5 0x39010000 0x3c2 0x10f01501 0x0 0x2c00315 0x1000000 0x43b03 0xa0a1501 0x0 0x2350015 0x1000000 0x2e501 0x15010000 0x2bb 0x10150100 0x2 0xfb010501 0x7800 0x2110005 0x1000078 0x22900>;
+                                               qcom,mdss-dsi-off-command = [05 01 00 00 78 00 02 28 00 05 01 00 00 78 00 02 10 00];
+                                               qcom,mdss-dsi-on-command-state = "dsi_hs_mode";
+                                               qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                               qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                                               qcom,compression-mode = "dsc";
+                                               qcom,mdss-dsc-slice-height = <0x10>;
+                                               qcom,mdss-dsc-slice-width = <0x2d0>;
+                                               qcom,mdss-dsc-slice-per-pkt = <0x2>;
+                                               qcom,mdss-dsc-bit-per-component = <0x8>;
+                                               qcom,mdss-dsc-bit-per-pixel = <0x8>;
+                                               qcom,mdss-dsc-block-prediction-enable;
+                                               qcom,mdss-dsi-panel-phy-timings = <0x150505 0x201f0505 0x3030400>;
+                                               qcom,display-topology = <0x1 0x1 0x1 0x2 0x2 0x1 0x2 0x1 0x1>;
+                                               qcom,default-topology-index = <0x1>;
+                                       };
+                               };
+                       };
+
+                       qcom,mdss_dsi_nt35597_dsc_video_truly {
+                               qcom,mdss-dsi-panel-name = "nt35597 video mode dsi truly panel with DSC";
+                               qcom,mdss-dsi-panel-type = "dsi_video_mode";
+                               qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                               qcom,mdss-dsi-stream = <0x0>;
+                               qcom,mdss-dsi-bpp = <0x18>;
+                               qcom,mdss-dsi-underflow-color = <0xff>;
+                               qcom,mdss-dsi-border-color = <0x0>;
+                               qcom,mdss-dsi-panel-hdr-enabled;
+                               qcom,mdss-dsi-panel-hdr-color-primaries = <0x38a4 0x3c8c 0x7d00 0x4268 0x3c8c 0x7530 0x1f40 0xbb8>;
+                               qcom,mdss-dsi-panel-peak-brightness = <0x401640>;
+                               qcom,mdss-dsi-panel-blackness-level = <0xc9e>;
+                               qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
+                               qcom,mdss-dsi-bllp-eof-power-mode;
+                               qcom,mdss-dsi-bllp-power-mode;
+                               qcom,mdss-dsi-lane-0-state;
+                               qcom,mdss-dsi-lane-1-state;
+                               qcom,mdss-dsi-lane-2-state;
+                               qcom,mdss-dsi-lane-3-state;
+                               qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                               qcom,mdss-dsi-mdp-trigger = "none";
+                               qcom,mdss-dsi-reset-sequence = <0x1 0xa 0x0 0xa 0x1 0xa>;
+                               qcom,mdss-pan-physical-width-dimension = <0x4a>;
+                               qcom,mdss-pan-physical-height-dimension = <0x83>;
+                               qcom,mdss-dsi-dma-schedule-line = <0x5>;
+                               qcom,mdss-dsi-t-clk-post = <0xb>;
+                               qcom,mdss-dsi-t-clk-pre = <0x23>;
+                               qcom,mdss-dsi-pan-enable-dynamic-fps;
+                               qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp";
+                               qcom,dsi-supported-dfps-list = <0x3c 0x37 0x35>;
+                               qcom,esd-check-enabled;
+                               qcom,mdss-dsi-panel-status-check-mode = "reg_read";
+                               qcom,mdss-dsi-panel-status-command = <0x6010001 0x10a>;
+                               qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
+                               qcom,mdss-dsi-panel-status-value = <0x9c>;
+                               qcom,mdss-dsi-panel-on-check-value = <0x9c>;
+                               qcom,mdss-dsi-panel-status-read-length = <0x1>;
+                               linux,phandle = <0x354>;
+                               phandle = <0x354>;
+
+                               qcom,mdss-dsi-display-timings {
+
+                                       timing@0 {
+                                               qcom,mdss-dsi-panel-width = <0x5a0>;
+                                               qcom,mdss-dsi-panel-height = <0xa00>;
+                                               qcom,mdss-dsi-h-front-porch = <0x64>;
+                                               qcom,mdss-dsi-h-back-porch = <0x20>;
+                                               qcom,mdss-dsi-h-pulse-width = <0x10>;
+                                               qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                               qcom,mdss-dsi-v-back-porch = <0x8>;
+                                               qcom,mdss-dsi-v-front-porch = <0xa>;
+                                               qcom,mdss-dsi-v-pulse-width = <0x2>;
+                                               qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                               qcom,mdss-dsi-on-command = <0x15010000 0x2ff 0x20150100 0x2 0xfb011501 0x0 0x2000115 0x1000000 0x20155 0x15010000 0x202 0x45150100 0x2 0x5401501 0x0 0x2061915 0x1000000 0x2071e 0x15010000 0x20b 0x73150100 0x2 0xc731501 0x0 0x20eb015 0x1000000 0x20fae 0x15010000 0x211 0xb8150100 0x2 0x13001501 0x0 0x2588015 0x1000000 0x25901 0x15010000 0x25a 0x150100 0x2 0x5b011501 0x0 0x25c8015 0x1000000 0x25d81 0x15010000 0x25e 0x150100 0x2 0x5f011501 0x0 0x2721115 0x1000000 0x26803 0x15010000 0x2ff 0x24150100 0x2 0xfb011501 0x0 0x2001c15 0x1000000 0x2010b 0x15010000 0x202 0xc150100 0x2 0x3011501 0x0 0x2040f15 0x1000000 0x20510 0x15010000 0x206 0x10150100 0x2 0x7101501 0x0 0x2088915 0x1000000 0x2098a 0x15010000 0x20a 0x13150100 0x2 0xb131501 0x0 0x20c1515 0x1000000 0x20d15 0x15010000 0x20e 0x17150100 0x2 0xf171501 0x0 0x2101c15 0x1000000 0x2110b 0x15010000 0x212 0xc150100 0x2 0x13011501 0x0 0x2140f15 0x1000000 0x21510 0x15010000 0x216 0x10150100 0x2 0x17101501 0x0 0x2188915 0x1000000 0x2198a 0x15010000 0x21a 0x13150100 0x2 0x1b131501 0x0 0x21c1515 0x1000000 0x21d15 0x15010000 0x21e 0x17150100 0x2 0x1f171501 0x0 0x2204015 0x1000000 0x22101 0x15010000 0x222 0x150100 0x2 0x23401501 0x0 0x2244015 0x1000000 0x2256d 0x15010000 0x226 0x40150100 0x2 0x27401501 0x0 0x2e00015 0x1000000 0x2dc21 0x15010000 0x2dd 0x22150100 0x2 0xde071501 0x0 0x2df0715 0x1000000 0x2e36d 0x15010000 0x2e1 0x7150100 0x2 0xe2071501 0x0 0x229d815 0x1000000 0x22a2a 0x15010000 0x24b 0x3150100 0x2 0x4c111501 0x0 0x24d1015 0x1000000 0x24e01 0x15010000 0x24f 0x1150100 0x2 0x50101501 0x0 0x2510015 0x1000000 0x25280 0x15010000 0x253 0x150100 0x2 0x56001501 0x0 0x2540715 0x1000000 0x25807 0x15010000 0x255 0x25150100 0x2 0x5b431501 0x0 0x25c0015 0x1000000 0x25f73 0x15010000 0x260 0x73150100 0x2 0x63221501 0x0 0x2640015 0x1000000 0x26708 0x15010000 0x268 0x4150100 0x2 0x72021501 0x0 0x27a8015 0x1000000 0x27b91 0x15010000 0x27c 0xd8150100 0x2 0x7d601501 0x0 0x27f1515 0x1000000 0x27515 0x15010000 0x2b3 0xc0150100 0x2 0xb4001501 0x0 0x2b50015 0x1000000 0x27800 0x15010000 0x279 0x150100 0x2 0x80001501 0x0 0x2830015 0x1000000 0x2930a 0x15010000 0x294 0xa150100 0x2 0x8a001501 0x0 0x29bff15 0x1000000 0x29db0 0x15010000 0x29f 0x63150100 0x2 0x98101501 0x0 0x2ec0015 0x1000000 0x2ff10 0x39010000 0x11c1 0x9200010 0x2000268 0x1bb000a 0x66704c5 0x39010000 0x3c2 0x10f01501 0x0 0x2c00339 0x1000000 0x43b03 0xa0a1501 0x0 0x2350015 0x1000000 0x2e501 0x15010000 0x2bb 0x3150100 0x2 0xfb010501 0x7800 0x2110005 0x1000078 0x22900>;
+                                               qcom,mdss-dsi-off-command = [05 01 00 00 78 00 02 28 00 05 01 00 00 78 00 02 10 00];
+                                               qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                               qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                               qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                                               qcom,compression-mode = "dsc";
+                                               qcom,mdss-dsc-slice-height = <0x10>;
+                                               qcom,mdss-dsc-slice-width = <0x2d0>;
+                                               qcom,mdss-dsc-slice-per-pkt = <0x2>;
+                                               qcom,mdss-dsc-bit-per-component = <0x8>;
+                                               qcom,mdss-dsc-bit-per-pixel = <0x8>;
+                                               qcom,mdss-dsc-block-prediction-enable;
+                                               qcom,mdss-dsi-panel-phy-timings = <0x150505 0x201f0504 0x3030400>;
+                                               qcom,display-topology = <0x1 0x1 0x1 0x2 0x2 0x1 0x2 0x1 0x1>;
+                                               qcom,default-topology-index = <0x1>;
+                                       };
+                               };
+                       };
+
+                       qcom,mdss_dsi_sharp_1080p_cmd {
+                               qcom,mdss-dsi-panel-name = "sharp 1080p cmd mode dsi panel";
+                               qcom,mdss-dsi-panel-controller = <0x2f>;
+                               qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
+                               qcom,mdss-dsi-panel-destination = "display_1";
+                               qcom,mdss-dsi-panel-clockrate = <0x32a9f880>;
+                               qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                               qcom,mdss-dsi-stream = <0x0>;
+                               qcom,mdss-dsi-bpp = <0x18>;
+                               qcom,mdss-dsi-underflow-color = <0xff>;
+                               qcom,mdss-dsi-border-color = <0x0>;
+                               qcom,mdss-dsi-reset-sequence = <0x1 0xa 0x0 0xa 0x1 0xa>;
+                               qcom,mdss-pan-physical-width-dimension = <0x40>;
+                               qcom,mdss-pan-physical-height-dimension = <0x75>;
+                               qcom,mdss-dsi-traffic-mode = "burst_mode";
+                               qcom,mdss-dsi-bllp-eof-power-mode;
+                               qcom,mdss-dsi-bllp-power-mode;
+                               qcom,mdss-dsi-lane-0-state;
+                               qcom,mdss-dsi-lane-1-state;
+                               qcom,mdss-dsi-lane-2-state;
+                               qcom,mdss-dsi-lane-3-state;
+                               qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                               qcom,mdss-dsi-mdp-trigger = "none";
+                               qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm";
+                               qcom,mdss-dsi-te-pin-select = <0x1>;
+                               qcom,mdss-dsi-wr-mem-start = <0x2c>;
+                               qcom,mdss-dsi-wr-mem-continue = <0x3c>;
+                               qcom,mdss-dsi-te-dcs-command = <0x1>;
+                               qcom,mdss-dsi-te-check-enable;
+                               qcom,mdss-dsi-te-using-te-pin;
+                               qcom,mdss-dsi-t-clk-post = <0xc>;
+                               qcom,mdss-dsi-t-clk-pre = <0x29>;
+                               qcom,esd-check-enabled;
+                               qcom,mdss-dsi-panel-status-check-mode = "reg_read";
+                               qcom,mdss-dsi-panel-status-command = <0x6010001 0x10a>;
+                               qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
+                               qcom,mdss-dsi-panel-status-value = <0x9c>;
+                               qcom,mdss-dsi-panel-on-check-value = <0x9c>;
+                               qcom,mdss-dsi-panel-status-read-length = <0x1>;
+                               linux,phandle = <0x34e>;
+                               phandle = <0x34e>;
+
+                               qcom,mdss-dsi-display-timings {
+
+                                       timing@0 {
+                                               qcom,mdss-dsi-panel-width = <0x438>;
+                                               qcom,mdss-dsi-panel-height = <0x780>;
+                                               qcom,mdss-dsi-h-front-porch = <0x0>;
+                                               qcom,mdss-dsi-h-back-porch = <0x0>;
+                                               qcom,mdss-dsi-h-pulse-width = <0x0>;
+                                               qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                               qcom,mdss-dsi-v-back-porch = <0x0>;
+                                               qcom,mdss-dsi-v-front-porch = <0x0>;
+                                               qcom,mdss-dsi-v-pulse-width = <0x0>;
+                                               qcom,mdss-dsi-h-left-border = <0x0>;
+                                               qcom,mdss-dsi-h-right-border = <0x0>;
+                                               qcom,mdss-dsi-v-top-border = <0x0>;
+                                               qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                               qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                               qcom,mdss-dsi-on-command = <0x15010000 0x2bb 0x10150100 0x2 0xb0030501 0x7800 0x1111501 0x0 0x251ff15 0x1000000 0x25324 0x15010000 0x2ff 0x23150100 0x2 0x8051501 0x0 0x2469015 0x1000000 0x2ff10 0x15010000 0x2ff 0xf0150100 0x2 0x92011501 0x0 0x2ff1015 0x1000000 0x23500 0x5010000 0x28000129>;
+                                               qcom,mdss-dsi-off-command = <0x5010000 0x10000128 0x5010000 0x40000110>;
+                                               qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                               qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                               qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                                               qcom,mdss-dsi-panel-phy-timings = <0x1e0808 0x24220808 0x5030400>;
+                                               qcom,mdss-dsi-panel-clockrate = <0x35a4e900>;
+                                               qcom,display-topology = <0x1 0x0 0x1>;
+                                               qcom,default-topology-index = <0x0>;
+                                       };
+                               };
+                       };
+
+                       qcom,mdss_dsi_r63417_truly_1080p_cmd {
+                               qcom,mdss-dsi-panel-name = "r63417 truly 1080p cmd mode dsi panel";
+                               qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
+                               qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                               qcom,mdss-dsi-stream = <0x0>;
+                               qcom,mdss-dsi-bpp = <0x18>;
+                               qcom,mdss-dsi-underflow-color = <0xff>;
+                               qcom,mdss-dsi-border-color = <0x0>;
+                               qcom,mdss-dsi-te-pin-select = <0x1>;
+                               qcom,mdss-dsi-te-dcs-command = <0x1>;
+                               qcom,mdss-dsi-te-check-enable;
+                               qcom,mdss-dsi-te-using-te-pin;
+                               qcom,mdss-dsi-traffic-mode = "burst_mode";
+                               qcom,mdss-dsi-bllp-eof-power-mode;
+                               qcom,mdss-dsi-bllp-power-mode;
+                               qcom,mdss-dsi-lane-0-state;
+                               qcom,mdss-dsi-lane-1-state;
+                               qcom,mdss-dsi-lane-2-state;
+                               qcom,mdss-dsi-lane-3-state;
+                               qcom,mdss-dsi-t-clk-post = <0xc>;
+                               qcom,mdss-dsi-t-clk-pre = <0x29>;
+                               qcom,mdss-dsi-tx-eot-append;
+                               qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                               qcom,mdss-dsi-bl-min-level = <0x1>;
+                               qcom,mdss-dsi-bl-max-level = <0xfff>;
+                               qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
+                               qcom,mdss-dsi-reset-sequence = <0x1 0xa 0x0 0xa 0x1 0xa>;
+                               qcom,mdss-dsi-post-init-delay = <0x1>;
+                               qcom,mdss-dsi-mdp-trigger = "none";
+                               qcom,esd-check-enabled;
+                               qcom,mdss-dsi-panel-status-check-mode = "reg_read";
+                               qcom,mdss-dsi-panel-status-command = <0x6010001 0x10a>;
+                               qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
+                               qcom,mdss-dsi-panel-status-value = <0x1c>;
+                               qcom,mdss-dsi-panel-on-check-value = <0x1c>;
+                               qcom,mdss-dsi-panel-status-read-length = <0x1>;
+
+                               qcom,mdss-dsi-display-timings {
+
+                                       timing@0 {
+                                               qcom,mdss-dsi-panel-width = <0x438>;
+                                               qcom,mdss-dsi-panel-height = <0x780>;
+                                               qcom,mdss-dsi-h-front-porch = <0x60>;
+                                               qcom,mdss-dsi-h-back-porch = <0x40>;
+                                               qcom,mdss-dsi-h-pulse-width = <0x10>;
+                                               qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                               qcom,mdss-dsi-v-back-porch = <0x10>;
+                                               qcom,mdss-dsi-v-front-porch = <0x4>;
+                                               qcom,mdss-dsi-v-pulse-width = <0x1>;
+                                               qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                                               qcom,mdss-dsi-h-left-border = <0x0>;
+                                               qcom,mdss-dsi-h-right-border = <0x0>;
+                                               qcom,mdss-dsi-v-top-border = <0x0>;
+                                               qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                               qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                               qcom,mdss-dsi-on-command = [23 01 00 00 00 00 02 d6 01 15 01 00 00 00 00 02 35 00 15 01 00 00 00 00 02 51 ff 15 01 00 00 00 00 02 53 2c 15 01 00 00 00 00 02 55 00 05 01 00 00 78 00 02 11 00 23 01 00 00 00 00 02 b0 04 29 01 00 00 00 00 07 b3 04 00 00 00 00 00 29 01 00 00 00 00 03 b6 3a d3 29 01 00 00 00 00 03 c0 00 00 29 01 00 00 00 00 23 c1 84 60 10 eb ff 6f ce ff ff 17 02 58 73 ae b1 20 c6 ff ff 1f f3 ff 5f 10 10 10 10 00 02 01 22 22 00 01 29 01 00 00 00 00 08 c2 31 f7 80 06 08 00 00 29 01 00 00 00 00 17 c4 70 00 00 00 00 04 00 00 00 0c 06 00 00 00 00 00 04 00 00 00 0c 06 29 01 00 00 00 00 29 c6 78 69 00 69 00 69 00 00 00 00 00 69 00 69 00 69 10 19 07 00 78 00 69 00 69 00 69 00 00 00 00 00 69 00 69 00 69 10 19 07 29 01 00 00 00 00 0a cb 31 fc 3f 8c 00 00 00 00 c0 23 01 00 00 00 00 02 cc 0b 29 01 00 00 00 00 0b d0 11 81 bb 1e 1e 4c 19 19 0c 00 29 01 00 00 00 00 1a d3 1b 33 bb bb b3 33 33 33 00 01 00 a0 d8 a0 0d 4e 4e 33 3b 22 72 07 3d bf 33 29 01 00 00 00 00 08 d5 06 00 00 01 51 01 32 29 01 00 00 00 00 1f c7 01 0a 11 18 26 33 3e 50 38 42 52 60 67 6e 77 01 0a 11 18 26 33 3e 50 38 42 52 60 67 6e 77 29 01 00 00 14 00 14 c8 01 00 00 00 00 fc 00 00 00 00 00 fc 00 00 00 00 00 fc 00 05 01 00 00 14 00 02 29 00];
+                                               qcom,mdss-dsi-off-command = [05 01 00 00 14 00 02 28 00 05 01 00 00 78 00 02 10 00];
+                                               qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                               qcom,mdss-dsi-off-command-state = "dsi_lp_mode";
+                                               qcom,mdss-dsi-panel-timings = <0xe6382600 0x686e2a3c 0x44030400>;
+                                               qcom,mdss-dsi-panel-phy-timings = <0x1e0808 0x24220808 0x5030400>;
+                                               qcom,mdss-dsi-panel-clockrate = <0x35a4e900>;
+                                               qcom,display-topology = <0x1 0x0 0x1>;
+                                               qcom,default-topology-index = <0x0>;
+                                       };
+                               };
+                       };
+
+                       qcom,mdss_dual_sharp_1080p_120hz_cmd {
+                               qcom,mdss-dsi-panel-name = "sharp 1080p 120hz dual dsi cmd mode panel";
+                               qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
+                               qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                               qcom,mdss-dsi-stream = <0x0>;
+                               qcom,mdss-dsi-bpp = <0x18>;
+                               qcom,mdss-dsi-underflow-color = <0xff>;
+                               qcom,mdss-dsi-border-color = <0x0>;
+                               qcom,mdss-dsi-reset-sequence = <0x1 0x14 0x0 0x1 0x1 0xa>;
+                               qcom,mdss-dsi-traffic-mode = "burst_mode";
+                               qcom,mdss-dsi-bllp-eof-power-mode;
+                               qcom,mdss-dsi-bllp-power-mode;
+                               qcom,cmd-sync-wait-broadcast;
+                               qcom,cmd-sync-wait-trigger;
+                               qcom,mdss-tear-check-frame-rate = <0x2ee0>;
+                               qcom,mdss-dsi-lane-0-state;
+                               qcom,mdss-dsi-lane-1-state;
+                               qcom,mdss-dsi-lane-2-state;
+                               qcom,mdss-dsi-lane-3-state;
+                               qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                               qcom,mdss-dsi-mdp-trigger = "none";
+                               qcom,mdss-dsi-te-pin-select = <0x1>;
+                               qcom,mdss-dsi-wr-mem-start = <0x2c>;
+                               qcom,mdss-dsi-wr-mem-continue = <0x3c>;
+                               qcom,mdss-dsi-te-dcs-command = <0x1>;
+                               qcom,mdss-dsi-te-check-enable;
+                               qcom,mdss-dsi-te-using-te-pin;
+                               qcom,mdss-dsi-t-clk-post = <0xf>;
+                               qcom,mdss-dsi-t-clk-pre = <0x36>;
+                               linux,phandle = <0x34f>;
+                               phandle = <0x34f>;
+
+                               qcom,mdss-dsi-display-timings {
+
+                                       timing@0 {
+                                               qcom,mdss-dsi-panel-width = <0x21c>;
+                                               qcom,mdss-dsi-panel-height = <0x780>;
+                                               qcom,mdss-dsi-h-front-porch = <0x1c>;
+                                               qcom,mdss-dsi-h-back-porch = <0x4>;
+                                               qcom,mdss-dsi-h-pulse-width = <0x4>;
+                                               qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                               qcom,mdss-dsi-v-back-porch = <0xc>;
+                                               qcom,mdss-dsi-v-front-porch = <0xc>;
+                                               qcom,mdss-dsi-v-pulse-width = <0x2>;
+                                               qcom,mdss-dsi-h-left-border = <0x0>;
+                                               qcom,mdss-dsi-h-right-border = <0x0>;
+                                               qcom,mdss-dsi-v-top-border = <0x0>;
+                                               qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                               qcom,mdss-dsi-panel-framerate = <0x78>;
+                                               qcom,mdss-dsi-on-command = [15 01 00 00 00 00 02 ff 10 15 01 00 00 00 00 02 fb 01 15 01 00 00 00 00 02 ba 07 15 01 00 00 00 00 02 c0 00 15 01 00 00 00 00 02 bb 10 15 01 00 00 00 00 02 d9 00 15 01 00 00 00 00 02 ef 70 15 01 00 00 00 00 02 f7 80 39 01 00 00 00 00 06 3b 03 0e 0c 08 1c 15 01 00 00 00 00 02 e9 0e 15 01 00 00 00 00 02 ea 0c 15 01 00 00 00 00 02 35 00 15 01 00 00 00 00 02 c0 00 15 01 00 00 00 00 02 ff 20 15 01 00 00 00 00 02 fb 01 15 01 00 00 00 00 02 59 6a 15 01 00 00 00 00 02 0b 1b 15 01 00 00 00 00 02 61 f7 15 01 00 00 00 00 02 62 6c 15 01 00 00 00 00 02 00 01 15 01 00 00 00 00 02 01 55 15 01 00 00 00 00 02 04 c8 15 01 00 00 00 00 02 05 1a 15 01 00 00 00 00 02 0d 93 15 01 00 00 00 00 02 0e 93 15 01 00 00 00 00 02 0f 7e 15 01 00 00 00 00 02 06 69 15 01 00 00 00 00 02 07 bc 15 01 00 00 00 00 02 10 03 15 01 00 00 00 00 02 11 64 15 01 00 00 00 00 02 12 5a 15 01 00 00 00 00 02 13 40 15 01 00 00 00 00 02 14 40 15 01 00 00 00 00 02 15 00 15 01 00 00 00 00 02 33 13 15 01 00 00 00 00 02 5a 40 15 01 00 00 00 00 02 5b 40 15 01 00 00 00 00 02 5e 80 15 01 00 00 00 00 02 ff 24 15 01 00 00 00 00 02 fb 01 15 01 00 00 00 00 02 00 80 15 01 00 00 00 00 02 14 80 15 01 00 00 00 00 02 01 80 15 01 00 00 00 00 02 15 80 15 01 00 00 00 00 02 02 80 15 01 00 00 00 00 02 16 80 15 01 00 00 00 00 02 03 0a 15 01 00 00 00 00 02 17 0c 15 01 00 00 00 00 02 04 06 15 01 00 00 00 00 02 18 08 15 01 00 00 00 00 02 05 80 15 01 00 00 00 00 02 19 80 15 01 00 00 00 00 02 06 80 15 01 00 00 00 00 02 1a 80 15 01 00 00 00 00 02 07 80 15 01 00 00 00 00 02 1b 80 15 01 00 00 00 00 02 08 80 15 01 00 00 00 00 02 1c 80 15 01 00 00 00 00 02 09 80 15 01 00 00 00 00 02 1d 80 15 01 00 00 00 00 02 0a 80 15 01 00 00 00 00 02 1e 80 15 01 00 00 00 00 02 0b 1a 15 01 00 00 00 00 02 1f 1b 15 01 00 00 00 00 02 0c 16 15 01 00 00 00 00 02 20 17 15 01 00 00 00 00 02 0d 1c 15 01 00 00 00 00 02 21 1d 15 01 00 00 00 00 02 0e 18 15 01 00 00 00 00 02 22 19 15 01 00 00 00 00 02 0f 0e 15 01 00 00 00 00 02 23 10 15 01 00 00 00 00 02 10 80 15 01 00 00 00 00 02 24 80 15 01 00 00 00 00 02 11 80 15 01 00 00 00 00 02 25 80 15 01 00 00 00 00 02 12 80 15 01 00 00 00 00 02 26 80 15 01 00 00 00 00 02 13 80 15 01 00 00 00 00 02 27 80 15 01 00 00 00 00 02 74 ff 15 01 00 00 00 00 02 75 ff 15 01 00 00 00 00 02 8d 00 15 01 00 00 00 00 02 8e 00 15 01 00 00 00 00 02 8f 9c 15 01 00 00 00 00 02 90 0c 15 01 00 00 00 00 02 91 0e 15 01 00 00 00 00 02 d6 00 15 01 00 00 00 00 02 d7 20 15 01 00 00 00 00 02 d8 00 15 01 00 00 00 00 02 d9 88 15 01 00 00 00 00 02 e5 05 15 01 00 00 00 00 02 e6 10 15 01 00 00 00 00 02 54 06 15 01 00 00 00 00 02 55 05 15 01 00 00 00 00 02 56 04 15 01 00 00 00 00 02 58 03 15 01 00 00 00 00 02 59 33 15 01 00 00 00 00 02 5a 33 15 01 00 00 00 00 02 5b 01 15 01 00 00 00 00 02 5c 00 15 01 00 00 00 00 02 5d 01 15 01 00 00 00 00 02 5e 0a 15 01 00 00 00 00 02 5f 0a 15 01 00 00 00 00 02 60 0a 15 01 00 00 00 00 02 61 0a 15 01 00 00 00 00 02 62 10 15 01 00 00 00 00 02 63 01 15 01 00 00 00 00 02 64 00 15 01 00 00 00 00 02 65 00 15 01 00 00 00 00 02 ef 00 15 01 00 00 00 00 02 f0 00 15 01 00 00 00 00 02 6d 20 15 01 00 00 00 00 02 66 44 15 01 00 00 00 00 02 68 01 15 01 00 00 00 00 02 69 00 15 01 00 00 00 00 02 67 11 15 01 00 00 00 00 02 6a 06 15 01 00 00 00 00 02 6b 31 15 01 00 00 00 00 02 6c 90 15 01 00 00 00 00 02 ab c3 15 01 00 00 00 00 02 b1 49 15 01 00 00 00 00 02 aa 80 15 01 00 00 00 00 02 b0 90 15 01 00 00 00 00 02 b2 a4 15 01 00 00 00 00 02 b3 00 15 01 00 00 00 00 02 b4 23 15 01 00 00 00 00 02 b5 00 15 01 00 00 00 00 02 b6 00 15 01 00 00 00 00 02 b7 00 15 01 00 00 00 00 02 b8 00 15 01 00 00 00 00 02 b9 00 15 01 00 00 00 00 02 ba 00 15 01 00 00 00 00 02 bb 00 15 01 00 00 00 00 02 bc 00 15 01 00 00 00 00 02 bd 00 15 01 00 00 00 00 02 be 00 15 01 00 00 00 00 02 bf 00 15 01 00 00 00 00 02 c0 00 15 01 00 00 00 00 02 c7 40 15 01 00 00 00 00 02 c9 00 15 01 00 00 00 00 02 c1 2a 15 01 00 00 00 00 02 c2 2a 15 01 00 00 00 00 02 c3 00 15 01 00 00 00 00 02 c4 00 15 01 00 00 00 00 02 c5 00 15 01 00 00 00 00 02 c6 00 15 01 00 00 00 00 02 c8 ab 15 01 00 00 00 00 02 ca 00 15 01 00 00 00 00 02 cb 00 15 01 00 00 00 00 02 cc 20 15 01 00 00 00 00 02 cd 40 15 01 00 00 00 00 02 ce a8 15 01 00 00 00 00 02 cf a8 15 01 00 00 00 00 02 d0 00 15 01 00 00 00 00 02 d1 00 15 01 00 00 00 00 02 d2 00 15 01 00 00 00 00 02 d3 00 15 01 00 00 00 00 02 af 01 15 01 00 00 00 00 02 a4 1e 15 01 00 00 00 00 02 95 41 15 01 00 00 00 00 02 96 03 15 01 00 00 00 00 02 98 00 15 01 00 00 00 00 02 9a 9a 15 01 00 00 00 00 02 9b 03 15 01 00 00 00 00 02 9d 80 15 01 00 00 00 00 02 ff 26 15 01 00 00 00 00 02 fb 01 15 01 00 00 00 00 02 fa d0 15 01 00 00 00 00 02 6b 80 15 01 00 00 00 00 02 6c 5c 15 01 00 00 00 00 02 6d 0c 15 01 00 00 00 00 02 6e 0e 15 01 00 00 00 00 02 58 01 15 01 00 00 00 00 02 59 15 15 01 00 00 00 00 02 5a 01 15 01 00 00 00 00 02 5b 00 15 01 00 00 00 00 02 5c 01 15 01 00 00 00 00 02 5d 2b 15 01 00 00 00 00 02 74 00 15 01 00 00 00 00 02 75 ba 15 01 00 00 00 00 02 81 0a 15 01 00 00 00 00 02 4e 81 15 01 00 00 00 00 02 4f 83 15 01 00 00 00 00 02 51 00 15 01 00 00 00 00 02 53 4d 15 01 00 00 00 00 02 54 03 15 01 00 00 00 00 02 ff e0 15 01 00 00 00 00 02 fb 01 15 01 00 00 00 00 02 b2 81 15 01 00 00 00 00 02 62 28 15 01 00 00 00 00 02 a2 09 15 01 00 00 00 00 02 b3 01 15 01 00 00 00 00 02 ed 00 15 01 00 00 00 00 02 ff 10 05 01 00 00 78 00 01 11 15 01 00 00 00 00 02 ff 20 15 01 00 00 00 00 02 75 00 15 01 00 00 00 00 02 76 71 15 01 00 00 00 00 02 77 00 15 01 00 00 00 00 02 78 84 15 01 00 00 00 00 02 79 00 15 01 00 00 00 00 02 7a a5 15 01 00 00 00 00 02 7b 00 15 01 00 00 00 00 02 7c bb 15 01 00 00 00 00 02 7d 00 15 01 00 00 00 00 02 7e ce 15 01 00 00 00 00 02 7f 00 15 01 00 00 00 00 02 80 e0 15 01 00 00 00 00 02 81 00 15 01 00 00 00 00 02 82 ef 15 01 00 00 00 00 02 83 00 15 01 00 00 00 00 02 84 ff 15 01 00 00 00 00 02 85 01 15 01 00 00 00 00 02 86 0b 15 01 00 00 00 00 02 87 01 15 01 00 00 00 00 02 88 38 15 01 00 00 00 00 02 89 01 15 01 00 00 00 00 02 8a 5b 15 01 00 00 00 00 02 8b 01 15 01 00 00 00 00 02 8c 95 15 01 00 00 00 00 02 8d 01 15 01 00 00 00 00 02 8e c4 15 01 00 00 00 00 02 8f 02 15 01 00 00 00 00 02 90 0d 15 01 00 00 00 00 02 91 02 15 01 00 00 00 00 02 92 4a 15 01 00 00 00 00 02 93 02 15 01 00 00 00 00 02 94 4c 15 01 00 00 00 00 02 95 02 15 01 00 00 00 00 02 96 85 15 01 00 00 00 00 02 97 02 15 01 00 00 00 00 02 98 c3 15 01 00 00 00 00 02 99 02 15 01 00 00 00 00 02 9a e9 15 01 00 00 00 00 02 9b 03 15 01 00 00 00 00 02 9c 16 15 01 00 00 00 00 02 9d 03 15 01 00 00 00 00 02 9e 34 15 01 00 00 00 00 02 9f 03 15 01 00 00 00 00 02 a0 56 15 01 00 00 00 00 02 a2 03 15 01 00 00 00 00 02 a3 62 15 01 00 00 00 00 02 a4 03 15 01 00 00 00 00 02 a5 6c 15 01 00 00 00 00 02 a6 03 15 01 00 00 00 00 02 a7 74 15 01 00 00 00 00 02 a9 03 15 01 00 00 00 00 02 aa 80 15 01 00 00 00 00 02 ab 03 15 01 00 00 00 00 02 ac 89 15 01 00 00 00 00 02 ad 03 15 01 00 00 00 00 02 ae 8b 15 01 00 00 00 00 02 af 03 15 01 00 00 00 00 02 b0 8d 15 01 00 00 00 00 02 b1 03 15 01 00 00 00 00 02 b2 8e 15 01 00 00 00 00 02 b3 00 15 01 00 00 00 00 02 b4 71 15 01 00 00 00 00 02 b5 00 15 01 00 00 00 00 02 b6 84 15 01 00 00 00 00 02 b7 00 15 01 00 00 00 00 02 b8 a5 15 01 00 00 00 00 02 b9 00 15 01 00 00 00 00 02 ba bb 15 01 00 00 00 00 02 bb 00 15 01 00 00 00 00 02 bc ce 15 01 00 00 00 00 02 bd 00 15 01 00 00 00 00 02 be e0 15 01 00 00 00 00 02 bf 00 15 01 00 00 00 00 02 c0 ef 15 01 00 00 00 00 02 c1 00 15 01 00 00 00 00 02 c2 ff 15 01 00 00 00 00 02 c3 01 15 01 00 00 00 00 02 c4 0b 15 01 00 00 00 00 02 c5 01 15 01 00 00 00 00 02 c6 38 15 01 00 00 00 00 02 c7 01 15 01 00 00 00 00 02 c8 5b 15 01 00 00 00 00 02 c9 01 15 01 00 00 00 00 02 ca 95 15 01 00 00 00 00 02 cb 01 15 01 00 00 00 00 02 cc c4 15 01 00 00 00 00 02 cd 02 15 01 00 00 00 00 02 ce 0d 15 01 00 00 00 00 02 cf 02 15 01 00 00 00 00 02 d0 4a 15 01 00 00 00 00 02 d1 02 15 01 00 00 00 00 02 d2 4c 15 01 00 00 00 00 02 d3 02 15 01 00 00 00 00 02 d4 85 15 01 00 00 00 00 02 d5 02 15 01 00 00 00 00 02 d6 c3 15 01 00 00 00 00 02 d7 02 15 01 00 00 00 00 02 d8 e9 15 01 00 00 00 00 02 d9 03 15 01 00 00 00 00 02 da 16 15 01 00 00 00 00 02 db 03 15 01 00 00 00 00 02 dc 34 15 01 00 00 00 00 02 dd 03 15 01 00 00 00 00 02 de 56 15 01 00 00 00 00 02 df 03 15 01 00 00 00 00 02 e0 62 15 01 00 00 00 00 02 e1 03 15 01 00 00 00 00 02 e2 6c 15 01 00 00 00 00 02 e3 03 15 01 00 00 00 00 02 e4 74 15 01 00 00 00 00 02 e5 03 15 01 00 00 00 00 02 e6 80 15 01 00 00 00 00 02 e7 03 15 01 00 00 00 00 02 e8 89 15 01 00 00 00 00 02 e9 03 15 01 00 00 00 00 02 ea 8b 15 01 00 00 00 00 02 eb 03 15 01 00 00 00 00 02 ec 8d 15 01 00 00 00 00 02 ed 03 15 01 00 00 00 00 02 ee 8e 15 01 00 00 00 00 02 ef 00 15 01 00 00 00 00 02 f0 71 15 01 00 00 00 00 02 f1 00 15 01 00 00 00 00 02 f2 84 15 01 00 00 00 00 02 f3 00 15 01 00 00 00 00 02 f4 a5 15 01 00 00 00 00 02 f5 00 15 01 00 00 00 00 02 f6 bb 15 01 00 00 00 00 02 f7 00 15 01 00 00 00 00 02 f8 ce 15 01 00 00 00 00 02 f9 00 15 01 00 00 00 00 02 fa e0 15 01 00 00 00 00 02 ff 21 15 01 00 00 00 00 02 fb 01 15 01 00 00 00 00 02 00 00 15 01 00 00 00 00 02 01 ef 15 01 00 00 00 00 02 02 00 15 01 00 00 00 00 02 03 ff 15 01 00 00 00 00 02 04 01 15 01 00 00 00 00 02 05 0b 15 01 00 00 00 00 02 06 01 15 01 00 00 00 00 02 07 38 15 01 00 00 00 00 02 08 01 15 01 00 00 00 00 02 09 5b 15 01 00 00 00 00 02 0a 01 15 01 00 00 00 00 02 0b 95 15 01 00 00 00 00 02 0c 01 15 01 00 00 00 00 02 0d c4 15 01 00 00 00 00 02 0e 02 15 01 00 00 00 00 02 0f 0d 15 01 00 00 00 00 02 10 02 15 01 00 00 00 00 02 11 4a 15 01 00 00 00 00 02 12 02 15 01 00 00 00 00 02 13 4c 15 01 00 00 00 00 02 14 02 15 01 00 00 00 00 02 15 85 15 01 00 00 00 00 02 16 02 15 01 00 00 00 00 02 17 c3 15 01 00 00 00 00 02 18 02 15 01 00 00 00 00 02 19 e9 15 01 00 00 00 00 02 1a 03 15 01 00 00 00 00 02 1b 16 15 01 00 00 00 00 02 1c 03 15 01 00 00 00 00 02 1d 34 15 01 00 00 00 00 02 1e 03 15 01 00 00 00 00 02 1f 56 15 01 00 00 00 00 02 20 03 15 01 00 00 00 00 02 21 62 15 01 00 00 00 00 02 22 03 15 01 00 00 00 00 02 23 6c 15 01 00 00 00 00 02 24 03 15 01 00 00 00 00 02 25 74 15 01 00 00 00 00 02 26 03 15 01 00 00 00 00 02 27 80 15 01 00 00 00 00 02 28 03 15 01 00 00 00 00 02 29 89 15 01 00 00 00 00 02 2a 03 15 01 00 00 00 00 02 2b 8b 15 01 00 00 00 00 02 2d 03 15 01 00 00 00 00 02 2f 8d 15 01 00 00 00 00 02 30 03 15 01 00 00 00 00 02 31 8e 15 01 00 00 00 00 02 32 00 15 01 00 00 00 00 02 33 71 15 01 00 00 00 00 02 34 00 15 01 00 00 00 00 02 35 84 15 01 00 00 00 00 02 36 00 15 01 00 00 00 00 02 37 a5 15 01 00 00 00 00 02 38 00 15 01 00 00 00 00 02 39 bb 15 01 00 00 00 00 02 3a 00 15 01 00 00 00 00 02 3b ce 15 01 00 00 00 00 02 3d 00 15 01 00 00 00 00 02 3f e0 15 01 00 00 00 00 02 40 00 15 01 00 00 00 00 02 41 ef 15 01 00 00 00 00 02 42 00 15 01 00 00 00 00 02 43 ff 15 01 00 00 00 00 02 44 01 15 01 00 00 00 00 02 45 0b 15 01 00 00 00 00 02 46 01 15 01 00 00 00 00 02 47 38 15 01 00 00 00 00 02 48 01 15 01 00 00 00 00 02 49 5b 15 01 00 00 00 00 02 4a 01 15 01 00 00 00 00 02 4b 95 15 01 00 00 00 00 02 4c 01 15 01 00 00 00 00 02 4d c4 15 01 00 00 00 00 02 4e 02 15 01 00 00 00 00 02 4f 0d 15 01 00 00 00 00 02 50 02 15 01 00 00 00 00 02 51 4a 15 01 00 00 00 00 02 52 02 15 01 00 00 00 00 02 53 4c 15 01 00 00 00 00 02 54 02 15 01 00 00 00 00 02 55 85 15 01 00 00 00 00 02 56 02 15 01 00 00 00 00 02 58 c3 15 01 00 00 00 00 02 59 02 15 01 00 00 00 00 02 5a e9 15 01 00 00 00 00 02 5b 03 15 01 00 00 00 00 02 5c 16 15 01 00 00 00 00 02 5d 03 15 01 00 00 00 00 02 5e 34 15 01 00 00 00 00 02 5f 03 15 01 00 00 00 00 02 60 56 15 01 00 00 00 00 02 61 03 15 01 00 00 00 00 02 62 62 15 01 00 00 00 00 02 63 03 15 01 00 00 00 00 02 64 6c 15 01 00 00 00 00 02 65 03 15 01 00 00 00 00 02 66 74 15 01 00 00 00 00 02 67 03 15 01 00 00 00 00 02 68 80 15 01 00 00 00 00 02 69 03 15 01 00 00 00 00 02 6a 89 15 01 00 00 00 00 02 6b 03 15 01 00 00 00 00 02 6c 8b 15 01 00 00 00 00 02 6d 03 15 01 00 00 00 00 02 6e 8d 15 01 00 00 00 00 02 6f 03 15 01 00 00 00 00 02 70 8e 15 01 00 00 00 00 02 71 00 15 01 00 00 00 00 02 72 71 15 01 00 00 00 00 02 73 00 15 01 00 00 00 00 02 74 84 15 01 00 00 00 00 02 75 00 15 01 00 00 00 00 02 76 a5 15 01 00 00 00 00 02 77 00 15 01 00 00 00 00 02 78 bb 15 01 00 00 00 00 02 79 00 15 01 00 00 00 00 02 7a ce 15 01 00 00 00 00 02 7b 00 15 01 00 00 00 00 02 7c e0 15 01 00 00 00 00 02 7d 00 15 01 00 00 00 00 02 7e ef 15 01 00 00 00 00 02 7f 00 15 01 00 00 00 00 02 80 ff 15 01 00 00 00 00 02 81 01 15 01 00 00 00 00 02 82 0b 15 01 00 00 00 00 02 83 01 15 01 00 00 00 00 02 84 38 15 01 00 00 00 00 02 85 01 15 01 00 00 00 00 02 86 5b 15 01 00 00 00 00 02 87 01 15 01 00 00 00 00 02 88 95 15 01 00 00 00 00 02 89 01 15 01 00 00 00 00 02 8a c4 15 01 00 00 00 00 02 8b 02 15 01 00 00 00 00 02 8c 0d 15 01 00 00 00 00 02 8d 02 15 01 00 00 00 00 02 8e 4a 15 01 00 00 00 00 02 8f 02 15 01 00 00 00 00 02 90 4c 15 01 00 00 00 00 02 91 02 15 01 00 00 00 00 02 92 85 15 01 00 00 00 00 02 93 02 15 01 00 00 00 00 02 94 c3 15 01 00 00 00 00 02 95 02 15 01 00 00 00 00 02 96 e9 15 01 00 00 00 00 02 97 03 15 01 00 00 00 00 02 98 16 15 01 00 00 00 00 02 99 03 15 01 00 00 00 00 02 9a 34 15 01 00 00 00 00 02 9b 03 15 01 00 00 00 00 02 9c 56 15 01 00 00 00 00 02 9d 03 15 01 00 00 00 00 02 9e 62 15 01 00 00 00 00 02 9f 03 15 01 00 00 00 00 02 a0 6c 15 01 00 00 00 00 02 a2 03 15 01 00 00 00 00 02 a3 74 15 01 00 00 00 00 02 a4 03 15 01 00 00 00 00 02 a5 80 15 01 00 00 00 00 02 a6 03 15 01 00 00 00 00 02 a7 89 15 01 00 00 00 00 02 a9 03 15 01 00 00 00 00 02 aa 8b 15 01 00 00 00 00 02 ab 03 15 01 00 00 00 00 02 ac 8d 15 01 00 00 00 00 02 ad 03 15 01 00 00 00 00 02 ae 8e 15 01 00 00 00 00 02 af 00 15 01 00 00 00 00 02 b0 71 15 01 00 00 00 00 02 b1 00 15 01 00 00 00 00 02 b2 84 15 01 00 00 00 00 02 b3 00 15 01 00 00 00 00 02 b4 a5 15 01 00 00 00 00 02 b5 00 15 01 00 00 00 00 02 b6 bb 15 01 00 00 00 00 02 b7 00 15 01 00 00 00 00 02 b8 ce 15 01 00 00 00 00 02 b9 00 15 01 00 00 00 00 02 ba e0 15 01 00 00 00 00 02 bb 00 15 01 00 00 00 00 02 bc ef 15 01 00 00 00 00 02 bd 00 15 01 00 00 00 00 02 be ff 15 01 00 00 00 00 02 bf 01 15 01 00 00 00 00 02 c0 0b 15 01 00 00 00 00 02 c1 01 15 01 00 00 00 00 02 c2 38 15 01 00 00 00 00 02 c3 01 15 01 00 00 00 00 02 c4 5b 15 01 00 00 00 00 02 c5 01 15 01 00 00 00 00 02 c6 95 15 01 00 00 00 00 02 c7 01 15 01 00 00 00 00 02 c8 c4 15 01 00 00 00 00 02 c9 02 15 01 00 00 00 00 02 ca 0d 15 01 00 00 00 00 02 cb 02 15 01 00 00 00 00 02 cc 4a 15 01 00 00 00 00 02 cd 02 15 01 00 00 00 00 02 ce 4c 15 01 00 00 00 00 02 cf 02 15 01 00 00 00 00 02 d0 85 15 01 00 00 00 00 02 d1 02 15 01 00 00 00 00 02 d2 c3 15 01 00 00 00 00 02 d3 02 15 01 00 00 00 00 02 d4 e9 15 01 00 00 00 00 02 d5 03 15 01 00 00 00 00 02 d6 16 15 01 00 00 00 00 02 d7 03 15 01 00 00 00 00 02 d8 34 15 01 00 00 00 00 02 d9 03 15 01 00 00 00 00 02 da 56 15 01 00 00 00 00 02 db 03 15 01 00 00 00 00 02 dc 62 15 01 00 00 00 00 02 dd 03 15 01 00 00 00 00 02 de 6c 15 01 00 00 00 00 02 df 03 15 01 00 00 00 00 02 e0 74 15 01 00 00 00 00 02 e1 03 15 01 00 00 00 00 02 e2 80 15 01 00 00 00 00 02 e3 03 15 01 00 00 00 00 02 e4 89 15 01 00 00 00 00 02 e5 03 15 01 00 00 00 00 02 e6 8b 15 01 00 00 00 00 02 e7 03 15 01 00 00 00 00 02 e8 8d 15 01 00 00 00 00 02 e9 03 15 01 00 00 00 00 02 ea 8e 15 01 00 00 00 00 02 ff 10 05 01 00 00 00 00 01 29];
+                                               qcom,mdss-dsi-off-command = [15 01 00 00 00 00 02 ff 10 05 01 00 00 10 00 01 28 15 01 00 00 00 00 02 b0 00 05 01 00 00 40 00 01 10 15 01 00 00 00 00 02 4f 01];
+                                               qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                               qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                               qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                                               qcom,mdss-dsi-panel-phy-timings = <0x240909 0x26240909 0x6030400>;
+                                               qcom,display-topology = <0x2 0x0 0x2 0x1 0x0 0x2>;
+                                               qcom,default-topology-index = <0x0>;
+                                       };
+                               };
+                       };
+
+                       qcom,mdss_dsi_s6e3ha3_amoled_wqhd_cmd {
+                               qcom,mdss-dsi-panel-name = "Dual s6e3ha3 amoled cmd mode dsi panel";
+                               qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
+                               qcom,mdss-dsi-panel-framerate = <0x3c>;
+                               qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                               qcom,mdss-dsi-stream = <0x0>;
+                               qcom,mdss-dsi-panel-width = <0x2d0>;
+                               qcom,mdss-dsi-panel-height = <0xa00>;
+                               qcom,mdss-dsi-h-front-porch = <0x64>;
+                               qcom,mdss-dsi-h-back-porch = <0x64>;
+                               qcom,mdss-dsi-h-pulse-width = <0x28>;
+                               qcom,mdss-dsi-h-sync-skew = <0x0>;
+                               qcom,mdss-dsi-v-back-porch = <0x1f>;
+                               qcom,mdss-dsi-v-front-porch = <0x1e>;
+                               qcom,mdss-dsi-v-pulse-width = <0x8>;
+                               qcom,mdss-dsi-h-left-border = <0x0>;
+                               qcom,mdss-dsi-h-right-border = <0x0>;
+                               qcom,mdss-dsi-v-top-border = <0x0>;
+                               qcom,mdss-dsi-v-bottom-border = <0x0>;
+                               qcom,mdss-dsi-bpp = <0x18>;
+                               qcom,mdss-dsi-underflow-color = <0xff>;
+                               qcom,mdss-dsi-border-color = <0x0>;
+                               qcom,mdss-dsi-color-order = "rgb_swap_rgb";
+                               qcom,mdss-dsi-on-command = [05 01 00 00 05 00 02 11 00 39 01 00 00 00 00 05 2a 00 00 05 9f 39 01 00 00 00 00 05 2b 00 00 09 ff 39 01 00 00 00 00 03 f0 5a 5a 39 01 00 00 00 00 02 b0 10 39 01 00 00 00 00 02 b5 a0 39 01 00 00 00 00 02 c4 03 39 01 00 00 00 00 0a f6 42 57 37 00 aa cc d0 00 00 39 01 00 00 00 00 02 f9 03 39 01 00 00 00 00 14 c2 00 00 d8 d8 00 80 2b 05 08 0e 07 0b 05 0d 0a 15 13 20 1e 39 01 00 00 78 00 03 f0 a5 a5 39 01 00 00 00 00 02 35 00 39 01 00 00 00 00 02 53 20 39 01 00 00 00 00 02 51 60 05 01 00 00 05 00 02 29 00];
+                               qcom,mdss-dsi-off-command = [05 01 00 00 3c 00 02 28 00 05 01 00 00 b4 00 02 10 00];
+                               qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                               qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                               qcom,mdss-dsi-lp-mode-on = [39 00 00 00 05 00 03 f0 5a 5a 39 00 00 00 05 00 03 f1 5a 5a 39 00 00 00 05 00 03 fc 5a 5a 39 00 00 00 05 00 02 b0 17 39 00 00 00 05 00 02 cb 10 39 00 00 00 05 00 02 b0 2d 39 00 00 00 05 00 02 cb cd 39 00 00 00 05 00 02 b0 0e 39 00 00 00 05 00 02 cb 02 39 00 00 00 05 00 02 b0 0f 39 00 00 00 05 00 02 cb 09 39 00 00 00 05 00 02 b0 02 39 00 00 00 05 00 02 f2 c9 39 00 00 00 05 00 02 b0 03 39 00 00 00 05 00 02 f2 c0 39 00 00 00 05 00 02 b0 03 39 00 00 00 05 00 02 f4 aa 39 00 00 00 05 00 02 b0 08 39 00 00 00 05 00 02 b1 30 39 00 00 00 05 00 02 b0 09 39 00 00 00 05 00 02 b1 0a 39 00 00 00 05 00 02 b0 0d 39 00 00 00 05 00 02 b1 10 39 00 00 00 05 00 02 b0 00 39 00 00 00 05 00 02 f7 03 39 00 00 00 05 00 02 fe 30 39 01 00 00 05 00 02 fe b0];
+                               qcom,mdss-dsi-lp-mode-off = [39 00 00 00 05 00 03 f0 5a 5a 39 00 00 00 05 00 03 f1 5a 5a 39 00 00 00 05 00 03 fc 5a 5a 39 00 00 00 05 00 02 b0 2d 39 00 00 00 05 00 02 cb 4d 39 00 00 00 05 00 02 b0 17 39 00 00 00 05 00 02 cb 04 39 00 00 00 05 00 02 b0 0e 39 00 00 00 05 00 02 cb 06 39 00 00 00 05 00 02 b0 0f 39 00 00 00 05 00 02 cb 05 39 00 00 00 05 00 02 b0 02 39 00 00 00 05 00 02 f2 b8 39 00 00 00 05 00 02 b0 03 39 00 00 00 05 00 02 f2 80 39 00 00 00 05 00 02 b0 03 39 00 00 00 05 00 02 f4 8a 39 00 00 00 05 00 02 b0 08 39 00 00 00 05 00 02 b1 10 39 00 00 00 05 00 02 b0 09 39 00 00 00 05 00 02 b1 0a 39 00 00 00 05 00 02 b0 0d 39 00 00 00 05 00 02 b1 80 39 00 00 00 05 00 02 b0 00 39 00 00 00 05 00 02 f7 03 39 00 00 00 05 00 02 fe 30 39 01 00 00 05 00 02 fe b0];
+                               qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                               qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
+                               qcom,mdss-dsi-lane-map = "lane_map_0123";
+                               qcom,mdss-dsi-bllp-eof-power-mode;
+                               qcom,mdss-dsi-bllp-power-mode;
+                               qcom,mdss-dsi-tx-eot-append;
+                               qcom,dcs-cmd-by-left;
+                               qcom,mdss-dsi-lane-0-state;
+                               qcom,mdss-dsi-lane-1-state;
+                               qcom,mdss-dsi-lane-2-state;
+                               qcom,mdss-dsi-lane-3-state;
+                               qcom,mdss-dsi-wr-mem-start = <0x2c>;
+                               qcom,mdss-dsi-wr-mem-continue = <0x3c>;
+                               qcom,mdss-dsi-te-pin-select = <0x1>;
+                               qcom,mdss-dsi-te-dcs-command = <0x1>;
+                               qcom,mdss-dsi-te-check-enable;
+                               qcom,mdss-dsi-te-using-te-pin;
+                               qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                               qcom,mdss-dsi-mdp-trigger = "none";
+                               qcom,mdss-dsi-lp11-init;
+                               qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
+                               qcom,mdss-dsi-bl-min-level = <0x1>;
+                               qcom,mdss-dsi-bl-max-level = <0xff>;
+                               qcom,mdss-pan-physical-width-dimension = <0x44>;
+                               qcom,mdss-pan-physical-height-dimension = <0x7a>;
+                               qcom,mdss-dsi-reset-sequence = <0x1 0xa 0x0 0xa 0x1 0xa>;
+                       };
+
+                       qcom,mdss_dsi_nt35597_wqxga_video {
+                               qcom,mdss-dsi-panel-name = "Dual nt35597 video mode dsi panel without DSC";
+                               qcom,mdss-dsi-panel-type = "dsi_video_mode";
+                               qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                               qcom,mdss-dsi-stream = <0x0>;
+                               qcom,mdss-dsi-bpp = <0x18>;
+                               qcom,mdss-dsi-underflow-color = <0x3ff>;
+                               qcom,mdss-dsi-border-color = <0x0>;
+                               qcom,mdss-dsi-panel-hdr-enabled;
+                               qcom,mdss-dsi-panel-hdr-color-primaries = <0x38a4 0x3c8c 0x7d00 0x4268 0x3c8c 0x7530 0x1f40 0xbb8>;
+                               qcom,mdss-dsi-panel-peak-brightness = <0x401640>;
+                               qcom,mdss-dsi-panel-blackness-level = <0xc9e>;
+                               qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
+                               qcom,mdss-dsi-bllp-eof-power-mode;
+                               qcom,mdss-dsi-bllp-power-mode;
+                               qcom,mdss-dsi-lane-0-state;
+                               qcom,mdss-dsi-lane-1-state;
+                               qcom,mdss-dsi-lane-2-state;
+                               qcom,mdss-dsi-lane-3-state;
+                               qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                               qcom,mdss-dsi-mdp-trigger = "none";
+                               qcom,mdss-dsi-reset-sequence = <0x1 0xa 0x0 0xa 0x1 0xa>;
+                               qcom,mdss-pan-physical-width-dimension = <0x4a>;
+                               qcom,mdss-pan-physical-height-dimension = <0x83>;
+                               qcom,cmd-sync-wait-broadcast;
+                               qcom,mdss-dsi-t-clk-post = <0xd>;
+                               qcom,mdss-dsi-t-clk-pre = <0x2d>;
+                               qcom,mdss-dsi-min-refresh-rate = <0x37>;
+                               qcom,mdss-dsi-max-refresh-rate = <0x3c>;
+                               qcom,mdss-dsi-pan-enable-dynamic-fps;
+                               qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp";
+                               qcom,panel-supply-entries = <0x2d>;
+                               qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
+                               qcom,mdss-dsi-bl-min-level = <0x1>;
+                               qcom,mdss-dsi-bl-max-level = <0xfff>;
+                               qcom,mdss-dsi-mode-sel-gpio-state = "dual_port";
+                               qcom,panel-mode-gpio = <0x2e 0x34 0x0>;
+                               qcom,platform-reset-gpio = <0x2e 0x6 0x0>;
+                               linux,phandle = <0x35b>;
+                               phandle = <0x35b>;
+
+                               qcom,mdss-dsi-display-timings {
+
+                                       timing@0 {
+                                               qcom,mdss-dsi-panel-width = <0x2d0>;
+                                               qcom,mdss-dsi-panel-height = <0xa00>;
+                                               qcom,mdss-dsi-h-front-porch = <0x64>;
+                                               qcom,mdss-dsi-h-back-porch = <0x20>;
+                                               qcom,mdss-dsi-h-pulse-width = <0x10>;
+                                               qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                               qcom,mdss-dsi-v-back-porch = <0x7>;
+                                               qcom,mdss-dsi-v-front-porch = <0x8>;
+                                               qcom,mdss-dsi-v-pulse-width = <0x1>;
+                                               qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                               qcom,mdss-dsi-on-command = [15 01 00 00 00 00 02 ff 10 15 01 00 00 00 00 02 fb 01 15 01 00 00 00 00 02 ba 03 15 01 00 00 00 00 02 e5 01 15 01 00 00 00 00 02 35 00 15 01 00 00 00 00 02 bb 03 15 01 00 00 00 00 02 b0 03 39 01 00 00 00 00 06 3b 03 08 08 64 9a 15 01 00 00 00 00 02 ff e0 15 01 00 00 00 00 02 fb 01 15 01 00 00 00 00 02 6b 3d 15 01 00 00 00 00 02 6c 3d 15 01 00 00 00 00 02 6d 3d 15 01 00 00 00 00 02 6e 3d 15 01 00 00 00 00 02 6f 3d 15 01 00 00 00 00 02 35 02 15 01 00 00 00 00 02 36 72 15 01 00 00 00 00 02 37 10 15 01 00 00 00 00 02 08 c0 15 01 00 00 00 00 02 ff 10 05 01 00 00 78 00 02 11 00 05 01 00 00 32 00 02 29 00];
+                                               qcom,mdss-dsi-off-command = [05 01 00 00 0a 00 02 28 00 05 01 00 00 3c 00 02 10 00];
+                                               qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                               qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                               qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                                               qcom,mdss-dsi-panel-timings = <0x1c0807 0x23220707 0x5030400>;
+                                               qcom,config-select = <0x30>;
+                                               qcom,display-topology = <0x2 0x0 0x2 0x1 0x0 0x2>;
+                                               qcom,default-topology-index = <0x0>;
+
+                                               config0 {
+                                                       qcom,split-mode = "dualctl-split";
+                                                       linux,phandle = <0x30>;
+                                                       phandle = <0x30>;
+                                               };
+
+                                               config1 {
+                                                       qcom,split-mode = "pingpong-split";
+                                               };
+                                       };
+                               };
+                       };
+
+                       qcom,mdss_dsi_nt35597_wqxga_cmd {
+                               qcom,mdss-dsi-panel-name = "Dual nt35597 cmd mode dsi panel without DSC";
+                               qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
+                               qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                               qcom,mdss-dsi-stream = <0x0>;
+                               qcom,mdss-dsi-bpp = <0x18>;
+                               qcom,mdss-dsi-color-order = "rgb_swap_rgb";
+                               qcom,mdss-dsi-underflow-color = <0xff>;
+                               qcom,mdss-dsi-border-color = <0x0>;
+                               qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
+                               qcom,mdss-dsi-bllp-eof-power-mode;
+                               qcom,mdss-dsi-bllp-power-mode;
+                               qcom,mdss-dsi-lane-0-state;
+                               qcom,mdss-dsi-lane-1-state;
+                               qcom,mdss-dsi-lane-2-state;
+                               qcom,mdss-dsi-lane-3-state;
+                               qcom,adjust-timer-wakeup-ms = <0x1>;
+                               qcom,mdss-dsi-reset-sequence = <0x1 0xa 0x0 0xa 0x1 0xa>;
+                               qcom,mdss-pan-physical-width-dimension = <0x4a>;
+                               qcom,mdss-pan-physical-height-dimension = <0x83>;
+                               qcom,mdss-dsi-t-clk-post = <0xd>;
+                               qcom,mdss-dsi-t-clk-pre = <0x2d>;
+                               qcom,mdss-dsi-bl-max-level = <0xfff>;
+                               qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                               qcom,mdss-dsi-mdp-trigger = "none";
+                               qcom,mdss-dsi-te-pin-select = <0x1>;
+                               qcom,mdss-dsi-wr-mem-start = <0x2c>;
+                               qcom,mdss-dsi-wr-mem-continue = <0x3c>;
+                               qcom,mdss-dsi-te-dcs-command = <0x1>;
+                               qcom,mdss-dsi-te-check-enable;
+                               qcom,mdss-dsi-te-using-te-pin;
+                               qcom,ulps-enabled;
+                               qcom,panel-supply-entries = <0x2d>;
+                               qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
+                               qcom,mdss-dsi-bl-min-level = <0x1>;
+                               qcom,mdss-dsi-mode-sel-gpio-state = "dual_port";
+                               qcom,panel-mode-gpio = <0x2e 0x34 0x0>;
+                               qcom,platform-reset-gpio = <0x2e 0x6 0x0>;
+                               qcom,platform-te-gpio = <0x2e 0xa 0x0>;
+                               linux,phandle = <0x35c>;
+                               phandle = <0x35c>;
+
+                               qcom,mdss-dsi-display-timings {
+
+                                       timing@0 {
+                                               qcom,mdss-dsi-panel-width = <0x2d0>;
+                                               qcom,mdss-dsi-panel-height = <0xa00>;
+                                               qcom,mdss-dsi-h-front-porch = <0x64>;
+                                               qcom,mdss-dsi-h-back-porch = <0x20>;
+                                               qcom,mdss-dsi-h-pulse-width = <0x10>;
+                                               qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                               qcom,mdss-dsi-v-back-porch = <0x7>;
+                                               qcom,mdss-dsi-v-front-porch = <0x8>;
+                                               qcom,mdss-dsi-v-pulse-width = <0x1>;
+                                               qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                                               qcom,mdss-dsi-h-left-border = <0x0>;
+                                               qcom,mdss-dsi-h-right-border = <0x0>;
+                                               qcom,mdss-dsi-v-top-border = <0x0>;
+                                               qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                               qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                               qcom,mdss-dsi-on-command = <0x15010000 0x100002ff 0x10150100 0x100002 0xfb011501 0x1000 0x2ba0315 0x1000010 0x2e501 0x15010000 0x10000235 0x150100 0x100002 0xbb101501 0x1000 0x2b00315 0x1000010 0x2ffe0 0x15010000 0x100002fb 0x1150100 0x100002 0x6b3d1501 0x1000 0x26c3d15 0x1000010 0x26d3d 0x15010000 0x1000026e 0x3d150100 0x100002 0x6f3d1501 0x1000 0x2350215 0x1000010 0x23672 0x15010000 0x10000237 0x10150100 0x100002 0x8c01501 0x1000 0x2ff2415 0x1000010 0x2fb01 0x15010000 0x100002c6 0x6150100 0x100002 0xff100501 0xa000 0x2110005 0x10000a0 0x22900>;
+                                               qcom,mdss-dsi-off-command = [05 01 00 00 0a 00 02 28 00 05 01 00 00 3c 00 02 10 00];
+                                               qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                               qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                               qcom,mdss-dsi-panel-timings = <0x1c0807 0x23220707 0x5030400>;
+                                               qcom,config-select = <0x31>;
+                                               qcom,display-topology = <0x2 0x0 0x2 0x1 0x0 0x2>;
+                                               qcom,default-topology-index = <0x0>;
+                                               qcom,partial-update-enabled = "single_roi";
+                                               qcom,panel-roi-alignment = <0x2d0 0x80 0x2d0 0x80 0x5a0 0x80>;
+
+                                               config0 {
+                                                       qcom,split-mode = "dualctl-split";
+                                                       linux,phandle = <0x31>;
+                                                       phandle = <0x31>;
+                                               };
+
+                                               config1 {
+                                                       qcom,split-mode = "pingpong-split";
+                                               };
+                                       };
+                               };
+                       };
+
+                       qcom,mdss_dsi_nt36850_truly_wqhd_cmd {
+                               qcom,mdss-dsi-panel-name = "Dual nt36850 cmd mode dsi truly panel without DSC";
+                               qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
+                               qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                               qcom,mdss-dsi-stream = <0x0>;
+                               qcom,mdss-dsi-bpp = <0x18>;
+                               qcom,mdss-dsi-color-order = "rgb_swap_rgb";
+                               qcom,mdss-dsi-underflow-color = <0xff>;
+                               qcom,mdss-dsi-border-color = <0x0>;
+                               qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
+                               qcom,mdss-dsi-lane-map = "lane_map_0123";
+                               qcom,mdss-dsi-bllp-eof-power-mode;
+                               qcom,mdss-dsi-bllp-power-mode;
+                               qcom,mdss-dsi-tx-eot-append;
+                               qcom,mdss-dsi-lane-0-state;
+                               qcom,mdss-dsi-lane-1-state;
+                               qcom,mdss-dsi-lane-2-state;
+                               qcom,mdss-dsi-lane-3-state;
+                               qcom,mdss-dsi-wr-mem-start = <0x2c>;
+                               qcom,mdss-dsi-wr-mem-continue = <0x3c>;
+                               qcom,mdss-dsi-te-pin-select = <0x1>;
+                               qcom,mdss-dsi-te-dcs-command = <0x1>;
+                               qcom,mdss-dsi-te-check-enable;
+                               qcom,mdss-dsi-te-using-te-pin;
+                               qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                               qcom,mdss-dsi-mdp-trigger = "none";
+                               qcom,mdss-dsi-lp11-init;
+                               qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
+                               qcom,mdss-dsi-bl-min-level = <0x1>;
+                               qcom,mdss-dsi-bl-max-level = <0xfff>;
+                               qcom,mdss-dsi-reset-sequence = <0x1 0xa 0x0 0xa 0x1 0x32>;
+                               qcom,mdss-dsi-t-clk-post = <0xe>;
+                               qcom,mdss-dsi-t-clk-pre = <0x30>;
+
+                               qcom,mdss-dsi-display-timings {
+
+                                       timing@0 {
+                                               qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                               qcom,mdss-dsi-panel-width = <0x2d0>;
+                                               qcom,mdss-dsi-panel-height = <0xa00>;
+                                               qcom,mdss-dsi-h-front-porch = <0x78>;
+                                               qcom,mdss-dsi-h-back-porch = <0x8c>;
+                                               qcom,mdss-dsi-h-pulse-width = <0x14>;
+                                               qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                               qcom,mdss-dsi-v-back-porch = <0x14>;
+                                               qcom,mdss-dsi-v-front-porch = <0x8>;
+                                               qcom,mdss-dsi-v-pulse-width = <0x4>;
+                                               qcom,mdss-dsi-h-left-border = <0x0>;
+                                               qcom,mdss-dsi-h-right-border = <0x0>;
+                                               qcom,mdss-dsi-v-top-border = <0x0>;
+                                               qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                               qcom,mdss-dsi-on-command = [15 01 00 00 00 00 02 ff 10 15 01 00 00 00 00 02 fb 01 15 01 00 00 00 00 02 36 00 15 01 00 00 00 00 02 35 00 39 01 00 00 00 00 03 44 03 e8 15 01 00 00 00 00 02 51 ff 15 01 00 00 00 00 02 53 2c 15 01 00 00 00 00 02 55 01 05 01 00 00 0a 00 02 20 00 15 01 00 00 00 00 02 bb 10 05 01 00 00 78 00 02 11 00 05 01 00 00 78 00 02 29 00];
+                                               qcom,mdss-dsi-off-command = [05 01 00 00 78 00 02 28 00 05 01 00 00 78 00 02 10 00];
+                                               qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                               qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                               qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                                               qcom,mdss-dsi-panel-phy-timings = <0x1f0808 0x24230808 0x5030400>;
+                                               qcom,display-topology = <0x2 0x0 0x2 0x1 0x0 0x2>;
+                                               qcom,default-topology-index = <0x0>;
+                                       };
+                               };
+                       };
+
+                       qcom,mdss_dsi_test_oled_cmd {
+                               qcom,mdss-dsi-panel-name = "Dual test cmd mode DSI amoled non-DSC panel";
+                               qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
+                               qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                               qcom,mdss-dsi-stream = <0x0>;
+                               qcom,mdss-dsi-bpp = <0x18>;
+                               qcom,mdss-dsi-color-order = "rgb_swap_rgb";
+                               qcom,mdss-dsi-underflow-color = <0xff>;
+                               qcom,mdss-dsi-border-color = <0x0>;
+                               qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
+                               qcom,mdss-dsi-bllp-eof-power-mode;
+                               qcom,mdss-dsi-bllp-power-mode;
+                               qcom,mdss-dsi-lane-0-state;
+                               qcom,mdss-dsi-lane-1-state;
+                               qcom,mdss-dsi-lane-2-state;
+                               qcom,mdss-dsi-lane-3-state;
+                               qcom,adjust-timer-wakeup-ms = <0x1>;
+                               qcom,mdss-dsi-reset-sequence = <0x1 0x2 0x0 0x2 0x1 0x2>;
+                               qcom,mdss-dsi-bl-max-level = <0xfff>;
+                               qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                               qcom,mdss-dsi-mdp-trigger = "none";
+                               qcom,mdss-dsi-te-pin-select = <0x1>;
+                               qcom,mdss-dsi-wr-mem-start = <0x2c>;
+                               qcom,mdss-dsi-wr-mem-continue = <0x3c>;
+                               qcom,mdss-dsi-te-dcs-command = <0x1>;
+                               qcom,mdss-dsi-te-check-enable;
+                               qcom,mdss-dsi-te-using-te-pin;
+                               qcom,mdss-dsi-hfp-power-mode;
+                               qcom,mdss-dsi-hbp-power-mode;
+                               qcom,mdss-dsi-hsa-power-mode;
+
+                               qcom,mdss-dsi-display-timings {
+
+                                       timing@0 {
+                                       };
+                               };
+                       };
+               };
+
+               qcom,sde_rscc@af20000 {
+                       cell-index = <0x0>;
+                       compatible = "qcom,sde-rsc";
+                       reg = <0xaf20000 0x1c44 0xaf30000 0x3fd4>;
+                       reg-names = "drv", "wrapper";
+                       qcom,sde-rsc-version = <0x1>;
+                       vdd-supply = <0x19>;
+                       clocks = <0x20 0x23 0x20 0x22>;
+                       clock-names = "vsync_clk", "iface_clk";
+                       clock-rate = <0x0 0x0>;
+                       qcom,sde-dram-channels = <0x2>;
+                       mboxes = <0x32 0x0>;
+                       mbox-names = "disp_rsc";
+                       linux,phandle = <0x2b>;
+                       phandle = <0x2b>;
+
+                       qcom,sde-data-bus {
+                               qcom,msm-bus,name = "disp_rsc_mnoc";
+                               qcom,msm-bus,active-only;
+                               qcom,msm-bus,num-cases = <0x3>;
+                               qcom,msm-bus,num-paths = <0x2>;
+                               qcom,msm-bus,vectors-KBps = <0x4e23 0x5023 0x0 0x0 0x4e24 0x5023 0x0 0x0 0x4e23 0x5023 0x0 0x61a800 0x4e24 0x5023 0x0 0x61a800 0x4e23 0x5023 0x0 0x61a800 0x4e24 0x5023 0x0 0x61a800>;
+                       };
+
+                       qcom,sde-llcc-bus {
+                               qcom,msm-bus,name = "disp_rsc_llcc";
+                               qcom,msm-bus,active-only;
+                               qcom,msm-bus,num-cases = <0x3>;
+                               qcom,msm-bus,num-paths = <0x1>;
+                               qcom,msm-bus,vectors-KBps = <0x4e21 0x5021 0x0 0x0 0x4e21 0x5021 0x0 0x61a800 0x4e21 0x5021 0x0 0x61a800>;
+                       };
+
+                       qcom,sde-ebi-bus {
+                               qcom,msm-bus,name = "disp_rsc_ebi";
+                               qcom,msm-bus,active-only;
+                               qcom,msm-bus,num-cases = <0x3>;
+                               qcom,msm-bus,num-paths = <0x1>;
+                               qcom,msm-bus,vectors-KBps = <0x4e20 0x5020 0x0 0x0 0x4e20 0x5020 0x0 0x61a800 0x4e20 0x5020 0x0 0x61a800>;
+                       };
+               };
+
+               qcom,mdss_rotator@ae00000 {
+                       compatible = "qcom,sde_rotator";
+                       reg = <0xae00000 0xac000 0xaeb8000 0x3000>;
+                       reg-names = "mdp_phys", "rot_vbif_phys";
+                       #list-cells = <0x1>;
+                       qcom,mdss-rot-mode = <0x1>;
+                       qcom,mdss-highest-bank-bit = <0x2>;
+                       qcom,msm-bus,name = "mdss_rotator";
+                       qcom,msm-bus,num-cases = <0x3>;
+                       qcom,msm-bus,num-paths = <0x1>;
+                       qcom,msm-bus,vectors-KBps = <0x19 0x200 0x0 0x0 0x19 0x200 0x0 0x61a800 0x19 0x200 0x0 0x61a800>;
+                       rot-vdd-supply = <0x19>;
+                       qcom,supply-names = "rot-vdd";
+                       clocks = <0x22 0x1b 0x22 0x1c 0x20 0x0 0x20 0x20 0x20 0x1>;
+                       clock-names = "gcc_iface", "gcc_bus", "iface_clk", "rot_clk", "axi_clk";
+                       interrupt-parent = <0x33>;
+                       interrupts = <0x2 0x0>;
+                       power-domains = <0x33>;
+                       qcom,mdss-rot-vbif-qos-setting = <0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3>;
+                       qcom,mdss-rot-vbif-memtype = <0x3 0x3>;
+                       qcom,mdss-rot-cdp-setting = <0x1 0x1>;
+                       qcom,mdss-rot-qos-lut = <0x0 0x0 0x0 0x0>;
+                       qcom,mdss-rot-danger-lut = <0x0 0x0>;
+                       qcom,mdss-rot-safe-lut = <0xffff 0xffff>;
+                       qcom,mdss-inline-rot-qos-lut = <0x44556677 0x112233 0x44556677 0x112233>;
+                       qcom,mdss-inline-rot-danger-lut = <0x55aaff 0xffff>;
+                       qcom,mdss-inline-rot-safe-lut = <0xf000 0xff00>;
+                       qcom,mdss-default-ot-rd-limit = <0x20>;
+                       qcom,mdss-default-ot-wr-limit = <0x20>;
+                       qcom,mdss-sbuf-headroom = <0x14>;
+                       cache-slice-names = "rotator";
+                       cache-slices = <0x34 0x4>;
+                       linux,phandle = <0x2a>;
+                       phandle = <0x2a>;
+
+                       qcom,rot-reg-bus {
+                               qcom,msm-bus,name = "mdss_rot_reg";
+                               qcom,msm-bus,num-cases = <0x2>;
+                               qcom,msm-bus,num-paths = <0x1>;
+                               qcom,msm-bus,active-only;
+                               qcom,msm-bus,vectors-KBps = <0x1 0x24e 0x0 0x0 0x1 0x24e 0x0 0x12c00>;
+                       };
+
+                       qcom,smmu_rot_unsec_cb {
+                               compatible = "qcom,smmu_sde_rot_unsec";
+                               iommus = <0x29 0x1090 0x0>;
+                       };
+
+                       qcom,smmu_rot_sec_cb {
+                               compatible = "qcom,smmu_sde_rot_sec";
+                               iommus = <0x29 0x1091 0x0>;
+                       };
+               };
+
+               qcom,mdss_dsi_ctrl0@ae94000 {
+                       compatible = "qcom,dsi-ctrl-hw-v2.2";
+                       label = "dsi-ctrl-0";
+                       cell-index = <0x0>;
+                       reg = <0xae94000 0x400 0xaf08000 0x4>;
+                       reg-names = "dsi_ctrl", "disp_cc_base";
+                       interrupt-parent = <0x33>;
+                       interrupts = <0x4 0x0>;
+                       vdda-1p2-supply = <0x35>;
+                       clocks = <0x20 0x2 0x20 0x3 0x20 0x4 0x20 0x1a 0x20 0x1b 0x20 0x13>;
+                       clock-names = "byte_clk", "byte_clk_rcg", "byte_intf_clk", "pixel_clk", "pixel_clk_rcg", "esc_clk";
+                       qcom,null-insertion-enabled;
+                       linux,phandle = <0x2f>;
+                       phandle = <0x2f>;
+
+                       qcom,ctrl-supply-entries {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               qcom,ctrl-supply-entry@0 {
+                                       reg = <0x0>;
+                                       qcom,supply-name = "vdda-1p2";
+                                       qcom,supply-min-voltage = <0x124f80>;
+                                       qcom,supply-max-voltage = <0x124f80>;
+                                       qcom,supply-enable-load = <0x5528>;
+                                       qcom,supply-disable-load = <0x4>;
+                               };
+                       };
+
+                       qcom,core-supply-entries {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               qcom,core-supply-entry@0 {
+                                       reg = <0x0>;
+                                       qcom,supply-name = "refgen";
+                                       qcom,supply-min-voltage = <0x0>;
+                                       qcom,supply-max-voltage = <0x0>;
+                                       qcom,supply-enable-load = <0x0>;
+                                       qcom,supply-disable-load = <0x0>;
+                               };
+                       };
+               };
+
+               qcom,mdss_dsi_ctrl1@ae96000 {
+                       compatible = "qcom,dsi-ctrl-hw-v2.2";
+                       label = "dsi-ctrl-1";
+                       cell-index = <0x1>;
+                       reg = <0xae96000 0x400 0xaf08000 0x4>;
+                       reg-names = "dsi_ctrl", "disp_cc_base";
+                       interrupt-parent = <0x33>;
+                       interrupts = <0x5 0x0>;
+                       vdda-1p2-supply = <0x35>;
+                       clocks = <0x20 0x5 0x20 0x6 0x20 0x7 0x20 0x1c 0x20 0x1d 0x20 0x15>;
+                       clock-names = "byte_clk", "byte_clk_rcg", "byte_intf_clk", "pixel_clk", "pixel_clk_rcg", "esc_clk";
+                       qcom,null-insertion-enabled;
+                       linux,phandle = <0x342>;
+                       phandle = <0x342>;
+
+                       qcom,ctrl-supply-entries {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               qcom,ctrl-supply-entry@0 {
+                                       reg = <0x0>;
+                                       qcom,supply-name = "vdda-1p2";
+                                       qcom,supply-min-voltage = <0x124f80>;
+                                       qcom,supply-max-voltage = <0x124f80>;
+                                       qcom,supply-enable-load = <0x5528>;
+                                       qcom,supply-disable-load = <0x4>;
+                               };
+                       };
+
+                       qcom,core-supply-entries {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               qcom,core-supply-entry@0 {
+                                       reg = <0x0>;
+                                       qcom,supply-name = "refgen";
+                                       qcom,supply-min-voltage = <0x0>;
+                                       qcom,supply-max-voltage = <0x0>;
+                                       qcom,supply-enable-load = <0x0>;
+                                       qcom,supply-disable-load = <0x0>;
+                               };
+                       };
+               };
+
+               qcom,mdss_dsi_phy0@ae94400 {
+                       compatible = "qcom,dsi-phy-v3.0";
+                       label = "dsi-phy-0";
+                       cell-index = <0x0>;
+                       reg = <0xae94400 0x7c0>;
+                       reg-names = "dsi_phy";
+                       gdsc-supply = <0x19>;
+                       vdda-0p9-supply = <0x36>;
+                       qcom,platform-strength-ctrl = [55 03 55 03 55 03 55 03 55 00];
+                       qcom,platform-lane-config = <0x0 0x0 0x0 0x0 0x80>;
+                       qcom,platform-regulator-settings = [1d 1d 1d 1d 1d];
+                       linux,phandle = <0x343>;
+                       phandle = <0x343>;
+
+                       qcom,phy-supply-entries {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               qcom,phy-supply-entry@0 {
+                                       reg = <0x0>;
+                                       qcom,supply-name = "vdda-0p9";
+                                       qcom,supply-min-voltage = <0xd6d80>;
+                                       qcom,supply-max-voltage = <0xd6d80>;
+                                       qcom,supply-enable-load = <0x8ca0>;
+                                       qcom,supply-disable-load = <0x20>;
+                               };
+                       };
+               };
+
+               qcom,mdss_dsi_phy0@ae96400 {
+                       compatible = "qcom,dsi-phy-v3.0";
+                       label = "dsi-phy-1";
+                       cell-index = <0x1>;
+                       reg = <0xae96400 0x7c0>;
+                       reg-names = "dsi_phy";
+                       gdsc-supply = <0x19>;
+                       vdda-0p9-supply = <0x36>;
+                       qcom,platform-strength-ctrl = [55 03 55 03 55 03 55 03 55 00];
+                       qcom,platform-regulator-settings = [1d 1d 1d 1d 1d];
+                       qcom,platform-lane-config = <0x0 0x0 0x0 0x0 0x80>;
+                       linux,phandle = <0x344>;
+                       phandle = <0x344>;
+
+                       qcom,phy-supply-entries {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               qcom,phy-supply-entry@0 {
+                                       reg = <0x0>;
+                                       qcom,supply-name = "vdda-0p9";
+                                       qcom,supply-min-voltage = <0xd6d80>;
+                                       qcom,supply-max-voltage = <0xd6d80>;
+                                       qcom,supply-enable-load = <0x8ca0>;
+                                       qcom,supply-disable-load = <0x20>;
+                               };
+                       };
+               };
+
+               qcom,dp_display@0 {
+                       cell-index = <0x0>;
+                       compatible = "qcom,dp-display";
+                       gdsc-supply = <0x19>;
+                       vdda-1p2-supply = <0x35>;
+                       vdda-0p9-supply = <0x36>;
+                       reg = <0xae90000 0xdc 0xae90200 0xc0 0xae90400 0x508 0xae90a00 0x94 0x88eaa00 0x200 0x88ea200 0x200 0x88ea600 0x200 0xaf02000 0x1a0 0x780000 0x621c 0x88ea030 0x10 0x88e8000 0x20 0xaee1000 0x34>;
+                       reg-names = "dp_ahb", "dp_aux", "dp_link", "dp_p0", "dp_phy", "dp_ln_tx0", "dp_ln_tx1", "dp_mmss_cc", "qfprom_physical", "dp_pll", "usb3_dp_com", "hdcp_physical";
+                       interrupt-parent = <0x33>;
+                       interrupts = <0xc 0x0>;
+                       clocks = <0x20 0x8 0x21 0x0 0x22 0x9f 0x22 0xa9 0x22 0xa3 0x20 0xc 0x20 0xe 0x20 0x11 0x20 0xa 0x20 0x12 0x37 0x5>;
+                       clock-names = "core_aux_clk", "core_usb_ref_clk_src", "core_usb_ref_clk", "core_usb_cfg_ahb_clk", "core_usb_pipe_clk", "ctrl_link_clk", "ctrl_link_iface_clk", "ctrl_pixel_clk", "crypto_clk", "pixel_clk_rcg", "pixel_parent";
+                       qcom,aux-cfg0-settings = [20 00];
+                       qcom,aux-cfg1-settings = <0x2413231d>;
+                       qcom,aux-cfg2-settings = [28 24];
+                       qcom,aux-cfg3-settings = [2c 00];
+                       qcom,aux-cfg4-settings = [30 0a];
+                       qcom,aux-cfg5-settings = [34 26];
+                       qcom,aux-cfg6-settings = [38 0a];
+                       qcom,aux-cfg7-settings = [3c 03];
+                       qcom,aux-cfg8-settings = [40 bb];
+                       qcom,aux-cfg9-settings = [44 03];
+                       qcom,max-pclk-frequency-khz = <0xa4cb8>;
+                       qcom,dp-usbpd-detection = <0x38>;
+                       qcom,ext-disp = <0x39>;
+                       pinctrl-names = "mdss_dp_active", "mdss_dp_sleep";
+                       pinctrl-0 = <0x3a 0x3b>;
+                       pinctrl-1 = <0x3c 0x3d>;
+                       qcom,aux-en-gpio = <0x2e 0x2b 0x0>;
+                       qcom,aux-sel-gpio = <0x2e 0x33 0x0>;
+                       qcom,usbplug-cc-gpio = <0x2e 0x26 0x0>;
+                       status = "disabled";
+
+                       qcom,ctrl-supply-entries {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               qcom,ctrl-supply-entry@0 {
+                                       reg = <0x0>;
+                                       qcom,supply-name = "vdda-1p2";
+                                       qcom,supply-min-voltage = <0x124f80>;
+                                       qcom,supply-max-voltage = <0x124f80>;
+                                       qcom,supply-enable-load = <0x5528>;
+                                       qcom,supply-disable-load = <0x4>;
+                               };
+                       };
+
+                       qcom,phy-supply-entries {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               qcom,phy-supply-entry@0 {
+                                       reg = <0x0>;
+                                       qcom,supply-name = "vdda-0p9";
+                                       qcom,supply-min-voltage = <0xd6d80>;
+                                       qcom,supply-max-voltage = <0xd6d80>;
+                                       qcom,supply-enable-load = <0x8ca0>;
+                                       qcom,supply-disable-load = <0x20>;
+                               };
+                       };
+
+                       qcom,core-supply-entries {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               qcom,core-supply-entry@0 {
+                                       reg = <0x0>;
+                                       qcom,supply-name = "refgen";
+                                       qcom,supply-min-voltage = <0x0>;
+                                       qcom,supply-max-voltage = <0x0>;
+                                       qcom,supply-enable-load = <0x0>;
+                                       qcom,supply-disable-load = <0x0>;
+                               };
+                       };
+               };
+
+               qcom,qupv3_0_geni_se@8c0000 {
+                       compatible = "qcom,qupv3-geni-se";
+                       reg = <0x8c0000 0x6000>;
+                       qcom,bus-mas-id = <0x56>;
+                       qcom,bus-slv-id = <0x200>;
+                       qcom,iommu-s1-bypass;
+                       linux,phandle = <0x41>;
+                       phandle = <0x41>;
+
+                       qcom,iommu_qupv3_0_geni_se_cb {
+                               compatible = "qcom,qupv3-geni-se-cb";
+                               iommus = <0x29 0x3 0x0>;
+                       };
+               };
+
+               qcom,qup_uart@0x898000 {
+                       compatible = "qcom,msm-geni-serial-hs";
+                       reg = <0x898000 0x4000>;
+                       reg-names = "se_phys";
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x58 0x22 0x6c 0x22 0x6d>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x3e 0x3f 0x40>;
+                       pinctrl-1 = <0x3e 0x3f 0x40>;
+                       interrupts-extended = <0x1 0x0 0x25f 0x0 0x2e 0x30 0x0>;
+                       status = "ok";
+                       qcom,wakeup-byte = <0xfd>;
+                       qcom,wrapper-core = <0x41>;
+               };
+
+               qcom,qup_uart@0x89c000 {
+                       compatible = "qcom,msm-geni-serial-hs";
+                       reg = <0x89c000 0x4000>;
+                       reg-names = "se_phys";
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x5a 0x22 0x6c 0x22 0x6d>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x42>;
+                       pinctrl-1 = <0x43>;
+                       interrupts-extended = <0x1 0x0 0x260 0x0 0x2e 0x60 0x0>;
+                       status = "disabled";
+                       qcom,wakeup-byte = <0xfd>;
+                       qcom,wrapper-core = <0x41>;
+               };
+
+               i2c@880000 {
+                       compatible = "qcom,i2c-geni";
+                       reg = <0x880000 0x4000>;
+                       interrupts = <0x0 0x259 0x0>;
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x4c 0x22 0x6c 0x22 0x6d>;
+                       dmas = <0x44 0x0 0x0 0x3 0x40 0x0 0x44 0x1 0x0 0x3 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x45>;
+                       pinctrl-1 = <0x46>;
+                       qcom,wrapper-core = <0x41>;
+                       status = "disabled";
+               };
+
+               i2c@884000 {
+                       compatible = "qcom,i2c-geni";
+                       reg = <0x884000 0x4000>;
+                       interrupts = <0x0 0x25a 0x0>;
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x4e 0x22 0x6c 0x22 0x6d>;
+                       dmas = <0x44 0x0 0x1 0x3 0x40 0x0 0x44 0x1 0x1 0x3 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x47>;
+                       pinctrl-1 = <0x48>;
+                       qcom,wrapper-core = <0x41>;
+                       status = "disabled";
+               };
+
+               i2c@888000 {
+                       compatible = "qcom,i2c-geni";
+                       reg = <0x888000 0x4000>;
+                       interrupts = <0x0 0x25b 0x0>;
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x50 0x22 0x6c 0x22 0x6d>;
+                       dmas = <0x44 0x0 0x2 0x3 0x40 0x0 0x44 0x1 0x2 0x3 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x49>;
+                       pinctrl-1 = <0x4a>;
+                       qcom,wrapper-core = <0x41>;
+                       status = "disabled";
+               };
+
+               i2c@88c000 {
+                       compatible = "qcom,i2c-geni";
+                       reg = <0x88c000 0x4000>;
+                       interrupts = <0x0 0x25c 0x0>;
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x52 0x22 0x6c 0x22 0x6d>;
+                       dmas = <0x44 0x0 0x3 0x3 0x40 0x0 0x44 0x1 0x3 0x3 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x4b>;
+                       pinctrl-1 = <0x4c>;
+                       qcom,wrapper-core = <0x41>;
+                       status = "ok";
+
+                       nq@28 {
+                               compatible = "qcom,nq-nci";
+                               reg = <0x28>;
+                               qcom,nq-irq = <0x2e 0x3f 0x0>;
+                               qcom,nq-ven = <0x2e 0x80 0x0>;
+                               qcom,nq-firm = <0x2e 0x58 0x0>;
+                               qcom,nq-clkreq = <0x4d 0x15 0x0>;
+                               qcom,nq-esepwr = <0x2e 0x74 0x0>;
+                               interrupt-parent = <0x2e>;
+                               qcom,clk-src = "BBCLK3";
+                               interrupts = <0x3f 0x0>;
+                               interrupt-names = "nfc_irq";
+                               pinctrl-names = "nfc_active", "nfc_suspend";
+                               pinctrl-0 = <0x4e 0x4f 0x50>;
+                               pinctrl-1 = <0x51 0x52>;
+                               clocks = <0x21 0x4>;
+                               clock-names = "ref_clk";
+                       };
+               };
+
+               i2c@890000 {
+                       compatible = "qcom,i2c-geni";
+                       reg = <0x890000 0x4000>;
+                       interrupts = <0x0 0x25d 0x0>;
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x54 0x22 0x6c 0x22 0x6d>;
+                       dmas = <0x44 0x0 0x4 0x3 0x40 0x0 0x44 0x1 0x4 0x3 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x53>;
+                       pinctrl-1 = <0x54>;
+                       qcom,wrapper-core = <0x41>;
+                       status = "disabled";
+               };
+
+               i2c@894000 {
+                       compatible = "qcom,i2c-geni";
+                       reg = <0x894000 0x4000>;
+                       interrupts = <0x0 0x25e 0x0>;
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x56 0x22 0x6c 0x22 0x6d>;
+                       dmas = <0x44 0x0 0x5 0x3 0x40 0x0 0x44 0x1 0x5 0x3 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x55>;
+                       pinctrl-1 = <0x56>;
+                       qcom,wrapper-core = <0x41>;
+                       status = "ok";
+
+                       tas2557@4c {
+                               compatible = "ti,tas2557";
+                               reg = <0x4c>;
+                               ti,cdc-reset-gpio = <0x2e 0x4c 0x0>;
+                               ti,irq-gpio = <0x2e 0x1e 0x0>;
+                               ti,i2s-bits = <0x10>;
+                               ti,bypass-tmax = <0x0>;
+                               ti,spk-id-pin = <0x57>;
+                       };
+               };
+
+               i2c@898000 {
+                       compatible = "qcom,i2c-geni";
+                       reg = <0x898000 0x4000>;
+                       interrupts = <0x0 0x25f 0x0>;
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x58 0x22 0x6c 0x22 0x6d>;
+                       dmas = <0x44 0x0 0x6 0x3 0x40 0x0 0x44 0x1 0x6 0x3 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x58>;
+                       pinctrl-1 = <0x59>;
+                       qcom,wrapper-core = <0x41>;
+                       status = "disabled";
+               };
+
+               i2c@89c000 {
+                       compatible = "qcom,i2c-geni";
+                       reg = <0x89c000 0x4000>;
+                       interrupts = <0x0 0x260 0x0>;
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x5a 0x22 0x6c 0x22 0x6d>;
+                       dmas = <0x44 0x0 0x7 0x3 0x40 0x0 0x44 0x1 0x7 0x3 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x5a>;
+                       pinctrl-1 = <0x5b>;
+                       qcom,wrapper-core = <0x41>;
+                       status = "disabled";
+               };
+
+               spi@880000 {
+                       compatible = "qcom,spi-geni";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       reg = <0x880000 0x4000>;
+                       reg-names = "se_phys";
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x4c 0x22 0x6c 0x22 0x6d>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x5c>;
+                       pinctrl-1 = <0x5d>;
+                       interrupts = <0x0 0x259 0x0>;
+                       spi-max-frequency = <0x2faf080>;
+                       qcom,wrapper-core = <0x41>;
+                       dmas = <0x44 0x0 0x0 0x1 0x40 0x0 0x44 0x1 0x0 0x1 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               spi@884000 {
+                       compatible = "qcom,spi-geni";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       reg = <0x884000 0x4000>;
+                       reg-names = "se_phys";
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x4e 0x22 0x6c 0x22 0x6d>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x5e>;
+                       pinctrl-1 = <0x5f>;
+                       interrupts = <0x0 0x25a 0x0>;
+                       spi-max-frequency = <0x2faf080>;
+                       qcom,wrapper-core = <0x41>;
+                       dmas = <0x44 0x0 0x1 0x1 0x40 0x0 0x44 0x1 0x1 0x1 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               spi@888000 {
+                       compatible = "qcom,spi-geni";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       reg = <0x888000 0x4000>;
+                       reg-names = "se_phys";
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x50 0x22 0x6c 0x22 0x6d>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x60>;
+                       pinctrl-1 = <0x61>;
+                       interrupts = <0x0 0x25b 0x0>;
+                       spi-max-frequency = <0x2faf080>;
+                       qcom,wrapper-core = <0x41>;
+                       dmas = <0x44 0x0 0x2 0x1 0x40 0x0 0x44 0x1 0x2 0x1 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               spi@88c000 {
+                       compatible = "qcom,spi-geni";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       reg = <0x88c000 0x4000>;
+                       reg-names = "se_phys";
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x52 0x22 0x6c 0x22 0x6d>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x62>;
+                       pinctrl-1 = <0x63>;
+                       interrupts = <0x0 0x25c 0x0>;
+                       spi-max-frequency = <0x2faf080>;
+                       qcom,wrapper-core = <0x41>;
+                       dmas = <0x44 0x0 0x3 0x1 0x40 0x0 0x44 0x1 0x3 0x1 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               spi@890000 {
+                       compatible = "qcom,spi-geni";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       reg = <0x890000 0x4000>;
+                       reg-names = "se_phys";
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x54 0x22 0x6c 0x22 0x6d>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x64>;
+                       pinctrl-1 = <0x65>;
+                       interrupts = <0x0 0x25d 0x0>;
+                       spi-max-frequency = <0x2faf080>;
+                       qcom,wrapper-core = <0x41>;
+                       dmas = <0x44 0x0 0x4 0x1 0x40 0x0 0x44 0x1 0x4 0x1 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       status = "ok";
+
+                       4775_gps@89 {
+                               compatible = "ssp,bcm4775";
+                               reg = <0x0>;
+                               spi-max-frequency = <0xb71b00>;
+                               ssp-host-req = <0x2e 0x81 0x0>;
+                               ssp-mcu-resp = <0x2e 0x84 0x0>;
+                               ssp-mcu-req = <0x2e 0x8f 0x0>;
+                               gps,nstandby = <0x2e 0x85 0x0>;
+                               interrupt-parent = <0x2e>;
+                               interrupts = <0x81 0x0>;
+                               spi-cpha;
+                               spi-cpol;
+                               interrupt-names = "gps_irq";
+                               gps,power_enable = <0x4d 0x13 0x0>;
+                               pinctrl-names = "gps_active", "gps_suspend";
+                               pinctrl-0 = <0x66 0x67 0x68 0x69 0x6a>;
+                               pinctrl-1 = <0x6b 0x6c 0x6d>;
+                       };
+               };
+
+               spi@894000 {
+                       compatible = "qcom,spi-geni";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       reg = <0x894000 0x4000>;
+                       reg-names = "se_phys";
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x56 0x22 0x6c 0x22 0x6d>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x6e>;
+                       pinctrl-1 = <0x6f>;
+                       interrupts = <0x0 0x25e 0x0>;
+                       spi-max-frequency = <0x2faf080>;
+                       qcom,wrapper-core = <0x41>;
+                       dmas = <0x44 0x0 0x5 0x1 0x40 0x0 0x44 0x1 0x5 0x1 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               spi@898000 {
+                       compatible = "qcom,spi-geni";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       reg = <0x898000 0x4000>;
+                       reg-names = "se_phys";
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x58 0x22 0x6c 0x22 0x6d>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x70>;
+                       pinctrl-1 = <0x71>;
+                       interrupts = <0x0 0x25f 0x0>;
+                       spi-max-frequency = <0x2faf080>;
+                       qcom,wrapper-core = <0x41>;
+                       dmas = <0x44 0x0 0x6 0x1 0x40 0x0 0x44 0x1 0x6 0x1 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               spi@89c000 {
+                       compatible = "qcom,spi-geni";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       reg = <0x89c000 0x4000>;
+                       reg-names = "se_phys";
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x5a 0x22 0x6c 0x22 0x6d>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x72>;
+                       pinctrl-1 = <0x73>;
+                       interrupts = <0x0 0x260 0x0>;
+                       spi-max-frequency = <0x2faf080>;
+                       qcom,wrapper-core = <0x41>;
+                       dmas = <0x44 0x0 0x7 0x1 0x40 0x0 0x44 0x1 0x7 0x1 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               qcom,qupv3_1_geni_se@ac0000 {
+                       compatible = "qcom,qupv3-geni-se";
+                       reg = <0xac0000 0x6000>;
+                       qcom,bus-mas-id = <0x54>;
+                       qcom,bus-slv-id = <0x200>;
+                       qcom,iommu-s1-bypass;
+                       linux,phandle = <0x76>;
+                       phandle = <0x76>;
+
+                       qcom,iommu_qupv3_1_geni_se_cb {
+                               compatible = "qcom,qupv3-geni-se-cb";
+                               iommus = <0x29 0x6c3 0x0>;
+                       };
+               };
+
+               qcom,qup_uart@0xa84000 {
+                       compatible = "qcom,msm-geni-console";
+                       reg = <0xa84000 0x4000>;
+                       reg-names = "se_phys";
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x5e 0x22 0x6e 0x22 0x6f>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x74>;
+                       pinctrl-1 = <0x75>;
+                       interrupts = <0x0 0x162 0x0>;
+                       qcom,wrapper-core = <0x76>;
+                       status = "ok";
+               };
+
+               qcom,qup_uart@0xa88000 {
+                       compatible = "qcom,msm-geni-console";
+                       reg = <0xa88000 0x4000>;
+                       reg-names = "se_phys";
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x60 0x22 0x6e 0x22 0x6f>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x77>;
+                       pinctrl-1 = <0x78>;
+                       interrupts = <0x0 0x163 0x0>;
+                       qcom,wrapper-core = <0x76>;
+                       status = "disabled";
+               };
+
+               i2c@a80000 {
+                       compatible = "qcom,i2c-geni";
+                       reg = <0xa80000 0x4000>;
+                       interrupts = <0x0 0x161 0x0>;
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x5c 0x22 0x6e 0x22 0x6f>;
+                       dmas = <0x79 0x0 0x0 0x3 0x40 0x0 0x79 0x1 0x0 0x3 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x7a>;
+                       pinctrl-1 = <0x7b>;
+                       qcom,wrapper-core = <0x76>;
+                       status = "disabled";
+               };
+
+               i2c@a84000 {
+                       compatible = "qcom,i2c-geni";
+                       reg = <0xa84000 0x4000>;
+                       interrupts = <0x0 0x162 0x0>;
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x5e 0x22 0x6e 0x22 0x6f>;
+                       dmas = <0x79 0x0 0x1 0x3 0x40 0x0 0x79 0x1 0x1 0x3 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x7c>;
+                       pinctrl-1 = <0x7d>;
+                       qcom,wrapper-core = <0x76>;
+                       status = "disabled";
+               };
+
+               i2c@a88000 {
+                       compatible = "qcom,i2c-geni";
+                       reg = <0xa88000 0x4000>;
+                       interrupts = <0x0 0x163 0x0>;
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x60 0x22 0x6e 0x22 0x6f>;
+                       dmas = <0x79 0x0 0x2 0x3 0x40 0x0 0x79 0x1 0x2 0x3 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x7e>;
+                       pinctrl-1 = <0x7f>;
+                       qcom,wrapper-core = <0x76>;
+                       status = "ok";
+
+                       qcom,smb1355@8 {
+                               compatible = "qcom,i2c-pmic";
+                               reg = <0x8>;
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+                               interrupt-parent = <0x80>;
+                               interrupts = <0x0 0xd1 0x0 0x8>;
+                               interrupt_names = "smb1355_0";
+                               interrupt-controller;
+                               #interrupt-cells = <0x3>;
+                               qcom,periph-map = <0x10 0x12 0x13 0x16>;
+                               linux,phandle = <0x82>;
+                               phandle = <0x82>;
+
+                               qcom,revid@100 {
+                                       compatible = "qcom,qpnp-revid";
+                                       reg = <0x100 0x100>;
+                                       linux,phandle = <0x81>;
+                                       phandle = <0x81>;
+                               };
+
+                               qcom,smb1355-charger@1000 {
+                                       compatible = "qcom,smb1355";
+                                       qcom,pmic-revid = <0x81>;
+                                       reg = <0x1000 0x700>;
+                                       #address-cells = <0x1>;
+                                       #size-cells = <0x1>;
+                                       interrupt-parent = <0x82>;
+                                       status = "ok";
+                                       io-channels = <0x83 0x2 0x83 0xc>;
+                                       io-channel-names = "charger_temp", "charger_temp_max";
+                                       qcom,enable-ctm;
+
+                                       qcom,chgr@1000 {
+                                               reg = <0x1000 0x100>;
+                                               interrupts = <0x10 0x1 0x1>;
+                                               interrupt-names = "chg-state-change";
+                                       };
+
+                                       qcom,chgr-misc@1600 {
+                                               reg = <0x1600 0x100>;
+                                               interrupts = <0x16 0x1 0x1 0x16 0x6 0x1>;
+                                               interrupt-names = "wdog-bark", "temperature-change";
+                                       };
+                               };
+                       };
+
+                       qcom,smb1355@c {
+                               compatible = "qcom,i2c-pmic";
+                               reg = <0xc>;
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+                               interrupt-parent = <0x80>;
+                               interrupts = <0x0 0xd1 0x0 0x8>;
+                               interrupt_names = "smb1355_1";
+                               interrupt-controller;
+                               #interrupt-cells = <0x3>;
+                               qcom,periph-map = <0x10 0x12 0x13 0x16>;
+                               linux,phandle = <0x85>;
+                               phandle = <0x85>;
+
+                               qcom,revid@100 {
+                                       compatible = "qcom,qpnp-revid";
+                                       reg = <0x100 0x100>;
+                                       linux,phandle = <0x84>;
+                                       phandle = <0x84>;
+                               };
+
+                               qcom,smb1355-charger@1000 {
+                                       compatible = "qcom,smb1355";
+                                       qcom,pmic-revid = <0x84>;
+                                       reg = <0x1000 0x700>;
+                                       #address-cells = <0x1>;
+                                       #size-cells = <0x1>;
+                                       interrupt-parent = <0x85>;
+                                       status = "ok";
+                                       io-channels = <0x83 0x2 0x83 0xc>;
+                                       io-channel-names = "charger_temp", "charger_temp_max";
+                                       qcom,enable-ctm;
+
+                                       qcom,chgr@1000 {
+                                               reg = <0x1000 0x100>;
+                                               interrupts = <0x10 0x1 0x1>;
+                                               interrupt-names = "chg-state-change";
+                                       };
+
+                                       qcom,chgr-misc@1600 {
+                                               reg = <0x1600 0x100>;
+                                               interrupts = <0x16 0x1 0x1 0x16 0x6 0x1>;
+                                               interrupt-names = "wdog-bark", "temperature-change";
+                                       };
+                               };
+                       };
+
+                       lm3644@63 {
+                               compatible = "leds-lm3644";
+                               reg = <0x63>;
+                               lm3644,hwen-gpio = <0x2e 0x5d 0x0>;
+                               lm3644,torch-gpio = <0x2e 0x60 0x0>;
+                               lm3644,tx-gpio = <0x2e 0x87 0x0>;
+                               pinctrl-names = "lm3644_led_active", "lm3644_led_active_pwm", "lm3644_led_suspend";
+                               pinctrl-0 = <0x86 0x87>;
+                               pinctrl-1 = <0x86 0x88>;
+                               pinctrl-2 = <0x89 0x87>;
+                               lm3644,use-simulative-pwm;
+                               pwms = <0x8a 0x0 0x0>;
+                               lm3644,period-us = <0x61a8>;
+                               lm3644,duty-us = <0x9c4>;
+                       };
+               };
+
+               i2c@a8c000 {
+                       compatible = "qcom,i2c-geni";
+                       reg = <0xa8c000 0x4000>;
+                       interrupts = <0x0 0x164 0x0>;
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x62 0x22 0x6e 0x22 0x6f>;
+                       dmas = <0x79 0x0 0x3 0x3 0x40 0x0 0x79 0x1 0x3 0x3 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x8b>;
+                       pinctrl-1 = <0x8c>;
+                       qcom,wrapper-core = <0x76>;
+                       status = "disabled";
+               };
+
+               i2c@a90000 {
+                       compatible = "qcom,i2c-geni";
+                       reg = <0xa90000 0x4000>;
+                       interrupts = <0x0 0x165 0x0>;
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x64 0x22 0x6e 0x22 0x6f>;
+                       dmas = <0x79 0x0 0x4 0x3 0x40 0x0 0x79 0x1 0x4 0x3 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x8d>;
+                       pinctrl-1 = <0x8e>;
+                       qcom,wrapper-core = <0x76>;
+                       status = "disabled";
+               };
+
+               i2c@a94000 {
+                       compatible = "qcom,i2c-geni";
+                       reg = <0xa94000 0x4000>;
+                       interrupts = <0x0 0x166 0x0>;
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x66 0x22 0x6e 0x22 0x6f>;
+                       dmas = <0x79 0x0 0x5 0x3 0x40 0x0 0x79 0x1 0x5 0x3 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x8f>;
+                       pinctrl-1 = <0x90>;
+                       qcom,wrapper-core = <0x76>;
+                       status = "disabled";
+               };
+
+               i2c@a98000 {
+                       compatible = "qcom,i2c-geni";
+                       reg = <0xa98000 0x4000>;
+                       interrupts = <0x0 0x167 0x0>;
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x68 0x22 0x6e 0x22 0x6f>;
+                       dmas = <0x79 0x0 0x6 0x3 0x40 0x0 0x79 0x1 0x6 0x3 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x91>;
+                       pinctrl-1 = <0x92>;
+                       qcom,wrapper-core = <0x76>;
+                       status = "ok";
+
+                       fts@49 {
+                               compatible = "st,fts";
+                               reg = <0x49>;
+                               interrupt-parent = <0x2e>;
+                               interrupts = <0x1f 0x2008>;
+                               pinctrl-names = "pmx_ts_active", "pmx_ts_suspend";
+                               pinctrl-0 = <0x93>;
+                               pinctrl-1 = <0x94 0x95>;
+                               vdd-supply = <0x96>;
+                               avdd-supply = <0x97>;
+                               fts,pwr-reg-name = "avdd";
+                               fts,bus-reg-name = "vdd";
+                               fts,irq-gpio = <0x2e 0x1f 0x2008>;
+                               fts,irq-gpio-name = "fts_irq";
+                               fts,reset-gpio-enable;
+                               fts,reset-gpio = <0x2e 0x20 0x0>;
+                               fts,reset-gpio-name = "fts_rst";
+                               fts,irq-flags = <0x2008>;
+                               fts,key-num = <0x2>;
+                               fts,key-codes = <0x9e 0x8b>;
+                               fts,config-array-size = <0x1>;
+                               fts,default-fw-name = "st_fts_e1.ftb";
+                               fts,touch-up-threshold-min = <0x14>;
+                               fts,touch-up-threshold-max = <0x32>;
+                               fts,touch-up-threshold-def = <0x14>;
+                               fts,touch-tolerance-min = <0x5>;
+                               fts,touch-tolerance-max = <0xf>;
+                               fts,touch-tolerance-def = <0x5>;
+                               fts,edgefilter-leftrigt-def = <0x1e>;
+                               fts,edgefilter-topbottom-def = <0x1e>;
+                               fts,edgefilter-area-step1 = <0x64>;
+                               fts,edgefilter-area-step2 = <0x96>;
+                               fts,edgefilter-area-step3 = <0xfa>;
+
+                               fts,cfg_0 {
+                                       fts,tp-vendor = <0x48>;
+                                       fts,fw-name = "st_fts_e1.ftb";
+                                       fts,limit-name = "stm_fts_production_limits.csv";
+                               };
+                       };
+
+                       atmel_mxt_ts_640u@4a {
+                               compatible = "atmel,mxt-ts";
+                               reg = <0x4a>;
+                               interrupt-parent = <0x2e>;
+                               interrupts = <0x1f 0x2008>;
+                               vdd-supply = <0x97>;
+                               vddio-supply = <0x96>;
+                               pinctrl-names = "pmx_ts_active", "pmx_ts_suspend";
+                               pinctrl-0 = <0x93>;
+                               pinctrl-1 = <0x94 0x95>;
+                               atmel,reset-gpio = <0x2e 0x20 0x0>;
+                               atmel,reset-low-prepower;
+                               atmel,irq-gpio = <0x2e 0x1f 0x2008>;
+                               atmel,mxt-fw-name = "mXT640U0x1410E8.fw";
+                               atmel,config-array-size = <0x1>;
+                               atmel,default-config = <0x0>;
+                               atmel,default-panel-id = <0x51>;
+                               atmel,irqflags = <0x2008>;
+                               atmel,gpio-mask = <0xc>;
+                               atmel,esd-reset;
+                               atmel,no-keys;
+                               atmel,use-ta-gpio;
+                               atmel,raw-min = <0xbb8>;
+                               atmel,raw-max = <0x1d4c>;
+
+                               atmel,cfg_1 {
+                                       atmel,family-id = <0xa6>;
+                                       atmel,variant-id = <0x14>;
+                                       atmel,version = <0x10>;
+                                       atmel,build = <0xe8>;
+                                       atmel,rev-id = <0x12>;
+                                       atmel,mxt-cfg-name = "mxt_640u_gov_config.fw";
+                                       atmel,vendor-id = <0xc>;
+                                       atmel,panel-id = <0x51>;
+                                       atmel,key-codes = <0x9e 0x8b 0x66>;
+                                       atmel,selfintthr-stylus = <0x0>;
+                                       atmel,t71-tchthr-pos = <0x16>;
+                                       atmel,self-chgtime-min = <0x0>;
+                                       atmel,self-chgtime-max = <0x0>;
+                                       atmel,mult-intthr-sensitive = <0x8>;
+                                       atmel,mult-intthr-not-sensitive = <0x11>;
+                                       atmel,atchthr-sensitive = <0x6>;
+                                       atmel,mult-tchthr-sensitive = <0x14>;
+                                       atmel,mult-tchthr-not-sensitive = <0x0>;
+                                       atmel,wake-up-self-adcx = <0x10>;
+                                       atmel,atchratio = <0x0>;
+                                       atmel,xycfg = <0x8>;
+                                       atmel,xsize = <0x1e>;
+                                       atmel,xrange-lsb = <0x37>;
+                                       atmel,xrange-msb = <0x4>;
+                                       atmel,tchhyst = <0xa>;
+                                       atmel,intthrhyst = <0x3>;
+                                       atmel,xtchthr = <0x23>;
+                                       atmel,xtchhyst = <0xf>;
+                                       atmel,intthrx = <0x8>;
+                                       atmel,ytchthr = <0x23>;
+                                       atmel,ytchhyst = <0xf>;
+                                       atmel,intthry = <0x8>;
+                               };
+                       };
+               };
+
+               i2c@a9c000 {
+                       compatible = "qcom,i2c-geni";
+                       reg = <0xa9c000 0x4000>;
+                       interrupts = <0x0 0x168 0x0>;
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x6a 0x22 0x6e 0x22 0x6f>;
+                       dmas = <0x79 0x0 0x7 0x3 0x40 0x0 0x79 0x1 0x7 0x3 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x98>;
+                       pinctrl-1 = <0x99>;
+                       qcom,wrapper-core = <0x76>;
+                       status = "disabled";
+               };
+
+               spi@a80000 {
+                       compatible = "qcom,spi-geni";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       reg = <0xa80000 0x4000>;
+                       reg-names = "se_phys";
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x5c 0x22 0x6e 0x22 0x6f>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x9a>;
+                       pinctrl-1 = <0x9a>;
+                       interrupts = <0x0 0x161 0x0>;
+                       spi-max-frequency = <0x2faf080>;
+                       qcom,wrapper-core = <0x76>;
+                       dmas = <0x79 0x0 0x0 0x1 0x40 0x0 0x79 0x1 0x0 0x1 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       status = "ok";
+               };
+
+               spi@a84000 {
+                       compatible = "qcom,spi-geni";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       reg = <0xa84000 0x4000>;
+                       reg-names = "se_phys";
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x5e 0x22 0x6e 0x22 0x6f>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x9b>;
+                       pinctrl-1 = <0x9c>;
+                       interrupts = <0x0 0x162 0x0>;
+                       spi-max-frequency = <0x2faf080>;
+                       qcom,wrapper-core = <0x76>;
+                       dmas = <0x79 0x0 0x1 0x1 0x40 0x0 0x79 0x1 0x1 0x1 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               spi@a88000 {
+                       compatible = "qcom,spi-geni";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       reg = <0xa88000 0x4000>;
+                       reg-names = "se_phys";
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x60 0x22 0x6e 0x22 0x6f>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x9d>;
+                       pinctrl-1 = <0x9e>;
+                       interrupts = <0x0 0x163 0x0>;
+                       spi-max-frequency = <0x2faf080>;
+                       qcom,wrapper-core = <0x76>;
+                       dmas = <0x79 0x0 0x2 0x1 0x40 0x0 0x79 0x1 0x2 0x1 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               spi@a8c000 {
+                       compatible = "qcom,spi-geni";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       reg = <0xa8c000 0x4000>;
+                       reg-names = "se_phys";
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x62 0x22 0x6e 0x22 0x6f>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0x9f>;
+                       pinctrl-1 = <0xa0>;
+                       interrupts = <0x0 0x164 0x0>;
+                       spi-max-frequency = <0x2faf080>;
+                       qcom,wrapper-core = <0x76>;
+                       dmas = <0x79 0x0 0x3 0x1 0x40 0x0 0x79 0x1 0x3 0x1 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               spi@a90000 {
+                       compatible = "qcom,spi-geni";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       reg = <0xa90000 0x4000>;
+                       reg-names = "se_phys";
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x64 0x22 0x6e 0x22 0x6f>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0xa1>;
+                       pinctrl-1 = <0xa2>;
+                       interrupts = <0x0 0x165 0x0>;
+                       spi-max-frequency = <0x2faf080>;
+                       qcom,wrapper-core = <0x76>;
+                       dmas = <0x79 0x0 0x4 0x1 0x40 0x0 0x79 0x1 0x4 0x1 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               spi@a94000 {
+                       compatible = "qcom,spi-geni";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       reg = <0xa94000 0x4000>;
+                       reg-names = "se_phys";
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x66 0x22 0x6e 0x22 0x6f>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0xa3>;
+                       pinctrl-1 = <0xa4>;
+                       interrupts = <0x0 0x166 0x0>;
+                       spi-max-frequency = <0x2faf080>;
+                       qcom,wrapper-core = <0x76>;
+                       dmas = <0x79 0x0 0x5 0x1 0x40 0x0 0x79 0x1 0x5 0x1 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               spi@a98000 {
+                       compatible = "qcom,spi-geni";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       reg = <0xa98000 0x4000>;
+                       reg-names = "se_phys";
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x68 0x22 0x6e 0x22 0x6f>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0xa5>;
+                       pinctrl-1 = <0xa6>;
+                       interrupts = <0x0 0x167 0x0>;
+                       spi-max-frequency = <0x2faf080>;
+                       qcom,wrapper-core = <0x76>;
+                       dmas = <0x79 0x0 0x6 0x1 0x40 0x0 0x79 0x1 0x6 0x1 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               spi@a9c000 {
+                       compatible = "qcom,spi-geni";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       reg = <0xa9c000 0x4000>;
+                       reg-names = "se_phys";
+                       clock-names = "se-clk", "m-ahb", "s-ahb";
+                       clocks = <0x22 0x6a 0x22 0x6e 0x22 0x6f>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <0xa7>;
+                       pinctrl-1 = <0xa8>;
+                       interrupts = <0x0 0x168 0x0>;
+                       spi-max-frequency = <0x2faf080>;
+                       qcom,wrapper-core = <0x76>;
+                       dmas = <0x79 0x0 0x7 0x1 0x40 0x0 0x79 0x1 0x7 0x1 0x40 0x0>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               jtagmm@7040000 {
+                       compatible = "qcom,jtagv8-mm";
+                       reg = <0x7040000 0x1000>;
+                       reg-names = "etm-base";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "core_clk";
+                       qcom,coresight-jtagmm-cpu = <0x11>;
+               };
+
+               jtagmm@7140000 {
+                       compatible = "qcom,jtagv8-mm";
+                       reg = <0x7140000 0x1000>;
+                       reg-names = "etm-base";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "core_clk";
+                       qcom,coresight-jtagmm-cpu = <0x12>;
+               };
+
+               jtagmm@7240000 {
+                       compatible = "qcom,jtagv8-mm";
+                       reg = <0x7240000 0x1000>;
+                       reg-names = "etm-base";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "core_clk";
+                       qcom,coresight-jtagmm-cpu = <0x13>;
+               };
+
+               jtagmm@7340000 {
+                       compatible = "qcom,jtagv8-mm";
+                       reg = <0x7340000 0x1000>;
+                       reg-names = "etm-base";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "core_clk";
+                       qcom,coresight-jtagmm-cpu = <0x14>;
+               };
+
+               jtagmm@7440000 {
+                       compatible = "qcom,jtagv8-mm";
+                       reg = <0x7440000 0x1000>;
+                       reg-names = "etm-base";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "core_clk";
+                       qcom,coresight-jtagmm-cpu = <0x15>;
+               };
+
+               jtagmm@7540000 {
+                       compatible = "qcom,jtagv8-mm";
+                       reg = <0x7540000 0x1000>;
+                       reg-names = "etm-base";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "core_clk";
+                       qcom,coresight-jtagmm-cpu = <0x16>;
+               };
+
+               jtagmm@7640000 {
+                       compatible = "qcom,jtagv8-mm";
+                       reg = <0x7640000 0x1000>;
+                       reg-names = "etm-base";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "core_clk";
+                       qcom,coresight-jtagmm-cpu = <0x17>;
+               };
+
+               jtagmm@7740000 {
+                       compatible = "qcom,jtagv8-mm";
+                       reg = <0x7740000 0x1000>;
+                       reg-names = "etm-base";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "core_clk";
+                       qcom,coresight-jtagmm-cpu = <0x18>;
+               };
+
+               interrupt-controller@17a00000 {
+                       compatible = "arm,gic-v3";
+                       #interrupt-cells = <0x3>;
+                       interrupt-controller;
+                       #redistributor-regions = <0x1>;
+                       redistributor-stride = <0x0 0x20000>;
+                       reg = <0x17a00000 0x10000 0x17a60000 0x100000>;
+                       interrupts = <0x1 0x9 0x4>;
+                       interrupt-parent = <0xaa>;
+                       ignored-save-restore-irqs = <0x26>;
+                       linux,phandle = <0xaa>;
+                       phandle = <0xaa>;
+               };
+
+               timer {
+                       compatible = "arm,armv8-timer";
+                       interrupts = <0x1 0x1 0xf08 0x1 0x2 0xf08 0x1 0x3 0xf08 0x1 0x0 0xf08>;
+                       clock-frequency = <0x124f800>;
+               };
+
+               timer@0x17C90000 {
+                       #address-cells = <0x1>;
+                       #size-cells = <0x1>;
+                       ranges;
+                       compatible = "arm,armv7-timer-mem";
+                       reg = <0x17c90000 0x1000>;
+                       clock-frequency = <0x124f800>;
+
+                       frame@0x17CA0000 {
+                               frame-number = <0x0>;
+                               interrupts = <0x0 0x7 0x4 0x0 0x6 0x4>;
+                               reg = <0x17ca0000 0x1000 0x17cb0000 0x1000>;
+                       };
+
+                       frame@17cc0000 {
+                               frame-number = <0x1>;
+                               interrupts = <0x0 0x8 0x4>;
+                               reg = <0x17cc0000 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@17cd0000 {
+                               frame-number = <0x2>;
+                               interrupts = <0x0 0x9 0x4>;
+                               reg = <0x17cd0000 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@17ce0000 {
+                               frame-number = <0x3>;
+                               interrupts = <0x0 0xa 0x4>;
+                               reg = <0x17ce0000 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@17cf0000 {
+                               frame-number = <0x4>;
+                               interrupts = <0x0 0xb 0x4>;
+                               reg = <0x17cf0000 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@17d00000 {
+                               frame-number = <0x5>;
+                               interrupts = <0x0 0xc 0x4>;
+                               reg = <0x17d00000 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@17d10000 {
+                               frame-number = <0x6>;
+                               interrupts = <0x0 0xd 0x4>;
+                               reg = <0x17d10000 0x1000>;
+                               status = "disabled";
+                       };
+               };
+
+               restart@10ac000 {
+                       compatible = "qcom,pshold";
+                       reg = <0xc264000 0x4 0x1fd3000 0x4>;
+                       reg-names = "pshold-base", "tcsr-boot-misc-detect";
+               };
+
+               aop-msg-client {
+                       compatible = "qcom,debugfs-qmp-client";
+                       mboxes = <0xab 0x0>;
+                       mbox-names = "aop";
+               };
+
+               qcom,spmi@c440000 {
+                       compatible = "qcom,spmi-pmic-arb";
+                       reg = <0xc440000 0x1100 0xc600000 0x2000000 0xe600000 0x100000 0xe700000 0xa0000 0xc40a000 0x26000>;
+                       reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
+                       interrupt-names = "periph_irq";
+                       interrupts = <0x0 0x1e1 0x0>;
+                       qcom,ee = <0x0>;
+                       qcom,channel = <0x0>;
+                       #address-cells = <0x2>;
+                       #size-cells = <0x0>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x4>;
+                       cell-index = <0x0>;
+                       qcom,enable-ahb-bus-workaround;
+                       linux,phandle = <0x80>;
+                       phandle = <0x80>;
+
+                       qcom,pm8998@0 {
+                               compatible = "qcom,spmi-pmic";
+                               reg = <0x0 0x0>;
+                               #address-cells = <0x2>;
+                               #size-cells = <0x0>;
+
+                               qcom,revid@100 {
+                                       compatible = "qcom,qpnp-revid";
+                                       reg = <0x100 0x100>;
+                               };
+
+                               qcom,power-on@800 {
+                                       compatible = "qcom,qpnp-power-on";
+                                       reg = <0x800 0x100>;
+                                       interrupts = <0x0 0x8 0x0 0x0 0x0 0x8 0x1 0x0 0x0 0x8 0x4 0x0 0x0 0x8 0x5 0x0>;
+                                       interrupt-names = "kpdpwr", "resin", "resin-bark", "kpdpwr-resin-bark";
+                                       qcom,pon-dbc-delay = <0xf424>;
+                                       qcom,kpdpwr-sw-debounce;
+                                       qcom,system-reset;
+                                       qcom,store-hard-reset-reason;
+
+                                       qcom,pon_1 {
+                                               qcom,pon-type = <0x0>;
+                                               qcom,support-reset = <0x1>;
+                                               qcom,pull-up = <0x1>;
+                                               linux,code = <0x74>;
+                                               qcom,s1-timer = <0x1a40>;
+                                               qcom,s2-timer = <0x7d0>;
+                                               qcom,s2-type = <0x7>;
+                                       };
+
+                                       qcom,pon_2 {
+                                               qcom,pon-type = <0x1>;
+                                               qcom,pull-up = <0x1>;
+                                               linux,code = <0x72>;
+                                       };
+
+                                       qcom,pon_3 {
+                                               qcom,pon-type = <0x3>;
+                                               qcom,support-reset = <0x1>;
+                                               qcom,pull-up = <0x1>;
+                                               qcom,s1-timer = <0x548>;
+                                               qcom,s2-timer = <0x7d0>;
+                                               qcom,s2-type = <0x1>;
+                                               qcom,use-bark;
+                                       };
+                               };
+
+                               qcom,temp-alarm@2400 {
+                                       compatible = "qcom,qpnp-temp-alarm";
+                                       reg = <0x2400 0x100>;
+                                       interrupts = <0x0 0x24 0x0 0x1>;
+                                       label = "pm8998_tz";
+                                       qcom,channel-num = <0x6>;
+                                       qcom,temp_alarm-vadc = <0xac>;
+                                       #thermal-sensor-cells = <0x0>;
+                                       linux,phandle = <0x158>;
+                                       phandle = <0x158>;
+                               };
+
+                               pinctrl@c000 {
+                                       compatible = "qcom,spmi-gpio";
+                                       reg = <0xc000 0x1a00>;
+                                       interrupts = <0x0 0xc0 0x0 0x0 0x0 0xc1 0x0 0x0 0x0 0xc3 0x0 0x0 0x0 0xc4 0x0 0x0 0x0 0xc5 0x0 0x0 0x0 0xc6 0x0 0x0 0x0 0xc7 0x0 0x0 0x0 0xc8 0x0 0x0 0x0 0xc9 0x0 0x0 0x0 0xca 0x0 0x0 0x0 0xcb 0x0 0x0 0x0 0xcc 0x0 0x0 0x0 0xcd 0x0 0x0 0x0 0xcf 0x0 0x0 0x0 0xd0 0x0 0x0 0x0 0xd1 0x0 0x0 0x0 0xd2 0x0 0x0 0x0 0xd4 0x0 0x0 0x0 0xd6 0x0 0x0>;
+                                       interrupt-names = "pm8998_gpio1", "pm8998_gpio2", "pm8998_gpio4", "pm8998_gpio5", "pm8998_gpio6", "pm8998_gpio7", "pm8998_gpio8", "pm8998_gpio9", "pm8998_gpio10", "pm8998_gpio11", "pm8998_gpio12", "pm8998_gpio13", "pm8998_gpio14", "pm8998_gpio16", "pm8998_gpio17", "pm8998_gpio18", "pm8998_gpio19", "pm8998_gpio21", "pm8998_gpio23";
+                                       gpio-controller;
+                                       #gpio-cells = <0x2>;
+                                       qcom,gpios-disallowed = <0x3 0xf 0x14 0x16 0x18 0x19 0x1a>;
+                                       linux,phandle = <0x4d>;
+                                       phandle = <0x4d>;
+
+                                       key_home {
+
+                                               key_home_default {
+                                                       pins = "gpio5";
+                                                       function = "normal";
+                                                       input-enable;
+                                                       bias-pull-up;
+                                                       power-source = <0x0>;
+                                               };
+                                       };
+
+                                       led_bt {
+
+                                               led_bt_default {
+                                                       pins = "gpio5";
+                                                       function = "normal";
+                                                       power-source = <0x0>;
+                                                       output-low;
+                                               };
+                                       };
+
+                                       key_vol_up {
+
+                                               key_vol_up_default {
+                                                       pins = "gpio6";
+                                                       function = "normal";
+                                                       input-enable;
+                                                       bias-pull-up;
+                                                       power-source = <0x0>;
+                                                       linux,phandle = <0x378>;
+                                                       phandle = <0x378>;
+                                               };
+                                       };
+
+                                       key_cam_snapshot {
+
+                                               key_cam_snapshot_default {
+                                                       pins = "gpio7";
+                                                       function = "normal";
+                                                       input-enable;
+                                                       bias-pull-up;
+                                                       power-source = <0x0>;
+                                               };
+                                       };
+
+                                       key_cam_focus {
+
+                                               key_cam_focus_default {
+                                                       pins = "gpio8";
+                                                       function = "normal";
+                                                       input-enable;
+                                                       bias-pull-up;
+                                                       power-source = <0x0>;
+                                               };
+                                       };
+
+                                       led_wifi {
+
+                                               led_wifi_default {
+                                                       pins = "gpio9";
+                                                       function = "normal";
+                                                       power-source = <0x0>;
+                                                       output-low;
+                                               };
+                                       };
+
+                                       camera_dvdd_en {
+
+                                               camera_dvdd_en_default {
+                                                       pins = "gpio9";
+                                                       function = "normal";
+                                                       power-source = <0x0>;
+                                                       output-low;
+                                               };
+                                       };
+
+                                       camera_rear_avdd_en {
+
+                                               camera_rear_avdd_en_default {
+                                                       pins = "gpio10";
+                                                       function = "normal";
+                                                       power-source = <0x0>;
+                                                       output-low;
+                                               };
+                                       };
+
+                                       camera_rear_dvdd_en {
+
+                                               camera_rear_dvdd_en_default {
+                                                       pins = "gpio12";
+                                                       function = "normal";
+                                                       power-source = <0x0>;
+                                                       output-low;
+                                               };
+                                       };
+
+                                       nfc_clk {
+
+                                               nfc_clk_default {
+                                                       pins = "gpio21";
+                                                       function = "normal";
+                                                       input-enable;
+                                                       power-source = <0x1>;
+                                                       linux,phandle = <0x50>;
+                                                       phandle = <0x50>;
+                                               };
+                                       };
+
+                                       gps_clk {
+
+                                               gps_clk_default {
+                                                       pins = "gpio16";
+                                                       function = "func1";
+                                                       bias-disable;
+                                                       output-low;
+                                                       input-disable;
+                                                       power-source = <0x0>;
+                                                       linux,phandle = <0x68>;
+                                                       phandle = <0x68>;
+                                               };
+                                       };
+
+                                       gps_power {
+
+                                               gps_power_default {
+                                                       pins = "gpio19";
+                                                       function = "normal";
+                                                       power-source = <0x1>;
+                                                       output-high;
+                                                       input-disable;
+                                                       linux,phandle = <0x69>;
+                                                       phandle = <0x69>;
+                                               };
+                                       };
+                               };
+
+                               qcom,coincell@2800 {
+                                       compatible = "qcom,qpnp-coincell";
+                                       reg = <0x2800 0x100>;
+                               };
+
+                               qcom,pm8998_rtc {
+                                       compatible = "qcom,qpnp-rtc";
+                                       #address-cells = <0x1>;
+                                       #size-cells = <0x1>;
+                                       qcom,qpnp-rtc-write = <0x0>;
+                                       qcom,qpnp-rtc-alarm-pwrup = <0x1>;
+
+                                       qcom,pm8998_rtc_rw@6000 {
+                                               reg = <0x6000 0x100>;
+                                       };
+
+                                       qcom,pm8998_rtc_alarm@6100 {
+                                               reg = <0x6100 0x100>;
+                                               interrupts = <0x0 0x61 0x1 0x0>;
+                                       };
+                               };
+
+                               vadc@3100 {
+                                       compatible = "qcom,qpnp-vadc-hc";
+                                       reg = <0x3100 0x100>;
+                                       #address-cells = <0x1>;
+                                       #size-cells = <0x0>;
+                                       interrupts = <0x0 0x31 0x0 0x1>;
+                                       interrupt-names = "eoc-int-en-set";
+                                       qcom,adc-vdd-reference = <0x753>;
+                                       linux,phandle = <0xac>;
+                                       phandle = <0xac>;
+
+                                       chan@6 {
+                                               label = "die_temp";
+                                               reg = <0x6>;
+                                               qcom,decimation = <0x2>;
+                                               qcom,pre-div-channel-scaling = <0x0>;
+                                               qcom,calibration-type = "absolute";
+                                               qcom,scale-function = <0x3>;
+                                               qcom,hw-settle-time = <0x0>;
+                                               qcom,fast-avg-setup = <0x0>;
+                                               qcom,cal-val = <0x0>;
+                                       };
+
+                                       chan@0 {
+                                               label = "ref_gnd";
+                                               reg = <0x0>;
+                                               qcom,decimation = <0x2>;
+                                               qcom,pre-div-channel-scaling = <0x0>;
+                                               qcom,calibration-type = "absolute";
+                                               qcom,scale-function = <0x0>;
+                                               qcom,hw-settle-time = <0x0>;
+                                               qcom,fast-avg-setup = <0x0>;
+                                               qcom,cal-val = <0x0>;
+                                       };
+
+                                       chan@1 {
+                                               label = "ref_1250v";
+                                               reg = <0x1>;
+                                               qcom,decimation = <0x2>;
+                                               qcom,pre-div-channel-scaling = <0x0>;
+                                               qcom,calibration-type = "absolute";
+                                               qcom,scale-function = <0x0>;
+                                               qcom,hw-settle-time = <0x0>;
+                                               qcom,fast-avg-setup = <0x0>;
+                                               qcom,cal-val = <0x0>;
+                                       };
+
+                                       chan@83 {
+                                               label = "vph_pwr";
+                                               reg = <0x83>;
+                                               qcom,decimation = <0x2>;
+                                               qcom,pre-div-channel-scaling = <0x1>;
+                                               qcom,calibration-type = "absolute";
+                                               qcom,scale-function = <0x0>;
+                                               qcom,hw-settle-time = <0x0>;
+                                               qcom,fast-avg-setup = <0x0>;
+                                       };
+
+                                       chan@85 {
+                                               label = "vcoin";
+                                               reg = <0x85>;
+                                               qcom,decimation = <0x2>;
+                                               qcom,pre-div-channel-scaling = <0x1>;
+                                               qcom,calibration-type = "absolute";
+                                               qcom,scale-function = <0x0>;
+                                               qcom,hw-settle-time = <0x0>;
+                                               qcom,fast-avg-setup = <0x0>;
+                                       };
+
+                                       chan@4c {
+                                               label = "xo_therm";
+                                               reg = <0x4c>;
+                                               qcom,decimation = <0x2>;
+                                               qcom,pre-div-channel-scaling = <0x0>;
+                                               qcom,calibration-type = "ratiometric";
+                                               qcom,scale-function = <0x4>;
+                                               qcom,hw-settle-time = <0x2>;
+                                               qcom,fast-avg-setup = <0x0>;
+                                       };
+
+                                       chan@4d {
+                                               label = "cam_therm0";
+                                               reg = <0x4d>;
+                                               qcom,decimation = <0x2>;
+                                               qcom,pre-div-channel-scaling = <0x0>;
+                                               qcom,calibration-type = "ratiometric";
+                                               qcom,scale-function = <0x2>;
+                                               qcom,hw-settle-time = <0x2>;
+                                               qcom,fast-avg-setup = <0x0>;
+                                       };
+
+                                       chan@4e {
+                                               label = "cam_therm1";
+                                               reg = <0x4e>;
+                                               qcom,decimation = <0x2>;
+                                               qcom,pre-div-channel-scaling = <0x0>;
+                                               qcom,calibration-type = "ratiometric";
+                                               qcom,scale-function = <0x2>;
+                                               qcom,hw-settle-time = <0x2>;
+                                               qcom,fast-avg-setup = <0x0>;
+                                       };
+
+                                       chan@4f {
+                                               label = "pa_therm0";
+                                               reg = <0x4f>;
+                                               qcom,decimation = <0x2>;
+                                               qcom,pre-div-channel-scaling = <0x0>;
+                                               qcom,calibration-type = "ratiometric";
+                                               qcom,scale-function = <0x2>;
+                                               qcom,hw-settle-time = <0x2>;
+                                               qcom,fast-avg-setup = <0x0>;
+                                       };
+
+                                       chan@50 {
+                                               label = "pa_therm1";
+                                               reg = <0x50>;
+                                               qcom,decimation = <0x2>;
+                                               qcom,pre-div-channel-scaling = <0x0>;
+                                               qcom,calibration-type = "ratiometric";
+                                               qcom,scale-function = <0x2>;
+                                               qcom,hw-settle-time = <0x2>;
+                                               qcom,fast-avg-setup = <0x0>;
+                                       };
+
+                                       chan@51 {
+                                               label = "quiet_therm";
+                                               reg = <0x51>;
+                                               qcom,decimation = <0x2>;
+                                               qcom,pre-div-channel-scaling = <0x0>;
+                                               qcom,calibration-type = "ratiometric";
+                                               qcom,scale-function = <0x2>;
+                                               qcom,hw-settle-time = <0x2>;
+                                               qcom,fast-avg-setup = <0x0>;
+                                       };
+                               };
+
+                               vadc@3400 {
+                                       compatible = "qcom,qpnp-adc-tm-hc";
+                                       reg = <0x3400 0x100>;
+                                       #address-cells = <0x1>;
+                                       #size-cells = <0x0>;
+                                       interrupts = <0x0 0x34 0x0 0x1>;
+                                       interrupt-names = "eoc-int-en-set";
+                                       qcom,adc-vdd-reference = <0x753>;
+                                       qcom,adc_tm-vadc = <0xac>;
+                                       qcom,decimation = <0x0>;
+                                       qcom,fast-avg-setup = <0x0>;
+                                       #thermal-sensor-cells = <0x1>;
+                                       linux,phandle = <0x17c>;
+                                       phandle = <0x17c>;
+
+                                       chan@83 {
+                                               label = "vph_pwr";
+                                               reg = <0x83>;
+                                               qcom,pre-div-channel-scaling = <0x1>;
+                                               qcom,calibration-type = "absolute";
+                                               qcom,scale-function = <0x0>;
+                                               qcom,hw-settle-time = <0x0>;
+                                               qcom,btm-channel-number = <0x60>;
+                                       };
+
+                                       chan@4c {
+                                               label = "xo_therm";
+                                               reg = <0x4c>;
+                                               qcom,pre-div-channel-scaling = <0x0>;
+                                               qcom,calibration-type = "ratiometric";
+                                               qcom,scale-function = <0x4>;
+                                               qcom,hw-settle-time = <0x2>;
+                                               qcom,btm-channel-number = <0x68>;
+                                               qcom,thermal-node;
+                                       };
+
+                                       chan@4d {
+                                               label = "cam_therm0";
+                                               reg = <0x4d>;
+                                               qcom,pre-div-channel-scaling = <0x0>;
+                                               qcom,calibration-type = "ratiometric";
+                                               qcom,scale-function = <0x2>;
+                                               qcom,hw-settle-time = <0x2>;
+                                               qcom,btm-channel-number = <0x88>;
+                                               qcom,thermal-node;
+                                       };
+
+                                       chan@4e {
+                                               label = "cam_therm1";
+                                               reg = <0x4e>;
+                                               qcom,pre-div-channel-scaling = <0x0>;
+                                               qcom,calibration-type = "ratiometric";
+                                               qcom,scale-function = <0x2>;
+                                               qcom,hw-settle-time = <0x2>;
+                                               qcom,btm-channel-number = <0x70>;
+                                               qcom,thermal-node;
+                                       };
+
+                                       chan@4f {
+                                               label = "pa_therm0";
+                                               reg = <0x4f>;
+                                               qcom,pre-div-channel-scaling = <0x0>;
+                                               qcom,calibration-type = "ratiometric";
+                                               qcom,scale-function = <0x2>;
+                                               qcom,hw-settle-time = <0x2>;
+                                               qcom,btm-channel-number = <0x78>;
+                                               qcom,thermal-node;
+                                       };
+
+                                       chan@50 {
+                                               label = "pa_therm1";
+                                               reg = <0x50>;
+                                               qcom,pre-div-channel-scaling = <0x0>;
+                                               qcom,calibration-type = "ratiometric";
+                                               qcom,scale-function = <0x2>;
+                                               qcom,hw-settle-time = <0x2>;
+                                               qcom,btm-channel-number = <0x90>;
+                                               qcom,thermal-node;
+                                       };
+
+                                       chan@51 {
+                                               label = "quiet_therm";
+                                               reg = <0x51>;
+                                               qcom,pre-div-channel-scaling = <0x0>;
+                                               qcom,calibration-type = "ratiometric";
+                                               qcom,scale-function = <0x2>;
+                                               qcom,hw-settle-time = <0x2>;
+                                               qcom,btm-channel-number = <0x80>;
+                                               qcom,thermal-node;
+                                       };
+                               };
+
+                               qcom,clkdiv@5b00 {
+                                       compatible = "qcom,qpnp-clkdiv";
+                                       reg = <0x5b00 0x100>;
+                                       #clock-cells = <0x1>;
+                                       qcom,cxo-freq = <0x124f800>;
+                                       qcom,clkdiv-id = <0x1>;
+                                       qcom,clkdiv-init-freq = <0x124f800>;
+                               };
+
+                               qcom,clkdiv@5c00 {
+                                       compatible = "qcom,qpnp-clkdiv";
+                                       reg = <0x5c00 0x100>;
+                                       #clock-cells = <0x1>;
+                                       qcom,cxo-freq = <0x124f800>;
+                                       qcom,clkdiv-id = <0x2>;
+                                       qcom,clkdiv-init-freq = <0x124f800>;
+                               };
+
+                               qcom,clkdiv@5d00 {
+                                       compatible = "qcom,qpnp-clkdiv";
+                                       reg = <0x5d00 0x100>;
+                                       #clock-cells = <0x1>;
+                                       qcom,cxo-freq = <0x124f800>;
+                                       qcom,clkdiv-id = <0x3>;
+                                       qcom,clkdiv-init-freq = <0x124f800>;
+                               };
+                       };
+
+                       qcom,pm8998@1 {
+                               compatible = "qcom,spmi-pmic";
+                               reg = <0x1 0x0>;
+                               #address-cells = <0x2>;
+                               #size-cells = <0x0>;
+                       };
+
+                       qcom,pm8005@4 {
+                               compatible = "qcom,spmi-pmic";
+                               reg = <0x4 0x0>;
+                               #address-cells = <0x2>;
+                               #size-cells = <0x0>;
+
+                               qcom,revid@100 {
+                                       compatible = "qcom,qpnp-revid";
+                                       reg = <0x100 0x100>;
+                               };
+
+                               qcom,temp-alarm@2400 {
+                                       compatible = "qcom,qpnp-temp-alarm";
+                                       reg = <0x2400 0x100>;
+                                       interrupts = <0x4 0x24 0x0 0x1>;
+                                       label = "pm8005_tz";
+                                       #thermal-sensor-cells = <0x0>;
+                                       linux,phandle = <0x15b>;
+                                       phandle = <0x15b>;
+                               };
+
+                               pinctrl@c000 {
+                                       compatible = "qcom,spmi-gpio";
+                                       reg = <0xc000 0x400>;
+                                       interrupts = <0x4 0xc0 0x0 0x0 0x4 0xc1 0x0 0x0>;
+                                       interrupt-names = "pm8005_gpio1", "pm8005_gpio2";
+                                       gpio-controller;
+                                       #gpio-cells = <0x2>;
+                                       qcom,gpios-disallowed = <0x3 0x4>;
+                               };
+
+                               qcom,power-on@800 {
+                                       compatible = "qcom,qpnp-power-on";
+                                       reg = <0x800 0x100>;
+                               };
+                       };
+
+                       qcom,pm8005@5 {
+                               compatible = "qcom,spmi-pmic";
+                               reg = <0x5 0x0>;
+                               #address-cells = <0x2>;
+                               #size-cells = <0x0>;
+
+                               regulator@1400 {
+                                       compatible = "qcom,qpnp-regulator";
+                                       reg = <0x1400 0x100>;
+                                       regulator-name = "pm8005_s1";
+                                       status = "disabled";
+                               };
+
+                               regulator@1700 {
+                                       compatible = "qcom,qpnp-regulator";
+                                       reg = <0x1700 0x100>;
+                                       regulator-name = "pm8005_s2";
+                                       status = "disabled";
+                               };
+
+                               regulator@1a00 {
+                                       compatible = "qcom,qpnp-regulator";
+                                       reg = <0x1a00 0x100>;
+                                       regulator-name = "pm8005_s3";
+                                       status = "disabled";
+                               };
+
+                               regulator@1d00 {
+                                       compatible = "qcom,qpnp-regulator";
+                                       reg = <0x1d00 0x100>;
+                                       regulator-name = "pm8005_s4";
+                                       status = "disabled";
+                               };
+                       };
+
+                       qcom,pmi8998@2 {
+                               compatible = "qcom,spmi-pmic";
+                               reg = <0x2 0x0>;
+                               #address-cells = <0x2>;
+                               #size-cells = <0x0>;
+
+                               qcom,revid@100 {
+                                       compatible = "qcom,qpnp-revid";
+                                       reg = <0x100 0x100>;
+                                       qcom,fab-id-valid;
+                                       linux,phandle = <0xad>;
+                                       phandle = <0xad>;
+                               };
+
+                               qcom,misc@900 {
+                                       compatible = "qcom,qpnp-misc";
+                                       reg = <0x900 0x100>;
+                                       linux,phandle = <0xb9>;
+                                       phandle = <0xb9>;
+                               };
+
+                               qcom,power-on@800 {
+                                       compatible = "qcom,qpnp-power-on";
+                                       reg = <0x800 0x100>;
+                               };
+
+                               qcom,temp-alarm@2400 {
+                                       compatible = "qcom,spmi-temp-alarm";
+                                       reg = <0x2400 0x100>;
+                                       interrupts = <0x2 0x24 0x0 0x1>;
+                                       io-channels = <0x83 0x7>;
+                                       io-channel-names = "thermal";
+                                       #thermal-sensor-cells = <0x0>;
+                                       linux,phandle = <0x17b>;
+                                       phandle = <0x17b>;
+                               };
+
+                               pinctrl@c000 {
+                                       compatible = "qcom,spmi-gpio";
+                                       reg = <0xc000 0xe00>;
+                                       interrupts = <0x2 0xc0 0x0 0x0 0x2 0xc1 0x0 0x0 0x2 0xc2 0x0 0x0 0x2 0xc4 0x0 0x0 0x2 0xc5 0x0 0x0 0x2 0xc7 0x0 0x0 0x2 0xc8 0x0 0x0 0x2 0xc9 0x0 0x0 0x2 0xca 0x0 0x0 0x2 0xcb 0x0 0x0 0x2 0xcd 0x0 0x0>;
+                                       interrupt-names = "pmi8998_gpio1", "pmi8998_gpio2", "pmi8998_gpio3", "pmi8998_gpio5", "pmi8998_gpio6", "pmi8998_gpio8", "pmi8998_gpio9", "pmi8998_gpio10", "pmi8998_gpio11", "pmi8998_gpio12", "pmi8998_gpio14";
+                                       gpio-controller;
+                                       #gpio-cells = <0x2>;
+                                       qcom,gpios-disallowed = <0x4 0x7 0xd>;
+                                       linux,phandle = <0x37e>;
+                                       phandle = <0x37e>;
+
+                                       usb2_vbus_boost {
+
+                                               usb2_vbus_boost_default {
+                                                       pins = "gpio2";
+                                                       function = "normal";
+                                                       output-low;
+                                                       power-source = <0x0>;
+                                               };
+                                       };
+
+                                       qnovo_fet_ctrl {
+
+                                               qnovo_fet_ctrl_default {
+                                                       pins = "gpio6";
+                                                       function = "func1";
+                                                       output-low;
+                                                       input-disable;
+                                                       bias-disable;
+                                                       power-source = <0x0>;
+                                                       qcom,drive-strength = <0x1>;
+                                                       linux,phandle = <0xae>;
+                                                       phandle = <0xae>;
+                                               };
+                                       };
+
+                                       usb2_vbus_det {
+
+                                               usb2_vbus_det_default {
+                                                       pins = "gpio8";
+                                                       function = "normal";
+                                                       input-enable;
+                                                       bias-pull-down;
+                                                       power-source = <0x1>;
+                                                       linux,phandle = <0x381>;
+                                                       phandle = <0x381>;
+                                               };
+                                       };
+
+                                       usb2_id_det {
+
+                                               usb2_id_det_default {
+                                                       pins = "gpio9";
+                                                       function = "normal";
+                                                       input-enable;
+                                                       bias-pull-up;
+                                                       power-source = <0x0>;
+                                               };
+                                       };
+
+                                       usb2_ext_5v_boost {
+
+                                               usb2_ext_5v_boost_default {
+                                                       pins = "gpio10";
+                                                       function = "normal";
+                                                       output-low;
+                                                       power-source = <0x0>;
+                                                       linux,phandle = <0x37f>;
+                                                       phandle = <0x37f>;
+                                               };
+                                       };
+
+                                       lm3644_pwm {
+
+                                               lm3644_pwm_default {
+                                                       pins = "gpio2";
+                                                       function = "func1";
+                                                       bias-disable;
+                                                       output-low;
+                                                       input-disable;
+                                                       drive-push-pull;
+                                                       qcom,drive-strength = <0x2>;
+                                                       power-source = <0x0>;
+                                                       linux,phandle = <0x88>;
+                                                       phandle = <0x88>;
+                                               };
+
+                                               lm3644_pwm_disabled {
+                                                       pins = "gpio2";
+                                                       function = "normal";
+                                                       bias-high-impedance;
+                                                       linux,phandle = <0x87>;
+                                                       phandle = <0x87>;
+                                               };
+                                       };
+                               };
+
+                               qcom,qpnp-qnovo@1500 {
+                                       compatible = "qcom,qpnp-qnovo";
+                                       reg = <0x1500 0x100>;
+                                       interrupts = <0x2 0x15 0x0 0x0>;
+                                       interrupt-names = "ptrain-done";
+                                       qcom,pmic-revid = <0xad>;
+                                       pinctrl-names = "default";
+                                       pinctrl-0 = <0xae>;
+                               };
+
+                               qcom,qpnp-smb2 {
+                                       compatible = "qcom,qpnp-smb2";
+                                       #address-cells = <0x1>;
+                                       #size-cells = <0x1>;
+                                       #cooling-cells = <0x2>;
+                                       qcom,pmic-revid = <0xad>;
+                                       io-channels = <0x83 0x8 0x83 0xa 0x83 0x3 0x83 0x4>;
+                                       io-channel-names = "charger_temp", "charger_temp_max", "usbin_i", "usbin_v";
+                                       qcom,boost-threshold-ua = <0x186a0>;
+                                       qcom,wipower-max-uw = <0x4c4b40>;
+                                       dpdm-supply = <0xaf>;
+                                       qcom,thermal-mitigation = <0x1b7740 0x186a00 0x155cc0 0x124f80 0xf4240 0xf4240 0xf4240>;
+                                       qcom,auto-recharge-soc;
+                                       qcom,suspend-input-on-debug-batt;
+                                       qcom,usb-icl-ua = <0x2ab980>;
+                                       qcom,fcc-max-ua = <0x325aa0>;
+                                       qcom,fcc-low-temp-delta = <0x2d5190>;
+                                       qcom,fcc-hot-temp-delta = <0x192d50>;
+                                       qcom,fcc-cool-temp-delta = <0x233f70>;
+                                       qcom,sw-jeita-enable;
+                                       qcom,dynamic-fv-enable;
+                                       qcom,thermal-mitigation-dcp = <0x1b7740 0x1b7740 0x1b7740 0x1b7740 0x1b7740 0x1b7740 0x1b7740 0x1b7740 0x1b7740 0x1b7740 0x1b7740 0x1b7740 0x186a00 0x155cc0 0x124f80 0xf4240>;
+                                       qcom,thermal-mitigation-qc3 = <0x2ab980 0x299488 0x274a98 0x2500a8 0x22b6b8 0x206cc8 0x1e8480 0x1b7740 0x192d50 0x16e360 0x14c080 0x124f80 0x102ca0 0xdbba0 0xb7b74 0x802c8>;
+                                       qcom,thermal-mitigation-qc2 = <0x18cba8 0x18cba8 0x18cba8 0x18cba8 0x18cba8 0x174508 0x15be68 0x1437c8 0x12b128 0x112a88 0x9c7a98 0xe1d48 0xc96a8 0xb1008 0x98968 0x802c8>;
+                                       qcom,thermal-mitigation-pd-base = <0x2dc6c0 0x2ab980 0x27ac40 0x249f00 0x2191c0 0x1e8480 0x1b7740 0x186a00 0x186a00 0x155cc0 0x124f80 0x10c8e0 0xf4240 0xdbba0 0xb7b74 0x802c8>;
+
+                                       qcom,chgr@1000 {
+                                               reg = <0x1000 0x100>;
+                                               interrupts = <0x2 0x10 0x0 0x1 0x2 0x10 0x1 0x1 0x2 0x10 0x2 0x1 0x2 0x10 0x3 0x1 0x2 0x10 0x4 0x1>;
+                                               interrupt-names = "chg-error", "chg-state-change", "step-chg-state-change", "step-chg-soc-update-fail", "step-chg-soc-update-request";
+                                       };
+
+                                       qcom,otg@1100 {
+                                               reg = <0x1100 0x100>;
+                                               interrupts = <0x2 0x11 0x0 0x3 0x2 0x11 0x1 0x3 0x2 0x11 0x2 0x3 0x2 0x11 0x3 0x3>;
+                                               interrupt-names = "otg-fail", "otg-overcurrent", "otg-oc-dis-sw-sts", "testmode-change-detect";
+                                       };
+
+                                       qcom,bat-if@1200 {
+                                               reg = <0x1200 0x100>;
+                                               interrupts = <0x2 0x12 0x0 0x1 0x2 0x12 0x1 0x3 0x2 0x12 0x2 0x3 0x2 0x12 0x3 0x3 0x2 0x12 0x4 0x3 0x2 0x12 0x5 0x3>;
+                                               interrupt-names = "bat-temp", "bat-ocp", "bat-ov", "bat-low", "bat-therm-or-id-missing", "bat-terminal-missing";
+                                       };
+
+                                       qcom,usb-chgpth@1300 {
+                                               reg = <0x1300 0x100>;
+                                               interrupts = <0x2 0x13 0x0 0x3 0x2 0x13 0x1 0x3 0x2 0x13 0x2 0x3 0x2 0x13 0x3 0x3 0x2 0x13 0x4 0x3 0x2 0x13 0x5 0x1 0x2 0x13 0x6 0x1 0x2 0x13 0x7 0x1>;
+                                               interrupt-names = "usbin-collapse", "usbin-lt-3p6v", "usbin-uv", "usbin-ov", "usbin-plugin", "usbin-src-change", "usbin-icl-change", "type-c-change";
+                                       };
+
+                                       qcom,dc-chgpth@1400 {
+                                               reg = <0x1400 0x100>;
+                                               interrupts = <0x2 0x14 0x0 0x3 0x2 0x14 0x1 0x3 0x2 0x14 0x2 0x3 0x2 0x14 0x3 0x3 0x2 0x14 0x4 0x3 0x2 0x14 0x5 0x3 0x2 0x14 0x6 0x1>;
+                                               interrupt-names = "dcin-collapse", "dcin-lt-3p6v", "dcin-uv", "dcin-ov", "dcin-plugin", "div2-en-dg", "dcin-icl-change";
+                                       };
+
+                                       qcom,chgr-misc@1600 {
+                                               reg = <0x1600 0x100>;
+                                               interrupts = <0x2 0x16 0x0 0x1 0x2 0x16 0x1 0x1 0x2 0x16 0x2 0x3 0x2 0x16 0x3 0x3 0x2 0x16 0x4 0x3 0x2 0x16 0x5 0x3 0x2 0x16 0x6 0x2 0x2 0x16 0x7 0x3>;
+                                               interrupt-names = "wdog-snarl", "wdog-bark", "aicl-fail", "aicl-done", "high-duty-cycle", "input-current-limiting", "temperature-change", "switcher-power-ok";
+                                       };
+
+                                       qcom,smb2-vconn {
+                                               regulator-name = "smb2-vconn";
+                                               linux,phandle = <0xb2>;
+                                               phandle = <0xb2>;
+                                       };
+
+                                       qcom,smb2-vbus {
+                                               regulator-name = "smb2-vbus";
+                                               linux,phandle = <0xb1>;
+                                               phandle = <0xb1>;
+                                       };
+                               };
+
+                               qcom,usb-pdphy@1700 {
+                                       compatible = "qcom,qpnp-pdphy";
+                                       reg = <0x1700 0x100>;
+                                       vdd-pdphy-supply = <0xb0>;
+                                       vbus-supply = <0xb1>;
+                                       vconn-supply = <0xb2>;
+                                       interrupts = <0x2 0x17 0x0 0x1 0x2 0x17 0x1 0x1 0x2 0x17 0x2 0x1 0x2 0x17 0x3 0x1 0x2 0x17 0x4 0x1 0x2 0x17 0x5 0x1 0x2 0x17 0x6 0x1>;
+                                       interrupt-names = "sig-tx", "sig-rx", "msg-tx", "msg-rx", "msg-tx-failed", "msg-tx-discarded", "msg-rx-discarded";
+                                       qcom,default-sink-caps = <0x1388 0xbb8 0x2328 0xbb8 0x2ee0 0x8ca>;
+                                       mi,limit_pd_vbus = <0x1>;
+                                       mi,pd_vbus_max_limit = <0x895440>;
+                                       linux,phandle = <0x38>;
+                                       phandle = <0x38>;
+                               };
+
+                               bcl@4200 {
+                                       compatible = "qcom,msm-bcl-lmh";
+                                       reg = <0x4200 0xff 0x4300 0xff>;
+                                       reg-names = "fg_user_adc", "fg_lmh";
+                                       interrupts = <0x2 0x42 0x0 0x0 0x2 0x42 0x1 0x0 0x2 0x42 0x2 0x0 0x2 0x42 0x3 0x0 0x2 0x42 0x4 0x0>;
+                                       interrupt-names = "bcl-high-ibat", "bcl-very-high-ibat", "bcl-low-vbat", "bcl-very-low-vbat", "bcl-crit-low-vbat";
+                                       #thermal-sensor-cells = <0x1>;
+                                       linux,phandle = <0x178>;
+                                       phandle = <0x178>;
+                               };
+
+                               rradc@4500 {
+                                       compatible = "qcom,rradc";
+                                       reg = <0x4500 0x100>;
+                                       #address-cells = <0x1>;
+                                       #size-cells = <0x0>;
+                                       #io-channel-cells = <0x1>;
+                                       qcom,pmic-revid = <0xad>;
+                                       linux,phandle = <0x83>;
+                                       phandle = <0x83>;
+                               };
+
+                               qpnp,fg {
+                                       compatible = "qcom,fg-gen3";
+                                       #address-cells = <0x1>;
+                                       #size-cells = <0x1>;
+                                       qcom,pmic-revid = <0xad>;
+                                       io-channels = <0x83 0x0>;
+                                       io-channel-names = "rradc_batt_id";
+                                       qcom,rradc-base = <0x4500>;
+                                       qcom,fg-esr-timer-awake = <0x60 0x60>;
+                                       qcom,fg-esr-timer-asleep = <0x100 0x100>;
+                                       qcom,fg-esr-timer-charging = <0x0 0x60>;
+                                       qcom,cycle-counter-en;
+                                       qcom,fg-auto-recharge-soc;
+                                       qcom,fg-recharge-soc-thr = <0x63>;
+                                       status = "okay";
+                                       qcom,fg-force-load-profile;
+                                       qcom,fg-sys-term-current = <0xfffffed4>;
+                                       qcom,fg-chg-term-current = <0xc8>;
+                                       qcom,fg-cutoff-voltage = <0xd48>;
+                                       qcom,fg-cutoff-current = <0xc8>;
+                                       qcom,fg-empty-voltage = <0xc1c>;
+                                       qcom,fg-jeita-hyst-temp = <0x2>;
+                                       qcom,fg-jeita-thresholds = <0x0 0xf 0x2d 0x3c>;
+                                       qcom,fg-esr-clamp-mohms = <0x3c>;
+                                       qcom,fg-batt-temp-delta = <0x6>;
+                                       qcom,battery-data = <0xb3>;
+                                       qcom,slope-limit-temp-threshold = <0x64>;
+                                       qcom,slope-limit-coeffs = <0xa 0xb 0xc 0xd>;
+
+                                       qcom,fg-batt-soc@4000 {
+                                               status = "okay";
+                                               reg = <0x4000 0x100>;
+                                               interrupts = <0x2 0x40 0x0 0x3 0x2 0x40 0x1 0x3 0x2 0x40 0x2 0x1 0x2 0x40 0x3 0x1 0x2 0x40 0x4 0x3 0x2 0x40 0x5 0x1 0x2 0x40 0x6 0x3 0x2 0x40 0x7 0x3>;
+                                               interrupt-names = "soc-update", "soc-ready", "bsoc-delta", "msoc-delta", "msoc-low", "msoc-empty", "msoc-high", "msoc-full";
+                                       };
+
+                                       qcom,fg-batt-info@4100 {
+                                               status = "okay";
+                                               reg = <0x4100 0x100>;
+                                               interrupts = <0x2 0x41 0x0 0x3 0x2 0x41 0x1 0x3 0x2 0x41 0x2 0x3 0x2 0x41 0x3 0x3 0x2 0x41 0x6 0x3>;
+                                               interrupt-names = "vbatt-pred-delta", "vbatt-low", "esr-delta", "batt-missing", "batt-temp-delta";
+                                       };
+
+                                       qcom,fg-memif@4400 {
+                                               status = "okay";
+                                               reg = <0x4400 0x100>;
+                                               interrupts = <0x2 0x44 0x0 0x3 0x2 0x44 0x1 0x3 0x2 0x44 0x2 0x1>;
+                                               interrupt-names = "ima-rdy", "mem-xcp", "dma-grant";
+                                       };
+                               };
+                       };
+
+                       qcom,pmi8998@3 {
+                               compatible = "qcom,spmi-pmic";
+                               reg = <0x3 0x0>;
+                               #address-cells = <0x2>;
+                               #size-cells = <0x0>;
+
+                               pwm@b100 {
+                                       compatible = "qcom,qpnp-pwm";
+                                       reg = <0xb100 0x100 0xb042 0x7e>;
+                                       reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base";
+                                       qcom,lpg-lut-size = <0x7e>;
+                                       qcom,channel-id = <0x1>;
+                                       qcom,supported-sizes = <0x6 0x9>;
+                                       qcom,ramp-index = <0x0>;
+                                       #pwm-cells = <0x2>;
+                                       status = "okay";
+                                       qcom,period = <0x61a8>;
+                                       linux,phandle = <0x8a>;
+                                       phandle = <0x8a>;
+
+                                       qcom,pwm {
+                                               label = "pwm";
+                                               qcom,duty = <0x9c4>;
+                                       };
+                               };
+
+                               pwm@b200 {
+                                       compatible = "qcom,qpnp-pwm";
+                                       reg = <0xb200 0x100 0xb042 0x7e>;
+                                       reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base";
+                                       qcom,lpg-lut-size = <0x7e>;
+                                       qcom,channel-id = <0x2>;
+                                       qcom,supported-sizes = <0x6 0x9>;
+                                       qcom,ramp-index = <0x1>;
+                                       #pwm-cells = <0x2>;
+                                       status = "disabled";
+                               };
+
+                               pwm@b300 {
+                                       compatible = "qcom,qpnp-pwm";
+                                       reg = <0xb300 0x100 0xb042 0x7e>;
+                                       reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base";
+                                       qcom,lpg-lut-size = <0x7e>;
+                                       qcom,channel-id = <0x3>;
+                                       qcom,supported-sizes = <0x6 0x9>;
+                                       qcom,ramp-index = <0x2>;
+                                       #pwm-cells = <0x2>;
+                                       linux,phandle = <0xb6>;
+                                       phandle = <0xb6>;
+                               };
+
+                               pwm@b400 {
+                                       compatible = "qcom,qpnp-pwm";
+                                       reg = <0xb400 0x100 0xb042 0x7e>;
+                                       reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base";
+                                       qcom,lpg-lut-size = <0x7e>;
+                                       qcom,channel-id = <0x4>;
+                                       qcom,supported-sizes = <0x6 0x9>;
+                                       qcom,ramp-index = <0x3>;
+                                       #pwm-cells = <0x2>;
+                                       linux,phandle = <0xb5>;
+                                       phandle = <0xb5>;
+                               };
+
+                               pwm@b500 {
+                                       compatible = "qcom,qpnp-pwm";
+                                       reg = <0xb500 0x100 0xb042 0x7e>;
+                                       reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base";
+                                       qcom,lpg-lut-size = <0x7e>;
+                                       qcom,channel-id = <0x5>;
+                                       qcom,supported-sizes = <0x6 0x9>;
+                                       qcom,ramp-index = <0x4>;
+                                       #pwm-cells = <0x2>;
+                                       linux,phandle = <0xb4>;
+                                       phandle = <0xb4>;
+                               };
+
+                               pwm@b600 {
+                                       compatible = "qcom,qpnp-pwm";
+                                       reg = <0xb600 0x100 0xb042 0x7e>;
+                                       reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base";
+                                       qcom,lpg-lut-size = <0x7e>;
+                                       qcom,channel-id = <0x6>;
+                                       qcom,supported-sizes = <0x6 0x9>;
+                                       qcom,ramp-index = <0x5>;
+                                       #pwm-cells = <0x2>;
+                                       status = "disabled";
+                               };
+
+                               qcom,leds@d000 {
+                                       compatible = "qcom,leds-qpnp";
+                                       reg = <0xd000 0x100>;
+                                       label = "rgb";
+                                       status = "okay";
+
+                                       qcom,rgb_0 {
+                                               label = "rgb";
+                                               qcom,id = <0x3>;
+                                               qcom,mode = "pwm";
+                                               pwms = <0xb4 0x0 0x0>;
+                                               qcom,pwm-us = <0x3e8>;
+                                               qcom,max-current = <0xc>;
+                                               qcom,default-state = "off";
+                                               linux,name = "white";
+                                               qcom,start-idx = <0x1>;
+                                               qcom,idx-len = <0x8>;
+                                               qcom,duty-pcts = <0x10203 0x3020100>;
+                                               qcom,lut-flags = <0x3>;
+                                               qcom,pause-lo = <0x0>;
+                                               qcom,pause-hi = <0x0>;
+                                               qcom,ramp-step-ms = <0xff>;
+                                               qcom,use-blink;
+                                               status = "okay";
+                                       };
+
+                                       qcom,rgb_1 {
+                                               label = "rgb";
+                                               qcom,id = <0x4>;
+                                               qcom,mode = "pwm";
+                                               pwms = <0xb5 0x0 0x0>;
+                                               qcom,pwm-us = <0x3e8>;
+                                               qcom,max-current = <0xc>;
+                                               qcom,default-state = "off";
+                                               linux,name = "green";
+                                               status = "disabled";
+                                       };
+
+                                       qcom,rgb_2 {
+                                               label = "rgb";
+                                               qcom,id = <0x5>;
+                                               qcom,mode = "pwm";
+                                               pwms = <0xb6 0x0 0x0>;
+                                               qcom,pwm-us = <0x3e8>;
+                                               qcom,max-current = <0xc>;
+                                               qcom,default-state = "off";
+                                               linux,name = "blue";
+                                               status = "disabled";
+                                       };
+                               };
+
+                               qpnp-labibb-regulator {
+                                       compatible = "qcom,qpnp-labibb-regulator";
+                                       #address-cells = <0x1>;
+                                       #size-cells = <0x1>;
+                                       qcom,pmic-revid = <0xad>;
+                                       status = "disabled";
+
+                                       qcom,ibb@dc00 {
+                                               reg = <0xdc00 0x100>;
+                                               reg-names = "ibb_reg";
+                                               regulator-name = "ibb_reg";
+                                               regulator-min-microvolt = <0x4630c0>;
+                                               regulator-max-microvolt = <0x5b8d80>;
+                                               interrupts = <0x3 0xdc 0x2 0x1>;
+                                               interrupt-names = "ibb-sc-err";
+                                               qcom,qpnp-ibb-min-voltage = <0x155cc0>;
+                                               qcom,qpnp-ibb-step-size = <0x186a0>;
+                                               qcom,qpnp-ibb-slew-rate = <0x1e8480>;
+                                               qcom,qpnp-ibb-use-default-voltage;
+                                               qcom,qpnp-ibb-init-voltage = <0x53ec60>;
+                                               qcom,qpnp-ibb-init-amoled-voltage = <0x3d0900>;
+                                               qcom,qpnp-ibb-init-lcd-voltage = <0x53ec60>;
+                                               qcom,qpnp-ibb-soft-start = <0x3e8>;
+                                               qcom,qpnp-ibb-lab-pwrup-delay = <0x1f40>;
+                                               qcom,qpnp-ibb-lab-pwrdn-delay = <0x1f40>;
+                                               qcom,qpnp-ibb-en-discharge;
+                                               qcom,qpnp-ibb-full-pull-down;
+                                               qcom,qpnp-ibb-pull-down-enable;
+                                               qcom,qpnp-ibb-switching-clock-frequency = <0x5c8>;
+                                               qcom,qpnp-ibb-limit-maximum-current = <0x60e>;
+                                               qcom,qpnp-ibb-debounce-cycle = <0x10>;
+                                               qcom,qpnp-ibb-limit-max-current-enable;
+                                               qcom,qpnp-ibb-ps-enable;
+                                               qcom,qpnp-ibb-discharge-resistor = <0x12c>;
+                                               linux,phandle = <0x34c>;
+                                               phandle = <0x34c>;
+                                       };
+
+                                       qcom,lab@de00 {
+                                               reg = <0xde00 0x100>;
+                                               reg-names = "lab";
+                                               regulator-name = "lab_reg";
+                                               regulator-min-microvolt = <0x4630c0>;
+                                               regulator-max-microvolt = <0x5b8d80>;
+                                               interrupts = <0x3 0xde 0x0 0x1 0x3 0xde 0x1 0x1>;
+                                               interrupt-names = "lab-vreg-ok", "lab-sc-err";
+                                               qcom,qpnp-lab-min-voltage = <0x4630c0>;
+                                               qcom,qpnp-lab-step-size = <0x186a0>;
+                                               qcom,qpnp-lab-slew-rate = <0x1388>;
+                                               qcom,qpnp-lab-use-default-voltage;
+                                               qcom,qpnp-lab-init-voltage = <0x53ec60>;
+                                               qcom,qpnp-lab-init-amoled-voltage = <0x4630c0>;
+                                               qcom,qpnp-lab-init-lcd-voltage = <0x53ec60>;
+                                               qcom,qpnp-lab-soft-start = <0x320>;
+                                               qcom,qpnp-lab-full-pull-down;
+                                               qcom,qpnp-lab-pull-down-enable;
+                                               qcom,qpnp-lab-switching-clock-frequency = <0x640>;
+                                               qcom,qpnp-lab-limit-maximum-current = <0x640>;
+                                               qcom,qpnp-lab-limit-max-current-enable;
+                                               qcom,qpnp-lab-ps-threshold = <0x46>;
+                                               qcom,qpnp-lab-ps-enable;
+                                               qcom,qpnp-lab-nfet-size = <0x64>;
+                                               qcom,qpnp-lab-pfet-size = <0x64>;
+                                               qcom,qpnp-lab-max-precharge-time = <0x1f4>;
+                                               linux,phandle = <0x34b>;
+                                               phandle = <0x34b>;
+                                       };
+                               };
+
+                               qcom,leds@d800 {
+                                       compatible = "qcom,qpnp-wled";
+                                       reg = <0xd800 0x100 0xd900 0x100>;
+                                       reg-names = "qpnp-wled-ctrl-base", "qpnp-wled-sink-base";
+                                       interrupts = <0x3 0xd8 0x1 0x1 0x3 0xd8 0x2 0x1>;
+                                       interrupt-names = "ovp-irq", "sc-irq";
+                                       linux,name = "wled";
+                                       linux,default-trigger = "bkl-trigger";
+                                       qcom,fdbk-output = "auto";
+                                       qcom,vref-uv = <0x1f20c>;
+                                       qcom,switch-freq-khz = <0x320>;
+                                       qcom,ovp-mv = <0x73a0>;
+                                       qcom,ilim-ma = <0x3ca>;
+                                       qcom,boost-duty-ns = <0x1a>;
+                                       qcom,mod-freq-khz = <0x2580>;
+                                       qcom,dim-mode = "hybrid";
+                                       qcom,hyb-thres = <0x271>;
+                                       qcom,sync-dly-us = <0x320>;
+                                       qcom,fs-curr-ua = <0x61a8>;
+                                       qcom,cons-sync-write-delay-us = <0x3e8>;
+                                       qcom,led-strings-list = <0x10203>;
+                                       qcom,en-ext-pfet-sc-pro;
+                                       qcom,pmic-revid = <0xad>;
+                                       qcom,loop-auto-gm-en;
+                                       status = "disabled";
+                               };
+
+                               qcom,leds@d300 {
+                                       compatible = "qcom,qpnp-flash-led-v2";
+                                       status = "okay";
+                                       reg = <0xd300 0x100>;
+                                       label = "flash";
+                                       interrupts = <0x3 0xd3 0x0 0x1 0x3 0xd3 0x3 0x1 0x3 0xd3 0x4 0x1>;
+                                       interrupt-names = "led-fault-irq", "all-ramp-down-done-irq", "all-ramp-up-done-irq";
+                                       qcom,hdrm-auto-mode;
+                                       qcom,short-circuit-det;
+                                       qcom,open-circuit-det;
+                                       qcom,vph-droop-det;
+                                       qcom,thermal-derate-en;
+                                       qcom,thermal-derate-current = <0xc8 0x1f4 0x3e8>;
+                                       qcom,isc-delay = <0xc0>;
+                                       qcom,pmic-revid = <0xad>;
+
+                                       qcom,flash_0 {
+                                               label = "flash";
+                                               qcom,led-name = "led:flash_0";
+                                               qcom,max-current = <0x5dc>;
+                                               qcom,default-led-trigger = "flash0_trigger";
+                                               qcom,id = <0x0>;
+                                               qcom,current-ma = <0x3e8>;
+                                               qcom,duration-ms = <0x500>;
+                                               qcom,ires-ua = <0x30d4>;
+                                               qcom,hdrm-voltage-mv = <0x145>;
+                                               qcom,hdrm-vol-hi-lo-win-mv = <0x64>;
+                                               linux,phandle = <0x373>;
+                                               phandle = <0x373>;
+                                       };
+
+                                       qcom,flash_1 {
+                                               label = "flash";
+                                               qcom,led-name = "led:flash_1";
+                                               qcom,max-current = <0x5dc>;
+                                               qcom,default-led-trigger = "flash1_trigger";
+                                               qcom,id = <0x1>;
+                                               qcom,current-ma = <0x3e8>;
+                                               qcom,duration-ms = <0x500>;
+                                               qcom,ires-ua = <0x30d4>;
+                                               qcom,hdrm-voltage-mv = <0x145>;
+                                               qcom,hdrm-vol-hi-lo-win-mv = <0x64>;
+                                               linux,phandle = <0x374>;
+                                               phandle = <0x374>;
+                                       };
+
+                                       qcom,flash_2 {
+                                               label = "flash";
+                                               qcom,led-name = "led:flash_2";
+                                               qcom,max-current = <0x2ee>;
+                                               qcom,default-led-trigger = "flash2_trigger";
+                                               qcom,id = <0x2>;
+                                               qcom,current-ma = <0x1f4>;
+                                               qcom,duration-ms = <0x500>;
+                                               qcom,ires-ua = <0x30d4>;
+                                               qcom,hdrm-voltage-mv = <0x145>;
+                                               qcom,hdrm-vol-hi-lo-win-mv = <0x64>;
+                                       };
+
+                                       qcom,torch_0 {
+                                               label = "torch";
+                                               qcom,led-name = "led:torch_0";
+                                               qcom,max-current = <0x12c>;
+                                               qcom,default-led-trigger = "torch0_trigger";
+                                               qcom,id = <0x0>;
+                                               qcom,current-ma = <0x4b>;
+                                               qcom,ires-ua = <0x30d4>;
+                                               qcom,hdrm-voltage-mv = <0x145>;
+                                               qcom,hdrm-vol-hi-lo-win-mv = <0x64>;
+                                               linux,phandle = <0x375>;
+                                               phandle = <0x375>;
+                                       };
+
+                                       qcom,torch_1 {
+                                               label = "torch";
+                                               qcom,led-name = "led:torch_1";
+                                               qcom,max-current = <0x12c>;
+                                               qcom,default-led-trigger = "torch1_trigger";
+                                               qcom,id = <0x1>;
+                                               qcom,current-ma = <0x4b>;
+                                               qcom,ires-ua = <0x30d4>;
+                                               qcom,hdrm-voltage-mv = <0x145>;
+                                               qcom,hdrm-vol-hi-lo-win-mv = <0x64>;
+                                               linux,phandle = <0x376>;
+                                               phandle = <0x376>;
+                                       };
+
+                                       qcom,torch_2 {
+                                               label = "torch";
+                                               qcom,led-name = "led:torch_2";
+                                               qcom,max-current = <0x1f4>;
+                                               qcom,default-led-trigger = "torch2_trigger";
+                                               qcom,id = <0x2>;
+                                               qcom,current-ma = <0x12c>;
+                                               qcom,ires-ua = <0x30d4>;
+                                               qcom,hdrm-voltage-mv = <0x145>;
+                                               qcom,hdrm-vol-hi-lo-win-mv = <0x64>;
+                                       };
+
+                                       qcom,led_switch_0 {
+                                               label = "switch";
+                                               qcom,led-name = "led:switch_0";
+                                               qcom,led-mask = <0x3>;
+                                               qcom,default-led-trigger = "switch0_trigger";
+                                               linux,phandle = <0x377>;
+                                               phandle = <0x377>;
+                                       };
+
+                                       qcom,led_switch_1 {
+                                               label = "switch";
+                                               qcom,led-name = "led:switch_1";
+                                               qcom,led-mask = <0x4>;
+                                               qcom,default-led-trigger = "switch1_trigger";
+                                       };
+
+                                       qcom,led_switch_2 {
+                                               label = "switch";
+                                               qcom,led-name = "led:switch_2";
+                                               qcom,led-mask = <0x4>;
+                                               qcom,default-led-trigger = "switch2_trigger";
+                                               pinctrl-names = "led_enable", "led_disable";
+                                               pinctrl-0 = <0xb7>;
+                                               pinctrl-1 = <0xb8>;
+                                       };
+
+                                       qcom,flashlight {
+                                               label = "flash";
+                                               qcom,led-name = "flashlight";
+                                               qcom,max-current = <0x2ee>;
+                                               qcom,default-led-trigger = "flashlight_trigger";
+                                               qcom,id = <0x3>;
+                                               qcom,current-ma = <0x1f4>;
+                                               qcom,duration-ms = <0x500>;
+                                               qcom,ires-ua = <0x30d4>;
+                                               qcom,hdrm-voltage-mv = <0x145>;
+                                               qcom,hdrm-vol-hi-lo-win-mv = <0x64>;
+                                       };
+                               };
+
+                               qcom,haptics@c000 {
+                                       compatible = "qcom,qpnp-haptics";
+                                       reg = <0xc000 0x100>;
+                                       interrupts = <0x3 0xc0 0x0 0x3 0x3 0xc0 0x1 0x3>;
+                                       interrupt-names = "hap-sc-irq", "hap-play-irq";
+                                       qcom,pmic-revid = <0xad>;
+                                       qcom,pmic-misc = <0xb9>;
+                                       qcom,misc-clk-trim-error-reg = <0xf3>;
+                                       qcom,actuator-type = <0x0>;
+                                       qcom,play-mode = "buffer";
+                                       qcom,vmax-mv = <0xc1c>;
+                                       qcom,ilim-ma = <0x320>;
+                                       qcom,sc-dbc-cycles = <0x8>;
+                                       qcom,wave-play-rate-us = <0x130e>;
+                                       qcom,en-brake;
+                                       qcom,lra-high-z = "opt1";
+                                       qcom,lra-auto-res-mode = "qwd";
+                                       qcom,lra-res-cal-period = <0x4>;
+                                       status = "okay";
+                                       qcom,lra-auto-mode;
+                                       qcom,overdrive;
+                                       qcom,wave-shape = "sine";
+                                       qcom,effect-max = <0x3>;
+                                       qcom,effect-arry = <0x3e3ebe00 0x0 0x3e3e3e3e 0xbebea000 0x3e3e3e3e 0x3ebebebe>;
+                               };
+                       };
+               };
+
+               qcom,spmi-debug@6b22000 {
+                       compatible = "qcom,spmi-pmic-arb-debug";
+                       reg = <0x6b22000 0x60 0x7820a8 0x4>;
+                       reg-names = "core", "fuse";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "core_clk";
+                       qcom,fuse-disable-bit = <0xc>;
+                       #address-cells = <0x2>;
+                       #size-cells = <0x0>;
+
+                       qcom,pm8998-debug@0 {
+                               compatible = "qcom,spmi-pmic";
+                               reg = <0x0 0x0>;
+                               #address-cells = <0x2>;
+                               #size-cells = <0x0>;
+                               qcom,can-sleep;
+                       };
+
+                       qcom,pm8998-debug@1 {
+                               compatible = "qcom,spmi-pmic";
+                               reg = <0x1 0x0>;
+                               #address-cells = <0x2>;
+                               #size-cells = <0x0>;
+                               qcom,can-sleep;
+                       };
+
+                       qcom,pmi8998-debug@2 {
+                               compatible = "qcom,spmi-pmic";
+                               reg = <0x2 0x0>;
+                               #address-cells = <0x2>;
+                               #size-cells = <0x0>;
+                               qcom,can-sleep;
+                       };
+
+                       qcom,pmi8998-debug@3 {
+                               compatible = "qcom,spmi-pmic";
+                               reg = <0x3 0x0>;
+                               #address-cells = <0x2>;
+                               #size-cells = <0x0>;
+                               qcom,can-sleep;
+                       };
+
+                       qcom,pm8005-debug@4 {
+                               compatible = "qcom,spmi-pmic";
+                               reg = <0x4 0x0>;
+                               #address-cells = <0x2>;
+                               #size-cells = <0x0>;
+                               qcom,can-sleep;
+                       };
+
+                       qcom,pm8005-debug@5 {
+                               compatible = "qcom,spmi-pmic";
+                               reg = <0x5 0x0>;
+                               #address-cells = <0x2>;
+                               #size-cells = <0x0>;
+                               qcom,can-sleep;
+                       };
+               };
+
+               qcom,cpubw {
+                       compatible = "qcom,devbw";
+                       governor = "performance";
+                       qcom,src-dst-ports = <0x1 0x302>;
+                       qcom,active-only;
+                       qcom,bw-tbl = <0x8f0 0x11e1 0x1964 0x1fc4 0x23c3 0x300a 0x379c>;
+                       linux,phandle = <0xba>;
+                       phandle = <0xba>;
+               };
+
+               qcom,cpu-bwmon {
+                       compatible = "qcom,bimc-bwmon4";
+                       reg = <0x1436400 0x300 0x1436300 0x200>;
+                       reg-names = "base", "global_base";
+                       interrupts = <0x0 0x245 0x4>;
+                       qcom,mport = <0x0>;
+                       qcom,hw-timer-hz = <0x124f800>;
+                       qcom,target-dev = <0xba>;
+                       qcom,count-unit = <0x10000>;
+               };
+
+               qcom,llccbw {
+                       compatible = "qcom,devbw";
+                       governor = "performance";
+                       qcom,src-dst-ports = <0x81 0x200>;
+                       qcom,active-only;
+                       qcom,bw-tbl = <0x2fa 0x478 0x6b8 0x826 0xa25 0xb71 0xf27 0x134f 0x172b 0x1ae1>;
+                       linux,phandle = <0xbb>;
+                       phandle = <0xbb>;
+               };
+
+               qcom,llcc-bwmon {
+                       compatible = "qcom,bimc-bwmon5";
+                       reg = <0x114a000 0x1000>;
+                       reg-names = "base";
+                       interrupts = <0x0 0x244 0x4>;
+                       qcom,hw-timer-hz = <0x124f800>;
+                       qcom,target-dev = <0xbb>;
+                       qcom,count-unit = <0x400000>;
+                       qcom,byte-mid-mask = <0xe000>;
+                       qcom,byte-mid-match = <0xe000>;
+               };
+
+               qcom,memlat-cpu0 {
+                       compatible = "qcom,devbw";
+                       governor = "powersave";
+                       qcom,src-dst-ports = <0x1 0x200>;
+                       qcom,active-only;
+                       qcom,bw-tbl = <0x2fa 0x478 0x6b8 0x826 0xa25 0xb71 0xf27 0x134f 0x172b 0x1ae1>;
+                       linux,phandle = <0xbc>;
+                       phandle = <0xbc>;
+               };
+
+               qcom,memlat-cpu4 {
+                       compatible = "qcom,devbw";
+                       governor = "powersave";
+                       qcom,src-dst-ports = <0x1 0x200>;
+                       qcom,active-only;
+                       status = "ok";
+                       qcom,bw-tbl = <0x2fa 0x478 0x6b8 0x826 0xa25 0xb71 0xf27 0x134f 0x172b 0x1ae1>;
+                       linux,phandle = <0xbd>;
+                       phandle = <0xbd>;
+               };
+
+               qcom,snoc_cnoc_keepalive {
+                       compatible = "qcom,devbw";
+                       governor = "powersave";
+                       qcom,src-dst-ports = <0x8b 0x273>;
+                       qcom,active-only;
+                       status = "ok";
+                       qcom,bw-tbl = <0x1>;
+               };
+
+               qcom,cpu0-memlat-mon {
+                       compatible = "qcom,arm-memlat-mon";
+                       qcom,cpulist = <0x11 0x12 0x13 0x14>;
+                       qcom,target-dev = <0xbc>;
+                       qcom,cachemiss-ev = <0x2a>;
+                       qcom,core-dev-table = <0x493e0 0x2fa 0xb6d00 0x6b8 0x114900 0x826 0x15f900 0xb71 0x185100 0xf27>;
+               };
+
+               qcom,cpu4-memlat-mon {
+                       compatible = "qcom,arm-memlat-mon";
+                       qcom,cpulist = <0x15 0x16 0x17 0x18>;
+                       qcom,target-dev = <0xbd>;
+                       qcom,cachemiss-ev = <0x2a>;
+                       qcom,core-dev-table = <0x493e0 0x2fa 0x79e00 0x6b8 0xc4e00 0x826 0xfd200 0xb71 0x122a00 0xf27 0x180600 0x134f 0x1a5e00 0x172b 0x1de200 0x1ae1>;
+               };
+
+               qcom,l3-cpu0 {
+                       compatible = "devfreq-simple-dev";
+                       clock-names = "devfreq_clk";
+                       clocks = <0xbe 0x3>;
+                       governor = "performance";
+                       linux,phandle = <0xbf>;
+                       phandle = <0xbf>;
+               };
+
+               qcom,l3-cpu4 {
+                       compatible = "devfreq-simple-dev";
+                       clock-names = "devfreq_clk";
+                       clocks = <0xbe 0x4>;
+                       governor = "performance";
+                       linux,phandle = <0xc0>;
+                       phandle = <0xc0>;
+               };
+
+               qcom,cpu0-l3lat-mon {
+                       compatible = "qcom,arm-memlat-mon";
+                       qcom,cpulist = <0x11 0x12 0x13 0x14>;
+                       qcom,target-dev = <0xbf>;
+                       qcom,cachemiss-ev = <0x17>;
+                       qcom,core-dev-table = <0x493e0 0x11e1a300 0x75300 0x18085800 0x9f600 0x1c9c3800 0xb6d00 0x22551000 0xdc500 0x26e8f000 0xef100 0x2ca1c800 0x114900 0x325aa000 0x12c000 0x38137800 0x143700 0x3dcc5000 0x15ae00 0x43852800 0x172500 0x48190800 0x19c800 0x4dd1e000 0x1af400 0x538ab800>;
+               };
+
+               qcom,cpu4-l3lat-mon {
+                       compatible = "qcom,arm-memlat-mon";
+                       qcom,cpulist = <0x15 0x16 0x17 0x18>;
+                       qcom,target-dev = <0xc0>;
+                       qcom,cachemiss-ev = <0x17>;
+                       qcom,core-dev-table = <0x493e0 0x11e1a300 0xc9900 0x22551000 0x114900 0x2ca1c800 0x14cd00 0x38137800 0x19c800 0x48190800 0x1e7800 0x4dd1e000 0x249f00 0x538ab800 0x29e500 0x5efc6800>;
+               };
+
+               qcom,l3-cdsp {
+                       compatible = "devfreq-simple-dev";
+                       clock-names = "devfreq_clk";
+                       clocks = <0xbe 0xd>;
+                       governor = "powersave";
+                       linux,phandle = <0xd7>;
+                       phandle = <0xd7>;
+               };
+
+               cpu-pmu {
+                       compatible = "arm,armv8-pmuv3";
+                       qcom,irq-is-percpu;
+                       interrupts = <0x1 0x5 0x4>;
+               };
+
+               qcom,mincpubw {
+                       compatible = "qcom,devbw";
+                       governor = "powersave";
+                       qcom,src-dst-ports = <0x1 0x200>;
+                       qcom,active-only;
+                       qcom,bw-tbl = <0x2fa 0x478 0x6b8 0x826 0xa25 0xb71 0xf27 0x134f 0x172b 0x1ae1>;
+                       linux,phandle = <0xc1>;
+                       phandle = <0xc1>;
+               };
+
+               devfreq-cpufreq {
+
+                       mincpubw-cpufreq {
+                               target-dev = <0xc1>;
+                               cpu-to-dev-map-0 = <0x1a1300 0x2fa>;
+                               cpu-to-dev-map-4 = <0x1cb600 0x2fa 0x249f00 0xf27>;
+                       };
+               };
+
+               qcom,devfreq-compute {
+                       compatible = "qcom,arm-cpu-mon";
+                       qcom,cpulist = <0x15 0x16 0x17 0x18>;
+                       qcom,target-dev = <0xc1>;
+                       qcom,core-dev-table = <0x1cb600 0x2fa 0x286e00 0xf27 0x29e500 0x1ae1>;
+               };
+
+               qcom,rpmhclk {
+                       compatible = "qcom,rpmh-clk-sdm845";
+                       #clock-cells = <0x1>;
+                       mboxes = <0xc2 0x0>;
+                       mbox-names = "apps";
+                       linux,phandle = <0x21>;
+                       phandle = <0x21>;
+               };
+
+               qcom,gcc@100000 {
+                       compatible = "qcom,gcc-sdm845-v2", "syscon";
+                       reg = <0x100000 0x1f0000>;
+                       reg-names = "cc_base";
+                       vdd_cx-supply = <0x1b>;
+                       vdd_cx_ao-supply = <0xc3>;
+                       #clock-cells = <0x1>;
+                       #reset-cells = <0x1>;
+                       linux,phandle = <0x22>;
+                       phandle = <0x22>;
+               };
+
+               qcom,videocc@ab00000 {
+                       compatible = "qcom,video_cc-sdm845-v2", "syscon";
+                       reg = <0xab00000 0x10000>;
+                       reg-names = "cc_base";
+                       vdd_cx-supply = <0x1b>;
+                       #clock-cells = <0x1>;
+                       #reset-cells = <0x1>;
+                       linux,phandle = <0xdc>;
+                       phandle = <0xdc>;
+               };
+
+               qcom,camcc@ad00000 {
+                       compatible = "qcom,cam_cc-sdm845-v2", "syscon";
+                       reg = <0xad00000 0x10000>;
+                       reg-names = "cc_base";
+                       vdd_cx-supply = <0x1b>;
+                       vdd_mx-supply = <0xc4>;
+                       qcom,cam_cc_csi0phytimer_clk_src-opp-handle = <0xc5>;
+                       qcom,cam_cc_csi1phytimer_clk_src-opp-handle = <0xc6>;
+                       qcom,cam_cc_csi2phytimer_clk_src-opp-handle = <0xc7>;
+                       qcom,cam_cc_cci_clk_src-opp-handle = <0xc8>;
+                       qcom,cam_cc_ife_0_csid_clk_src-opp-handle = <0xc9>;
+                       qcom,cam_cc_ife_0_clk_src-opp-handle = <0xca>;
+                       qcom,cam_cc_ife_1_csid_clk_src-opp-handle = <0xcb>;
+                       qcom,cam_cc_ife_1_clk_src-opp-handle = <0xcc>;
+                       qcom,cam_cc_ife_lite_csid_clk_src-opp-handle = <0xcd>;
+                       qcom,cam_cc_ife_lite_clk_src-opp-handle = <0xce>;
+                       qcom,cam_cc_icp_clk_src-opp-handle = <0xcf>;
+                       qcom,cam_cc_ipe_0_clk_src-opp-handle = <0xd0>;
+                       qcom,cam_cc_ipe_1_clk_src-opp-handle = <0xd1>;
+                       qcom,cam_cc_bps_clk_src-opp-handle = <0xd2>;
+                       #clock-cells = <0x1>;
+                       #reset-cells = <0x1>;
+                       qcom,cam_cc_csi3phytimer_clk_src-opp-handle = <0xd3>;
+                       linux,phandle = <0xdd>;
+                       phandle = <0xdd>;
+               };
+
+               qcom,dispcc@af00000 {
+                       compatible = "qcom,dispcc-sdm845-v2", "syscon";
+                       reg = <0xaf00000 0x10000>;
+                       reg-names = "cc_base";
+                       vdd_cx-supply = <0x1b>;
+                       #clock-cells = <0x1>;
+                       #reset-cells = <0x1>;
+                       linux,phandle = <0x20>;
+                       phandle = <0x20>;
+               };
+
+               qcom,gpucc@5090000 {
+                       compatible = "qcom,gpucc-sdm845-v2", "syscon";
+                       reg = <0x5090000 0x9000>;
+                       reg-names = "cc_base";
+                       vdd_cx-supply = <0x1b>;
+                       vdd_mx-supply = <0xc4>;
+                       qcom,gpu_cc_gmu_clk_src-opp-handle = <0xd4>;
+                       #clock-cells = <0x1>;
+                       #reset-cells = <0x1>;
+                       linux,phandle = <0xde>;
+                       phandle = <0xde>;
+               };
+
+               qcom,gfxcc@5090000 {
+                       compatible = "qcom,gfxcc-sdm845-v2";
+                       reg = <0x5090000 0x9000>;
+                       reg-names = "cc_base";
+                       vdd_gfx-supply = <0x1d>;
+                       qcom,gpu_cc_gx_gfx3d_clk_src-opp-handle = <0xd5>;
+                       #clock-cells = <0x1>;
+                       #reset-cells = <0x1>;
+                       linux,phandle = <0x1c>;
+                       phandle = <0x1c>;
+               };
+
+               syscon@17970018 {
+                       compatible = "syscon";
+                       reg = <0x17970018 0x4>;
+                       linux,phandle = <0xdf>;
+                       phandle = <0xdf>;
+               };
+
+               qcom,cpucc@0x17d41000 {
+                       compatible = "qcom,clk-cpu-osm-v2";
+                       reg = <0x17d41000 0x1400 0x17d43000 0x1400 0x17d45800 0x1400>;
+                       reg-names = "osm_l3_base", "osm_pwrcl_base", "osm_perfcl_base";
+                       vdd_l3_mx_ao-supply = <0xd6>;
+                       vdd_pwrcl_mx_ao-supply = <0xd6>;
+                       qcom,mx-turbo-freq = <0x581e9800 0x64b54000 0xc4b20101>;
+                       l3-devs = <0xbf 0xc0 0xd7 0xd5>;
+                       clock-names = "xo_ao";
+                       clocks = <0x21 0x1>;
+                       #clock-cells = <0x1>;
+                       linux,phandle = <0xbe>;
+                       phandle = <0xbe>;
+
+                       qcom,limits-dcvs@0 {
+                               compatible = "qcom,msm-hw-limits";
+                               interrupts = <0x0 0x20 0x4>;
+                               qcom,affinity = <0x0>;
+                               #thermal-sensor-cells = <0x0>;
+                               linux,phandle = <0x2>;
+                               phandle = <0x2>;
+                       };
+
+                       qcom,limits-dcvs@1 {
+                               compatible = "qcom,msm-hw-limits";
+                               interrupts = <0x0 0x21 0x4>;
+                               qcom,affinity = <0x1>;
+                               #thermal-sensor-cells = <0x0>;
+                               isens_vref-supply = <0xd8>;
+                               isens-vref-settings = <0xd6d80 0xd6d80 0x4e20>;
+                               linux,phandle = <0xa>;
+                               phandle = <0xa>;
+                       };
+
+                       qcom,wil6210 {
+                               compatible = "qcom,wil6210";
+                               qcom,pcie-parent = <0xd9>;
+                               qcom,wigig-en = <0x2e 0x27 0x0>;
+                               qcom,msm-bus,name = "wil6210";
+                               qcom,msm-bus,num-cases = <0x2>;
+                               qcom,msm-bus,num-paths = <0x1>;
+                               qcom,msm-bus,vectors-KBps = <0x2d 0x200 0x0 0x0 0x2d 0x200 0x927c0 0xc3500>;
+                               qcom,use-ext-supply;
+                               vdd-supply = <0xda>;
+                               vddio-supply = <0xdb>;
+                               qcom,use-ext-clocks;
+                               clocks = <0x21 0xa 0x21 0xb>;
+                               clock-names = "rf_clk3_clk", "rf_clk3_pin_clk";
+                               qcom,smmu-support;
+                               qcom,smmu-mapping = <0x20000000 0xe0000000>;
+                               qcom,smmu-s1-en;
+                               qcom,smmu-fast-map;
+                               qcom,smmu-coherent;
+                               qcom,keep-radio-on-during-sleep;
+                               status = "ok";
+                       };
+               };
+
+               qcom,cc-debug@100000 {
+                       compatible = "qcom,debugcc-sdm845";
+                       qcom,cc-count = <0x6>;
+                       qcom,gcc = <0x22>;
+                       qcom,videocc = <0xdc>;
+                       qcom,camcc = <0xdd>;
+                       qcom,dispcc = <0x20>;
+                       qcom,gpucc = <0xde>;
+                       qcom,cpucc = <0xdf>;
+                       clock-names = "xo_clk_src";
+                       clocks = <0x21 0x0>;
+                       #clock-cells = <0x1>;
+               };
+
+               qcom,aopclk {
+                       compatible = "qcom,aop-qmp-clk-v1";
+                       #clock-cells = <0x1>;
+                       mboxes = <0xab 0x0>;
+                       mbox-names = "qdss_clk";
+                       linux,phandle = <0xa9>;
+                       phandle = <0xa9>;
+               };
+
+               ufsice@1d90000 {
+                       compatible = "qcom,ice";
+                       reg = <0x1d90000 0x8000>;
+                       qcom,enable-ice-clk;
+                       clock-names = "ufs_core_clk", "bus_clk", "iface_clk", "ice_core_clk";
+                       clocks = <0x22 0x8a 0x22 0x88 0x22 0x89 0x22 0x8c>;
+                       qcom,op-freq-hz = <0x0 0x0 0x0 0x11e1a300>;
+                       vdd-hba-supply = <0xe0>;
+                       qcom,msm-bus,name = "ufs_ice_noc";
+                       qcom,msm-bus,num-cases = <0x2>;
+                       qcom,msm-bus,num-paths = <0x1>;
+                       qcom,msm-bus,vectors-KBps = <0x1 0x28a 0x0 0x0 0x1 0x28a 0x3e8 0x0>;
+                       qcom,bus-vector-names = "MIN", "MAX";
+                       qcom,instance-type = "ufs";
+                       linux,phandle = <0xe2>;
+                       phandle = <0xe2>;
+               };
+
+               ufsphy_mem@1d87000 {
+                       reg = <0x1d87000 0xda8>;
+                       reg-names = "phy_mem";
+                       #phy-cells = <0x0>;
+                       lanes-per-direction = <0x2>;
+                       clock-names = "ref_clk_src", "ref_clk", "ref_aux_clk";
+                       clocks = <0x21 0x0 0x22 0x88 0x22 0xb9>;
+                       status = "ok";
+                       compatible = "qcom,ufs-phy-qmp-v3";
+                       vdda-phy-supply = <0x36>;
+                       vdda-pll-supply = <0x35>;
+                       vdda-phy-max-microamp = <0xf5b4>;
+                       vdda-pll-max-microamp = <0x477c>;
+                       linux,phandle = <0xe1>;
+                       phandle = <0xe1>;
+               };
+
+               ufshc@1d84000 {
+                       compatible = "qcom,ufshc";
+                       reg = <0x1d84000 0x2500>;
+                       interrupts = <0x0 0x109 0x0>;
+                       phys = <0xe1>;
+                       phy-names = "ufsphy";
+                       ufs-qcom-crypto = <0xe2>;
+                       lanes-per-direction = <0x2>;
+                       dev-ref-clk-freq = <0x0>;
+                       clock-names = "core_clk", "bus_aggr_clk", "iface_clk", "core_clk_unipro", "core_clk_ice", "ref_clk", "tx_lane0_sync_clk", "rx_lane0_sync_clk", "rx_lane1_sync_clk";
+                       clocks = <0x22 0xb1 0x22 0xb7 0x22 0x89 0x22 0xb3 0x22 0xb5 0x21 0x0 0x22 0x92 0x22 0x90 0x22 0x91>;
+                       freq-table-hz = <0x2faf080 0xbebc200 0x0 0x0 0x0 0x0 0x23c3460 0x8f0d180 0x47868c0 0x11e1a300 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0>;
+                       non-removable;
+                       qcom,msm-bus,name = "ufshc_mem";
+                       qcom,msm-bus,num-cases = <0x16>;
+                       qcom,msm-bus,num-paths = <0x2>;
+                       qcom,msm-bus,vectors-KBps = <0x7b 0x200 0x0 0x0 0x1 0x2f5 0x0 0x0 0x7b 0x200 0x39a 0x0 0x1 0x2f5 0x3e8 0x0 0x7b 0x200 0x734 0x0 0x1 0x2f5 0x3e8 0x0 0x7b 0x200 0xe68 0x0 0x1 0x2f5 0x3e8 0x0 0x7b 0x200 0x1cd0 0x0 0x1 0x2f5 0x3e8 0x0 0x7b 0x200 0x734 0x0 0x1 0x2f5 0x3e8 0x0 0x7b 0x200 0xe68 0x0 0x1 0x2f5 0x3e8 0x0 0x7b 0x200 0x1cd0 0x0 0x1 0x2f5 0x3e8 0x0 0x7b 0x200 0x39a0 0x0 0x1 0x2f5 0x3e8 0x0 0x7b 0x200 0x1f334 0x0 0x1 0x2f5 0x3e8 0x0 0x7b 0x200 0x3e667 0x0 0x1 0x2f5 0x3e8 0x0 0x7b 0x200 0x200000 0x0 0x1 0x2f5 0x19000 0x0 0x7b 0x200 0x3e667 0x0 0x1 0x2f5 0x3e8 0x0 0x7b 0x200 0x7cccd 0x0 0x1 0x2f5 0x3e8 0x0 0x7b 0x200 0x400000 0x0 0x1 0x2f5 0x32000 0x0 0x7b 0x200 0x247ae 0x0 0x1 0x2f5 0x3e8 0x0 0x7b 0x200 0x48ccd 0x0 0x1 0x2f5 0x3e8 0x0 0x7b 0x200 0x200000 0x0 0x1 0x2f5 0x19000 0x0 0x7b 0x200 0x48ccd 0x0 0x1 0x2f5 0x3e8 0x0 0x7b 0x200 0x9199a 0x0 0x1 0x2f5 0x3e8 0x0 0x7b 0x200 0x400000 0x0 0x1 0x2f5 0x32000 0x64000 0x7b 0x200 0x74a000 0x0 0x1 0x2f5 0x4b000 0x0>;
+                       qcom,bus-vector-names = "MIN", "PWM_G1_L1", "PWM_G2_L1", "PWM_G3_L1", "PWM_G4_L1", "PWM_G1_L2", "PWM_G2_L2", "PWM_G3_L2", "PWM_G4_L2", "HS_RA_G1_L1", "HS_RA_G2_L1", "HS_RA_G3_L1", "HS_RA_G1_L2", "HS_RA_G2_L2", "HS_RA_G3_L2", "HS_RB_G1_L1", "HS_RB_G2_L1", "HS_RB_G3_L1", "HS_RB_G1_L2", "HS_RB_G2_L2", "HS_RB_G3_L2", "MAX";
+                       qcom,pm-qos-cpu-groups = <0xf 0xf0>;
+                       qcom,pm-qos-cpu-group-latency-us = <0x46 0x46>;
+                       qcom,pm-qos-default-cpu = <0x0>;
+                       pinctrl-names = "dev-reset-assert", "dev-reset-deassert";
+                       pinctrl-0 = <0xe3>;
+                       pinctrl-1 = <0xe4>;
+                       resets = <0x22 0xe>;
+                       reset-names = "core_reset";
+                       status = "ok";
+                       vdd-hba-supply = <0xe0>;
+                       vdd-hba-fixed-regulator;
+                       vcc-supply = <0xe5>;
+                       vcc-voltage-level = <0x2d0370 0x2d2a80>;
+                       vccq2-supply = <0xe6>;
+                       vcc-max-microamp = <0x927c0>;
+                       vccq2-max-microamp = <0x927c0>;
+                       qcom,vddp-ref-clk-supply = <0xe7>;
+                       qcom,vddp-ref-clk-max-microamp = <0x64>;
+               };
+
+               sdhci@8804000 {
+                       compatible = "qcom,sdhci-msm-v5";
+                       reg = <0x8804000 0x1000>;
+                       reg-names = "hc_mem";
+                       interrupts = <0x0 0xcc 0x0 0x0 0xde 0x0>;
+                       interrupt-names = "hc_irq", "pwr_irq";
+                       qcom,bus-width = <0x4>;
+                       qcom,large-address-bus;
+                       qcom,msm-bus,name = "sdhc2";
+                       qcom,msm-bus,num-cases = <0x8>;
+                       qcom,msm-bus,num-paths = <0x2>;
+                       qcom,msm-bus,vectors-KBps = <0x51 0x200 0x0 0x0 0x1 0x260 0x0 0x0 0x51 0x200 0x416 0x640 0x1 0x260 0x640 0x640 0x51 0x200 0xcc3e 0x13880 0x1 0x260 0x13880 0x13880 0x51 0x200 0xff50 0x186a0 0x1 0x260 0x186a0 0x186a0 0x51 0x200 0x1fe9e 0x30d40 0x1 0x260 0x208c8 0x208c8 0x51 0x200 0x3fd3e 0x30d40 0x1 0x260 0x249f0 0x249f0 0x51 0x200 0x3fd3e 0x61a80 0x1 0x260 0x493e0 0x493e0 0x51 0x200 0x146cc2 0x3e8000 0x1 0x260 0x146cc2 0x3e8000>;
+                       qcom,bus-bw-vectors-bps = <0x0 0x61a80 0x1312d00 0x17d7840 0x2faf080 0x60152b0 0xbebc200 0xffffffff>;
+                       qcom,restore-after-cx-collapse;
+                       qcom,clk-rates = <0x61a80 0x1312d00 0x17d7840 0x2faf080 0x5f5e100 0xc02a560>;
+                       qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104";
+                       qcom,devfreq,freq-table = <0x2faf080 0xc02a560>;
+                       clocks = <0x22 0x70 0x22 0x71>;
+                       clock-names = "iface_clk", "core_clk";
+                       qcom,pm-qos-irq-type = "affine_irq";
+                       qcom,pm-qos-irq-latency = <0x46 0x46>;
+                       qcom,pm-qos-cpu-groups = <0x3f 0xc0>;
+                       qcom,pm-qos-legacy-latency-us = <0x46 0x46 0x46 0x46>;
+                       status = "ok";
+                       vdd-supply = <0xe8>;
+                       qcom,vdd-voltage-level = <0x2d0370 0x2d2a80>;
+                       qcom,vdd-current-level = <0xc8 0xc3500>;
+                       vdd-io-supply = <0xe9>;
+                       qcom,vdd-io-voltage-level = <0x1b9680 0x2d2a80>;
+                       qcom,vdd-io-current-level = <0xc8 0x55f0>;
+                       pinctrl-names = "active", "sleep", "ds_400KHz", "ds_50MHz", "ds_100MHz", "ds_200MHz";
+                       pinctrl-0 = <0xea 0xeb 0xec 0xed>;
+                       pinctrl-1 = <0xee 0xef 0xf0 0xed>;
+                       pinctrl-2 = <0xf1 0xf2 0xf3>;
+                       pinctrl-3 = <0xf4 0xf5 0xf6>;
+                       pinctrl-4 = <0xf7 0xf8 0xf9>;
+                       pinctrl-5 = <0xfa 0xfb 0xfc>;
+                       cd-gpios = <0x2e 0x7e 0x1>;
+               };
+
+               qcom,mss@4080000 {
+                       compatible = "qcom,pil-q6v55-mss";
+                       reg = <0x4080000 0x100 0x1f63000 0x8 0x1f65000 0x8 0x1f64000 0x8 0x4180000 0x20 0xc2b0000 0x4 0xb2e0100 0x4 0x4180044 0x4>;
+                       reg-names = "qdsp6_base", "halt_q6", "halt_modem", "halt_nc", "rmb_base", "restart_reg", "pdc_sync", "alt_reset";
+                       clocks = <0x21 0x0 0x22 0x2c 0x22 0x2f 0x22 0xb 0x22 0x2d 0x22 0x30 0x22 0x2e 0x22 0x48>;
+                       clock-names = "xo", "iface_clk", "bus_clk", "mem_clk", "gpll0_mss_clk", "snoc_axi_clk", "mnoc_axi_clk", "prng_clk";
+                       qcom,proxy-clock-names = "xo", "prng_clk";
+                       qcom,active-clock-names = "iface_clk", "bus_clk", "mem_clk", "gpll0_mss_clk", "snoc_axi_clk", "mnoc_axi_clk";
+                       interrupts = <0x0 0x10a 0x1>;
+                       vdd_cx-supply = <0x1b>;
+                       vdd_cx-voltage = <0x181>;
+                       vdd_mx-supply = <0xc4>;
+                       vdd_mx-uV = <0x181>;
+                       vdd_mss-supply = <0xfd>;
+                       vdd_mss-uV = <0x181>;
+                       qcom,firmware-name = "modem";
+                       qcom,sequential-fw-load;
+                       qcom,pil-self-auth;
+                       qcom,sysmon-id = <0x0>;
+                       qcom,minidump-id = <0x3>;
+                       qcom,ssctl-instance-id = <0x12>;
+                       qcom,override-acc;
+                       qcom,signal-aop;
+                       qcom,qdsp6v65-1-0;
+                       qcom,mss_pdc_offset = <0x9>;
+                       status = "ok";
+                       memory-region = <0xfe>;
+                       qcom,mem-protect-id = <0xf>;
+                       qcom,gpio-err-fatal = <0xff 0x0 0x0>;
+                       qcom,gpio-err-ready = <0xff 0x1 0x0>;
+                       qcom,gpio-proxy-unvote = <0xff 0x2 0x0>;
+                       qcom,gpio-stop-ack = <0xff 0x3 0x0>;
+                       qcom,gpio-shutdown-ack = <0xff 0x7 0x0>;
+                       qcom,gpio-force-stop = <0x100 0x0 0x0>;
+                       mboxes = <0xab 0x0>;
+                       mbox-names = "mss-pil";
+
+                       qcom,mba-mem@0 {
+                               compatible = "qcom,pil-mba-mem";
+                               memory-region = <0x101>;
+                       };
+               };
+
+               qcom,lpass@17300000 {
+                       compatible = "qcom,pil-tz-generic";
+                       reg = <0x17300000 0x100>;
+                       interrupts = <0x0 0xa2 0x1>;
+                       vdd_cx-supply = <0x1b>;
+                       qcom,proxy-reg-names = "vdd_cx";
+                       qcom,vdd_cx-uV-uA = <0x181 0x186a0>;
+                       clocks = <0x21 0x0>;
+                       clock-names = "xo";
+                       qcom,proxy-clock-names = "xo";
+                       qcom,pas-id = <0x1>;
+                       qcom,proxy-timeout-ms = <0x2710>;
+                       qcom,smem-id = <0x1a7>;
+                       qcom,sysmon-id = <0x1>;
+                       status = "ok";
+                       qcom,ssctl-instance-id = <0x14>;
+                       qcom,firmware-name = "adsp";
+                       qcom,signal-aop;
+                       memory-region = <0x102>;
+                       qcom,gpio-err-fatal = <0x103 0x0 0x0>;
+                       qcom,gpio-proxy-unvote = <0x103 0x2 0x0>;
+                       qcom,gpio-err-ready = <0x103 0x1 0x0>;
+                       qcom,gpio-stop-ack = <0x103 0x3 0x0>;
+                       qcom,gpio-force-stop = <0x104 0x0 0x0>;
+                       mboxes = <0xab 0x0>;
+                       mbox-names = "adsp-pil";
+               };
+
+               qcom,ssc@5c00000 {
+                       compatible = "qcom,pil-tz-generic";
+                       reg = <0x5c00000 0x4000>;
+                       interrupts = <0x0 0x1ee 0x1>;
+                       vdd_cx-supply = <0x105>;
+                       qcom,vdd_cx-uV-uA = <0x181 0x0>;
+                       vdd_mx-supply = <0x106>;
+                       qcom,vdd_mx-uV-uA = <0x181 0x0>;
+                       qcom,proxy-reg-names = "vdd_cx", "vdd_mx";
+                       qcom,keep-proxy-regs-on;
+                       clocks = <0x21 0x0>;
+                       clock-names = "xo";
+                       qcom,proxy-clock-names = "xo";
+                       qcom,pas-id = <0xc>;
+                       qcom,proxy-timeout-ms = <0x2710>;
+                       qcom,smem-id = <0x1a8>;
+                       qcom,sysmon-id = <0x3>;
+                       qcom,ssctl-instance-id = <0x16>;
+                       qcom,signal-aop;
+                       qcom,firmware-name = "slpi";
+                       status = "ok";
+                       memory-region = <0x107>;
+                       qcom,gpio-err-fatal = <0x108 0x0 0x0>;
+                       qcom,gpio-proxy-unvote = <0x108 0x2 0x0>;
+                       qcom,gpio-err-ready = <0x108 0x1 0x0>;
+                       qcom,gpio-stop-ack = <0x108 0x3 0x0>;
+                       qcom,gpio-force-stop = <0x109 0x0 0x0>;
+                       mboxes = <0xab 0x0>;
+                       mbox-names = "slpi-pil";
+               };
+
+               slim@171c0000 {
+                       cell-index = <0x1>;
+                       compatible = "qcom,slim-ngd";
+                       reg = <0x171c0000 0x2c000 0x17184000 0x2a000>;
+                       reg-names = "slimbus_physical", "slimbus_bam_physical";
+                       interrupts = <0x0 0xa3 0x0 0x0 0xa4 0x0>;
+                       interrupt-names = "slimbus_irq", "slimbus_bam_irq";
+                       qcom,apps-ch-pipes = <0x780000>;
+                       qcom,ea-pc = <0x270>;
+                       qcom,iommu-s1-bypass;
+
+                       qcom,iommu_slim_ctrl_cb {
+                               compatible = "qcom,iommu-slim-ctrl-cb";
+                               iommus = <0x29 0x1806 0x0 0x29 0x180d 0x0 0x29 0x180e 0x1 0x29 0x1810 0x1>;
+                       };
+
+                       msm_dai_slim {
+                               compatible = "qcom,msm-dai-slim";
+                               elemental-addr = [ff ff ff fe 17 02];
+                       };
+
+                       tavil_codec {
+                               compatible = "qcom,tavil-slim-pgd";
+                               elemental-addr = [00 01 50 02 17 02];
+                               interrupt-parent = <0x10a>;
+                               interrupts = <0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f>;
+                               qcom,wcd-rst-gpio-node = <0x10b>;
+                               clock-names = "wcd_clk";
+                               clocks = <0x10c 0x0>;
+                               cdc-vdd-buck-supply = <0xe6>;
+                               qcom,cdc-vdd-buck-voltage = <0x1b7740 0x1b7740>;
+                               qcom,cdc-vdd-buck-current = <0x9eb10>;
+                               cdc-buck-sido-supply = <0xe6>;
+                               qcom,cdc-buck-sido-voltage = <0x1b7740 0x1b7740>;
+                               qcom,cdc-buck-sido-current = <0x3d090>;
+                               cdc-vdd-tx-h-supply = <0xe6>;
+                               qcom,cdc-vdd-tx-h-voltage = <0x1b7740 0x1b7740>;
+                               qcom,cdc-vdd-tx-h-current = <0x61a8>;
+                               cdc-vdd-rx-h-supply = <0xe6>;
+                               qcom,cdc-vdd-rx-h-voltage = <0x1b7740 0x1b7740>;
+                               qcom,cdc-vdd-rx-h-current = <0x61a8>;
+                               cdc-vddpx-1-supply = <0xe6>;
+                               qcom,cdc-vddpx-1-voltage = <0x1b7740 0x1b7740>;
+                               qcom,cdc-vddpx-1-current = <0x2710>;
+                               qcom,cdc-static-supplies = "cdc-vdd-buck", "cdc-buck-sido", "cdc-vdd-tx-h", "cdc-vdd-rx-h", "cdc-vddpx-1";
+                               qcom,cdc-micbias1-mv = <0xa8c>;
+                               qcom,cdc-micbias2-mv = <0x708>;
+                               qcom,cdc-micbias3-mv = <0xa8c>;
+                               qcom,cdc-micbias4-mv = <0xa8c>;
+                               qcom,cdc-mclk-clk-rate = <0x927c00>;
+                               qcom,cdc-slim-ifd = "tavil-slim-ifd";
+                               qcom,cdc-slim-ifd-elemental-addr = [00 00 50 02 17 02];
+                               qcom,cdc-dmic-sample-rate = <0x493e00>;
+                               qcom,cdc-mad-dmic-rate = <0x927c0>;
+                               qcom,wdsp-cmpnt-dev-name = "tavil_codec";
+                               linux,phandle = <0x367>;
+                               phandle = <0x367>;
+
+                               wcd_pinctrl@5 {
+                                       compatible = "qcom,wcd-pinctrl";
+                                       qcom,num-gpios = <0x5>;
+                                       gpio-controller;
+                                       #gpio-cells = <0x2>;
+
+                                       us_euro_sw_wcd_active {
+                                               linux,phandle = <0x111>;
+                                               phandle = <0x111>;
+
+                                               mux {
+                                                       pins = "gpio1";
+                                               };
+
+                                               config {
+                                                       pins = "gpio1";
+                                                       output-high;
+                                               };
+                                       };
+
+                                       us_euro_sw_wcd_sleep {
+                                               linux,phandle = <0x112>;
+                                               phandle = <0x112>;
+
+                                               mux {
+                                                       pins = "gpio1";
+                                               };
+
+                                               config {
+                                                       pins = "gpio1";
+                                                       output-low;
+                                               };
+                                       };
+
+                                       spkr_1_wcd_en_active {
+                                               linux,phandle = <0x10d>;
+                                               phandle = <0x10d>;
+
+                                               mux {
+                                                       pins = "gpio2";
+                                               };
+
+                                               config {
+                                                       pins = "gpio2";
+                                                       output-high;
+                                               };
+                                       };
+
+                                       spkr_1_wcd_en_sleep {
+                                               linux,phandle = <0x10e>;
+                                               phandle = <0x10e>;
+
+                                               mux {
+                                                       pins = "gpio2";
+                                               };
+
+                                               config {
+                                                       pins = "gpio2";
+                                                       input-enable;
+                                               };
+                                       };
+
+                                       spkr_2_sd_n_active {
+                                               linux,phandle = <0x10f>;
+                                               phandle = <0x10f>;
+
+                                               mux {
+                                                       pins = "gpio3";
+                                               };
+
+                                               config {
+                                                       pins = "gpio3";
+                                                       output-high;
+                                               };
+                                       };
+
+                                       spkr_2_sd_n_sleep {
+                                               linux,phandle = <0x110>;
+                                               phandle = <0x110>;
+
+                                               mux {
+                                                       pins = "gpio3";
+                                               };
+
+                                               config {
+                                                       pins = "gpio3";
+                                                       input-enable;
+                                               };
+                                       };
+
+                                       hph_en0_wcd_active {
+                                               linux,phandle = <0x113>;
+                                               phandle = <0x113>;
+
+                                               mux {
+                                                       pins = "gpio4";
+                                               };
+
+                                               config {
+                                                       pins = "gpio4";
+                                                       output-high;
+                                               };
+                                       };
+
+                                       hph_en0_wcd_sleep {
+                                               linux,phandle = <0x114>;
+                                               phandle = <0x114>;
+
+                                               mux {
+                                                       pins = "gpio4";
+                                               };
+
+                                               config {
+                                                       pins = "gpio4";
+                                                       output-low;
+                                               };
+                                       };
+
+                                       hph_en1_wcd_active {
+                                               linux,phandle = <0x115>;
+                                               phandle = <0x115>;
+
+                                               mux {
+                                                       pins = "gpio5";
+                                               };
+
+                                               config {
+                                                       pins = "gpio5";
+                                                       output-high;
+                                               };
+                                       };
+
+                                       hph_en1_wcd_sleep {
+                                               linux,phandle = <0x116>;
+                                               phandle = <0x116>;
+
+                                               mux {
+                                                       pins = "gpio5";
+                                               };
+
+                                               config {
+                                                       pins = "gpio5";
+                                                       output-low;
+                                               };
+                                       };
+                               };
+
+                               msm_cdc_pinctrll {
+                                       compatible = "qcom,msm-cdc-pinctrl";
+                                       pinctrl-names = "aud_active", "aud_sleep";
+                                       pinctrl-0 = <0x10d>;
+                                       pinctrl-1 = <0x10e>;
+                                       linux,phandle = <0x117>;
+                                       phandle = <0x117>;
+                               };
+
+                               msm_cdc_pinctrlr {
+                                       compatible = "qcom,msm-cdc-pinctrl";
+                                       pinctrl-names = "aud_active", "aud_sleep";
+                                       pinctrl-0 = <0x10f>;
+                                       pinctrl-1 = <0x110>;
+                                       linux,phandle = <0x118>;
+                                       phandle = <0x118>;
+                               };
+
+                               msm_cdc_pinctrl_us_euro_sw {
+                                       compatible = "qcom,msm-cdc-pinctrl";
+                                       pinctrl-names = "aud_active", "aud_sleep";
+                                       pinctrl-0 = <0x111>;
+                                       pinctrl-1 = <0x112>;
+                               };
+
+                               msm_cdc_pinctrl_hph_en0 {
+                                       compatible = "qcom,msm-cdc-pinctrl";
+                                       pinctrl-names = "aud_active", "aud_sleep";
+                                       pinctrl-0 = <0x113>;
+                                       pinctrl-1 = <0x114>;
+                                       linux,phandle = <0x328>;
+                                       phandle = <0x328>;
+                               };
+
+                               msm_cdc_pinctrl_hph_en1 {
+                                       compatible = "qcom,msm-cdc-pinctrl";
+                                       pinctrl-names = "aud_active", "aud_sleep";
+                                       pinctrl-0 = <0x115>;
+                                       pinctrl-1 = <0x116>;
+                                       linux,phandle = <0x329>;
+                                       phandle = <0x329>;
+                               };
+
+                               swr_master {
+                                       compatible = "qcom,swr-wcd";
+                                       #address-cells = <0x2>;
+                                       #size-cells = <0x0>;
+
+                                       wsa881x@20170211 {
+                                               compatible = "qcom,wsa881x";
+                                               reg = <0x0 0x20170211>;
+                                               qcom,spkr-sd-n-node = <0x117>;
+                                               linux,phandle = <0x32f>;
+                                               phandle = <0x32f>;
+                                       };
+
+                                       wsa881x@20170212 {
+                                               compatible = "qcom,wsa881x";
+                                               reg = <0x0 0x20170212>;
+                                               qcom,spkr-sd-n-node = <0x118>;
+                                               linux,phandle = <0x330>;
+                                               phandle = <0x330>;
+                                       };
+
+                                       wsa881x@21170213 {
+                                               compatible = "qcom,wsa881x";
+                                               reg = <0x0 0x21170213>;
+                                               qcom,spkr-sd-n-node = <0x117>;
+                                               linux,phandle = <0x331>;
+                                               phandle = <0x331>;
+                                       };
+
+                                       wsa881x@21170214 {
+                                               compatible = "qcom,wsa881x";
+                                               reg = <0x0 0x21170214>;
+                                               qcom,spkr-sd-n-node = <0x118>;
+                                               linux,phandle = <0x332>;
+                                               phandle = <0x332>;
+                                       };
+                               };
+
+                               wcd_spi {
+                                       compatible = "qcom,wcd-spi-v2";
+                                       qcom,master-bus-num = <0x0>;
+                                       qcom,chip-select = <0x0>;
+                                       qcom,max-frequency = <0x16e3600>;
+                                       qcom,mem-base-addr = <0x100000>;
+                                       linux,phandle = <0x368>;
+                                       phandle = <0x368>;
+                               };
+                       };
+               };
+
+               slim@17240000 {
+                       status = "ok";
+                       cell-index = <0x3>;
+                       compatible = "qcom,slim-ngd";
+                       reg = <0x17240000 0x2c000 0x17204000 0x20000>;
+                       reg-names = "slimbus_physical", "slimbus_bam_physical";
+                       interrupts = <0x0 0x123 0x0 0x0 0x124 0x0>;
+                       interrupt-names = "slimbus_irq", "slimbus_bam_irq";
+                       qcom,iommu-s1-bypass;
+
+                       qcom,iommu_slim_ctrl_cb {
+                               compatible = "qcom,iommu-slim-ctrl-cb";
+                               iommus = <0x29 0x1813 0x0>;
+                       };
+
+                       wcn3990 {
+                               compatible = "qcom,btfmslim_slave";
+                               elemental-addr = [00 01 20 02 17 02];
+                               qcom,btfm-slim-ifd = "btfmslim_slave_ifd";
+                               qcom,btfm-slim-ifd-elemental-addr = [00 00 20 02 17 02];
+                       };
+               };
+
+               qcom,msm-eud@88e0000 {
+                       compatible = "qcom,msm-eud";
+                       interrupt-names = "eud_irq";
+                       interrupts = <0x0 0x1ec 0x4>;
+                       reg = <0x88e0000 0x2000>;
+                       reg-names = "eud_base";
+                       clocks = <0x22 0xa9>;
+                       clock-names = "cfg_ahb_clk";
+                       vdda33-supply = <0xb0>;
+                       status = "ok";
+                       linux,phandle = <0x33a>;
+                       phandle = <0x33a>;
+               };
+
+               qcom,spss@1880000 {
+                       compatible = "qcom,pil-tz-generic";
+                       reg = <0x188101c 0x4 0x1881024 0x4 0x1881028 0x4 0x188103c 0x4 0x1882014 0x4>;
+                       reg-names = "sp2soc_irq_status", "sp2soc_irq_clr", "sp2soc_irq_mask", "rmb_err", "rmb_err_spare2";
+                       interrupts = <0x0 0x160 0x1>;
+                       vdd_cx-supply = <0x1b>;
+                       qcom,proxy-reg-names = "vdd_cx";
+                       qcom,vdd_cx-uV-uA = <0x181 0x186a0>;
+                       vdd_mx-supply = <0xc4>;
+                       vdd_mx-uV = <0x181 0x186a0>;
+                       clocks = <0x21 0x0>;
+                       clock-names = "xo";
+                       qcom,proxy-clock-names = "xo";
+                       qcom,pil-generic-irq-handler;
+                       status = "ok";
+                       qcom,pas-id = <0xe>;
+                       qcom,proxy-timeout-ms = <0x2710>;
+                       qcom,signal-aop;
+                       qcom,firmware-name = "spss";
+                       memory-region = <0x119>;
+                       qcom,spss-scsr-bits = <0x18 0x19>;
+                       mboxes = <0xab 0x0>;
+                       mbox-names = "spss-pil";
+               };
+
+               qcom,wdt@17980000 {
+                       compatible = "qcom,msm-watchdog";
+                       reg = <0x17980000 0x1000>;
+                       reg-names = "wdt-base";
+                       interrupts = <0x0 0x0 0x0 0x0 0x1 0x0>;
+                       qcom,bark-time = <0x4e20>;
+                       qcom,pet-time = <0x3a98>;
+                       qcom,ipi-ping;
+                       qcom,wakeup-enable;
+               };
+
+               qcom,turing@8300000 {
+                       compatible = "qcom,pil-tz-generic";
+                       reg = <0x8300000 0x100000>;
+                       interrupts = <0x0 0x242 0x1>;
+                       vdd_cx-supply = <0x1b>;
+                       qcom,proxy-reg-names = "vdd_cx";
+                       qcom,vdd_cx-uV-uA = <0x181 0x186a0>;
+                       clocks = <0x21 0x0>;
+                       clock-names = "xo";
+                       qcom,proxy-clock-names = "xo";
+                       qcom,pas-id = <0x12>;
+                       qcom,proxy-timeout-ms = <0x2710>;
+                       qcom,smem-id = <0x259>;
+                       qcom,sysmon-id = <0x7>;
+                       qcom,ssctl-instance-id = <0x17>;
+                       qcom,firmware-name = "cdsp";
+                       qcom,signal-aop;
+                       memory-region = <0x11a>;
+                       qcom,gpio-err-fatal = <0x11b 0x0 0x0>;
+                       qcom,gpio-proxy-unvote = <0x11b 0x2 0x0>;
+                       qcom,gpio-err-ready = <0x11b 0x1 0x0>;
+                       qcom,gpio-stop-ack = <0x11b 0x3 0x0>;
+                       qcom,gpio-force-stop = <0x11c 0x0 0x0>;
+                       status = "ok";
+                       mboxes = <0xab 0x0>;
+                       mbox-names = "cdsp-pil";
+               };
+
+               qcom,msm-rtb {
+                       compatible = "qcom,msm-rtb";
+                       qcom,rtb-size = <0x100000>;
+               };
+
+               qcom,mpm2-sleep-counter@0x0c221000 {
+                       compatible = "qcom,mpm2-sleep-counter";
+                       reg = <0xc221000 0x1000>;
+                       clock-frequency = <0x8000>;
+               };
+
+               qcom,msm-cdsp-loader {
+                       compatible = "qcom,cdsp-loader";
+                       qcom,proc-img-to-load = "cdsp";
+               };
+
+               qcom,msm-adsprpc-mem {
+                       compatible = "qcom,msm-adsprpc-mem-region";
+                       memory-region = <0x11d>;
+               };
+
+               qcom,msm_fastrpc {
+                       compatible = "qcom,msm-fastrpc-compute";
+                       qcom,rpc-latency-us = <0x263>;
+
+                       qcom,msm_fastrpc_compute_cb1 {
+                               compatible = "qcom,msm-fastrpc-compute-cb";
+                               label = "cdsprpc-smd";
+                               iommus = <0x29 0x1401 0x30>;
+                               dma-coherent;
+                       };
+
+                       qcom,msm_fastrpc_compute_cb2 {
+                               compatible = "qcom,msm-fastrpc-compute-cb";
+                               label = "cdsprpc-smd";
+                               iommus = <0x29 0x1402 0x30>;
+                               dma-coherent;
+                       };
+
+                       qcom,msm_fastrpc_compute_cb3 {
+                               compatible = "qcom,msm-fastrpc-compute-cb";
+                               label = "cdsprpc-smd";
+                               iommus = <0x29 0x1403 0x30>;
+                               dma-coherent;
+                       };
+
+                       qcom,msm_fastrpc_compute_cb4 {
+                               compatible = "qcom,msm-fastrpc-compute-cb";
+                               label = "cdsprpc-smd";
+                               iommus = <0x29 0x1404 0x30>;
+                               dma-coherent;
+                       };
+
+                       qcom,msm_fastrpc_compute_cb5 {
+                               compatible = "qcom,msm-fastrpc-compute-cb";
+                               label = "cdsprpc-smd";
+                               iommus = <0x29 0x1405 0x30>;
+                               dma-coherent;
+                       };
+
+                       qcom,msm_fastrpc_compute_cb6 {
+                               compatible = "qcom,msm-fastrpc-compute-cb";
+                               label = "cdsprpc-smd";
+                               iommus = <0x29 0x1406 0x30>;
+                               dma-coherent;
+                       };
+
+                       qcom,msm_fastrpc_compute_cb7 {
+                               compatible = "qcom,msm-fastrpc-compute-cb";
+                               label = "cdsprpc-smd";
+                               iommus = <0x29 0x1407 0x30>;
+                               dma-coherent;
+                       };
+
+                       qcom,msm_fastrpc_compute_cb8 {
+                               compatible = "qcom,msm-fastrpc-compute-cb";
+                               label = "cdsprpc-smd";
+                               iommus = <0x29 0x1408 0x30>;
+                               dma-coherent;
+                       };
+
+                       qcom,msm_fastrpc_compute_cb9 {
+                               compatible = "qcom,msm-fastrpc-compute-cb";
+                               label = "cdsprpc-smd";
+                               qcom,secure-context-bank;
+                               iommus = <0x29 0x1409 0x30>;
+                               dma-coherent;
+                       };
+
+                       qcom,msm_fastrpc_compute_cb10 {
+                               compatible = "qcom,msm-fastrpc-compute-cb";
+                               label = "cdsprpc-smd";
+                               qcom,secure-context-bank;
+                               iommus = <0x29 0x140a 0x30>;
+                               dma-coherent;
+                       };
+
+                       qcom,msm_fastrpc_compute_cb11 {
+                               compatible = "qcom,msm-fastrpc-compute-cb";
+                               label = "adsprpc-smd";
+                               iommus = <0x29 0x1823 0x0>;
+                               dma-coherent;
+                       };
+
+                       qcom,msm_fastrpc_compute_cb12 {
+                               compatible = "qcom,msm-fastrpc-compute-cb";
+                               label = "adsprpc-smd";
+                               iommus = <0x29 0x1824 0x0>;
+                               dma-coherent;
+                       };
+               };
+
+               qcom,msm-imem@146bf000 {
+                       compatible = "qcom,msm-imem";
+                       reg = <0x146bf000 0x1000>;
+                       ranges = <0x0 0x146bf000 0x1000>;
+                       #address-cells = <0x1>;
+                       #size-cells = <0x1>;
+
+                       mem_dump_table@10 {
+                               compatible = "qcom,msm-imem-mem_dump_table";
+                               reg = <0x10 0x8>;
+                       };
+
+                       dload_type@18 {
+                               compatible = "qcom,msm-imem-dload-type";
+                               reg = <0x18 0x4>;
+                       };
+
+                       restart_reason@65c {
+                               compatible = "qcom,msm-imem-restart_reason";
+                               reg = <0x65c 0x4>;
+                       };
+
+                       dload_type@1c {
+                               compatible = "qcom,msm-imem-dload-type";
+                               reg = <0x1c 0x4>;
+                       };
+
+                       boot_stats@6b0 {
+                               compatible = "qcom,msm-imem-boot_stats";
+                               reg = <0x6b0 0x20>;
+                       };
+
+                       pil@94c {
+                               compatible = "qcom,msm-imem-pil";
+                               reg = <0x94c 0xc8>;
+                       };
+
+                       kaslr_offset@6d0 {
+                               compatible = "qcom,msm-imem-kaslr_offset";
+                               reg = <0x6d0 0xc>;
+                       };
+
+                       diag_dload@c8 {
+                               compatible = "qcom,msm-imem-diag-dload";
+                               reg = <0xc8 0xc8>;
+                       };
+               };
+
+               qcom,venus@aae0000 {
+                       compatible = "qcom,pil-tz-generic";
+                       reg = <0xaae0000 0x4000>;
+                       vdd-supply = <0x11e>;
+                       qcom,proxy-reg-names = "vdd";
+                       clocks = <0xdc 0xb 0xdc 0x8 0xdc 0xa>;
+                       clock-names = "core_clk", "iface_clk", "bus_clk";
+                       qcom,proxy-clock-names = "core_clk", "iface_clk", "bus_clk";
+                       qcom,pas-id = <0x9>;
+                       qcom,msm-bus,name = "pil-venus";
+                       qcom,msm-bus,num-cases = <0x2>;
+                       qcom,msm-bus,num-paths = <0x1>;
+                       qcom,msm-bus,vectors-KBps = <0x3f 0x200 0x0 0x0 0x3f 0x200 0x0 0x4a380>;
+                       qcom,proxy-timeout-ms = <0x64>;
+                       qcom,firmware-name = "venus";
+                       memory-region = <0x11f>;
+                       status = "ok";
+               };
+
+               qcom,msm-ssc-sensors {
+                       compatible = "qcom,msm-ssc-sensors";
+                       status = "ok";
+                       qcom,firmware-name = "slpi_dp";
+               };
+
+               cpuss_dump {
+                       compatible = "qcom,cpuss-dump";
+
+                       qcom,l1_i_cache0 {
+                               qcom,dump-node = <0x120>;
+                               qcom,dump-id = <0x60>;
+                       };
+
+                       qcom,l1_i_cache1 {
+                               qcom,dump-node = <0x121>;
+                               qcom,dump-id = <0x61>;
+                       };
+
+                       qcom,l1_i_cache2 {
+                               qcom,dump-node = <0x122>;
+                               qcom,dump-id = <0x62>;
+                       };
+
+                       qcom,l1_i_cache3 {
+                               qcom,dump-node = <0x123>;
+                               qcom,dump-id = <0x63>;
+                       };
+
+                       qcom,l1_i_cache100 {
+                               qcom,dump-node = <0x124>;
+                               qcom,dump-id = <0x64>;
+                       };
+
+                       qcom,l1_i_cache101 {
+                               qcom,dump-node = <0x125>;
+                               qcom,dump-id = <0x65>;
+                       };
+
+                       qcom,l1_i_cache102 {
+                               qcom,dump-node = <0x126>;
+                               qcom,dump-id = <0x66>;
+                       };
+
+                       qcom,l1_i_cache103 {
+                               qcom,dump-node = <0x127>;
+                               qcom,dump-id = <0x67>;
+                       };
+
+                       qcom,l1_d_cache0 {
+                               qcom,dump-node = <0x128>;
+                               qcom,dump-id = <0x80>;
+                       };
+
+                       qcom,l1_d_cache1 {
+                               qcom,dump-node = <0x129>;
+                               qcom,dump-id = <0x81>;
+                       };
+
+                       qcom,l1_d_cache2 {
+                               qcom,dump-node = <0x12a>;
+                               qcom,dump-id = <0x82>;
+                       };
+
+                       qcom,l1_d_cache3 {
+                               qcom,dump-node = <0x12b>;
+                               qcom,dump-id = <0x83>;
+                       };
+
+                       qcom,l1_d_cache100 {
+                               qcom,dump-node = <0x12c>;
+                               qcom,dump-id = <0x84>;
+                       };
+
+                       qcom,l1_d_cache101 {
+                               qcom,dump-node = <0x12d>;
+                               qcom,dump-id = <0x85>;
+                       };
+
+                       qcom,l1_d_cache102 {
+                               qcom,dump-node = <0x12e>;
+                               qcom,dump-id = <0x86>;
+                       };
+
+                       qcom,l1_d_cache103 {
+                               qcom,dump-node = <0x12f>;
+                               qcom,dump-id = <0x87>;
+                       };
+
+                       qcom,llcc1_d_cache {
+                               qcom,dump-node = <0x130>;
+                               qcom,dump-id = <0x140>;
+                       };
+
+                       qcom,llcc2_d_cache {
+                               qcom,dump-node = <0x131>;
+                               qcom,dump-id = <0x141>;
+                       };
+
+                       qcom,llcc3_d_cache {
+                               qcom,dump-node = <0x132>;
+                               qcom,dump-id = <0x142>;
+                       };
+
+                       qcom,llcc4_d_cache {
+                               qcom,dump-node = <0x133>;
+                               qcom,dump-id = <0x143>;
+                       };
+
+                       qcom,l1_tlb_dump0 {
+                               qcom,dump-node = <0x134>;
+                               qcom,dump-id = <0x120>;
+                       };
+
+                       qcom,l1_tlb_dump100 {
+                               qcom,dump-node = <0x135>;
+                               qcom,dump-id = <0x121>;
+                       };
+
+                       qcom,l1_tlb_dump200 {
+                               qcom,dump-node = <0x136>;
+                               qcom,dump-id = <0x122>;
+                       };
+
+                       qcom,l1_tlb_dump300 {
+                               qcom,dump-node = <0x137>;
+                               qcom,dump-id = <0x123>;
+                       };
+
+                       qcom,l1_tlb_dump400 {
+                               qcom,dump-node = <0x138>;
+                               qcom,dump-id = <0x124>;
+                       };
+
+                       qcom,l1_tlb_dump500 {
+                               qcom,dump-node = <0x139>;
+                               qcom,dump-id = <0x125>;
+                       };
+
+                       qcom,l1_tlb_dump600 {
+                               qcom,dump-node = <0x13a>;
+                               qcom,dump-id = <0x126>;
+                       };
+
+                       qcom,l1_tlb_dump700 {
+                               qcom,dump-node = <0x13b>;
+                               qcom,dump-id = <0x127>;
+                       };
+               };
+
+               kryo3xx-erp {
+                       compatible = "arm,arm64-kryo3xx-cpu-erp";
+                       interrupts = <0x1 0x6 0x4 0x1 0x7 0x4 0x0 0x22 0x4 0x0 0x23 0x4>;
+                       interrupt-names = "l1-l2-faultirq", "l1-l2-errirq", "l3-scu-errirq", "l3-scu-faultirq";
+               };
+
+               qcom,llcc@1100000 {
+                       compatible = "qcom,llcc-core", "syscon", "simple-mfd";
+                       reg = <0x1100000 0x250000>;
+                       reg-names = "llcc_base";
+                       qcom,llcc-banks-off = <0x0 0x80000 0x100000 0x180000>;
+                       qcom,llcc-broadcast-off = <0x200000>;
+
+                       qcom,sdm845-llcc {
+                               compatible = "qcom,sdm845-llcc";
+                               #cache-cells = <0x1>;
+                               max-slices = <0x20>;
+                               linux,phandle = <0x34>;
+                               phandle = <0x34>;
+                       };
+
+                       qcom,llcc-perfmon {
+                               compatible = "qcom,llcc-perfmon";
+                       };
+
+                       qcom,llcc-erp {
+                               compatible = "qcom,llcc-erp";
+                               interrupt-names = "ecc_irq";
+                               interrupts = <0x0 0x246 0x4>;
+                       };
+
+                       qcom,llcc-amon {
+                               compatible = "qcom,llcc-amon";
+                       };
+
+                       llcc_1_dcache {
+                               qcom,dump-size = <0x1141c0>;
+                               linux,phandle = <0x130>;
+                               phandle = <0x130>;
+                       };
+
+                       llcc_2_dcache {
+                               qcom,dump-size = <0x1141c0>;
+                               linux,phandle = <0x131>;
+                               phandle = <0x131>;
+                       };
+
+                       llcc_3_dcache {
+                               qcom,dump-size = <0x1141c0>;
+                               linux,phandle = <0x132>;
+                               phandle = <0x132>;
+                       };
+
+                       llcc_4_dcache {
+                               qcom,dump-size = <0x1141c0>;
+                               linux,phandle = <0x133>;
+                               phandle = <0x133>;
+                       };
+               };
+
+               qcom,ipc-spinlock@1f40000 {
+                       compatible = "qcom,ipc-spinlock-sfpb";
+                       reg = <0x1f40000 0x8000>;
+                       qcom,num-locks = <0x8>;
+               };
+
+               qcom,smem@86000000 {
+                       compatible = "qcom,smem";
+                       reg = <0x86000000 0x200000 0x17911008 0x4 0x778000 0x7000 0x1fd4000 0x8>;
+                       reg-names = "smem", "irq-reg-base", "aux-mem1", "smem_targ_info_reg";
+                       qcom,mpu-enabled;
+               };
+
+               qcom,glink-mailbox-xprt-spss@1885008 {
+                       compatible = "qcom,glink-mailbox-xprt";
+                       reg = <0x1885008 0x8 0x1885010 0x4 0x188501c 0x4 0x1886008 0x4>;
+                       reg-names = "mbox-loc-addr", "mbox-loc-size", "irq-reg-base", "irq-rx-reset";
+                       qcom,irq-mask = <0x1>;
+                       interrupts = <0x0 0x15c 0x4>;
+                       label = "spss";
+                       qcom,tx-ring-size = <0x400>;
+                       qcom,rx-ring-size = <0x400>;
+               };
+
+               qcom,qmp-aop@c300000 {
+                       compatible = "qcom,qmp-mbox";
+                       label = "aop";
+                       reg = <0xc300000 0x100000 0x1799000c 0x4>;
+                       reg-names = "msgram", "irq-reg-base";
+                       qcom,irq-mask = <0x1>;
+                       interrupts = <0x0 0x185 0x1>;
+                       priority = <0x0>;
+                       mbox-desc-offset = <0x0>;
+                       #mbox-cells = <0x1>;
+                       linux,phandle = <0xab>;
+                       phandle = <0xab>;
+               };
+
+               mailbox@179e0000 {
+                       compatible = "qcom,tcs-drv";
+                       label = "apps_rsc";
+                       reg = <0x179e0000 0x100 0x179e0d00 0x3000>;
+                       interrupts = <0x0 0x5 0x0>;
+                       #mbox-cells = <0x1>;
+                       qcom,drv-id = <0x2>;
+                       qcom,tcs-config = <0x2 0x2 0x0 0x3 0x1 0x3 0x3 0x1>;
+                       linux,phandle = <0xc2>;
+                       phandle = <0xc2>;
+               };
+
+               mailbox@af20000 {
+                       compatible = "qcom,tcs-drv";
+                       label = "display_rsc";
+                       reg = <0xaf20000 0x100 0xaf21c00 0x3000>;
+                       interrupts = <0x0 0x81 0x0>;
+                       #mbox-cells = <0x1>;
+                       qcom,drv-id = <0x0>;
+                       qcom,tcs-config = <0x0 0x1 0x1 0x1 0x2 0x0 0x3 0x1>;
+                       linux,phandle = <0x32>;
+                       phandle = <0x32>;
+               };
+
+               system_pm {
+                       compatible = "qcom,system-pm";
+                       mboxes = <0xc2 0x0>;
+               };
+
+               qcom,glink-smem-native-xprt-modem@86000000 {
+                       compatible = "qcom,glink-smem-native-xprt";
+                       reg = <0x86000000 0x200000 0x1799000c 0x4>;
+                       reg-names = "smem", "irq-reg-base";
+                       qcom,irq-mask = <0x1000>;
+                       interrupts = <0x0 0x1c1 0x1>;
+                       label = "mpss";
+               };
+
+               qcom,glink-smem-native-xprt-adsp@86000000 {
+                       compatible = "qcom,glink-smem-native-xprt";
+                       reg = <0x86000000 0x200000 0x1799000c 0x4>;
+                       reg-names = "smem", "irq-reg-base";
+                       qcom,irq-mask = <0x100>;
+                       interrupts = <0x0 0x9c 0x1>;
+                       label = "lpass";
+                       cpu-affinity = <0x1 0x2>;
+                       qcom,qos-config = <0x13c>;
+                       qcom,ramp-time = <0xaf>;
+               };
+
+               qcom,glink-qos-config-adsp {
+                       compatible = "qcom,glink-qos-config";
+                       qcom,flow-info = <0x3c 0x0 0x3c 0x0 0x3c 0x0 0x3c 0x0>;
+                       qcom,mtu-size = <0x800>;
+                       qcom,tput-stats-cycle = <0xa>;
+                       linux,phandle = <0x13c>;
+                       phandle = <0x13c>;
+               };
+
+               qcom,glink-smem-native-xprt-dsps@86000000 {
+                       compatible = "qcom,glink-smem-native-xprt";
+                       reg = <0x86000000 0x200000 0x1799000c 0x4>;
+                       reg-names = "smem", "irq-reg-base";
+                       qcom,irq-mask = <0x1000000>;
+                       interrupts = <0x0 0xaa 0x1>;
+                       label = "dsps";
+               };
+
+               qcom,glink-spi-xprt-wdsp {
+                       compatible = "qcom,glink-spi-xprt";
+                       label = "wdsp";
+                       qcom,remote-fifo-config = <0x13d>;
+                       qcom,qos-config = <0x13e>;
+                       qcom,ramp-time = <0x10 0x20 0x30 0x40>;
+                       linux,phandle = <0x369>;
+                       phandle = <0x369>;
+               };
+
+               qcom,glink-fifo-config-wdsp {
+                       compatible = "qcom,glink-fifo-config";
+                       qcom,out-read-idx-reg = <0x12000>;
+                       qcom,out-write-idx-reg = <0x12004>;
+                       qcom,in-read-idx-reg = <0x1200c>;
+                       qcom,in-write-idx-reg = <0x12010>;
+                       linux,phandle = <0x13d>;
+                       phandle = <0x13d>;
+               };
+
+               qcom,glink-qos-config-wdsp {
+                       compatible = "qcom,glink-qos-config";
+                       qcom,flow-info = <0x80 0x0 0x70 0x1 0x60 0x2 0x50 0x3>;
+                       qcom,mtu-size = <0x800>;
+                       qcom,tput-stats-cycle = <0xa>;
+                       linux,phandle = <0x13e>;
+                       phandle = <0x13e>;
+               };
+
+               qcom,glink-smem-native-xprt-cdsp@86000000 {
+                       compatible = "qcom,glink-smem-native-xprt";
+                       reg = <0x86000000 0x200000 0x1799000c 0x4>;
+                       reg-names = "smem", "irq-reg-base";
+                       qcom,irq-mask = <0x10>;
+                       interrupts = <0x0 0x23e 0x1>;
+                       label = "cdsp";
+               };
+
+               qcom,glink-ssr-modem {
+                       compatible = "qcom,glink_ssr";
+                       label = "modem";
+                       qcom,edge = "mpss";
+                       qcom,notify-edges = <0x13f 0x140 0x141 0x142>;
+                       qcom,xprt = "smem";
+                       linux,phandle = <0x143>;
+                       phandle = <0x143>;
+               };
+
+               qcom,glink-ssr-adsp {
+                       compatible = "qcom,glink_ssr";
+                       label = "adsp";
+                       qcom,edge = "lpass";
+                       qcom,notify-edges = <0x143 0x140 0x141>;
+                       qcom,xprt = "smem";
+                       linux,phandle = <0x13f>;
+                       phandle = <0x13f>;
+               };
+
+               qcom,glink-ssr-dsps {
+                       compatible = "qcom,glink_ssr";
+                       label = "slpi";
+                       qcom,edge = "dsps";
+                       qcom,notify-edges = <0x143 0x13f 0x141>;
+                       qcom,xprt = "smem";
+                       linux,phandle = <0x140>;
+                       phandle = <0x140>;
+               };
+
+               qcom,glink-ssr-cdsp {
+                       compatible = "qcom,glink_ssr";
+                       label = "cdsp";
+                       qcom,edge = "cdsp";
+                       qcom,notify-edges = <0x143 0x13f 0x140>;
+                       qcom,xprt = "smem";
+                       linux,phandle = <0x141>;
+                       phandle = <0x141>;
+               };
+
+               qcom,glink-ssr-spss {
+                       compatible = "qcom,glink_ssr";
+                       label = "spss";
+                       qcom,edge = "spss";
+                       qcom,notify-edges = <0x143>;
+                       qcom,xprt = "mailbox";
+                       linux,phandle = <0x142>;
+                       phandle = <0x142>;
+               };
+
+               qcom,ipc_router {
+                       compatible = "qcom,ipc_router";
+                       qcom,node-id = <0x1>;
+               };
+
+               qcom,ipc_router_modem_xprt {
+                       compatible = "qcom,ipc_router_glink_xprt";
+                       qcom,ch-name = "IPCRTR";
+                       qcom,xprt-remote = "mpss";
+                       qcom,glink-xprt = "smem";
+                       qcom,xprt-linkid = <0x1>;
+                       qcom,xprt-version = <0x1>;
+                       qcom,fragmented-data;
+               };
+
+               qcom,ipc_router_q6_xprt {
+                       compatible = "qcom,ipc_router_glink_xprt";
+                       qcom,ch-name = "IPCRTR";
+                       qcom,xprt-remote = "lpass";
+                       qcom,glink-xprt = "smem";
+                       qcom,xprt-linkid = <0x1>;
+                       qcom,xprt-version = <0x1>;
+                       qcom,fragmented-data;
+               };
+
+               qcom,ipc_router_dsps_xprt {
+                       compatible = "qcom,ipc_router_glink_xprt";
+                       qcom,ch-name = "IPCRTR";
+                       qcom,xprt-remote = "dsps";
+                       qcom,glink-xprt = "smem";
+                       qcom,xprt-linkid = <0x1>;
+                       qcom,xprt-version = <0x1>;
+                       qcom,fragmented-data;
+                       qcom,dynamic-wakeup-source;
+                       qcom,low-latency-xprt;
+               };
+
+               qcom,ipc_router_cdsp_xprt {
+                       compatible = "qcom,ipc_router_glink_xprt";
+                       qcom,ch-name = "IPCRTR";
+                       qcom,xprt-remote = "cdsp";
+                       qcom,glink-xprt = "smem";
+                       qcom,xprt-linkid = <0x1>;
+                       qcom,xprt-version = <0x1>;
+                       qcom,fragmented-data;
+               };
+
+               qcom,qsee_ipc_irq_bridge {
+                       compatible = "qcom,qsee-ipc-irq-bridge";
+
+                       qcom,qsee-ipc-irq-spss {
+                               qcom,rx-irq-clr = <0x1888008 0x4>;
+                               qcom,rx-irq-clr-mask = <0x1>;
+                               qcom,dev-name = "qsee_ipc_irq_spss";
+                               interrupts = <0x0 0x15d 0x4>;
+                               label = "spss";
+                       };
+               };
+
+               qcom,spcom {
+                       compatible = "qcom,spcom";
+                       qcom,spcom-ch-names = "sp_kernel", "sp_ssr";
+                       status = "ok";
+               };
+
+               qcom,spss_utils {
+                       compatible = "qcom,spss-utils";
+                       qcom,spss-fuse1-addr = <0x7841c4>;
+                       qcom,spss-fuse1-bit = <0x1b>;
+                       qcom,spss-fuse2-addr = <0x7841c4>;
+                       qcom,spss-fuse2-bit = <0x1a>;
+                       qcom,spss-dev-firmware-name = "spss2d";
+                       qcom,spss-test-firmware-name = "spss2t";
+                       qcom,spss-prod-firmware-name = "spss2p";
+                       qcom,spss-debug-reg-addr = <0x1886020>;
+                       status = "ok";
+               };
+
+               qcom,glink_pkt {
+                       compatible = "qcom,glinkpkt";
+
+                       qcom,glinkpkt-at-mdm0 {
+                               qcom,glinkpkt-transport = "smem";
+                               qcom,glinkpkt-edge = "mpss";
+                               qcom,glinkpkt-ch-name = "DS";
+                               qcom,glinkpkt-dev-name = "at_mdm0";
+                       };
+
+                       qcom,glinkpkt-loopback_cntl {
+                               qcom,glinkpkt-transport = "lloop";
+                               qcom,glinkpkt-edge = "local";
+                               qcom,glinkpkt-ch-name = "LOCAL_LOOPBACK_CLNT";
+                               qcom,glinkpkt-dev-name = "glink_pkt_loopback_ctrl";
+                       };
+
+                       qcom,glinkpkt-loopback_data {
+                               qcom,glinkpkt-transport = "lloop";
+                               qcom,glinkpkt-edge = "local";
+                               qcom,glinkpkt-ch-name = "glink_pkt_lloop_CLNT";
+                               qcom,glinkpkt-dev-name = "glink_pkt_loopback";
+                       };
+
+                       qcom,glinkpkt-apr-apps2 {
+                               qcom,glinkpkt-transport = "smem";
+                               qcom,glinkpkt-edge = "adsp";
+                               qcom,glinkpkt-ch-name = "apr_apps2";
+                               qcom,glinkpkt-dev-name = "apr_apps2";
+                       };
+
+                       qcom,glinkpkt-data40-cntl {
+                               qcom,glinkpkt-transport = "smem";
+                               qcom,glinkpkt-edge = "mpss";
+                               qcom,glinkpkt-ch-name = "DATA40_CNTL";
+                               qcom,glinkpkt-dev-name = "smdcntl8";
+                       };
+
+                       qcom,glinkpkt-data1 {
+                               qcom,glinkpkt-transport = "smem";
+                               qcom,glinkpkt-edge = "mpss";
+                               qcom,glinkpkt-ch-name = "DATA1";
+                               qcom,glinkpkt-dev-name = "smd7";
+                       };
+
+                       qcom,glinkpkt-data4 {
+                               qcom,glinkpkt-transport = "smem";
+                               qcom,glinkpkt-edge = "mpss";
+                               qcom,glinkpkt-ch-name = "DATA4";
+                               qcom,glinkpkt-dev-name = "smd8";
+                       };
+
+                       qcom,glinkpkt-data11 {
+                               qcom,glinkpkt-transport = "smem";
+                               qcom,glinkpkt-edge = "mpss";
+                               qcom,glinkpkt-ch-name = "DATA11";
+                               qcom,glinkpkt-dev-name = "smd11";
+                       };
+               };
+
+               qcom,sps {
+                       compatible = "qcom,msm_sps_4k";
+                       qcom,pipe-attr-ee;
+               };
+
+               qcom,qbt1000 {
+                       compatible = "qcom,qbt1000";
+                       clock-names = "core", "iface";
+                       clock-frequency = <0x17d7840>;
+                       qcom,ipc-gpio = <0x2e 0x79 0x0>;
+                       qcom,finger-detect-gpio = <0x4d 0x5 0x0>;
+                       status = "disabled";
+               };
+
+               qseecom@86d00000 {
+                       compatible = "qcom,qseecom";
+                       reg = <0x86d00000 0x3c00000>;
+                       reg-names = "secapp-region";
+                       qcom,hlos-num-ce-hw-instances = <0x1>;
+                       qcom,hlos-ce-hw-instance = <0x0>;
+                       qcom,qsee-ce-hw-instance = <0x0>;
+                       qcom,disk-encrypt-pipe-pair = <0x2>;
+                       qcom,support-fde;
+                       qcom,no-clock-support;
+                       qcom,fde-key-size;
+                       qcom,commonlib64-loaded-by-uefi;
+                       qcom,msm-bus,name = "qseecom-noc";
+                       qcom,msm-bus,num-cases = <0x4>;
+                       qcom,msm-bus,num-paths = <0x1>;
+                       qcom,msm-bus,vectors-KBps = <0x7d 0x200 0x0 0x0 0x7d 0x200 0x30d40 0x61a80 0x7d 0x200 0x493e0 0xc3500 0x7d 0x200 0x61a80 0xf4240>;
+                       clock-names = "core_clk_src", "core_clk", "iface_clk", "bus_clk";
+                       clocks = <0x22 0x11 0x22 0x11 0x22 0xf 0x22 0x10>;
+                       qcom,ce-opp-freq = <0xa37d070>;
+                       qcom,qsee-reentrancy-support = <0x2>;
+               };
+
+               qrng@793000 {
+                       compatible = "qcom,msm-rng";
+                       reg = <0x793000 0x1000>;
+                       qcom,msm-rng-iface-clk;
+                       qcom,no-qrng-config;
+                       qcom,msm-bus,name = "msm-rng-noc";
+                       qcom,msm-bus,num-cases = <0x2>;
+                       qcom,msm-bus,num-paths = <0x1>;
+                       qcom,msm-bus,vectors-KBps = <0x1 0x26a 0x0 0x0 0x1 0x26a 0x0 0x493e0>;
+                       clocks = <0x22 0x48>;
+                       clock-names = "iface_clk";
+               };
+
+               tz-log@146bf720 {
+                       compatible = "qcom,tz-log";
+                       reg = <0x146bf720 0x3000>;
+                       qcom,hyplog-enabled;
+                       hyplog-address-offset = <0x410>;
+                       hyplog-size-offset = <0x414>;
+               };
+
+               qcedev@1de0000 {
+                       compatible = "qcom,qcedev";
+                       reg = <0x1de0000 0x20000 0x1dc4000 0x24000>;
+                       reg-names = "crypto-base", "crypto-bam-base";
+                       interrupts = <0x0 0x110 0x0>;
+                       qcom,bam-pipe-pair = <0x3>;
+                       qcom,ce-hw-instance = <0x0>;
+                       qcom,ce-device = <0x0>;
+                       qcom,ce-hw-shared;
+                       qcom,bam-ee = <0x0>;
+                       qcom,msm-bus,name = "qcedev-noc";
+                       qcom,msm-bus,num-cases = <0x2>;
+                       qcom,msm-bus,num-paths = <0x1>;
+                       qcom,msm-bus,vectors-KBps = <0x7d 0x200 0x0 0x0 0x7d 0x200 0x60180 0x60180>;
+                       clock-names = "core_clk_src", "core_clk", "iface_clk", "bus_clk";
+                       clocks = <0x22 0x11 0x22 0x11 0x22 0xf 0x22 0x10>;
+                       qcom,ce-opp-freq = <0xa37d070>;
+                       qcom,request-bw-before-clk;
+                       qcom,smmu-s1-enable;
+                       iommus = <0x29 0x706 0x1 0x29 0x716 0x1>;
+
+                       qcom_cedev_ns_cb {
+                               compatible = "qcom,qcedev,context-bank";
+                               label = "ns_context";
+                               iommus = <0x29 0x712 0x0 0x29 0x71f 0x0>;
+                               virtual-addr = <0x60000000>;
+                               virtual-size = <0x40000000>;
+                       };
+
+                       qcom_cedev_s_cb {
+                               compatible = "qcom,qcedev,context-bank";
+                               label = "secure_context";
+                               iommus = <0x29 0x713 0x0 0x29 0x71c 0x0 0x29 0x71d 0x0 0x29 0x71e 0x0>;
+                               virtual-addr = <0x60200000>;
+                               virtual-size = <0x40000000>;
+                               qcom,secure-context-bank;
+                       };
+               };
+
+               qcom,msm_hdcp {
+                       compatible = "qcom,msm-hdcp";
+               };
+
+               qcrypto@1de0000 {
+                       compatible = "qcom,qcrypto";
+                       reg = <0x1de0000 0x20000 0x1dc4000 0x24000>;
+                       reg-names = "crypto-base", "crypto-bam-base";
+                       interrupts = <0x0 0x110 0x0>;
+                       qcom,bam-pipe-pair = <0x2>;
+                       qcom,ce-hw-instance = <0x0>;
+                       qcom,ce-device = <0x0>;
+                       qcom,bam-ee = <0x0>;
+                       qcom,ce-hw-shared;
+                       qcom,clk-mgmt-sus-res;
+                       qcom,msm-bus,name = "qcrypto-noc";
+                       qcom,msm-bus,num-cases = <0x2>;
+                       qcom,msm-bus,num-paths = <0x1>;
+                       qcom,msm-bus,vectors-KBps = <0x7d 0x200 0x0 0x0 0x7d 0x200 0x60180 0x60180>;
+                       clock-names = "core_clk_src", "core_clk", "iface_clk", "bus_clk";
+                       clocks = <0x22 0x11 0x22 0x11 0x22 0xf 0x22 0x10>;
+                       qcom,ce-opp-freq = <0xa37d070>;
+                       qcom,request-bw-before-clk;
+                       qcom,use-sw-aes-cbc-ecb-ctr-algo;
+                       qcom,use-sw-aes-xts-algo;
+                       qcom,use-sw-aes-ccm-algo;
+                       qcom,use-sw-ahash-algo;
+                       qcom,use-sw-aead-algo;
+                       qcom,use-sw-hmac-algo;
+                       qcom,smmu-s1-enable;
+                       iommus = <0x29 0x704 0x1 0x29 0x714 0x1>;
+               };
+
+               qcom,msm_gsi {
+                       compatible = "qcom,msm_gsi";
+               };
+
+               qcom,rmtfs_sharedmem@0 {
+                       compatible = "qcom,sharedmem-uio";
+                       reg = <0x0 0x200000>;
+                       reg-names = "rmtfs";
+                       qcom,client-id = <0x1>;
+                       qcom,guard-memory;
+               };
+
+               qcom,rmnet-ipa {
+                       compatible = "qcom,rmnet-ipa3";
+                       qcom,rmnet-ipa-ssr;
+                       qcom,ipa-loaduC;
+                       qcom,ipa-advertise-sg-support;
+                       qcom,ipa-napi-enable;
+               };
+
+               qcom,ipa@01e00000 {
+                       compatible = "qcom,ipa";
+                       reg = <0x1e00000 0x34000 0x1e04000 0x2c000>;
+                       reg-names = "ipa-base", "gsi-base";
+                       interrupts = <0x0 0x137 0x0 0x0 0x1b0 0x0>;
+                       interrupt-names = "ipa-irq", "gsi-irq";
+                       qcom,ipa-hw-ver = <0xd>;
+                       qcom,ipa-hw-mode = <0x0>;
+                       qcom,ee = <0x0>;
+                       qcom,use-ipa-tethering-bridge;
+                       qcom,modem-cfg-emb-pipe-flt;
+                       qcom,ipa-wdi2;
+                       qcom,use-64-bit-dma-mask;
+                       qcom,arm-smmu;
+                       qcom,bandwidth-vote-for-ipa;
+                       qcom,msm-bus,name = "ipa";
+                       qcom,msm-bus,num-cases = <0x5>;
+                       qcom,msm-bus,num-paths = <0x4>;
+                       qcom,msm-bus,vectors-KBps = <0x5a 0x200 0x0 0x0 0x5a 0x249 0x0 0x0 0x1 0x2a4 0x0 0x0 0x8f 0x309 0x0 0x0 0x5a 0x200 0x13880 0x927c0 0x5a 0x249 0x13880 0x55730 0x1 0x2a4 0x9c40 0x9c40 0x8f 0x309 0x0 0x4b 0x5a 0x200 0x13880 0x9c400 0x5a 0x249 0x13880 0x9c400 0x1 0x2a4 0x13880 0x13880 0x8f 0x309 0x0 0x96 0x5a 0x200 0x324b0 0xea600 0x5a 0x249 0x324b0 0xea600 0x1 0x2a4 0x324b0 0x27100 0x8f 0x309 0x0 0x12c 0x5a 0x200 0x324b0 0x36ee80 0x5a 0x249 0x324b0 0x36ee80 0x1 0x2a4 0x324b0 0x493e0 0x8f 0x309 0x0 0x163>;
+                       qcom,bus-vector-names = "MIN", "SVS2", "SVS", "NOMINAL", "TURBO";
+                       qcom,ipa-ram-mmap = <0x280 0x0 0x0 0x288 0x78 0x4000 0x308 0x78 0x4000 0x388 0x78 0x4000 0x408 0x78 0x4000 0xf 0x0 0x7 0x8 0xe 0x488 0x78 0x4000 0x508 0x78 0x4000 0xf 0x0 0x7 0x8 0xe 0x588 0x78 0x4000 0x608 0x78 0x4000 0x688 0x140 0x7c8 0x0 0x800 0x7d0 0x200 0x9d0 0x200 0x0 0x0 0x0 0xbd8 0x1024 0x2000 0x0 0x2000 0x0 0x2000 0x0 0x2000 0x0 0x80 0x200 0x2000 0x2000 0x0 0x2000 0x0 0x2000 0x0 0x2000 0x0 0x1c00 0x400>;
+
+                       qcom,smp2pgpio_map_ipa_1_out {
+                               compatible = "qcom,smp2pgpio-map-ipa-1-out";
+                               gpios = <0x144 0x0 0x0>;
+                       };
+
+                       qcom,smp2pgpio_map_ipa_1_in {
+                               compatible = "qcom,smp2pgpio-map-ipa-1-in";
+                               gpios = <0x145 0x0 0x0>;
+                       };
+
+                       ipa_smmu_ap {
+                               compatible = "qcom,ipa-smmu-ap-cb";
+                               qcom,smmu-s1-bypass;
+                               iommus = <0x29 0x720 0x0>;
+                               qcom,iova-mapping = <0x20000000 0x40000000>;
+                               qcom,additional-mapping = <0x146bd000 0x146bd000 0x2000>;
+                       };
+
+                       ipa_smmu_wlan {
+                               compatible = "qcom,ipa-smmu-wlan-cb";
+                               qcom,smmu-s1-bypass;
+                               iommus = <0x29 0x721 0x0>;
+                               qcom,additional-mapping = <0x1e60000 0x1e60000 0x80000>;
+                       };
+
+                       ipa_smmu_uc {
+                               compatible = "qcom,ipa-smmu-uc-cb";
+                               qcom,smmu-s1-bypass;
+                               iommus = <0x29 0x722 0x0>;
+                               qcom,iova-mapping = <0x40000000 0x20000000>;
+                       };
+               };
+
+               qcom,ipa_fws {
+                       compatible = "qcom,pil-tz-generic";
+                       qcom,pas-id = <0xf>;
+                       qcom,firmware-name = "ipa_fws";
+                       qcom,pil-force-shutdown;
+                       memory-region = <0x146>;
+               };
+
+               qcom,chd_sliver {
+                       compatible = "qcom,core-hang-detect";
+                       label = "silver";
+                       qcom,threshold-arr = <0x17e00058 0x17e10058 0x17e20058 0x17e30058>;
+                       qcom,config-arr = <0x17e00060 0x17e10060 0x17e20060 0x17e30060>;
+               };
+
+               qcom,chd_gold {
+                       compatible = "qcom,core-hang-detect";
+                       label = "gold";
+                       qcom,threshold-arr = <0x17e40058 0x17e50058 0x17e60058 0x17e70058>;
+                       qcom,config-arr = <0x17e40060 0x17e50060 0x17e60060 0x17e70060>;
+               };
+
+               qcom,ghd {
+                       compatible = "qcom,gladiator-hang-detect-v2";
+                       qcom,threshold-arr = <0x1799041c 0x17990420>;
+                       qcom,config-reg = <0x17990434>;
+               };
+
+               qcom,msm-gladiator-v3@17900000 {
+                       compatible = "qcom,msm-gladiator-v3";
+                       reg = <0x17900000 0xd080>;
+                       reg-names = "gladiator_base";
+                       interrupts = <0x0 0x11 0x0>;
+               };
+
+               qcom,cmd-db@861e0000 {
+                       compatible = "qcom,cmd-db";
+                       reg = <0xc3f000c 0x8>;
+               };
+
+               dcc_v2@10a2000 {
+                       compatible = "qcom,dcc-v2";
+                       reg = <0x10a2000 0x1000 0x10ae000 0x2000>;
+                       reg-names = "dcc-base", "dcc-ram-base";
+                       dcc-ram-offset = <0x6000>;
+                       qcom,curr-link-list = <0x2>;
+                       qcom,link-list = <0x0 0x1740300 0x6 0x0 0x0 0x1620500 0x4 0x0 0x0 0x7840000 0x1 0x0 0x0 0x7841010 0xc 0x0 0x0 0x7842000 0x10 0x0 0x0 0x7842500 0x2 0x0 0x2 0x7 0x0 0x0 0x0 0x7841000 0x1 0x0 0x2 0x1 0x0 0x0 0x2 0xa5 0x0 0x0 0x0 0x7841008 0x2 0x0 0x2 0x1 0x0 0x0 0x0 0x17dc3a84 0x2 0x0 0x0 0x17db3a84 0x1 0x0 0x0 0x1301000 0x2 0x0 0x0 0x17990044 0x1 0x0 0x0 0x17d45f00 0x1 0x0 0x0 0x17d45f08 0x6 0x0 0x0 0x17d45f80 0x1 0x0 0x0 0x17d47418 0x1 0x0 0x0 0x17d47570 0x1 0x0 0x0 0x17d47588 0x1 0x0 0x0 0x17d43700 0x1 0x0 0x0 0x17d43708 0x6 0x0 0x0 0x17d43780 0x1 0x0 0x0 0x17d44c18 0x1 0x0 0x0 0x17d44d70 0x1 0x0 0x0 0x17d44d88 0x1 0x0 0x0 0x17d41700 0x1 0x0 0x0 0x17d41708 0x6 0x0 0x0 0x17d41780 0x1 0x0 0x0 0x17d42c18 0x1 0x0 0x0 0x17d42d70 0x1 0x0 0x0 0x17d42d88 0x1 0x0 0x1 0x69ea00c 0x600007 0x1 0x1 0x69ea01c 0x136800 0x1 0x0 0x69ea014 0x1 0x1 0x1 0x69ea01c 0x136810 0x1 0x0 0x69ea014 0x1 0x1 0x1 0x69ea01c 0x136820 0x1 0x0 0x69ea014 0x1 0x1 0x1 0x69ea01c 0x136830 0x1 0x0 0x69ea014 0x1 0x1 0x1 0x69ea01c 0x136840 0x1 0x0 0x69ea014 0x1 0x1 0x1 0x69ea01c 0x136850 0x1 0x0 0x69ea014 0x1 0x1 0x1 0x69ea01c 0x136860 0x1 0x0 0x69ea014 0x1 0x1 0x1 0x69ea01c 0x136870 0x1 0x0 0x69ea014 0x1 0x1 0x1 0x69ea01c 0x3e9a0 0x1 0x1 0x69ea01c 0x1368a0 0x1 0x0 0x69ea014 0x1 0x1 0x1 0x69ea01c 0x3c0a0 0x1 0x1 0x69ea01c 0x1368a0 0x1 0x0 0x69ea014 0x1 0x1 0x1 0x69ea01c 0x3d1a0 0x1 0x1 0x69ea01c 0x1368a0 0x1 0x0 0x69ea014 0x1 0x1 0x1 0x69ea01c 0x3d2a0 0x1 0x1 0x69ea01c 0x1368a0 0x1 0x0 0x69ea014 0x1 0x1 0x1 0x69ea01c 0x3d5a0 0x1 0x1 0x69ea01c 0x1368a0 0x1 0x0 0x69ea014 0x1 0x1 0x1 0x69ea01c 0x3d6a0 0x1 0x1 0x69ea01c 0x1368a0 0x1 0x0 0x69ea014 0x1 0x1 0x1 0x69ea01c 0x1368a0 0x1 0x1 0x69ea01c 0x1368a0 0x1 0x0 0x69ea014 0x1 0x1 0x1 0x69ea01c 0x3b1a0 0x1 0x1 0x69ea01c 0x1368a0 0x1 0x0 0x69ea014 0x1 0x1 0x1 0x69ea01c 0x3b2a0 0x1 0x1 0x69ea01c 0x1368a0 0x1 0x0 0x69ea014 0x1 0x1 0x1 0x69ea01c 0x3b5a0 0x1 0x1 0x69ea01c 0x1368a0 0x1 0x0 0x69ea014 0x1 0x1 0x1 0x69ea01c 0x3b6a0 0x1 0x1 0x69ea01c 0x1368a0 0x1 0x0 0x69ea014 0x1 0x1 0x1 0x69ea01c 0x3c2a0 0x1 0x1 0x69ea01c 0x1368a0 0x1 0x0 0x69ea014 0x1 0x1 0x1 0x69ea01c 0x3c5a0 0x1 0x1 0x69ea01c 0x1368a0 0x1 0x0 0x69ea014 0x1 0x1 0x1 0x69ea01c 0x3c6a0 0x1 0x1 0x69ea01c 0x1368a0 0x1 0x0 0x69ea014 0x1 0x1 0x1 0x69ea01c 0xf1e000 0x1 0x1 0x69ea008 0x7 0x1 0x0 0x13e7e00 0x1f 0x0 0x0 0x1132100 0x1 0x0 0x0 0x1136044 0x4 0x0 0x0 0x11360b0 0x1 0x0 0x0 0x113e030 0x2 0x0 0x0 0x1141000 0x1 0x0 0x0 0x1148058 0x4 0x0 0x0 0x1160410 0x3 0x0 0x0 0x11604a0 0x1 0x0 0x0 0x11604b8 0x1 0x0 0x0 0x1165804 0x1 0x0 0x0 0x1166418 0x1 0x0 0x0 0x11b2100 0x1 0x0 0x0 0x11b6044 0x4 0x0 0x0 0x11be030 0x2 0x0 0x0 0x11c1000 0x1 0x0 0x0 0x11c8058 0x4 0x0 0x0 0x11e0410 0x3 0x0 0x0 0x11e04a0 0x1 0x0 0x0 0x11e04b8 0x1 0x0 0x0 0x11e5804 0x1 0x0 0x0 0x11e6418 0x1 0x0 0x0 0x1232100 0x1 0x0 0x0 0x1236044 0x4 0x0 0x0 0x12360b0 0x1 0x0 0x0 0x123e030 0x2 0x0 0x0 0x1241000 0x1 0x0 0x0 0x1248058 0x4 0x0 0x0 0x1260410 0x3 0x0 0x0 0x12604a0 0x1 0x0 0x0 0x12604b8 0x1 0x0 0x0 0x1265804 0x1 0x0 0x0 0x1266418 0x1 0x0 0x0 0x12b2100 0x1 0x0 0x0 0x12b6044 0x3 0x0 0x0 0x12b6050 0x1 0x0 0x0 0x12b60b0 0x1 0x0 0x0 0x12be030 0x2 0x0 0x0 0x12c1000 0x1 0x0 0x0 0x12c8058 0x4 0x0 0x0 0x12e0410 0x3 0x0 0x0 0x12e04a0 0x1 0x0 0x0 0x12e04b8 0x1 0x0 0x0 0x12e5804 0x1 0x0 0x0 0x12e6418 0x1 0x0 0x0 0x1380900 0x8 0x0 0x0 0x1380d00 0x5 0x0 0x0 0x1430280 0x1 0x0 0x0 0x1430288 0x1 0x0 0x0 0x143028c 0x7 0x0 0x0 0x1132100 0x1 0x0 0x0 0x1136044 0x4 0x0 0x0 0x11360b0 0x1 0x0 0x0 0x113e030 0x2 0x0 0x0 0x1141000 0x1 0x0 0x0 0x1148058 0x4 0x0 0x0 0x1160410 0x3 0x0 0x0 0x11604a0 0x1 0x0 0x0 0x11604b8 0x1 0x0 0x0 0x1165804 0x1 0x0 0x0 0x1166418 0x1 0x0 0x0 0x11b2100 0x1 0x0 0x0 0x11b6044 0x4 0x0 0x0 0x11be030 0x2 0x0 0x0 0x11c1000 0x1 0x0 0x0 0x11c8058 0x4 0x0 0x0 0x11e0410 0x3 0x0 0x0 0x11e04a0 0x1 0x0 0x0 0x11e04b8 0x1 0x0 0x0 0x11e5804 0x1 0x0 0x0 0x11e6418 0x1 0x0 0x0 0x1232100 0x1 0x0 0x0 0x1236044 0x4 0x0 0x0 0x12360b0 0x1 0x0 0x0 0x123e030 0x2 0x0 0x0 0x1241000 0x1 0x0 0x0 0x1248058 0x4 0x0 0x0 0x1260410 0x3 0x0 0x0 0x12604a0 0x1 0x0 0x0 0x12604b8 0x1 0x0 0x0 0x1265804 0x1 0x0 0x0 0x1266418 0x1 0x0 0x0 0x12b2100 0x1 0x0 0x0 0x12b6044 0x3 0x0 0x0 0x12b6050 0x1 0x0 0x0 0x12b60b0 0x1 0x0 0x0 0x12be030 0x2 0x0 0x0 0x12c1000 0x1 0x0 0x0 0x12c8058 0x4 0x0 0x0 0x12e0410 0x3 0x0 0x0 0x12e04a0 0x1 0x0 0x0 0x12e04b8 0x1 0x0 0x0 0x12e5804 0x1 0x0 0x0 0x12e6418 0x1 0x0 0x0 0x1380900 0x8 0x0 0x0 0x1380d00 0x5 0x0 0x0 0x1430280 0x1 0x0 0x0 0x1430288 0x1 0x0 0x0 0x143028c 0x7 0x0 0x0 0xc201244 0x1 0x0 0x0 0xc202244 0x1 0x0>;
+               };
+
+               qcom,msm-core@780000 {
+                       compatible = "qcom,apss-core-ea";
+                       reg = <0x780000 0x1000>;
+               };
+
+               qcom,icnss@18800000 {
+                       compatible = "qcom,icnss";
+                       reg = <0x18800000 0x800000 0xa0000000 0x10000000 0xb0000000 0x10000>;
+                       reg-names = "membase", "smmu_iova_base", "smmu_iova_ipa";
+                       iommus = <0x29 0x40 0x1>;
+                       interrupts = <0x0 0x19e 0x0 0x0 0x19f 0x0 0x0 0x1a0 0x0 0x0 0x1a1 0x0 0x0 0x1a2 0x0 0x0 0x1a3 0x0 0x0 0x1a4 0x0 0x0 0x1a5 0x0 0x0 0x1a6 0x0 0x0 0x1a7 0x0 0x0 0x1a8 0x0 0x0 0x1a9 0x0>;
+                       qcom,wlan-msa-memory = <0x100000>;
+                       qcom,gpio-force-fatal-error = <0x147 0x0 0x0>;
+                       qcom,gpio-early-crash-ind = <0x147 0x1 0x0>;
+                       vdd-0.8-cx-mx-supply = <0x148>;
+                       vdd-1.8-xo-supply = <0x149>;
+                       vdd-1.3-rfa-supply = <0x14a>;
+                       vdd-3.3-ch0-supply = <0x14b>;
+                       qcom,vdd-0.8-cx-mx-config = <0xc3500 0xc3500>;
+                       qcom,vdd-3.3-ch0-config = <0x2f5d00 0x328980>;
+                       qcom,smmu-s1-bypass;
+               };
+
+               qmi-tmd-devices {
+                       compatible = "qcom,qmi_cooling_devices";
+
+                       modem {
+                               qcom,instance-id = <0x0>;
+
+                               modem_pa {
+                                       qcom,qmi-dev-name = "pa";
+                                       #cooling-cells = <0x2>;
+                               };
+
+                               modem_proc {
+                                       qcom,qmi-dev-name = "modem";
+                                       #cooling-cells = <0x2>;
+                               };
+
+                               modem_current {
+                                       qcom,qmi-dev-name = "modem_current";
+                                       #cooling-cells = <0x2>;
+                               };
+
+                               modem_skin {
+                                       qcom,qmi-dev-name = "modem_skin";
+                                       #cooling-cells = <0x2>;
+                               };
+
+                               modem_vdd {
+                                       qcom,qmi-dev-name = "cpuv_restriction_cold";
+                                       #cooling-cells = <0x2>;
+                                       linux,phandle = <0x160>;
+                                       phandle = <0x160>;
+                               };
+                       };
+
+                       adsp {
+                               qcom,instance-id = <0x1>;
+
+                               adsp_vdd {
+                                       qcom,qmi-dev-name = "cpuv_restriction_cold";
+                                       #cooling-cells = <0x2>;
+                                       linux,phandle = <0x161>;
+                                       phandle = <0x161>;
+                               };
+                       };
+
+                       cdsp {
+                               qcom,instance-id = <0x43>;
+
+                               cdsp_vdd {
+                                       qcom,qmi-dev-name = "cpuv_restriction_cold";
+                                       #cooling-cells = <0x2>;
+                                       linux,phandle = <0x162>;
+                                       phandle = <0x162>;
+                               };
+                       };
+
+                       slpi {
+                               qcom,instance-id = <0x53>;
+
+                               slpi_vdd {
+                                       qcom,qmi-dev-name = "cpuv_restriction_cold";
+                                       #cooling-cells = <0x2>;
+                                       linux,phandle = <0x163>;
+                                       phandle = <0x163>;
+                               };
+                       };
+               };
+
+               thermal-zones {
+
+                       aoss0-usr {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "user_space";
+                               thermal-sensors = <0x14c 0x0>;
+                               wake-capable-sensor;
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0x1e848>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       cpu0-silver-usr {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "user_space";
+                               thermal-sensors = <0x14c 0x1>;
+                               wake-capable-sensor;
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0x1e848>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       cpu1-silver-usr {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "user_space";
+                               thermal-sensors = <0x14c 0x2>;
+                               wake-capable-sensor;
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0x1e848>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       cpu2-silver-usr {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "user_space";
+                               thermal-sensors = <0x14c 0x3>;
+                               wake-capable-sensor;
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0x1e848>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       cpu3-silver-usr {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x14c 0x4>;
+                               wake-capable-sensor;
+                               thermal-governor = "user_space";
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0x1e848>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       kryo-l3-0-usr {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x14c 0x5>;
+                               wake-capable-sensor;
+                               thermal-governor = "user_space";
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0x1e848>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       kryo-l3-1-usr {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x14c 0x6>;
+                               wake-capable-sensor;
+                               thermal-governor = "user_space";
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0x1e848>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       cpu0-gold-usr {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x14c 0x7>;
+                               wake-capable-sensor;
+                               thermal-governor = "user_space";
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0x1e848>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       cpu1-gold-usr {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x14c 0x8>;
+                               wake-capable-sensor;
+                               thermal-governor = "user_space";
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0x1e848>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       cpu2-gold-usr {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x14c 0x9>;
+                               wake-capable-sensor;
+                               thermal-governor = "user_space";
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0x1e848>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       cpu3-gold-usr {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x14c 0xa>;
+                               wake-capable-sensor;
+                               thermal-governor = "user_space";
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0x1e848>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       gpu0-usr {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x14c 0xb>;
+                               wake-capable-sensor;
+                               thermal-governor = "user_space";
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0x1e848>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       gpu1-usr {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "user_space";
+                               thermal-sensors = <0x14c 0xc>;
+                               wake-capable-sensor;
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0x1e848>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       aoss1-usr {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x14d 0x0>;
+                               wake-capable-sensor;
+                               thermal-governor = "user_space";
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0x1e848>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       mdm-dsp-usr {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x14d 0x1>;
+                               wake-capable-sensor;
+                               thermal-governor = "user_space";
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0x1e848>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       ddr-usr {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x14d 0x2>;
+                               wake-capable-sensor;
+                               thermal-governor = "user_space";
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0x1e848>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       wlan-usr {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x14d 0x3>;
+                               wake-capable-sensor;
+                               thermal-governor = "user_space";
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0x1e848>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       compute-hvx-usr {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x14d 0x4>;
+                               wake-capable-sensor;
+                               thermal-governor = "user_space";
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0x1e848>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       camera-usr {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x14d 0x5>;
+                               wake-capable-sensor;
+                               thermal-governor = "user_space";
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0x1e848>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       mmss-usr {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x14d 0x6>;
+                               wake-capable-sensor;
+                               thermal-governor = "user_space";
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0x1e848>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       mdm-core-usr {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x14d 0x7>;
+                               wake-capable-sensor;
+                               thermal-governor = "user_space";
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0x1e848>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       gpu-virt-max-step {
+                               polling-delay-passive = <0xa>;
+                               polling-delay = <0x64>;
+                               thermal-governor = "step_wise";
+                               wake-capable-sensor;
+
+                               trips {
+
+                                       gpu-trip0 {
+                                               temperature = <0x17318>;
+                                               hysteresis = <0x0>;
+                                               type = "passive";
+                                               linux,phandle = <0x14e>;
+                                               phandle = <0x14e>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       gpu_cdev0 {
+                                               trip = <0x14e>;
+                                               cooling-device = <0xd5 0x0 0xffffffff>;
+                                       };
+                               };
+                       };
+
+                       silv-virt-max-step {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "step_wise";
+                               wake-capable-sensor;
+
+                               trips {
+
+                                       silver-trip {
+                                               temperature = <0x1d4c0>;
+                                               hysteresis = <0x0>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       gold-virt-max-step {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "step_wise";
+                               wake-capable-sensor;
+
+                               trips {
+
+                                       gold-trip {
+                                               temperature = <0x1d4c0>;
+                                               hysteresis = <0x0>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       pop-mem-step {
+                               polling-delay-passive = <0xa>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x14d 0x2>;
+                               wake-capable-sensor;
+                               thermal-governor = "step_wise";
+
+                               trips {
+
+                                       pop-trip {
+                                               temperature = <0x17318>;
+                                               hysteresis = <0x0>;
+                                               type = "passive";
+                                               linux,phandle = <0x14f>;
+                                               phandle = <0x14f>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       pop_cdev4 {
+                                               trip = <0x14f>;
+                                               cooling-device = <0x15 0xffffffff 0xfffffffd>;
+                                       };
+
+                                       pop_cdev5 {
+                                               trip = <0x14f>;
+                                               cooling-device = <0x16 0xffffffff 0xfffffffd>;
+                                       };
+
+                                       pop_cdev6 {
+                                               trip = <0x14f>;
+                                               cooling-device = <0x17 0xffffffff 0xfffffffd>;
+                                       };
+
+                                       pop_cdev7 {
+                                               trip = <0x14f>;
+                                               cooling-device = <0x18 0xffffffff 0xfffffffd>;
+                                       };
+                               };
+                       };
+
+                       cpu0-silver-step {
+                               polling-delay-passive = <0x64>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x14c 0x1>;
+                               wake-capable-sensor;
+                               thermal-governor = "step_wise";
+
+                               trips {
+
+                                       emerg-config0 {
+                                               temperature = <0x1adb0>;
+                                               hysteresis = <0x2710>;
+                                               type = "passive";
+                                               linux,phandle = <0x150>;
+                                               phandle = <0x150>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       emerg_cdev0 {
+                                               trip = <0x150>;
+                                               cooling-device = <0x11 0xfffffffe 0xfffffffe>;
+                                       };
+                               };
+                       };
+
+                       cpu1-silver-step {
+                               polling-delay-passive = <0x64>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x14c 0x2>;
+                               wake-capable-sensor;
+                               thermal-governor = "step_wise";
+
+                               trips {
+
+                                       emerg-config1 {
+                                               temperature = <0x1adb0>;
+                                               hysteresis = <0x2710>;
+                                               type = "passive";
+                                               linux,phandle = <0x151>;
+                                               phandle = <0x151>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       emerg_cdev1 {
+                                               trip = <0x151>;
+                                               cooling-device = <0x12 0xfffffffe 0xfffffffe>;
+                                       };
+                               };
+                       };
+
+                       cpu2-silver-step {
+                               polling-delay-passive = <0x64>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x14c 0x3>;
+                               wake-capable-sensor;
+                               thermal-governor = "step_wise";
+
+                               trips {
+
+                                       emerg-config2 {
+                                               temperature = <0x1adb0>;
+                                               hysteresis = <0x2710>;
+                                               type = "passive";
+                                               linux,phandle = <0x152>;
+                                               phandle = <0x152>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       emerg_cdev2 {
+                                               trip = <0x152>;
+                                               cooling-device = <0x13 0xfffffffe 0xfffffffe>;
+                                       };
+                               };
+                       };
+
+                       cpu3-silver-step {
+                               polling-delay-passive = <0x64>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x14c 0x4>;
+                               wake-capable-sensor;
+                               thermal-governor = "step_wise";
+
+                               trips {
+
+                                       emerg-config3 {
+                                               temperature = <0x1adb0>;
+                                               hysteresis = <0x2710>;
+                                               type = "passive";
+                                               linux,phandle = <0x153>;
+                                               phandle = <0x153>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       emerg_cdev3 {
+                                               trip = <0x153>;
+                                               cooling-device = <0x14 0xfffffffe 0xfffffffe>;
+                                       };
+                               };
+                       };
+
+                       cpu0-gold-step {
+                               polling-delay-passive = <0x64>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x14c 0x7>;
+                               wake-capable-sensor;
+                               thermal-governor = "step_wise";
+
+                               trips {
+
+                                       emerg-config4 {
+                                               temperature = <0x1adb0>;
+                                               hysteresis = <0x2710>;
+                                               type = "passive";
+                                               linux,phandle = <0x154>;
+                                               phandle = <0x154>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       emerg_cdev4 {
+                                               trip = <0x154>;
+                                               cooling-device = <0x15 0xfffffffe 0xfffffffe>;
+                                       };
+                               };
+                       };
+
+                       cpu1-gold-step {
+                               polling-delay-passive = <0x64>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x14c 0x8>;
+                               wake-capable-sensor;
+                               thermal-governor = "step_wise";
+
+                               trips {
+
+                                       emerg-config5 {
+                                               temperature = <0x1adb0>;
+                                               hysteresis = <0x2710>;
+                                               type = "passive";
+                                               linux,phandle = <0x155>;
+                                               phandle = <0x155>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       emerg_cdev5 {
+                                               trip = <0x155>;
+                                               cooling-device = <0x16 0xfffffffe 0xfffffffe>;
+                                       };
+                               };
+                       };
+
+                       cpu2-gold-step {
+                               polling-delay-passive = <0x64>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x14c 0x9>;
+                               wake-capable-sensor;
+                               thermal-governor = "step_wise";
+
+                               trips {
+
+                                       emerg-config6 {
+                                               temperature = <0x1adb0>;
+                                               hysteresis = <0x2710>;
+                                               type = "passive";
+                                               linux,phandle = <0x156>;
+                                               phandle = <0x156>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       emerg_cdev6 {
+                                               trip = <0x156>;
+                                               cooling-device = <0x17 0xfffffffe 0xfffffffe>;
+                                       };
+                               };
+                       };
+
+                       cpu3-gold-step {
+                               polling-delay-passive = <0x64>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x14c 0xa>;
+                               wake-capable-sensor;
+                               thermal-governor = "step_wise";
+
+                               trips {
+
+                                       emerg-config7 {
+                                               temperature = <0x1adb0>;
+                                               hysteresis = <0x2710>;
+                                               type = "passive";
+                                               linux,phandle = <0x157>;
+                                               phandle = <0x157>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       emerg_cdev7 {
+                                               trip = <0x157>;
+                                               cooling-device = <0x18 0xfffffffe 0xfffffffe>;
+                                       };
+                               };
+                       };
+
+                       lmh-dcvs-01 {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "user_space";
+                               thermal-sensors = <0xa>;
+                               wake-capable-sensor;
+
+                               trips {
+
+                                       active-config {
+                                               temperature = <0x17318>;
+                                               hysteresis = <0x7530>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       lmh-dcvs-00 {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "user_space";
+                               thermal-sensors = <0x2>;
+                               wake-capable-sensor;
+
+                               trips {
+
+                                       active-config {
+                                               temperature = <0x17318>;
+                                               hysteresis = <0x7530>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       pm8998_tz {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "step_wise";
+                               thermal-sensors = <0x158>;
+                               wake-capable-sensor;
+
+                               trips {
+
+                                       pm8998-trip0 {
+                                               temperature = <0x19a28>;
+                                               hysteresis = <0x0>;
+                                               type = "passive";
+                                               linux,phandle = <0x159>;
+                                               phandle = <0x159>;
+                                       };
+
+                                       pm8998-trip1 {
+                                               temperature = <0x1e848>;
+                                               hysteresis = <0x0>;
+                                               type = "passive";
+                                               linux,phandle = <0x15a>;
+                                               phandle = <0x15a>;
+                                       };
+
+                                       pm8998-trip2 {
+                                               temperature = <0x23668>;
+                                               hysteresis = <0x0>;
+                                               type = "passive";
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       trip0_cpu0 {
+                                               trip = <0x159>;
+                                               cooling-device = <0x11 0xfffffffd 0xfffffffd>;
+                                       };
+
+                                       trip0_cpu1 {
+                                               trip = <0x159>;
+                                               cooling-device = <0x12 0xfffffffd 0xfffffffd>;
+                                       };
+
+                                       trip0_cpu2 {
+                                               trip = <0x159>;
+                                               cooling-device = <0x13 0xfffffffd 0xfffffffd>;
+                                       };
+
+                                       trip0_cpu3 {
+                                               trip = <0x159>;
+                                               cooling-device = <0x14 0xfffffffd 0xfffffffd>;
+                                       };
+
+                                       trip0_cpu4 {
+                                               trip = <0x159>;
+                                               cooling-device = <0x15 0xfffffffd 0xfffffffd>;
+                                       };
+
+                                       trip0_cpu5 {
+                                               trip = <0x159>;
+                                               cooling-device = <0x16 0xfffffffd 0xfffffffd>;
+                                       };
+
+                                       trip0_cpu6 {
+                                               trip = <0x159>;
+                                               cooling-device = <0x17 0xfffffffd 0xfffffffd>;
+                                       };
+
+                                       trip0_cpu7 {
+                                               trip = <0x159>;
+                                               cooling-device = <0x18 0xfffffffd 0xfffffffd>;
+                                       };
+
+                                       trip1_cpu1 {
+                                               trip = <0x15a>;
+                                               cooling-device = <0x12 0xfffffffe 0xfffffffe>;
+                                       };
+
+                                       trip1_cpu2 {
+                                               trip = <0x15a>;
+                                               cooling-device = <0x13 0xfffffffe 0xfffffffe>;
+                                       };
+
+                                       trip1_cpu3 {
+                                               trip = <0x15a>;
+                                               cooling-device = <0x14 0xfffffffe 0xfffffffe>;
+                                       };
+
+                                       trip1_cpu4 {
+                                               trip = <0x15a>;
+                                               cooling-device = <0x15 0xfffffffe 0xfffffffe>;
+                                       };
+
+                                       trip1_cpu5 {
+                                               trip = <0x15a>;
+                                               cooling-device = <0x16 0xfffffffe 0xfffffffe>;
+                                       };
+
+                                       trip1_cpu6 {
+                                               trip = <0x15a>;
+                                               cooling-device = <0x17 0xfffffffe 0xfffffffe>;
+                                       };
+
+                                       trip1_cpu7 {
+                                               trip = <0x15a>;
+                                               cooling-device = <0x18 0xfffffffe 0xfffffffe>;
+                                       };
+                               };
+                       };
+
+                       pm8005_tz {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x15b>;
+
+                               trips {
+
+                                       pm8005-trip0 {
+                                               temperature = <0x19a28>;
+                                               hysteresis = <0x0>;
+                                               type = "passive";
+                                       };
+
+                                       pm8005-trip1 {
+                                               temperature = <0x1e848>;
+                                               hysteresis = <0x0>;
+                                               type = "passive";
+                                       };
+
+                                       pm8005-trip2 {
+                                               temperature = <0x23668>;
+                                               hysteresis = <0x0>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       aoss0-lowf {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "low_limits_floor";
+                               thermal-sensors = <0x14c 0x0>;
+                               wake-capable-sensor;
+                               tracks-low;
+
+                               trips {
+
+                                       aoss0-trip {
+                                               temperature = <0x1388>;
+                                               hysteresis = <0x1388>;
+                                               type = "passive";
+                                               linux,phandle = <0x15c>;
+                                               phandle = <0x15c>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       cpu0_vdd_cdev {
+                                               trip = <0x15c>;
+                                               cooling-device = <0x11 0x4 0x4>;
+                                       };
+
+                                       cpu4_vdd_cdev {
+                                               trip = <0x15c>;
+                                               cooling-device = <0x15 0x9 0x9>;
+                                       };
+
+                                       gpu_vdd_cdev {
+                                               trip = <0x15c>;
+                                               cooling-device = <0xd5 0x1 0x1>;
+                                       };
+
+                                       cx_vdd_cdev {
+                                               trip = <0x15c>;
+                                               cooling-device = <0x15d 0x0 0x0>;
+                                       };
+
+                                       mx_vdd_cdev {
+                                               trip = <0x15c>;
+                                               cooling-device = <0x15e 0x0 0x0>;
+                                       };
+
+                                       ebi_vdd_cdev {
+                                               trip = <0x15c>;
+                                               cooling-device = <0x15f 0x0 0x0>;
+                                       };
+
+                                       modem_vdd_cdev {
+                                               trip = <0x15c>;
+                                               cooling-device = <0x160 0x0 0x0>;
+                                       };
+
+                                       adsp_vdd_cdev {
+                                               trip = <0x15c>;
+                                               cooling-device = <0x161 0x0 0x0>;
+                                       };
+
+                                       cdsp_vdd_cdev {
+                                               trip = <0x15c>;
+                                               cooling-device = <0x162 0x0 0x0>;
+                                       };
+
+                                       slpi_vdd_cdev {
+                                               trip = <0x15c>;
+                                               cooling-device = <0x163 0x0 0x0>;
+                                       };
+                               };
+                       };
+
+                       cpu0-silver-lowf {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "low_limits_floor";
+                               thermal-sensors = <0x14c 0x1>;
+                               wake-capable-sensor;
+                               tracks-low;
+
+                               trips {
+
+                                       cpu0-trip {
+                                               temperature = <0x1388>;
+                                               hysteresis = <0x1388>;
+                                               type = "passive";
+                                               linux,phandle = <0x164>;
+                                               phandle = <0x164>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       cpu0_vdd_cdev {
+                                               trip = <0x164>;
+                                               cooling-device = <0x11 0x4 0x4>;
+                                       };
+
+                                       cpu4_vdd_cdev {
+                                               trip = <0x164>;
+                                               cooling-device = <0x15 0x9 0x9>;
+                                       };
+
+                                       gpu_vdd_cdev {
+                                               trip = <0x164>;
+                                               cooling-device = <0xd5 0x1 0x1>;
+                                       };
+
+                                       cx_vdd_cdev {
+                                               trip = <0x164>;
+                                               cooling-device = <0x15d 0x0 0x0>;
+                                       };
+
+                                       mx_vdd_cdev {
+                                               trip = <0x164>;
+                                               cooling-device = <0x15e 0x0 0x0>;
+                                       };
+
+                                       ebi_vdd_cdev {
+                                               trip = <0x164>;
+                                               cooling-device = <0x15f 0x0 0x0>;
+                                       };
+
+                                       modem_vdd_cdev {
+                                               trip = <0x164>;
+                                               cooling-device = <0x160 0x0 0x0>;
+                                       };
+
+                                       adsp_vdd_cdev {
+                                               trip = <0x164>;
+                                               cooling-device = <0x161 0x0 0x0>;
+                                       };
+
+                                       cdsp_vdd_cdev {
+                                               trip = <0x164>;
+                                               cooling-device = <0x162 0x0 0x0>;
+                                       };
+
+                                       slpi_vdd_cdev {
+                                               trip = <0x164>;
+                                               cooling-device = <0x163 0x0 0x0>;
+                                       };
+                               };
+                       };
+
+                       cpu1-silver-lowf {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "low_limits_floor";
+                               thermal-sensors = <0x14c 0x2>;
+                               wake-capable-sensor;
+                               tracks-low;
+
+                               trips {
+
+                                       cpu1-trip {
+                                               temperature = <0x1388>;
+                                               hysteresis = <0x1388>;
+                                               type = "passive";
+                                               linux,phandle = <0x165>;
+                                               phandle = <0x165>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       cpu0_vdd_cdev {
+                                               trip = <0x165>;
+                                               cooling-device = <0x11 0x4 0x4>;
+                                       };
+
+                                       cpu4_vdd_cdev {
+                                               trip = <0x165>;
+                                               cooling-device = <0x15 0x9 0x9>;
+                                       };
+
+                                       gpu_vdd_cdev {
+                                               trip = <0x165>;
+                                               cooling-device = <0xd5 0x1 0x1>;
+                                       };
+
+                                       cx_vdd_cdev {
+                                               trip = <0x165>;
+                                               cooling-device = <0x15d 0x0 0x0>;
+                                       };
+
+                                       mx_vdd_cdev {
+                                               trip = <0x165>;
+                                               cooling-device = <0x15e 0x0 0x0>;
+                                       };
+
+                                       ebi_vdd_cdev {
+                                               trip = <0x165>;
+                                               cooling-device = <0x15f 0x0 0x0>;
+                                       };
+
+                                       modem_vdd_cdev {
+                                               trip = <0x165>;
+                                               cooling-device = <0x160 0x0 0x0>;
+                                       };
+
+                                       adsp_vdd_cdev {
+                                               trip = <0x165>;
+                                               cooling-device = <0x161 0x0 0x0>;
+                                       };
+
+                                       cdsp_vdd_cdev {
+                                               trip = <0x165>;
+                                               cooling-device = <0x162 0x0 0x0>;
+                                       };
+
+                                       slpi_vdd_cdev {
+                                               trip = <0x165>;
+                                               cooling-device = <0x163 0x0 0x0>;
+                                       };
+                               };
+                       };
+
+                       cpu2-silver-lowf {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "low_limits_floor";
+                               thermal-sensors = <0x14c 0x3>;
+                               wake-capable-sensor;
+                               tracks-low;
+
+                               trips {
+
+                                       cpu2-trip {
+                                               temperature = <0x1388>;
+                                               hysteresis = <0x1388>;
+                                               type = "passive";
+                                               linux,phandle = <0x166>;
+                                               phandle = <0x166>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       cpu0_vdd_cdev {
+                                               trip = <0x166>;
+                                               cooling-device = <0x11 0x4 0x4>;
+                                       };
+
+                                       cpu4_vdd_cdev {
+                                               trip = <0x166>;
+                                               cooling-device = <0x15 0x9 0x9>;
+                                       };
+
+                                       gpu_vdd_cdev {
+                                               trip = <0x166>;
+                                               cooling-device = <0xd5 0x1 0x1>;
+                                       };
+
+                                       cx_vdd_cdev {
+                                               trip = <0x166>;
+                                               cooling-device = <0x15d 0x0 0x0>;
+                                       };
+
+                                       mx_vdd_cdev {
+                                               trip = <0x166>;
+                                               cooling-device = <0x15e 0x0 0x0>;
+                                       };
+
+                                       ebi_vdd_cdev {
+                                               trip = <0x166>;
+                                               cooling-device = <0x15f 0x0 0x0>;
+                                       };
+
+                                       modem_vdd_cdev {
+                                               trip = <0x166>;
+                                               cooling-device = <0x160 0x0 0x0>;
+                                       };
+
+                                       adsp_vdd_cdev {
+                                               trip = <0x166>;
+                                               cooling-device = <0x161 0x0 0x0>;
+                                       };
+
+                                       cdsp_vdd_cdev {
+                                               trip = <0x166>;
+                                               cooling-device = <0x162 0x0 0x0>;
+                                       };
+
+                                       slpi_vdd_cdev {
+                                               trip = <0x166>;
+                                               cooling-device = <0x163 0x0 0x0>;
+                                       };
+                               };
+                       };
+
+                       cpu3-silver-lowf {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "low_limits_floor";
+                               thermal-sensors = <0x14c 0x4>;
+                               wake-capable-sensor;
+                               tracks-low;
+
+                               trips {
+
+                                       cpu3-trip {
+                                               temperature = <0x1388>;
+                                               hysteresis = <0x1388>;
+                                               type = "passive";
+                                               linux,phandle = <0x167>;
+                                               phandle = <0x167>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       cpu0_vdd_cdev {
+                                               trip = <0x167>;
+                                               cooling-device = <0x11 0x4 0x4>;
+                                       };
+
+                                       cpu4_vdd_cdev {
+                                               trip = <0x167>;
+                                               cooling-device = <0x15 0x9 0x9>;
+                                       };
+
+                                       gpu_vdd_cdev {
+                                               trip = <0x167>;
+                                               cooling-device = <0xd5 0x1 0x1>;
+                                       };
+
+                                       cx_vdd_cdev {
+                                               trip = <0x167>;
+                                               cooling-device = <0x15d 0x0 0x0>;
+                                       };
+
+                                       mx_vdd_cdev {
+                                               trip = <0x167>;
+                                               cooling-device = <0x15e 0x0 0x0>;
+                                       };
+
+                                       ebi_vdd_cdev {
+                                               trip = <0x167>;
+                                               cooling-device = <0x15f 0x0 0x0>;
+                                       };
+
+                                       modem_vdd_cdev {
+                                               trip = <0x167>;
+                                               cooling-device = <0x160 0x0 0x0>;
+                                       };
+
+                                       adsp_vdd_cdev {
+                                               trip = <0x167>;
+                                               cooling-device = <0x161 0x0 0x0>;
+                                       };
+
+                                       cdsp_vdd_cdev {
+                                               trip = <0x167>;
+                                               cooling-device = <0x162 0x0 0x0>;
+                                       };
+
+                                       slpi_vdd_cdev {
+                                               trip = <0x167>;
+                                               cooling-device = <0x163 0x0 0x0>;
+                                       };
+                               };
+                       };
+
+                       kryo-l3-0-lowf {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "low_limits_floor";
+                               thermal-sensors = <0x14c 0x5>;
+                               wake-capable-sensor;
+                               tracks-low;
+
+                               trips {
+
+                                       l3-0-trip {
+                                               temperature = <0x1388>;
+                                               hysteresis = <0x1388>;
+                                               type = "passive";
+                                               linux,phandle = <0x168>;
+                                               phandle = <0x168>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       cpu0_vdd_cdev {
+                                               trip = <0x168>;
+                                               cooling-device = <0x11 0x4 0x4>;
+                                       };
+
+                                       cpu4_vdd_cdev {
+                                               trip = <0x168>;
+                                               cooling-device = <0x15 0x9 0x9>;
+                                       };
+
+                                       gpu_vdd_cdev {
+                                               trip = <0x168>;
+                                               cooling-device = <0xd5 0x1 0x1>;
+                                       };
+
+                                       cx_vdd_cdev {
+                                               trip = <0x168>;
+                                               cooling-device = <0x15d 0x0 0x0>;
+                                       };
+
+                                       mx_vdd_cdev {
+                                               trip = <0x168>;
+                                               cooling-device = <0x15e 0x0 0x0>;
+                                       };
+
+                                       ebi_vdd_cdev {
+                                               trip = <0x168>;
+                                               cooling-device = <0x15f 0x0 0x0>;
+                                       };
+
+                                       modem_vdd_cdev {
+                                               trip = <0x168>;
+                                               cooling-device = <0x160 0x0 0x0>;
+                                       };
+
+                                       adsp_vdd_cdev {
+                                               trip = <0x168>;
+                                               cooling-device = <0x161 0x0 0x0>;
+                                       };
+
+                                       cdsp_vdd_cdev {
+                                               trip = <0x168>;
+                                               cooling-device = <0x162 0x0 0x0>;
+                                       };
+
+                                       slpi_vdd_cdev {
+                                               trip = <0x168>;
+                                               cooling-device = <0x163 0x0 0x0>;
+                                       };
+                               };
+                       };
+
+                       kryo-l3-1-lowf {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "low_limits_floor";
+                               thermal-sensors = <0x14c 0x6>;
+                               wake-capable-sensor;
+                               tracks-low;
+
+                               trips {
+
+                                       l3-1-trip {
+                                               temperature = <0x1388>;
+                                               hysteresis = <0x1388>;
+                                               type = "passive";
+                                               linux,phandle = <0x169>;
+                                               phandle = <0x169>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       cpu0_vdd_cdev {
+                                               trip = <0x169>;
+                                               cooling-device = <0x11 0x4 0x4>;
+                                       };
+
+                                       cpu4_vdd_cdev {
+                                               trip = <0x169>;
+                                               cooling-device = <0x15 0x9 0x9>;
+                                       };
+
+                                       gpu_vdd_cdev {
+                                               trip = <0x169>;
+                                               cooling-device = <0xd5 0x1 0x1>;
+                                       };
+
+                                       cx_vdd_cdev {
+                                               trip = <0x169>;
+                                               cooling-device = <0x15d 0x0 0x0>;
+                                       };
+
+                                       mx_vdd_cdev {
+                                               trip = <0x169>;
+                                               cooling-device = <0x15e 0x0 0x0>;
+                                       };
+
+                                       ebi_vdd_cdev {
+                                               trip = <0x169>;
+                                               cooling-device = <0x15f 0x0 0x0>;
+                                       };
+
+                                       modem_vdd_cdev {
+                                               trip = <0x169>;
+                                               cooling-device = <0x160 0x0 0x0>;
+                                       };
+
+                                       adsp_vdd_cdev {
+                                               trip = <0x169>;
+                                               cooling-device = <0x161 0x0 0x0>;
+                                       };
+
+                                       cdsp_vdd_cdev {
+                                               trip = <0x169>;
+                                               cooling-device = <0x162 0x0 0x0>;
+                                       };
+
+                                       slpi_vdd_cdev {
+                                               trip = <0x169>;
+                                               cooling-device = <0x163 0x0 0x0>;
+                                       };
+                               };
+                       };
+
+                       cpu0-gold-lowf {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "low_limits_floor";
+                               thermal-sensors = <0x14c 0x7>;
+                               wake-capable-sensor;
+                               tracks-low;
+
+                               trips {
+
+                                       cpug0-trip {
+                                               temperature = <0x1388>;
+                                               hysteresis = <0x1388>;
+                                               type = "passive";
+                                               linux,phandle = <0x16a>;
+                                               phandle = <0x16a>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       cpu0_vdd_cdev {
+                                               trip = <0x16a>;
+                                               cooling-device = <0x11 0x4 0x4>;
+                                       };
+
+                                       cpu4_vdd_cdev {
+                                               trip = <0x16a>;
+                                               cooling-device = <0x15 0x9 0x9>;
+                                       };
+
+                                       gpu_vdd_cdev {
+                                               trip = <0x16a>;
+                                               cooling-device = <0xd5 0x1 0x1>;
+                                       };
+
+                                       cx_vdd_cdev {
+                                               trip = <0x16a>;
+                                               cooling-device = <0x15d 0x0 0x0>;
+                                       };
+
+                                       mx_vdd_cdev {
+                                               trip = <0x16a>;
+                                               cooling-device = <0x15e 0x0 0x0>;
+                                       };
+
+                                       ebi_vdd_cdev {
+                                               trip = <0x16a>;
+                                               cooling-device = <0x15f 0x0 0x0>;
+                                       };
+
+                                       modem_vdd_cdev {
+                                               trip = <0x16a>;
+                                               cooling-device = <0x160 0x0 0x0>;
+                                       };
+
+                                       adsp_vdd_cdev {
+                                               trip = <0x16a>;
+                                               cooling-device = <0x161 0x0 0x0>;
+                                       };
+
+                                       cdsp_vdd_cdev {
+                                               trip = <0x16a>;
+                                               cooling-device = <0x162 0x0 0x0>;
+                                       };
+
+                                       slpi_vdd_cdev {
+                                               trip = <0x16a>;
+                                               cooling-device = <0x163 0x0 0x0>;
+                                       };
+                               };
+                       };
+
+                       cpu1-gold-lowf {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "low_limits_floor";
+                               thermal-sensors = <0x14c 0x8>;
+                               wake-capable-sensor;
+                               tracks-low;
+
+                               trips {
+
+                                       cpug1-trip {
+                                               temperature = <0x1388>;
+                                               hysteresis = <0x1388>;
+                                               type = "passive";
+                                               linux,phandle = <0x16b>;
+                                               phandle = <0x16b>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       cpu0_vdd_cdev {
+                                               trip = <0x16b>;
+                                               cooling-device = <0x11 0x4 0x4>;
+                                       };
+
+                                       cpu4_vdd_cdev {
+                                               trip = <0x16b>;
+                                               cooling-device = <0x15 0x9 0x9>;
+                                       };
+
+                                       gpu_vdd_cdev {
+                                               trip = <0x16b>;
+                                               cooling-device = <0xd5 0x1 0x1>;
+                                       };
+
+                                       cx_vdd_cdev {
+                                               trip = <0x16b>;
+                                               cooling-device = <0x15d 0x0 0x0>;
+                                       };
+
+                                       mx_vdd_cdev {
+                                               trip = <0x16b>;
+                                               cooling-device = <0x15e 0x0 0x0>;
+                                       };
+
+                                       ebi_vdd_cdev {
+                                               trip = <0x16b>;
+                                               cooling-device = <0x15f 0x0 0x0>;
+                                       };
+
+                                       modem_vdd_cdev {
+                                               trip = <0x16b>;
+                                               cooling-device = <0x160 0x0 0x0>;
+                                       };
+
+                                       adsp_vdd_cdev {
+                                               trip = <0x16b>;
+                                               cooling-device = <0x161 0x0 0x0>;
+                                       };
+
+                                       cdsp_vdd_cdev {
+                                               trip = <0x16b>;
+                                               cooling-device = <0x162 0x0 0x0>;
+                                       };
+
+                                       slpi_vdd_cdev {
+                                               trip = <0x16b>;
+                                               cooling-device = <0x163 0x0 0x0>;
+                                       };
+                               };
+                       };
+
+                       cpu2-gold-lowf {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "low_limits_floor";
+                               thermal-sensors = <0x14c 0x9>;
+                               wake-capable-sensor;
+                               tracks-low;
+
+                               trips {
+
+                                       cpug2-trip {
+                                               temperature = <0x1388>;
+                                               hysteresis = <0x1388>;
+                                               type = "passive";
+                                               linux,phandle = <0x16c>;
+                                               phandle = <0x16c>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       cpu0_vdd_cdev {
+                                               trip = <0x16c>;
+                                               cooling-device = <0x11 0x4 0x4>;
+                                       };
+
+                                       cpu4_vdd_cdev {
+                                               trip = <0x16c>;
+                                               cooling-device = <0x15 0x9 0x9>;
+                                       };
+
+                                       gpu_vdd_cdev {
+                                               trip = <0x16c>;
+                                               cooling-device = <0xd5 0x1 0x1>;
+                                       };
+
+                                       cx_vdd_cdev {
+                                               trip = <0x16c>;
+                                               cooling-device = <0x15d 0x0 0x0>;
+                                       };
+
+                                       mx_vdd_cdev {
+                                               trip = <0x16c>;
+                                               cooling-device = <0x15e 0x0 0x0>;
+                                       };
+
+                                       ebi_vdd_cdev {
+                                               trip = <0x16c>;
+                                               cooling-device = <0x15f 0x0 0x0>;
+                                       };
+
+                                       modem_vdd_cdev {
+                                               trip = <0x16c>;
+                                               cooling-device = <0x160 0x0 0x0>;
+                                       };
+
+                                       adsp_vdd_cdev {
+                                               trip = <0x16c>;
+                                               cooling-device = <0x161 0x0 0x0>;
+                                       };
+
+                                       cdsp_vdd_cdev {
+                                               trip = <0x16c>;
+                                               cooling-device = <0x162 0x0 0x0>;
+                                       };
+
+                                       slpi_vdd_cdev {
+                                               trip = <0x16c>;
+                                               cooling-device = <0x163 0x0 0x0>;
+                                       };
+                               };
+                       };
+
+                       cpu3-gold-lowf {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "low_limits_floor";
+                               thermal-sensors = <0x14c 0xa>;
+                               wake-capable-sensor;
+                               tracks-low;
+
+                               trips {
+
+                                       cpug3-trip {
+                                               temperature = <0x1388>;
+                                               hysteresis = <0x1388>;
+                                               type = "passive";
+                                               linux,phandle = <0x16d>;
+                                               phandle = <0x16d>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       cpu0_vdd_cdev {
+                                               trip = <0x16d>;
+                                               cooling-device = <0x11 0x4 0x4>;
+                                       };
+
+                                       cpu4_vdd_cdev {
+                                               trip = <0x16d>;
+                                               cooling-device = <0x15 0x9 0x9>;
+                                       };
+
+                                       gpu_vdd_cdev {
+                                               trip = <0x16d>;
+                                               cooling-device = <0xd5 0x1 0x1>;
+                                       };
+
+                                       cx_vdd_cdev {
+                                               trip = <0x16d>;
+                                               cooling-device = <0x15d 0x0 0x0>;
+                                       };
+
+                                       mx_vdd_cdev {
+                                               trip = <0x16d>;
+                                               cooling-device = <0x15e 0x0 0x0>;
+                                       };
+
+                                       ebi_vdd_cdev {
+                                               trip = <0x16d>;
+                                               cooling-device = <0x15f 0x0 0x0>;
+                                       };
+
+                                       modem_vdd_cdev {
+                                               trip = <0x16d>;
+                                               cooling-device = <0x160 0x0 0x0>;
+                                       };
+
+                                       adsp_vdd_cdev {
+                                               trip = <0x16d>;
+                                               cooling-device = <0x161 0x0 0x0>;
+                                       };
+
+                                       cdsp_vdd_cdev {
+                                               trip = <0x16d>;
+                                               cooling-device = <0x162 0x0 0x0>;
+                                       };
+
+                                       slpi_vdd_cdev {
+                                               trip = <0x16d>;
+                                               cooling-device = <0x163 0x0 0x0>;
+                                       };
+                               };
+                       };
+
+                       gpu0-lowf {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "low_limits_floor";
+                               thermal-sensors = <0x14c 0xb>;
+                               wake-capable-sensor;
+                               tracks-low;
+
+                               trips {
+
+                                       gpu0-trip {
+                                               temperature = <0x1388>;
+                                               hysteresis = <0x1388>;
+                                               type = "passive";
+                                               linux,phandle = <0x16e>;
+                                               phandle = <0x16e>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       cpu0_vdd_cdev {
+                                               trip = <0x16e>;
+                                               cooling-device = <0x11 0x4 0x4>;
+                                       };
+
+                                       cpu4_vdd_cdev {
+                                               trip = <0x16e>;
+                                               cooling-device = <0x15 0x9 0x9>;
+                                       };
+
+                                       gpu_vdd_cdev {
+                                               trip = <0x16e>;
+                                               cooling-device = <0xd5 0x1 0x1>;
+                                       };
+
+                                       cx_vdd_cdev {
+                                               trip = <0x16e>;
+                                               cooling-device = <0x15d 0x0 0x0>;
+                                       };
+
+                                       mx_vdd_cdev {
+                                               trip = <0x16e>;
+                                               cooling-device = <0x15e 0x0 0x0>;
+                                       };
+
+                                       ebi_vdd_cdev {
+                                               trip = <0x16e>;
+                                               cooling-device = <0x15f 0x0 0x0>;
+                                       };
+
+                                       modem_vdd_cdev {
+                                               trip = <0x16e>;
+                                               cooling-device = <0x160 0x0 0x0>;
+                                       };
+
+                                       adsp_vdd_cdev {
+                                               trip = <0x16e>;
+                                               cooling-device = <0x161 0x0 0x0>;
+                                       };
+
+                                       cdsp_vdd_cdev {
+                                               trip = <0x16e>;
+                                               cooling-device = <0x162 0x0 0x0>;
+                                       };
+
+                                       slpi_vdd_cdev {
+                                               trip = <0x16e>;
+                                               cooling-device = <0x163 0x0 0x0>;
+                                       };
+                               };
+                       };
+
+                       gpu1-lowf {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "low_limits_floor";
+                               thermal-sensors = <0x14c 0xc>;
+                               wake-capable-sensor;
+                               tracks-low;
+
+                               trips {
+
+                                       gpu1-trip_l {
+                                               temperature = <0x1388>;
+                                               hysteresis = <0x1388>;
+                                               type = "passive";
+                                               linux,phandle = <0x16f>;
+                                               phandle = <0x16f>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       cpu0_vdd_cdev {
+                                               trip = <0x16f>;
+                                               cooling-device = <0x11 0x4 0x4>;
+                                       };
+
+                                       cpu4_vdd_cdev {
+                                               trip = <0x16f>;
+                                               cooling-device = <0x15 0x9 0x9>;
+                                       };
+
+                                       gpu_vdd_cdev {
+                                               trip = <0x16f>;
+                                               cooling-device = <0xd5 0x1 0x1>;
+                                       };
+
+                                       cx_vdd_cdev {
+                                               trip = <0x16f>;
+                                               cooling-device = <0x15d 0x0 0x0>;
+                                       };
+
+                                       mx_vdd_cdev {
+                                               trip = <0x16f>;
+                                               cooling-device = <0x15e 0x0 0x0>;
+                                       };
+
+                                       ebi_vdd_cdev {
+                                               trip = <0x16f>;
+                                               cooling-device = <0x15f 0x0 0x0>;
+                                       };
+
+                                       modem_vdd_cdev {
+                                               trip = <0x16f>;
+                                               cooling-device = <0x160 0x0 0x0>;
+                                       };
+
+                                       adsp_vdd_cdev {
+                                               trip = <0x16f>;
+                                               cooling-device = <0x161 0x0 0x0>;
+                                       };
+
+                                       cdsp_vdd_cdev {
+                                               trip = <0x16f>;
+                                               cooling-device = <0x162 0x0 0x0>;
+                                       };
+
+                                       slpi_vdd_cdev {
+                                               trip = <0x16f>;
+                                               cooling-device = <0x163 0x0 0x0>;
+                                       };
+                               };
+                       };
+
+                       aoss1-lowf {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "low_limits_floor";
+                               thermal-sensors = <0x14d 0x0>;
+                               wake-capable-sensor;
+                               tracks-low;
+
+                               trips {
+
+                                       aoss1-trip {
+                                               temperature = <0x1388>;
+                                               hysteresis = <0x1388>;
+                                               type = "passive";
+                                               linux,phandle = <0x170>;
+                                               phandle = <0x170>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       cpu0_vdd_cdev {
+                                               trip = <0x170>;
+                                               cooling-device = <0x11 0x4 0x4>;
+                                       };
+
+                                       cpu4_vdd_cdev {
+                                               trip = <0x170>;
+                                               cooling-device = <0x15 0x9 0x9>;
+                                       };
+
+                                       gpu_vdd_cdev {
+                                               trip = <0x170>;
+                                               cooling-device = <0xd5 0x1 0x1>;
+                                       };
+
+                                       cx_vdd_cdev {
+                                               trip = <0x170>;
+                                               cooling-device = <0x15d 0x0 0x0>;
+                                       };
+
+                                       mx_vdd_cdev {
+                                               trip = <0x170>;
+                                               cooling-device = <0x15e 0x0 0x0>;
+                                       };
+
+                                       ebi_vdd_cdev {
+                                               trip = <0x170>;
+                                               cooling-device = <0x15f 0x0 0x0>;
+                                       };
+
+                                       modem_vdd_cdev {
+                                               trip = <0x170>;
+                                               cooling-device = <0x160 0x0 0x0>;
+                                       };
+
+                                       adsp_vdd_cdev {
+                                               trip = <0x170>;
+                                               cooling-device = <0x161 0x0 0x0>;
+                                       };
+
+                                       cdsp_vdd_cdev {
+                                               trip = <0x170>;
+                                               cooling-device = <0x162 0x0 0x0>;
+                                       };
+
+                                       slpi_vdd_cdev {
+                                               trip = <0x170>;
+                                               cooling-device = <0x163 0x0 0x0>;
+                                       };
+                               };
+                       };
+
+                       mdm-dsp-lowf {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "low_limits_floor";
+                               thermal-sensors = <0x14d 0x1>;
+                               wake-capable-sensor;
+                               tracks-low;
+
+                               trips {
+
+                                       dsp-trip {
+                                               temperature = <0x1388>;
+                                               hysteresis = <0x1388>;
+                                               type = "passive";
+                                               linux,phandle = <0x171>;
+                                               phandle = <0x171>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       cpu0_vdd_cdev {
+                                               trip = <0x171>;
+                                               cooling-device = <0x11 0x4 0x4>;
+                                       };
+
+                                       cpu4_vdd_cdev {
+                                               trip = <0x171>;
+                                               cooling-device = <0x15 0x9 0x9>;
+                                       };
+
+                                       gpu_vdd_cdev {
+                                               trip = <0x171>;
+                                               cooling-device = <0xd5 0x1 0x1>;
+                                       };
+
+                                       cx_vdd_cdev {
+                                               trip = <0x171>;
+                                               cooling-device = <0x15d 0x0 0x0>;
+                                       };
+
+                                       mx_vdd_cdev {
+                                               trip = <0x171>;
+                                               cooling-device = <0x15e 0x0 0x0>;
+                                       };
+
+                                       ebi_vdd_cdev {
+                                               trip = <0x171>;
+                                               cooling-device = <0x15f 0x0 0x0>;
+                                       };
+
+                                       modem_vdd_cdev {
+                                               trip = <0x171>;
+                                               cooling-device = <0x160 0x0 0x0>;
+                                       };
+
+                                       adsp_vdd_cdev {
+                                               trip = <0x171>;
+                                               cooling-device = <0x161 0x0 0x0>;
+                                       };
+
+                                       cdsp_vdd_cdev {
+                                               trip = <0x171>;
+                                               cooling-device = <0x162 0x0 0x0>;
+                                       };
+
+                                       slpi_vdd_cdev {
+                                               trip = <0x171>;
+                                               cooling-device = <0x163 0x0 0x0>;
+                                       };
+                               };
+                       };
+
+                       ddr-lowf {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "low_limits_floor";
+                               thermal-sensors = <0x14d 0x2>;
+                               wake-capable-sensor;
+                               tracks-low;
+
+                               trips {
+
+                                       ddr-trip {
+                                               temperature = <0x1388>;
+                                               hysteresis = <0x1388>;
+                                               type = "passive";
+                                               linux,phandle = <0x172>;
+                                               phandle = <0x172>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       cpu0_vdd_cdev {
+                                               trip = <0x172>;
+                                               cooling-device = <0x11 0x4 0x4>;
+                                       };
+
+                                       cpu4_vdd_cdev {
+                                               trip = <0x172>;
+                                               cooling-device = <0x15 0x9 0x9>;
+                                       };
+
+                                       gpu_vdd_cdev {
+                                               trip = <0x172>;
+                                               cooling-device = <0xd5 0x1 0x1>;
+                                       };
+
+                                       cx_vdd_cdev {
+                                               trip = <0x172>;
+                                               cooling-device = <0x15d 0x0 0x0>;
+                                       };
+
+                                       mx_vdd_cdev {
+                                               trip = <0x172>;
+                                               cooling-device = <0x15e 0x0 0x0>;
+                                       };
+
+                                       ebi_vdd_cdev {
+                                               trip = <0x172>;
+                                               cooling-device = <0x15f 0x0 0x0>;
+                                       };
+
+                                       modem_vdd_cdev {
+                                               trip = <0x172>;
+                                               cooling-device = <0x160 0x0 0x0>;
+                                       };
+
+                                       adsp_vdd_cdev {
+                                               trip = <0x172>;
+                                               cooling-device = <0x161 0x0 0x0>;
+                                       };
+
+                                       cdsp_vdd_cdev {
+                                               trip = <0x172>;
+                                               cooling-device = <0x162 0x0 0x0>;
+                                       };
+
+                                       slpi_vdd_cdev {
+                                               trip = <0x172>;
+                                               cooling-device = <0x163 0x0 0x0>;
+                                       };
+                               };
+                       };
+
+                       wlan-lowf {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "low_limits_floor";
+                               thermal-sensors = <0x14d 0x3>;
+                               wake-capable-sensor;
+                               tracks-low;
+
+                               trips {
+
+                                       wlan-trip {
+                                               temperature = <0x1388>;
+                                               hysteresis = <0x1388>;
+                                               type = "passive";
+                                               linux,phandle = <0x173>;
+                                               phandle = <0x173>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       cpu0_vdd_cdev {
+                                               trip = <0x173>;
+                                               cooling-device = <0x11 0x4 0x4>;
+                                       };
+
+                                       cpu4_vdd_cdev {
+                                               trip = <0x173>;
+                                               cooling-device = <0x15 0x9 0x9>;
+                                       };
+
+                                       gpu_vdd_cdev {
+                                               trip = <0x173>;
+                                               cooling-device = <0xd5 0x1 0x1>;
+                                       };
+
+                                       cx_vdd_cdev {
+                                               trip = <0x173>;
+                                               cooling-device = <0x15d 0x0 0x0>;
+                                       };
+
+                                       mx_vdd_cdev {
+                                               trip = <0x173>;
+                                               cooling-device = <0x15e 0x0 0x0>;
+                                       };
+
+                                       ebi_vdd_cdev {
+                                               trip = <0x173>;
+                                               cooling-device = <0x15f 0x0 0x0>;
+                                       };
+
+                                       modem_vdd_cdev {
+                                               trip = <0x173>;
+                                               cooling-device = <0x160 0x0 0x0>;
+                                       };
+
+                                       adsp_vdd_cdev {
+                                               trip = <0x173>;
+                                               cooling-device = <0x161 0x0 0x0>;
+                                       };
+
+                                       cdsp_vdd_cdev {
+                                               trip = <0x173>;
+                                               cooling-device = <0x162 0x0 0x0>;
+                                       };
+
+                                       slpi_vdd_cdev {
+                                               trip = <0x173>;
+                                               cooling-device = <0x163 0x0 0x0>;
+                                       };
+                               };
+                       };
+
+                       compute-hvx-lowf {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "low_limits_floor";
+                               thermal-sensors = <0x14d 0x4>;
+                               wake-capable-sensor;
+                               tracks-low;
+
+                               trips {
+
+                                       hvx-trip {
+                                               temperature = <0x1388>;
+                                               hysteresis = <0x1388>;
+                                               type = "passive";
+                                               linux,phandle = <0x174>;
+                                               phandle = <0x174>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       cpu0_vdd_cdev {
+                                               trip = <0x174>;
+                                               cooling-device = <0x11 0x4 0x4>;
+                                       };
+
+                                       cpu4_vdd_cdev {
+                                               trip = <0x174>;
+                                               cooling-device = <0x15 0x9 0x9>;
+                                       };
+
+                                       gpu_vdd_cdev {
+                                               trip = <0x174>;
+                                               cooling-device = <0xd5 0x1 0x1>;
+                                       };
+
+                                       cx_vdd_cdev {
+                                               trip = <0x174>;
+                                               cooling-device = <0x15d 0x0 0x0>;
+                                       };
+
+                                       mx_vdd_cdev {
+                                               trip = <0x174>;
+                                               cooling-device = <0x15e 0x0 0x0>;
+                                       };
+
+                                       ebi_vdd_cdev {
+                                               trip = <0x174>;
+                                               cooling-device = <0x15f 0x0 0x0>;
+                                       };
+
+                                       modem_vdd_cdev {
+                                               trip = <0x174>;
+                                               cooling-device = <0x160 0x0 0x0>;
+                                       };
+
+                                       adsp_vdd_cdev {
+                                               trip = <0x174>;
+                                               cooling-device = <0x161 0x0 0x0>;
+                                       };
+
+                                       cdsp_vdd_cdev {
+                                               trip = <0x174>;
+                                               cooling-device = <0x162 0x0 0x0>;
+                                       };
+
+                                       slpi_vdd_cdev {
+                                               trip = <0x174>;
+                                               cooling-device = <0x163 0x0 0x0>;
+                                       };
+                               };
+                       };
+
+                       camera-lowf {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "low_limits_floor";
+                               thermal-sensors = <0x14d 0x5>;
+                               wake-capable-sensor;
+                               tracks-low;
+
+                               trips {
+
+                                       camera-trip {
+                                               temperature = <0x1388>;
+                                               hysteresis = <0x1388>;
+                                               type = "passive";
+                                               linux,phandle = <0x175>;
+                                               phandle = <0x175>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       cpu0_vdd_cdev {
+                                               trip = <0x175>;
+                                               cooling-device = <0x11 0x4 0x4>;
+                                       };
+
+                                       cpu4_vdd_cdev {
+                                               trip = <0x175>;
+                                               cooling-device = <0x15 0x9 0x9>;
+                                       };
+
+                                       gpu_vdd_cdev {
+                                               trip = <0x175>;
+                                               cooling-device = <0xd5 0x1 0x1>;
+                                       };
+
+                                       cx_vdd_cdev {
+                                               trip = <0x175>;
+                                               cooling-device = <0x15d 0x0 0x0>;
+                                       };
+
+                                       mx_vdd_cdev {
+                                               trip = <0x175>;
+                                               cooling-device = <0x15e 0x0 0x0>;
+                                       };
+
+                                       ebi_vdd_cdev {
+                                               trip = <0x175>;
+                                               cooling-device = <0x15f 0x0 0x0>;
+                                       };
+
+                                       modem_vdd_cdev {
+                                               trip = <0x175>;
+                                               cooling-device = <0x160 0x0 0x0>;
+                                       };
+
+                                       adsp_vdd_cdev {
+                                               trip = <0x175>;
+                                               cooling-device = <0x161 0x0 0x0>;
+                                       };
+
+                                       cdsp_vdd_cdev {
+                                               trip = <0x175>;
+                                               cooling-device = <0x162 0x0 0x0>;
+                                       };
+
+                                       slpi_vdd_cdev {
+                                               trip = <0x175>;
+                                               cooling-device = <0x163 0x0 0x0>;
+                                       };
+                               };
+                       };
+
+                       mmss-lowf {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "low_limits_floor";
+                               thermal-sensors = <0x14d 0x6>;
+                               wake-capable-sensor;
+                               tracks-low;
+
+                               trips {
+
+                                       mmss-trip {
+                                               temperature = <0x1388>;
+                                               hysteresis = <0x1388>;
+                                               type = "passive";
+                                               linux,phandle = <0x176>;
+                                               phandle = <0x176>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       cpu0_vdd_cdev {
+                                               trip = <0x176>;
+                                               cooling-device = <0x11 0x4 0x4>;
+                                       };
+
+                                       cpu4_vdd_cdev {
+                                               trip = <0x176>;
+                                               cooling-device = <0x15 0x9 0x9>;
+                                       };
+
+                                       gpu_vdd_cdev {
+                                               trip = <0x176>;
+                                               cooling-device = <0xd5 0x1 0x1>;
+                                       };
+
+                                       cx_vdd_cdev {
+                                               trip = <0x176>;
+                                               cooling-device = <0x15d 0x0 0x0>;
+                                       };
+
+                                       mx_vdd_cdev {
+                                               trip = <0x176>;
+                                               cooling-device = <0x15e 0x0 0x0>;
+                                       };
+
+                                       ebi_vdd_cdev {
+                                               trip = <0x176>;
+                                               cooling-device = <0x15f 0x0 0x0>;
+                                       };
+
+                                       modem_vdd_cdev {
+                                               trip = <0x176>;
+                                               cooling-device = <0x160 0x0 0x0>;
+                                       };
+
+                                       adsp_vdd_cdev {
+                                               trip = <0x176>;
+                                               cooling-device = <0x161 0x0 0x0>;
+                                       };
+
+                                       cdsp_vdd_cdev {
+                                               trip = <0x176>;
+                                               cooling-device = <0x162 0x0 0x0>;
+                                       };
+
+                                       slpi_vdd_cdev {
+                                               trip = <0x176>;
+                                               cooling-device = <0x163 0x0 0x0>;
+                                       };
+                               };
+                       };
+
+                       mdm-core-lowf {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "low_limits_floor";
+                               thermal-sensors = <0x14d 0x7>;
+                               wake-capable-sensor;
+                               tracks-low;
+
+                               trips {
+
+                                       mdm-trip {
+                                               temperature = <0x1388>;
+                                               hysteresis = <0x1388>;
+                                               type = "passive";
+                                               linux,phandle = <0x177>;
+                                               phandle = <0x177>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       cpu0_vdd_cdev {
+                                               trip = <0x177>;
+                                               cooling-device = <0x11 0x4 0x4>;
+                                       };
+
+                                       cpu4_vdd_cdev {
+                                               trip = <0x177>;
+                                               cooling-device = <0x15 0x9 0x9>;
+                                       };
+
+                                       gpu_vdd_cdev {
+                                               trip = <0x177>;
+                                               cooling-device = <0xd5 0x1 0x1>;
+                                       };
+
+                                       cx_vdd_cdev {
+                                               trip = <0x177>;
+                                               cooling-device = <0x15d 0x0 0x0>;
+                                       };
+
+                                       mx_vdd_cdev {
+                                               trip = <0x177>;
+                                               cooling-device = <0x15e 0x0 0x0>;
+                                       };
+
+                                       ebi_vdd_cdev {
+                                               trip = <0x177>;
+                                               cooling-device = <0x15f 0x0 0x0>;
+                                       };
+
+                                       modem_vdd_cdev {
+                                               trip = <0x177>;
+                                               cooling-device = <0x160 0x0 0x0>;
+                                       };
+
+                                       adsp_vdd_cdev {
+                                               trip = <0x177>;
+                                               cooling-device = <0x161 0x0 0x0>;
+                                       };
+
+                                       cdsp_vdd_cdev {
+                                               trip = <0x177>;
+                                               cooling-device = <0x162 0x0 0x0>;
+                                       };
+
+                                       slpi_vdd_cdev {
+                                               trip = <0x177>;
+                                               cooling-device = <0x163 0x0 0x0>;
+                                       };
+                               };
+                       };
+
+                       ibat-high {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "step_wise";
+                               thermal-sensors = <0x178 0x0>;
+                               wake-capable-sensor;
+
+                               trips {
+
+                                       low-ibat {
+                                               temperature = <0x1388>;
+                                               hysteresis = <0xc8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       ibat-vhigh {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "step_wise";
+                               thermal-sensors = <0x178 0x1>;
+                               wake-capable-sensor;
+
+                               trips {
+
+                                       ibat_vhigh {
+                                               temperature = <0x1770>;
+                                               hysteresis = <0x64>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       vbat {
+                               polling-delay-passive = <0x64>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "low_limits_cap";
+                               thermal-sensors = <0x178 0x2>;
+                               wake-capable-sensor;
+                               tracks-low;
+
+                               trips {
+
+                                       low-vbat {
+                                               temperature = <0xc80>;
+                                               hysteresis = <0x64>;
+                                               type = "passive";
+                                               linux,phandle = <0x179>;
+                                               phandle = <0x179>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       vbat_cpu4 {
+                                               trip = <0x179>;
+                                               cooling-device = <0x15 0xfffffffe 0xfffffffe>;
+                                       };
+
+                                       vbat_cpu5 {
+                                               trip = <0x179>;
+                                               cooling-device = <0x16 0xfffffffe 0xfffffffe>;
+                                       };
+
+                                       vbat_map6 {
+                                               trip = <0x179>;
+                                               cooling-device = <0x17 0xfffffffe 0xfffffffe>;
+                                       };
+
+                                       vbat_map7 {
+                                               trip = <0x179>;
+                                               cooling-device = <0x18 0xfffffffe 0xfffffffe>;
+                                       };
+                               };
+                       };
+
+                       vbat_low {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "low_limits_cap";
+                               thermal-sensors = <0x178 0x3>;
+                               wake-capable-sensor;
+                               tracks-low;
+
+                               trips {
+
+                                       low-vbat {
+                                               temperature = <0xaf0>;
+                                               hysteresis = <0x0>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       vbat_too_low {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "low_limits_cap";
+                               thermal-sensors = <0x178 0x4>;
+                               wake-capable-sensor;
+                               tracks-low;
+
+                               trips {
+
+                                       low-vbat {
+                                               temperature = <0xa28>;
+                                               hysteresis = <0x0>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       soc {
+                               polling-delay-passive = <0x64>;
+                               polling-delay = <0x0>;
+                               thermal-governor = "low_limits_cap";
+                               thermal-sensors = <0x178 0x5>;
+                               wake-capable-sensor;
+                               tracks-low;
+
+                               trips {
+
+                                       low-soc {
+                                               temperature = <0xa>;
+                                               hysteresis = <0x0>;
+                                               type = "passive";
+                                               linux,phandle = <0x17a>;
+                                               phandle = <0x17a>;
+                                       };
+                               };
+
+                               cooling-maps {
+
+                                       soc_cpu4 {
+                                               trip = <0x17a>;
+                                               cooling-device = <0x15 0xfffffffe 0xfffffffe>;
+                                       };
+
+                                       soc_cpu5 {
+                                               trip = <0x17a>;
+                                               cooling-device = <0x16 0xfffffffe 0xfffffffe>;
+                                       };
+
+                                       soc_map6 {
+                                               trip = <0x17a>;
+                                               cooling-device = <0x17 0xfffffffe 0xfffffffe>;
+                                       };
+
+                                       soc_map7 {
+                                               trip = <0x17a>;
+                                               cooling-device = <0x18 0xfffffffe 0xfffffffe>;
+                                       };
+                               };
+                       };
+
+                       pmi8998_tz {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x17b>;
+                               wake-capable-sensor;
+
+                               trips {
+
+                                       pmi8998-trip0 {
+                                               temperature = <0x19a28>;
+                                               hysteresis = <0x0>;
+                                               type = "passive";
+                                       };
+
+                                       pmi8998-trip1 {
+                                               temperature = <0x1e848>;
+                                               hysteresis = <0x0>;
+                                               type = "passive";
+                                       };
+
+                                       pmi8998-trip2 {
+                                               temperature = <0x23668>;
+                                               hysteresis = <0x0>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       xo_therm {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x17c 0x4c>;
+                               thermal-governor = "user_space";
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0xfde8>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       cam_therm0 {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x17c 0x4d>;
+                               thermal-governor = "user_space";
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0xfde8>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       cam_therm1 {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x17c 0x4e>;
+                               thermal-governor = "user_space";
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0xfde8>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       pa_therm0 {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x17c 0x4f>;
+                               thermal-governor = "user_space";
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0xfde8>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       pa_therm1 {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x17c 0x50>;
+                               thermal-governor = "user_space";
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0xfde8>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+
+                       quiet_therm {
+                               polling-delay-passive = <0x0>;
+                               polling-delay = <0x0>;
+                               thermal-sensors = <0x17c 0x51>;
+                               thermal-governor = "user_space";
+
+                               trips {
+
+                                       active-config0 {
+                                               temperature = <0xfde8>;
+                                               hysteresis = <0x3e8>;
+                                               type = "passive";
+                                       };
+                               };
+                       };
+               };
+
+               tsens@c222000 {
+                       compatible = "qcom,sdm845-tsens";
+                       reg = <0xc222000 0x4 0xc263000 0x1ff>;
+                       reg-names = "tsens_srot_physical", "tsens_tm_physical";
+                       interrupts = <0x0 0x1fa 0x0 0x0 0x1fc 0x0>;
+                       interrupt-names = "tsens-upper-lower", "tsens-critical";
+                       #thermal-sensor-cells = <0x1>;
+                       linux,phandle = <0x14c>;
+                       phandle = <0x14c>;
+               };
+
+               tsens@c223000 {
+                       compatible = "qcom,sdm845-tsens";
+                       reg = <0xc223000 0x4 0xc265000 0x1ff>;
+                       reg-names = "tsens_srot_physical", "tsens_tm_physical";
+                       interrupts = <0x0 0x1fb 0x0 0x0 0x1fd 0x0>;
+                       interrupt-names = "tsens-upper-lower", "tsens-critical";
+                       #thermal-sensor-cells = <0x1>;
+                       linux,phandle = <0x14d>;
+                       phandle = <0x14d>;
+               };
+
+               mem_dump {
+                       compatible = "qcom,mem-dump";
+                       memory-region = <0x17d>;
+
+                       rpmh {
+                               qcom,dump-size = <0x2000000>;
+                               qcom,dump-id = <0xec>;
+                       };
+
+                       fcm {
+                               qcom,dump-size = <0x8400>;
+                               qcom,dump-id = <0xee>;
+                       };
+
+                       rpm_sw {
+                               qcom,dump-size = <0x28000>;
+                               qcom,dump-id = <0xea>;
+                       };
+
+                       pmic {
+                               qcom,dump-size = <0x10000>;
+                               qcom,dump-id = <0xe4>;
+                       };
+
+                       tmc_etf {
+                               qcom,dump-size = <0x10000>;
+                               qcom,dump-id = <0xf0>;
+                       };
+
+                       tmc_etfswao {
+                               qcom,dump-size = <0x8400>;
+                               qcom,dump-id = <0xf1>;
+                       };
+
+                       tmc_etr_reg {
+                               qcom,dump-size = <0x1000>;
+                               qcom,dump-id = <0x100>;
+                       };
+
+                       tmc_etf_reg {
+                               qcom,dump-size = <0x1000>;
+                               qcom,dump-id = <0x101>;
+                       };
+
+                       etfswao_reg {
+                               qcom,dump-size = <0x1000>;
+                               qcom,dump-id = <0x102>;
+                       };
+
+                       misc_data {
+                               qcom,dump-size = <0x1000>;
+                               qcom,dump-id = <0xe8>;
+                       };
+
+                       tpdm_swao {
+                               qcom,dump-size = <0x512>;
+                               qcom,dump-id = <0xf2>;
+                       };
+               };
+
+               qcom,gpi-dma@0x800000 {
+                       #dma-cells = <0x5>;
+                       compatible = "qcom,gpi-dma";
+                       reg = <0x800000 0x60000>;
+                       reg-names = "gpi-top";
+                       interrupts = <0x0 0xf4 0x0 0x0 0xf5 0x0 0x0 0xf6 0x0 0x0 0xf7 0x0 0x0 0xf8 0x0 0x0 0xf9 0x0 0x0 0xfa 0x0 0x0 0xfb 0x0 0x0 0xfc 0x0 0x0 0xfd 0x0 0x0 0xfe 0x0 0x0 0xff 0x0 0x0 0x100 0x0>;
+                       qcom,max-num-gpii = <0xd>;
+                       qcom,gpii-mask = <0xfa>;
+                       qcom,ev-factor = <0x2>;
+                       iommus = <0x29 0x16 0x0>;
+                       qcom,smmu-cfg = <0x1>;
+                       qcom,iova-range = <0x0 0x100000 0x0 0x100000>;
+                       status = "ok";
+                       linux,phandle = <0x44>;
+                       phandle = <0x44>;
+               };
+
+               qcom,gpi-dma@0xa00000 {
+                       #dma-cells = <0x5>;
+                       compatible = "qcom,gpi-dma";
+                       reg = <0xa00000 0x60000>;
+                       reg-names = "gpi-top";
+                       interrupts = <0x0 0x117 0x0 0x0 0x118 0x0 0x0 0x119 0x0 0x0 0x11a 0x0 0x0 0x11b 0x0 0x0 0x11c 0x0 0x0 0x125 0x0 0x0 0x126 0x0 0x0 0x127 0x0 0x0 0x128 0x0 0x0 0x129 0x0 0x0 0x12a 0x0 0x0 0x12b 0x0>;
+                       qcom,max-num-gpii = <0xd>;
+                       qcom,gpii-mask = <0xfa>;
+                       qcom,ev-factor = <0x2>;
+                       iommus = <0x29 0x6d6 0x0>;
+                       qcom,smmu-cfg = <0x1>;
+                       qcom,iova-range = <0x0 0x100000 0x0 0x100000>;
+                       status = "ok";
+                       linux,phandle = <0x79>;
+                       phandle = <0x79>;
+               };
+
+               msm_tspp@0x8880000 {
+                       compatible = "qcom,msm_tspp";
+                       reg = <0x88a7000 0x200 0x88a8000 0x200 0x88a9000 0x1000 0x8884000 0x23000>;
+                       reg-names = "MSM_TSIF0_PHYS", "MSM_TSIF1_PHYS", "MSM_TSPP_PHYS", "MSM_TSPP_BAM_PHYS";
+                       interrupts = <0x0 0x79 0x0 0x0 0x77 0x0 0x0 0x78 0x0 0x0 0x7a 0x0>;
+                       interrupt-names = "TSIF_TSPP_IRQ", "TSIF0_IRQ", "TSIF1_IRQ", "TSIF_BAM_IRQ";
+                       clock-names = "iface_clk", "ref_clk";
+                       clocks = <0x22 0x77 0x22 0x79>;
+                       qcom,msm-bus,name = "tsif";
+                       qcom,msm-bus,num-cases = <0x2>;
+                       qcom,msm-bus,num-paths = <0x1>;
+                       qcom,msm-bus,vectors-KBps = <0x52 0x200 0x0 0x0 0x52 0x200 0x3000 0x6000>;
+                       pinctrl-names = "disabled", "tsif0-mode1", "tsif0-mode2", "tsif1-mode1", "tsif1-mode2", "dual-tsif-mode1", "dual-tsif-mode2";
+                       pinctrl-0;
+                       pinctrl-1 = <0x17e>;
+                       pinctrl-2 = <0x17e 0x17f>;
+                       pinctrl-3 = <0x180>;
+                       pinctrl-4 = <0x180 0x181>;
+                       pinctrl-5 = <0x17e 0x180>;
+                       pinctrl-6 = <0x17e 0x17f 0x180 0x181>;
+                       qcom,smmu-s1-bypass;
+                       iommus = <0x29 0x20 0xf>;
+               };
+
+               rpmh-regulator-ebilvl {
+                       compatible = "qcom,rpmh-arc-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ebi.lvl";
+
+                       regulator-s1 {
+                               regulator-name = "pm8998_s1_level";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x1>;
+                               regulator-max-microvolt = <0x10000>;
+                       };
+
+                       regulator-cdev {
+                               compatible = "qcom,rpmh-reg-cdev";
+                               mboxes = <0xab 0x0>;
+                               qcom,reg-resource-name = "ebi";
+                               #cooling-cells = <0x2>;
+                               linux,phandle = <0x15f>;
+                               phandle = <0x15f>;
+                       };
+               };
+
+               rpmh-regulator-smpa2 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "smpa2";
+
+                       regulator-s2 {
+                               regulator-name = "pm8998_s2";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x10c8e0>;
+                               regulator-max-microvolt = <0x10c8e0>;
+                               qcom,init-voltage = <0x10c8e0>;
+                       };
+               };
+
+               rpmh-regulator-smpa3 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "smpa3";
+
+                       regulator-s3 {
+                               regulator-name = "pm8998_s3";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x14a140>;
+                               regulator-max-microvolt = <0x14a140>;
+                               qcom,init-voltage = <0x14a140>;
+                               linux,phandle = <0x380>;
+                               phandle = <0x380>;
+                       };
+               };
+
+               rpmh-regulator-smpa5 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "smpa5";
+
+                       regulator-s5 {
+                               regulator-name = "pm8998_s5";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x1d0d80>;
+                               regulator-max-microvolt = <0x1f20c0>;
+                               qcom,init-voltage = <0x1d0d80>;
+                               linux,phandle = <0xdb>;
+                               phandle = <0xdb>;
+                       };
+               };
+
+               rpmh-regulator-mxlvl {
+                       compatible = "qcom,rpmh-arc-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "mx.lvl";
+
+                       regulator-s6-level {
+                               regulator-name = "pm8998_s6_level";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x1>;
+                               regulator-max-microvolt = <0x10000>;
+                               linux,phandle = <0xc4>;
+                               phandle = <0xc4>;
+                       };
+
+                       regulator-s6-level-ao {
+                               regulator-name = "pm8998_s6_level_ao";
+                               qcom,set = <0x1>;
+                               regulator-min-microvolt = <0x1>;
+                               regulator-max-microvolt = <0x10000>;
+                               linux,phandle = <0xd6>;
+                               phandle = <0xd6>;
+                       };
+
+                       mx-cdev-lvl {
+                               compatible = "qcom,regulator-cooling-device";
+                               regulator-cdev-supply = <0xc4>;
+                               regulator-levels = <0x101 0x1>;
+                               #cooling-cells = <0x2>;
+                               linux,phandle = <0x15e>;
+                               phandle = <0x15e>;
+                       };
+               };
+
+               rpmh-regulator-smpa7 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "smpa7";
+
+                       regulator-s7 {
+                               regulator-name = "pm8998_s7";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0xdbba0>;
+                               regulator-max-microvolt = <0xfafa0>;
+                               qcom,init-voltage = <0xdbba0>;
+                               linux,phandle = <0xda>;
+                               phandle = <0xda>;
+                       };
+               };
+
+               rpmh-regulator-cxlvl {
+                       compatible = "qcom,rpmh-arc-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "cx.lvl";
+                       pm8998_s9_level-parent-supply = <0xc4>;
+                       pm8998_s9_level_ao-parent-supply = <0xd6>;
+
+                       regulator-s9-level {
+                               regulator-name = "pm8998_s9_level";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x11>;
+                               regulator-max-microvolt = <0x10000>;
+                               qcom,min-dropout-voltage-level = <0xffffffff>;
+                               linux,phandle = <0x1b>;
+                               phandle = <0x1b>;
+                       };
+
+                       regulator-s9-level-ao {
+                               regulator-name = "pm8998_s9_level_ao";
+                               qcom,set = <0x1>;
+                               regulator-min-microvolt = <0x11>;
+                               regulator-max-microvolt = <0x10000>;
+                               qcom,min-dropout-voltage-level = <0xffffffff>;
+                               linux,phandle = <0xc3>;
+                               phandle = <0xc3>;
+                       };
+
+                       regulator-cdev {
+                               compatible = "qcom,rpmh-reg-cdev";
+                               mboxes = <0xab 0x0>;
+                               qcom,reg-resource-name = "cx";
+                               #cooling-cells = <0x2>;
+                               linux,phandle = <0x15d>;
+                               phandle = <0x15d>;
+                       };
+               };
+
+               rpmh-regulator-ldoa1 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ldoa1";
+                       qcom,regulator-type = "pmic4-ldo";
+                       qcom,supported-modes = <0x2 0x4>;
+                       qcom,mode-threshold-currents = <0x0 0x1>;
+                       proxy-supply = <0x36>;
+
+                       regulator-l1 {
+                               regulator-name = "pm8998_l1";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0xd6d80>;
+                               regulator-max-microvolt = <0xd6d80>;
+                               qcom,proxy-consumer-enable;
+                               qcom,proxy-consumer-current = <0x11940>;
+                               qcom,init-voltage = <0xd6d80>;
+                               qcom,init-mode = <0x2>;
+                               linux,phandle = <0x36>;
+                               phandle = <0x36>;
+                       };
+
+                       regulator-l1-ao {
+                               regulator-name = "pm8998_l1_ao";
+                               qcom,set = <0x1>;
+                               regulator-min-microvolt = <0xd6d80>;
+                               regulator-max-microvolt = <0xd6d80>;
+                               qcom,init-voltage = <0xd6d80>;
+                               qcom,init-mode = <0x2>;
+                               linux,phandle = <0xd8>;
+                               phandle = <0xd8>;
+                       };
+
+                       regulator-l1-so {
+                               regulator-name = "pm8998_l1_so";
+                               qcom,set = <0x2>;
+                               regulator-min-microvolt = <0xd6d80>;
+                               regulator-max-microvolt = <0xd6d80>;
+                               qcom,init-voltage = <0xd6d80>;
+                               qcom,init-mode = <0x2>;
+                               qcom,init-enable = <0x0>;
+                       };
+               };
+
+               rpmh-regulator-ldoa2 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ldoa2";
+                       qcom,regulator-type = "pmic4-ldo";
+                       qcom,supported-modes = <0x2 0x4>;
+                       qcom,mode-threshold-currents = <0x0 0x7530>;
+
+                       regulator-l2 {
+                               regulator-name = "pm8998_l2";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x124f80>;
+                               regulator-max-microvolt = <0x124f80>;
+                               qcom,init-voltage = <0x124f80>;
+                               qcom,init-mode = <0x2>;
+                               regulator-always-on;
+                               linux,phandle = <0xe7>;
+                               phandle = <0xe7>;
+                       };
+               };
+
+               rpmh-regulator-ldoa3 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ldoa3";
+                       qcom,regulator-type = "pmic4-ldo";
+                       qcom,supported-modes = <0x2 0x4>;
+                       qcom,mode-threshold-currents = <0x0 0x1>;
+
+                       regulator-l3 {
+                               regulator-name = "pm8998_l3";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0xf4240>;
+                               regulator-max-microvolt = <0xf4240>;
+                               qcom,init-voltage = <0xf4240>;
+                               qcom,init-mode = <0x2>;
+                       };
+               };
+
+               rpmh-regulator-lmxlvl {
+                       compatible = "qcom,rpmh-arc-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "lmx.lvl";
+
+                       regulator-l4-level {
+                               regulator-name = "pm8998_l4_level";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x1>;
+                               regulator-max-microvolt = <0x10000>;
+                               linux,phandle = <0x106>;
+                               phandle = <0x106>;
+                       };
+               };
+
+               rpmh-regulator-ldoa5 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ldoa5";
+                       qcom,regulator-type = "pmic4-ldo";
+                       qcom,supported-modes = <0x2 0x4>;
+                       qcom,mode-threshold-currents = <0x0 0x1>;
+
+                       regulator-l5 {
+                               regulator-name = "pm8998_l5";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0xc3500>;
+                               regulator-max-microvolt = <0xc3500>;
+                               qcom,init-voltage = <0xc3500>;
+                               qcom,init-mode = <0x2>;
+                               linux,phandle = <0x148>;
+                               phandle = <0x148>;
+                       };
+               };
+
+               rpmh-regulator-ldoa6 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ldoa6";
+                       qcom,regulator-type = "pmic4-ldo";
+                       qcom,supported-modes = <0x2 0x4>;
+                       qcom,mode-threshold-currents = <0x0 0x1>;
+
+                       regulator-l6 {
+                               regulator-name = "pm8998_l6";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x1c5200>;
+                               regulator-max-microvolt = <0x1c5200>;
+                               qcom,init-voltage = <0x1c5200>;
+                               qcom,init-mode = <0x2>;
+                       };
+               };
+
+               rpmh-regulator-ldoa7 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ldoa7";
+                       qcom,regulator-type = "pmic4-ldo";
+                       qcom,supported-modes = <0x2 0x4>;
+                       qcom,mode-threshold-currents = <0x0 0x2710>;
+
+                       regulator-l7 {
+                               regulator-name = "pm8998_l7";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x1b7740>;
+                               regulator-max-microvolt = <0x1b7740>;
+                               qcom,init-voltage = <0x1b7740>;
+                               qcom,init-mode = <0x2>;
+                               linux,phandle = <0x149>;
+                               phandle = <0x149>;
+                       };
+               };
+
+               rpmh-regulator-ldoa8 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ldoa8";
+                       qcom,regulator-type = "pmic4-ldo";
+                       qcom,supported-modes = <0x2 0x4>;
+                       qcom,mode-threshold-currents = <0x0 0x1>;
+
+                       regulator-l8 {
+                               regulator-name = "pm8998_l8";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x124f80>;
+                               regulator-max-microvolt = <0x130b00>;
+                               qcom,init-voltage = <0x124f80>;
+                               qcom,init-mode = <0x2>;
+                       };
+               };
+
+               rpmh-regulator-ldoa9 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ldoa9";
+                       qcom,regulator-type = "pmic4-ldo";
+                       qcom,supported-modes = <0x2 0x4>;
+                       qcom,mode-threshold-currents = <0x0 0x1>;
+
+                       regulator-l9 {
+                               regulator-name = "pm8998_l9";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x1a0040>;
+                               regulator-max-microvolt = <0x2cad80>;
+                               qcom,init-voltage = <0x1a0040>;
+                               qcom,init-mode = <0x2>;
+                       };
+               };
+
+               rpmh-regulator-ldoa10 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ldoa10";
+                       qcom,regulator-type = "pmic4-ldo";
+                       qcom,supported-modes = <0x2 0x4>;
+                       qcom,mode-threshold-currents = <0x0 0x1>;
+
+                       regulator-l10 {
+                               regulator-name = "pm8998_l10";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x1a0040>;
+                               regulator-max-microvolt = <0x2cad80>;
+                               qcom,init-voltage = <0x1a0040>;
+                               qcom,init-mode = <0x2>;
+                       };
+               };
+
+               rpmh-regulator-ldoa11 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ldoa11";
+                       qcom,regulator-type = "pmic4-ldo";
+                       qcom,supported-modes = <0x2 0x4>;
+                       qcom,mode-threshold-currents = <0x0 0x1>;
+
+                       regulator-l11 {
+                               regulator-name = "pm8998_l11";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0xf4240>;
+                               regulator-max-microvolt = <0xffdc0>;
+                               qcom,init-voltage = <0xf4240>;
+                               qcom,init-mode = <0x2>;
+                       };
+               };
+
+               rpmh-regulator-ldoa12 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ldoa12";
+                       qcom,regulator-type = "pmic4-ldo";
+                       qcom,supported-modes = <0x2 0x4>;
+                       qcom,mode-threshold-currents = <0x0 0x1>;
+
+                       regulator-l12 {
+                               regulator-name = "pm8998_l12";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x1b7740>;
+                               regulator-max-microvolt = <0x1b7740>;
+                               qcom,init-voltage = <0x1b7740>;
+                               qcom,init-mode = <0x2>;
+                               linux,phandle = <0x183>;
+                               phandle = <0x183>;
+                       };
+               };
+
+               rpmh-regulator-ldoa13 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ldoa13";
+                       qcom,regulator-type = "pmic4-ldo";
+                       qcom,supported-modes = <0x2 0x4>;
+                       qcom,mode-threshold-currents = <0x0 0x2710>;
+
+                       regulator-l13 {
+                               regulator-name = "pm8998_l13";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x1b7740>;
+                               regulator-max-microvolt = <0x2d2a80>;
+                               qcom,init-voltage = <0x1b7740>;
+                               qcom,init-mode = <0x2>;
+                               linux,phandle = <0xe9>;
+                               phandle = <0xe9>;
+                       };
+               };
+
+               rpmh-regulator-ldoa14 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ldoa14";
+                       qcom,regulator-type = "pmic4-ldo";
+                       qcom,supported-modes = <0x2 0x4>;
+                       qcom,mode-threshold-currents = <0x0 0x2710>;
+                       proxy-supply = <0x182>;
+
+                       regulator-l14 {
+                               regulator-name = "pm8998_l14";
+                               qcom,set = <0x3>;
+                               qcom,proxy-consumer-enable;
+                               qcom,proxy-consumer-current = <0x1c138>;
+                               regulator-min-microvolt = <0x1b7740>;
+                               regulator-max-microvolt = <0x1cafc0>;
+                               qcom,init-voltage = <0x1b7740>;
+                               qcom,init-mode = <0x4>;
+                               regulator-boot-on;
+                               linux,phandle = <0x182>;
+                               phandle = <0x182>;
+                       };
+               };
+
+               rpmh-regulator-ldoa15 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ldoa15";
+                       qcom,regulator-type = "pmic4-ldo";
+                       qcom,supported-modes = <0x2 0x4>;
+                       qcom,mode-threshold-currents = <0x0 0x1>;
+
+                       regulator-l15 {
+                               regulator-name = "pm8998_l15";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x1b7740>;
+                               regulator-max-microvolt = <0x1b7740>;
+                               qcom,init-voltage = <0x1b7740>;
+                               qcom,init-mode = <0x2>;
+                       };
+               };
+
+               rpmh-regulator-ldoa16 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ldoa16";
+                       qcom,regulator-type = "pmic4-ldo";
+                       qcom,supported-modes = <0x2 0x4>;
+                       qcom,mode-threshold-currents = <0x0 0x1>;
+
+                       regulator-l16 {
+                               regulator-name = "pm8998_l16";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x294280>;
+                               regulator-max-microvolt = <0x294280>;
+                               qcom,init-voltage = <0x294280>;
+                               qcom,init-mode = <0x2>;
+                       };
+               };
+
+               rpmh-regulator-ldoa17 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ldoa17";
+                       qcom,regulator-type = "pmic4-ldo";
+                       qcom,supported-modes = <0x2 0x4>;
+                       qcom,mode-threshold-currents = <0x0 0x2710>;
+
+                       regulator-l17 {
+                               regulator-name = "pm8998_l17";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x13e5c0>;
+                               regulator-max-microvolt = <0x13e5c0>;
+                               qcom,init-voltage = <0x13e5c0>;
+                               qcom,init-mode = <0x2>;
+                               linux,phandle = <0x14a>;
+                               phandle = <0x14a>;
+                       };
+               };
+
+               rpmh-regulator-ldoa18 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ldoa18";
+                       qcom,regulator-type = "pmic4-ldo";
+                       qcom,supported-modes = <0x2 0x4>;
+                       qcom,mode-threshold-currents = <0x0 0x1>;
+
+                       regulator-l18 {
+                               regulator-name = "pm8998_l18";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x294280>;
+                               regulator-max-microvolt = <0x2d2a80>;
+                               qcom,init-voltage = <0x294280>;
+                               qcom,init-mode = <0x2>;
+                       };
+               };
+
+               rpmh-regulator-ldoa19 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ldoa19";
+                       qcom,regulator-type = "pmic4-ldo";
+                       qcom,supported-modes = <0x2 0x4>;
+                       qcom,mode-threshold-currents = <0x0 0x1>;
+
+                       regulator-l19 {
+                               regulator-name = "pm8998_l19";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x2b9440>;
+                               regulator-max-microvolt = <0x2f5d00>;
+                               qcom,init-voltage = <0x2b9440>;
+                               qcom,init-mode = <0x2>;
+                       };
+               };
+
+               rpmh-regulator-ldoa20 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ldoa20";
+                       qcom,regulator-type = "pmic4-ldo";
+                       qcom,supported-modes = <0x2 0x4>;
+                       qcom,mode-threshold-currents = <0x0 0x2710>;
+
+                       regulator-l20 {
+                               regulator-name = "pm8998_l20";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x294280>;
+                               regulator-max-microvolt = <0x2d2a80>;
+                               qcom,init-voltage = <0x294280>;
+                               qcom,init-mode = <0x4>;
+                               linux,phandle = <0xe5>;
+                               phandle = <0xe5>;
+                       };
+               };
+
+               rpmh-regulator-ldoa21 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ldoa21";
+                       qcom,regulator-type = "pmic4-ldo";
+                       qcom,supported-modes = <0x2 0x4>;
+                       qcom,mode-threshold-currents = <0x0 0x2710>;
+
+                       regulator-l21 {
+                               regulator-name = "pm8998_l21";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x294280>;
+                               regulator-max-microvolt = <0x2d2a80>;
+                               qcom,init-voltage = <0x294280>;
+                               qcom,init-mode = <0x2>;
+                               linux,phandle = <0xe8>;
+                               phandle = <0xe8>;
+                       };
+               };
+
+               rpmh-regulator-ldoa22 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ldoa22";
+                       qcom,regulator-type = "pmic4-ldo";
+                       qcom,supported-modes = <0x2 0x4>;
+                       qcom,mode-threshold-currents = <0x0 0x2710>;
+
+                       regulator-l22 {
+                               regulator-name = "pm8998_l22";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x2bb380>;
+                               regulator-max-microvolt = <0x328980>;
+                               qcom,init-voltage = <0x2bb380>;
+                               qcom,init-mode = <0x2>;
+                               linux,phandle = <0x23b>;
+                               phandle = <0x23b>;
+                       };
+               };
+
+               rpmh-regulator-ldoa23 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ldoa23";
+                       qcom,regulator-type = "pmic4-ldo";
+                       qcom,supported-modes = <0x2 0x4>;
+                       qcom,mode-threshold-currents = <0x0 0x2710>;
+
+                       regulator-l23 {
+                               regulator-name = "pm8998_l23";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x2dc6c0>;
+                               regulator-max-microvolt = <0x328980>;
+                               qcom,init-voltage = <0x2dc6c0>;
+                               qcom,init-mode = <0x2>;
+                       };
+               };
+
+               rpmh-regulator-ldoa24 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ldoa24";
+                       qcom,regulator-type = "pmic4-ldo";
+                       qcom,supported-modes = <0x2 0x4>;
+                       qcom,mode-threshold-currents = <0x0 0x2710>;
+                       pm8998_l24-parent-supply = <0x183>;
+
+                       regulator-l24 {
+                               regulator-name = "pm8998_l24";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x2f1e80>;
+                               regulator-max-microvolt = <0x2f1e80>;
+                               qcom,init-voltage = <0x2f1e80>;
+                               qcom,init-mode = <0x2>;
+                               linux,phandle = <0xb0>;
+                               phandle = <0xb0>;
+                       };
+               };
+
+               rpmh-regulator-ldoa25 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ldoa25";
+                       qcom,regulator-type = "pmic4-ldo";
+                       qcom,supported-modes = <0x2 0x4>;
+                       qcom,mode-threshold-currents = <0x0 0x2710>;
+
+                       regulator-l25 {
+                               regulator-name = "pm8998_l25";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x2dc6c0>;
+                               regulator-max-microvolt = <0x328980>;
+                               qcom,init-voltage = <0x2dc6c0>;
+                               qcom,init-mode = <0x2>;
+                               linux,phandle = <0x14b>;
+                               phandle = <0x14b>;
+                       };
+               };
+
+               rpmh-regulator-ldoa26 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ldoa26";
+                       qcom,regulator-type = "pmic4-ldo";
+                       qcom,supported-modes = <0x2 0x4>;
+                       qcom,mode-threshold-currents = <0x0 0x1>;
+                       proxy-supply = <0x35>;
+
+                       regulator-l26 {
+                               regulator-name = "pm8998_l26";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x124f80>;
+                               regulator-max-microvolt = <0x124f80>;
+                               qcom,proxy-consumer-enable;
+                               qcom,proxy-consumer-current = <0xaa50>;
+                               qcom,init-voltage = <0x124f80>;
+                               qcom,init-mode = <0x2>;
+                               linux,phandle = <0x35>;
+                               phandle = <0x35>;
+                       };
+               };
+
+               rpmh-regulator-lcxlvl {
+                       compatible = "qcom,rpmh-arc-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "lcx.lvl";
+
+                       regulator-l27-level {
+                               regulator-name = "pm8998_l27_level";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x1>;
+                               regulator-max-microvolt = <0x10000>;
+                               linux,phandle = <0x105>;
+                               phandle = <0x105>;
+                       };
+               };
+
+               rpmh-regulator-ldoa28 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "ldoa28";
+                       qcom,regulator-type = "pmic4-ldo";
+                       qcom,supported-modes = <0x2 0x4>;
+                       qcom,mode-threshold-currents = <0x0 0x1>;
+
+                       regulator-l28 {
+                               regulator-name = "pm8998_l28";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x325aa0>;
+                               regulator-max-microvolt = <0x325aa0>;
+                               qcom,init-voltage = <0x325aa0>;
+                               qcom,init-mode = <0x2>;
+                               regulator-boot-on;
+                               linux,phandle = <0x97>;
+                               phandle = <0x97>;
+                       };
+               };
+
+               rpmh-regulator-vsa1 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "vsa1";
+
+                       regulator-lvs1 {
+                               regulator-name = "pm8998_lvs1";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x1b7740>;
+                               regulator-max-microvolt = <0x1b7740>;
+                       };
+               };
+
+               rpmh-regulator-vsa2 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "vsa2";
+
+                       regulator-lvs2 {
+                               regulator-name = "pm8998_lvs2";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x1b7740>;
+                               regulator-max-microvolt = <0x1b7740>;
+                       };
+               };
+
+               rpmh-regulator-bobb1 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "bobb1";
+                       qcom,regulator-type = "pmic4-bob";
+                       qcom,send-defaults;
+
+                       regulator-bob {
+                               regulator-name = "pmi8998_bob";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x328980>;
+                               regulator-max-microvolt = <0x36ee80>;
+                               qcom,init-voltage = <0x328980>;
+                               qcom,init-mode = <0x0>;
+                               linux,phandle = <0x22c>;
+                               phandle = <0x22c>;
+                       };
+
+                       regulator-bob-ao {
+                               regulator-name = "pmi8998_bob_ao";
+                               qcom,set = <0x1>;
+                               regulator-min-microvolt = <0x328980>;
+                               regulator-max-microvolt = <0x36ee80>;
+                               qcom,init-voltage = <0x328980>;
+                               qcom,init-mode = <0x3>;
+                       };
+               };
+
+               rpmh-regulator-gfxlvl {
+                       compatible = "qcom,rpmh-arc-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "gfx.lvl";
+
+                       regulator-s1-level {
+                               regulator-name = "pm8005_s1_level";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x31>;
+                               regulator-max-microvolt = <0x10000>;
+                               qcom,init-voltage-level = <0x31>;
+                               linux,phandle = <0x1d>;
+                               phandle = <0x1d>;
+                       };
+               };
+
+               rpmh-regulator-msslvl {
+                       compatible = "qcom,rpmh-arc-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "mss.lvl";
+
+                       regulator-s2-level {
+                               regulator-name = "pm8005_s2_level";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x1>;
+                               regulator-max-microvolt = <0x10000>;
+                               linux,phandle = <0xfd>;
+                               phandle = <0xfd>;
+                       };
+               };
+
+               rpmh-regulator-smpc3 {
+                       compatible = "qcom,rpmh-vrm-regulator";
+                       mboxes = <0xc2 0x0>;
+                       qcom,resource-name = "smpc3";
+
+                       regulator-s3 {
+                               regulator-name = "pm8005_s3";
+                               qcom,set = <0x3>;
+                               regulator-min-microvolt = <0x927c0>;
+                               regulator-max-microvolt = <0x927c0>;
+                               qcom,init-voltage = <0x927c0>;
+                       };
+               };
+
+               refgen-regulator@ff1000 {
+                       compatible = "qcom,refgen-regulator";
+                       reg = <0xff1000 0x60>;
+                       regulator-name = "refgen";
+                       regulator-enable-ramp-delay = <0x5>;
+                       status = "ok";
+                       proxy-supply = <0x184>;
+                       qcom,proxy-consumer-enable;
+                       linux,phandle = <0x184>;
+                       phandle = <0x184>;
+               };
+
+               csr@6001000 {
+                       compatible = "qcom,coresight-csr";
+                       reg = <0x6001000 0x1000>;
+                       reg-names = "csr-base";
+                       coresight-name = "coresight-csr";
+                       qcom,usb-bam-support;
+                       qcom,hwctrl-set-support;
+                       qcom,set-byte-cntr-support;
+                       qcom,blk-size = <0x1>;
+                       linux,phandle = <0x18a>;
+                       phandle = <0x18a>;
+               };
+
+               csr@6b0e000 {
+                       compatible = "qcom,coresight-csr";
+                       reg = <0x6b0e000 0x1000>;
+                       reg-names = "csr-base";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+                       coresight-name = "coresight-swao-csr";
+                       qcom,timestamp-support;
+                       qcom,blk-size = <0x1>;
+               };
+
+               replicator@6046000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b909>;
+                       reg = <0x6046000 0x1000>;
+                       reg-names = "replicator-base";
+                       coresight-name = "coresight-replicator";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x185>;
+                                               linux,phandle = <0x197>;
+                                               phandle = <0x197>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x186>;
+                                               linux,phandle = <0x198>;
+                                               phandle = <0x198>;
+                                       };
+                               };
+                       };
+               };
+
+               replicator@6b0a000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b909>;
+                       reg = <0x6b0a000 0x1000>;
+                       reg-names = "replicator-base";
+                       coresight-name = "coresight-replicator-swao";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x187>;
+                                               linux,phandle = <0x18b>;
+                                               phandle = <0x18b>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x1>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x188>;
+                                               linux,phandle = <0x1e9>;
+                                               phandle = <0x1e9>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x189>;
+                                               linux,phandle = <0x1a4>;
+                                               phandle = <0x1a4>;
+                                       };
+                               };
+                       };
+               };
+
+               tmc@6b09000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b961>;
+                       reg = <0x6b09000 0x1000>;
+                       reg-names = "tmc-base";
+                       coresight-name = "coresight-tmc-etf-swao";
+                       coresight-csr = <0x18a>;
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x18b>;
+                                               linux,phandle = <0x187>;
+                                               phandle = <0x187>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x18c>;
+                                               linux,phandle = <0x18d>;
+                                               phandle = <0x18d>;
+                                       };
+                               };
+                       };
+               };
+
+               funnel@0x6b08000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b908>;
+                       reg = <0x6b08000 0x1000>;
+                       reg-names = "funnel-base";
+                       coresight-name = "coresight-funnel-swao";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x18d>;
+                                               linux,phandle = <0x18c>;
+                                               phandle = <0x18c>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x6>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x18e>;
+                                               linux,phandle = <0x1ea>;
+                                               phandle = <0x1ea>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <0x7>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x18f>;
+                                               linux,phandle = <0x190>;
+                                               phandle = <0x190>;
+                                       };
+                               };
+                       };
+               };
+
+               tpda@6b01000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b969>;
+                       reg = <0x6b01000 0x1000>;
+                       reg-names = "tpda-base";
+                       coresight-name = "coresight-tpda-swao";
+                       qcom,tpda-atid = <0x47>;
+                       qcom,dsb-elem-size = <0x1 0x20>;
+                       qcom,cmb-elem-size = <0x0 0x40>;
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x190>;
+                                               linux,phandle = <0x18f>;
+                                               phandle = <0x18f>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x191>;
+                                               linux,phandle = <0x193>;
+                                               phandle = <0x193>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <0x1>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x192>;
+                                               linux,phandle = <0x194>;
+                                               phandle = <0x194>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@6b02000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b968>;
+                       reg = <0x6b02000 0x1000>;
+                       reg-names = "tpdm-base";
+                       coresight-name = "coresight-tpdm-swao-0";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x193>;
+                                       linux,phandle = <0x191>;
+                                       phandle = <0x191>;
+                               };
+                       };
+               };
+
+               tpdm@6b03000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b968>;
+                       reg = <0x6b03000 0x1000>;
+                       reg-names = "tpdm-base";
+                       coresight-name = "coresight-tpdm-swao-1";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+                       qcom,msr-fix-req;
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x194>;
+                                       linux,phandle = <0x192>;
+                                       phandle = <0x192>;
+                               };
+                       };
+               };
+
+               tmc@6048000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b961>;
+                       reg = <0x6048000 0x1000 0x6064000 0x15000>;
+                       reg-names = "tmc-base", "bam-base";
+                       arm,buffer-size = <0x400000>;
+                       arm,sg-enable;
+                       coresight-name = "coresight-tmc-etr";
+                       coresight-ctis = <0x195 0x196>;
+                       coresight-csr = <0x18a>;
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+                       interrupts = <0x0 0x10e 0x1>;
+                       interrupt-names = "byte-cntr-irq";
+
+                       port {
+
+                               endpoint {
+                                       slave-mode;
+                                       remote-endpoint = <0x197>;
+                                       linux,phandle = <0x185>;
+                                       phandle = <0x185>;
+                               };
+                       };
+               };
+
+               tmc@6047000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b961>;
+                       reg = <0x6047000 0x1000>;
+                       reg-names = "tmc-base";
+                       coresight-name = "coresight-tmc-etf";
+                       coresight-ctis = <0x195 0x196>;
+                       coresight-csr = <0x18a>;
+                       arm,default-sink;
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x198>;
+                                               linux,phandle = <0x186>;
+                                               phandle = <0x186>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x1>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x199>;
+                                               linux,phandle = <0x19a>;
+                                               phandle = <0x19a>;
+                                       };
+                               };
+                       };
+               };
+
+               funnel@6045000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b908>;
+                       reg = <0x6045000 0x1000>;
+                       reg-names = "funnel-base";
+                       coresight-name = "coresight-funnel-merg";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x19a>;
+                                               linux,phandle = <0x199>;
+                                               phandle = <0x199>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x19b>;
+                                               linux,phandle = <0x19e>;
+                                               phandle = <0x19e>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <0x2>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x19c>;
+                                               linux,phandle = <0x1a2>;
+                                               phandle = <0x1a2>;
+                                       };
+                               };
+                       };
+               };
+
+               stm@6002000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b962>;
+                       reg = <0x6002000 0x1000 0x16280000 0x180000>;
+                       reg-names = "stm-base", "stm-stimulus-base";
+                       coresight-name = "coresight-stm";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x19d>;
+                                       linux,phandle = <0x1a1>;
+                                       phandle = <0x1a1>;
+                               };
+                       };
+               };
+
+               hwevent@0x014066f0 {
+                       compatible = "qcom,coresight-hwevent";
+                       reg = <0x14066f0 0x4 0x14166f0 0x4 0x1406038 0x4 0x1416038 0x4>;
+                       reg-names = "ddr-ch0-cfg", "ddr-ch23-cfg", "ddr-ch0-ctrl", "ddr-ch23-ctrl";
+                       coresight-name = "coresight-hwevent";
+                       coresight-csr = <0x18a>;
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               funnel@0x6041000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b908>;
+                       reg = <0x6041000 0x1000>;
+                       reg-names = "funnel-base";
+                       coresight-name = "coresight-funnel-in0";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x19e>;
+                                               linux,phandle = <0x19b>;
+                                               phandle = <0x19b>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x3>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x19f>;
+                                               linux,phandle = <0x1e0>;
+                                               phandle = <0x1e0>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <0x6>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1a0>;
+                                               linux,phandle = <0x1e3>;
+                                               phandle = <0x1e3>;
+                                       };
+                               };
+
+                               port@3 {
+                                       reg = <0x7>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1a1>;
+                                               linux,phandle = <0x19d>;
+                                               phandle = <0x19d>;
+                                       };
+                               };
+                       };
+               };
+
+               funnel@0x6043000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b908>;
+                       reg = <0x6043000 0x1000>;
+                       reg-names = "funnel-base";
+                       coresight-name = "coresight-funnel-in2";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x1a2>;
+                                               linux,phandle = <0x19c>;
+                                               phandle = <0x19c>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1a3>;
+                                               linux,phandle = <0x1eb>;
+                                               phandle = <0x1eb>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <0x1>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1a4>;
+                                               linux,phandle = <0x189>;
+                                               phandle = <0x189>;
+                                       };
+                               };
+
+                               port@3 {
+                                       reg = <0x2>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1a5>;
+                                               linux,phandle = <0x1b6>;
+                                               phandle = <0x1b6>;
+                                       };
+                               };
+
+                               port@4 {
+                                       reg = <0x5>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1a6>;
+                                               linux,phandle = <0x1ee>;
+                                               phandle = <0x1ee>;
+                                       };
+                               };
+
+                               port@5 {
+                                       reg = <0x6>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1a7>;
+                                               linux,phandle = <0x1a8>;
+                                               phandle = <0x1a8>;
+                                       };
+                               };
+                       };
+               };
+
+               funnel@0x6943000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b908>;
+                       reg = <0x6943000 0x1000>;
+                       reg-names = "funnel-base";
+                       coresight-name = "coresight-funnel-gfx";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x1a8>;
+                                               linux,phandle = <0x1a7>;
+                                               phandle = <0x1a7>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1a9>;
+                                               linux,phandle = <0x336>;
+                                               phandle = <0x336>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <0x1>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1aa>;
+                                               linux,phandle = <0x337>;
+                                               phandle = <0x337>;
+                                       };
+                               };
+                       };
+               };
+
+               tpda@6004000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b969>;
+                       reg = <0x6004000 0x1000>;
+                       reg-names = "tpda-base";
+                       coresight-name = "coresight-tpda";
+                       qcom,tpda-atid = <0x41>;
+                       qcom,bc-elem-size = <0xa 0x20 0xd 0x20>;
+                       qcom,tc-elem-size = <0xd 0x20>;
+                       qcom,dsb-elem-size = <0x0 0x20 0x2 0x20 0x3 0x20 0x5 0x20 0x6 0x20 0xa 0x20 0xb 0x20 0xd 0x20>;
+                       qcom,cmb-elem-size = <0x3 0x40 0x7 0x40 0x9 0x40 0xd 0x40>;
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x1ab>;
+                                               linux,phandle = <0x1e4>;
+                                               phandle = <0x1e4>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1ac>;
+                                               linux,phandle = <0x1c0>;
+                                               phandle = <0x1c0>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <0x2>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1ad>;
+                                               linux,phandle = <0x1cc>;
+                                               phandle = <0x1cc>;
+                                       };
+                               };
+
+                               port@3 {
+                                       reg = <0x3>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1ae>;
+                                               linux,phandle = <0x1d4>;
+                                               phandle = <0x1d4>;
+                                       };
+                               };
+
+                               port@4 {
+                                       reg = <0x5>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1af>;
+                                               linux,phandle = <0x1bb>;
+                                               phandle = <0x1bb>;
+                                       };
+                               };
+
+                               port@5 {
+                                       reg = <0x6>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1b0>;
+                                               linux,phandle = <0x1cf>;
+                                               phandle = <0x1cf>;
+                                       };
+                               };
+
+                               port@6 {
+                                       reg = <0x7>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1b1>;
+                                               linux,phandle = <0x1d9>;
+                                               phandle = <0x1d9>;
+                                       };
+                               };
+
+                               port@7 {
+                                       reg = <0x9>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1b2>;
+                                               linux,phandle = <0x1d8>;
+                                               phandle = <0x1d8>;
+                                       };
+                               };
+
+                               port@8 {
+                                       reg = <0xa>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1b3>;
+                                               linux,phandle = <0x1c2>;
+                                               phandle = <0x1c2>;
+                                       };
+                               };
+
+                               port@9 {
+                                       reg = <0xb>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1b4>;
+                                               linux,phandle = <0x1c1>;
+                                               phandle = <0x1c1>;
+                                       };
+                               };
+
+                               port@10 {
+                                       reg = <0xd>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1b5>;
+                                               linux,phandle = <0x1d7>;
+                                               phandle = <0x1d7>;
+                                       };
+                               };
+                       };
+               };
+
+               funnel@6832000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b908>;
+                       reg = <0x6832000 0x1000>;
+                       reg-names = "funnel-base";
+                       coresight-name = "coresight-funnel-modem";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x1b6>;
+                                               linux,phandle = <0x1a5>;
+                                               phandle = <0x1a5>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1b7>;
+                                               linux,phandle = <0x1b8>;
+                                               phandle = <0x1b8>;
+                                       };
+                               };
+                       };
+               };
+
+               tpda@6831000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b969>;
+                       reg = <0x6831000 0x1000>;
+                       reg-names = "tpda-base";
+                       coresight-name = "coresight-tpda-modem";
+                       qcom,tpda-atid = <0x43>;
+                       qcom,dsb-elem-size = <0x0 0x20>;
+                       qcom,cmb-elem-size = <0x0 0x40>;
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x1b8>;
+                                               linux,phandle = <0x1b7>;
+                                               phandle = <0x1b7>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1b9>;
+                                               linux,phandle = <0x1ba>;
+                                               phandle = <0x1ba>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@6830000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b968>;
+                       reg = <0x6830000 0x1000>;
+                       reg-names = "tpdm-base";
+                       coresight-name = "coresight-tpdm-modem";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1ba>;
+                                       linux,phandle = <0x1b9>;
+                                       phandle = <0x1b9>;
+                               };
+                       };
+               };
+
+               funnel@6845000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b908>;
+                       reg = <0x6845000 0x1000>;
+                       reg-names = "funnel-base";
+                       coresight-name = "coresight-funnel-lpass";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x1bb>;
+                                               linux,phandle = <0x1af>;
+                                               phandle = <0x1af>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1bc>;
+                                               linux,phandle = <0x1bf>;
+                                               phandle = <0x1bf>;
+                                       };
+                               };
+                       };
+               };
+
+               funnel_1@6845000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b908>;
+                       reg = <0x6867010 0x10 0x6845000 0x1000>;
+                       reg-names = "funnel-base-dummy", "funnel-base-real";
+                       coresight-name = "coresight-funnel-lpass-1";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+                       qcom,duplicate-funnel;
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x1bd>;
+                                               linux,phandle = <0x1e5>;
+                                               phandle = <0x1e5>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x1>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1be>;
+                                               linux,phandle = <0x1ec>;
+                                               phandle = <0x1ec>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@6844000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b968>;
+                       reg = <0x6844000 0x1000>;
+                       reg-names = "tpdm-base";
+                       coresight-name = "coresight-tpdm-lpass";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+                       qcom,msr-fix-req;
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1bf>;
+                                       linux,phandle = <0x1bc>;
+                                       phandle = <0x1bc>;
+                               };
+                       };
+               };
+
+               tpdm@6c28000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b968>;
+                       reg = <0x6c28000 0x1000>;
+                       reg-names = "tpdm-base";
+                       coresight-name = "coresight-tpdm-center";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+                       qcom,msr-fix-req;
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1c0>;
+                                       linux,phandle = <0x1ac>;
+                                       phandle = <0x1ac>;
+                               };
+                       };
+               };
+
+               tpdm@6a24000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b968>;
+                       reg = <0x6a24000 0x1000>;
+                       reg-names = "tpdm-base";
+                       coresight-name = "coresight-tpdm-north";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+                       qcom,msr-fix-req;
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1c1>;
+                                       linux,phandle = <0x1b4>;
+                                       phandle = <0x1b4>;
+                               };
+                       };
+               };
+
+               tpdm@69d0000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b968>;
+                       reg = <0x69d0000 0x1000>;
+                       reg-names = "tpdm-base";
+                       coresight-name = "coresight-tpdm-qm";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1c2>;
+                                       linux,phandle = <0x1b3>;
+                                       phandle = <0x1b3>;
+                               };
+                       };
+               };
+
+               tpda@7862000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b969>;
+                       reg = <0x7862000 0x1000>;
+                       reg-names = "tpda-base";
+                       coresight-name = "coresight-tpda-apss";
+                       qcom,tpda-atid = <0x42>;
+                       qcom,dsb-elem-size = <0x0 0x20>;
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x1c3>;
+                                               linux,phandle = <0x1f1>;
+                                               phandle = <0x1f1>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1c4>;
+                                               linux,phandle = <0x1c5>;
+                                               phandle = <0x1c5>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@7860000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b968>;
+                       reg = <0x7860000 0x1000>;
+                       reg-names = "tpdm-base";
+                       coresight-name = "coresight-tpdm-apss";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1c5>;
+                                       linux,phandle = <0x1c4>;
+                                       phandle = <0x1c4>;
+                               };
+                       };
+               };
+
+               tpda@78c0000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b969>;
+                       reg = <0x78c0000 0x1000>;
+                       reg-names = "tpda-base";
+                       coresight-name = "coresight-tpda-llm-silver";
+                       qcom,tpda-atid = <0x48>;
+                       qcom,cmb-elem-size = <0x0 0x20>;
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x1c6>;
+                                               linux,phandle = <0x1f2>;
+                                               phandle = <0x1f2>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1c7>;
+                                               linux,phandle = <0x1c8>;
+                                               phandle = <0x1c8>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@78a0000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b968>;
+                       reg = <0x78a0000 0x1000>;
+                       reg-names = "tpdm-base";
+                       coresight-name = "coresight-tpdm-llm-silver";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1c8>;
+                                       linux,phandle = <0x1c7>;
+                                       phandle = <0x1c7>;
+                               };
+                       };
+               };
+
+               tpda@78d0000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b969>;
+                       reg = <0x78d0000 0x1000>;
+                       reg-names = "tpda-base";
+                       coresight-name = "coresight-tpda-llm-gold";
+                       qcom,tpda-atid = <0x49>;
+                       qcom,cmb-elem-size = <0x0 0x20>;
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x1c9>;
+                                               linux,phandle = <0x1f3>;
+                                               phandle = <0x1f3>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1ca>;
+                                               linux,phandle = <0x1cb>;
+                                               phandle = <0x1cb>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@78b0000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b968>;
+                       reg = <0x78b0000 0x1000>;
+                       reg-names = "tpdm-base";
+                       coresight-name = "coresight-tpdm-llm-gold";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1cb>;
+                                       linux,phandle = <0x1ca>;
+                                       phandle = <0x1ca>;
+                               };
+                       };
+               };
+
+               funnel@6c0b000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b908>;
+                       reg = <0x6c0b000 0x1000>;
+                       reg-names = "funnel-base";
+                       coresight-name = "coresight-funnel-dl-mm";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x1cc>;
+                                               linux,phandle = <0x1ad>;
+                                               phandle = <0x1ad>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x1>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1cd>;
+                                               linux,phandle = <0x1ce>;
+                                               phandle = <0x1ce>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@6c08000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b968>;
+                       reg = <0x6c08000 0x1000>;
+                       reg-names = "tpdm-base";
+                       coresight-name = "coresight-tpdm-mm";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+                       qcom,msr-fix-req;
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1ce>;
+                                       linux,phandle = <0x1cd>;
+                                       phandle = <0x1cd>;
+                               };
+                       };
+               };
+
+               funnel@6861000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b908>;
+                       reg = <0x6861000 0x1000>;
+                       reg-names = "funnel-base";
+                       coresight-name = "coresight-funnel-turing";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x1cf>;
+                                               linux,phandle = <0x1b0>;
+                                               phandle = <0x1b0>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1d0>;
+                                               linux,phandle = <0x1d3>;
+                                               phandle = <0x1d3>;
+                                       };
+                               };
+                       };
+               };
+
+               funnel_1@6861000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b908>;
+                       reg = <0x6867000 0x10 0x6861000 0x1000>;
+                       reg-names = "funnel-base-dummy", "funnel-base-real";
+                       coresight-name = "coresight-funnel-turing-1";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+                       qcom,duplicate-funnel;
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x1d1>;
+                                               linux,phandle = <0x1e6>;
+                                               phandle = <0x1e6>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x1>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1d2>;
+                                               linux,phandle = <0x1e8>;
+                                               phandle = <0x1e8>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@6860000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b968>;
+                       reg = <0x6860000 0x1000>;
+                       reg-names = "tpdm-base";
+                       coresight-name = "coresight-tpdm-turing";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+                       qcom,msr-fix-req;
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1d3>;
+                                       linux,phandle = <0x1d0>;
+                                       phandle = <0x1d0>;
+                               };
+                       };
+               };
+
+               funnel@69e2000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b908>;
+                       reg = <0x69e2000 0x1000>;
+                       reg-names = "funnel-base";
+                       coresight-name = "coresight-funnel-ddr-0";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x1d4>;
+                                               linux,phandle = <0x1ae>;
+                                               phandle = <0x1ae>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1d5>;
+                                               linux,phandle = <0x1d6>;
+                                               phandle = <0x1d6>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@69e0000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b968>;
+                       reg = <0x69e0000 0x1000>;
+                       reg-names = "tpdm-base";
+                       coresight-name = "coresight-tpdm-ddr";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+                       qcom,msr-fix-req;
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1d6>;
+                                       linux,phandle = <0x1d5>;
+                                       phandle = <0x1d5>;
+                               };
+                       };
+               };
+
+               tpdm@6850000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b968>;
+                       reg = <0x6850000 0x1000>;
+                       reg-names = "tpdm-base";
+                       coresight-name = "coresight-tpdm-pimem";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1d7>;
+                                       linux,phandle = <0x1b5>;
+                                       phandle = <0x1b5>;
+                               };
+                       };
+               };
+
+               tpdm@684c000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b968>;
+                       reg = <0x684c000 0x1000>;
+                       reg-names = "tpdm-base";
+                       coresight-name = "coresight-tpdm-prng";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1d8>;
+                                       linux,phandle = <0x1b2>;
+                                       phandle = <0x1b2>;
+                               };
+                       };
+               };
+
+               tpdm@6840000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b968>;
+                       reg = <0x6840000 0x1000>;
+                       reg-names = "tpdm-base";
+                       coresight-name = "coresight-tpdm-vsense";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1d9>;
+                                       linux,phandle = <0x1b1>;
+                                       phandle = <0x1b1>;
+                               };
+                       };
+               };
+
+               tpda@7832000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b969>;
+                       reg = <0x7832000 0x1000>;
+                       reg-names = "tpda-base";
+                       coresight-name = "coresight-tpda-olc";
+                       qcom,tpda-atid = <0x45>;
+                       qcom,cmb-elem-size = <0x0 0x40>;
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x1da>;
+                                               linux,phandle = <0x1f0>;
+                                               phandle = <0x1f0>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1db>;
+                                               linux,phandle = <0x1dc>;
+                                               phandle = <0x1dc>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@7830000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b968>;
+                       reg = <0x7830000 0x1000>;
+                       reg-names = "tpdm-base";
+                       coresight-name = "coresight-tpdm-olc";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1dc>;
+                                       linux,phandle = <0x1db>;
+                                       phandle = <0x1db>;
+                               };
+                       };
+               };
+
+               tpda@6882000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b969>;
+                       reg = <0x6882000 0x1000>;
+                       reg-names = "tpda-base";
+                       coresight-name = "coresight-tpda-spss";
+                       qcom,tpda-atid = <0x46>;
+                       qcom,dsb-elem-size = <0x0 0x20>;
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x1dd>;
+                                               linux,phandle = <0x1e1>;
+                                               phandle = <0x1e1>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1de>;
+                                               linux,phandle = <0x1df>;
+                                               phandle = <0x1df>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@6880000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b968>;
+                       reg = <0x6880000 0x1000>;
+                       reg-names = "tpdm-base";
+                       coresight-name = "coresight-tpdm-spss";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1df>;
+                                       linux,phandle = <0x1de>;
+                                       phandle = <0x1de>;
+                               };
+                       };
+               };
+
+               funnel@6883000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b908>;
+                       reg = <0x6883000 0x1000>;
+                       reg-names = "funnel-base";
+                       coresight-name = "coresight-funnel-spss";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x1e0>;
+                                               linux,phandle = <0x19f>;
+                                               phandle = <0x19f>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1e1>;
+                                               linux,phandle = <0x1dd>;
+                                               phandle = <0x1dd>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <0x1>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1e2>;
+                                               linux,phandle = <0x1ed>;
+                                               phandle = <0x1ed>;
+                                       };
+                               };
+                       };
+               };
+
+               funnel@6005000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b908>;
+                       reg = <0x6005000 0x1000>;
+                       reg-names = "funnel-base";
+                       coresight-name = "coresight-funnel-qatb";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x1e3>;
+                                               linux,phandle = <0x1a0>;
+                                               phandle = <0x1a0>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1e4>;
+                                               linux,phandle = <0x1ab>;
+                                               phandle = <0x1ab>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <0x6>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1e5>;
+                                               linux,phandle = <0x1bd>;
+                                               phandle = <0x1bd>;
+                                       };
+                               };
+
+                               port@3 {
+                                       reg = <0x7>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1e6>;
+                                               linux,phandle = <0x1d1>;
+                                               phandle = <0x1d1>;
+                                       };
+                               };
+                       };
+               };
+
+               cti@69e1000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x69e1000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti-ddr_dl_0_cti";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@69e4000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x69e4000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti-ddr_dl_1_cti0";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@69e5000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x69e5000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti-ddr_dl_1_cti1";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@6c09000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x6c09000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti-dlmm_cti0";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@6c0a000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x6c0a000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti-dlmm_cti1";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@78e0000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x78e0000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti-apss_cti0";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@78f0000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x78f0000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti-apss_cti1";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@7900000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x7900000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti-apss_cti2";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@6010000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x6010000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti0";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+                       linux,phandle = <0x195>;
+                       phandle = <0x195>;
+               };
+
+               cti@6011000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x6011000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti1";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@6012000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x6012000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti2";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+                       qcom,cti-gpio-trigout = <0x4>;
+                       pinctrl-names = "cti-trigout-pctrl";
+                       pinctrl-0 = <0x1e7>;
+               };
+
+               cti@6013000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x6013000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti3";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@6014000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x6014000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti4";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@6015000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x6015000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti5";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@6016000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x6016000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti6";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@6017000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x6017000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti7";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@6018000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x6018000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti8";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+                       linux,phandle = <0x196>;
+                       phandle = <0x196>;
+               };
+
+               cti@6019000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x6019000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti9";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@601a000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x601a000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti10";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@601b000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x601b000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti11";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@601c000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x601c000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti12";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@601d000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x601d000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti13";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@601e000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x601e000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti14";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@601f000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x601f000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti15";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@7020000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x7020000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti-cpu0";
+                       cpu = <0x11>;
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@7120000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x7120000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti-cpu1";
+                       cpu = <0x12>;
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@7220000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x7220000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti-cpu2";
+                       cpu = <0x13>;
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@7320000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x7320000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti-cpu3";
+                       cpu = <0x14>;
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@7420000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x7420000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti-cpu4";
+                       cpu = <0x15>;
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@7520000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x7520000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti-cpu5";
+                       cpu = <0x16>;
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@7620000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x7620000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti-cpu6";
+                       cpu = <0x17>;
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@7720000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x7720000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti-cpu7";
+                       cpu = <0x18>;
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               cti@6b04000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b966>;
+                       reg = <0x6b04000 0x1000>;
+                       reg-names = "cti-base";
+                       coresight-name = "coresight-cti-swao_cti0";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               tgu@6b0c000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b999>;
+                       reg = <0x6b0c000 0x1000>;
+                       reg-names = "tgu-base";
+                       tgu-steps = <0x3>;
+                       tgu-conditions = <0x4>;
+                       tgu-regs = <0x4>;
+                       tgu-timer-counters = <0x8>;
+                       coresight-name = "coresight-tgu-ipcb";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+               };
+
+               turing_etm0 {
+                       compatible = "qcom,coresight-remote-etm";
+                       coresight-name = "coresight-turing-etm0";
+                       qcom,inst-id = <0xd>;
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1e8>;
+                                       linux,phandle = <0x1d2>;
+                                       phandle = <0x1d2>;
+                               };
+                       };
+               };
+
+               dummy_sink {
+                       compatible = "qcom,coresight-dummy";
+                       coresight-name = "coresight-eud";
+                       qcom,dummy-sink;
+
+                       port {
+
+                               endpoint {
+                                       slave-mode;
+                                       remote-endpoint = <0x1e9>;
+                                       linux,phandle = <0x188>;
+                                       phandle = <0x188>;
+                               };
+                       };
+               };
+
+               sensor_etm0 {
+                       compatible = "qcom,coresight-remote-etm";
+                       coresight-name = "coresight-sensor-etm0";
+                       qcom,inst-id = <0x8>;
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1ea>;
+                                       linux,phandle = <0x18e>;
+                                       phandle = <0x18e>;
+                               };
+                       };
+               };
+
+               modem_etm0 {
+                       compatible = "qcom,coresight-remote-etm";
+                       coresight-name = "coresight-modem-etm0";
+                       qcom,inst-id = <0x2>;
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1eb>;
+                                       linux,phandle = <0x1a3>;
+                                       phandle = <0x1a3>;
+                               };
+                       };
+               };
+
+               audio_etm0 {
+                       compatible = "qcom,coresight-remote-etm";
+                       coresight-name = "coresight-audio-etm0";
+                       qcom,inst-id = <0x5>;
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1ec>;
+                                       linux,phandle = <0x1be>;
+                                       phandle = <0x1be>;
+                               };
+                       };
+               };
+
+               spss_etm0 {
+                       compatible = "qcom,coresight-dummy";
+                       coresight-name = "coresight-spss-etm0";
+                       qcom,dummy-source;
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1ed>;
+                                       linux,phandle = <0x1e2>;
+                                       phandle = <0x1e2>;
+                               };
+                       };
+               };
+
+               funnel@7810000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b908>;
+                       reg = <0x7810000 0x1000>;
+                       reg-names = "funnel-base";
+                       coresight-name = "coresight-funnel-apss-merg";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x1ee>;
+                                               linux,phandle = <0x1a6>;
+                                               phandle = <0x1a6>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1ef>;
+                                               linux,phandle = <0x1fc>;
+                                               phandle = <0x1fc>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <0x2>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1f0>;
+                                               linux,phandle = <0x1da>;
+                                               phandle = <0x1da>;
+                                       };
+                               };
+
+                               port@3 {
+                                       reg = <0x4>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1f1>;
+                                               linux,phandle = <0x1c3>;
+                                               phandle = <0x1c3>;
+                                       };
+                               };
+
+                               port@4 {
+                                       reg = <0x5>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1f2>;
+                                               linux,phandle = <0x1c6>;
+                                               phandle = <0x1c6>;
+                                       };
+                               };
+
+                               port@5 {
+                                       reg = <0x6>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1f3>;
+                                               linux,phandle = <0x1c9>;
+                                               phandle = <0x1c9>;
+                                       };
+                               };
+                       };
+               };
+
+               etm@7040000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0xbb95d>;
+                       reg = <0x7040000 0x1000>;
+                       cpu = <0x11>;
+                       coresight-name = "coresight-etm0";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1f4>;
+                                       linux,phandle = <0x1fd>;
+                                       phandle = <0x1fd>;
+                               };
+                       };
+               };
+
+               etm@7140000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0xbb95d>;
+                       reg = <0x7140000 0x1000>;
+                       cpu = <0x12>;
+                       coresight-name = "coresight-etm1";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1f5>;
+                                       linux,phandle = <0x1fe>;
+                                       phandle = <0x1fe>;
+                               };
+                       };
+               };
+
+               etm@7240000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0xbb95d>;
+                       reg = <0x7240000 0x1000>;
+                       cpu = <0x13>;
+                       coresight-name = "coresight-etm2";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1f6>;
+                                       linux,phandle = <0x1ff>;
+                                       phandle = <0x1ff>;
+                               };
+                       };
+               };
+
+               etm@7340000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0xbb95d>;
+                       reg = <0x7340000 0x1000>;
+                       cpu = <0x14>;
+                       coresight-name = "coresight-etm3";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1f7>;
+                                       linux,phandle = <0x200>;
+                                       phandle = <0x200>;
+                               };
+                       };
+               };
+
+               etm@7440000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0xbb95d>;
+                       reg = <0x7440000 0x1000>;
+                       cpu = <0x15>;
+                       coresight-name = "coresight-etm4";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1f8>;
+                                       linux,phandle = <0x201>;
+                                       phandle = <0x201>;
+                               };
+                       };
+               };
+
+               etm@7540000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0xbb95d>;
+                       reg = <0x7540000 0x1000>;
+                       cpu = <0x16>;
+                       coresight-name = "coresight-etm5";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1f9>;
+                                       linux,phandle = <0x202>;
+                                       phandle = <0x202>;
+                               };
+                       };
+               };
+
+               etm@7640000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0xbb95d>;
+                       reg = <0x7640000 0x1000>;
+                       cpu = <0x17>;
+                       coresight-name = "coresight-etm6";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1fa>;
+                                       linux,phandle = <0x203>;
+                                       phandle = <0x203>;
+                               };
+                       };
+               };
+
+               etm@7740000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0xbb95d>;
+                       reg = <0x7740000 0x1000>;
+                       cpu = <0x18>;
+                       coresight-name = "coresight-etm7";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       port {
+
+                               endpoint {
+                                       remote-endpoint = <0x1fb>;
+                                       linux,phandle = <0x204>;
+                                       phandle = <0x204>;
+                               };
+                       };
+               };
+
+               funnel@7800000 {
+                       compatible = "arm,primecell";
+                       arm,primecell-periphid = <0x3b908>;
+                       reg = <0x7800000 0x1000>;
+                       reg-names = "funnel-base";
+                       coresight-name = "coresight-funnel-apss";
+                       clocks = <0xa9 0x0>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               remote-endpoint = <0x1fc>;
+                                               linux,phandle = <0x1ef>;
+                                               phandle = <0x1ef>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1fd>;
+                                               linux,phandle = <0x1f4>;
+                                               phandle = <0x1f4>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <0x1>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1fe>;
+                                               linux,phandle = <0x1f5>;
+                                               phandle = <0x1f5>;
+                                       };
+                               };
+
+                               port@3 {
+                                       reg = <0x2>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x1ff>;
+                                               linux,phandle = <0x1f6>;
+                                               phandle = <0x1f6>;
+                                       };
+                               };
+
+                               port@4 {
+                                       reg = <0x3>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x200>;
+                                               linux,phandle = <0x1f7>;
+                                               phandle = <0x1f7>;
+                                       };
+                               };
+
+                               port@5 {
+                                       reg = <0x4>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x201>;
+                                               linux,phandle = <0x1f8>;
+                                               phandle = <0x1f8>;
+                                       };
+                               };
+
+                               port@6 {
+                                       reg = <0x5>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x202>;
+                                               linux,phandle = <0x1f9>;
+                                               phandle = <0x1f9>;
+                                       };
+                               };
+
+                               port@7 {
+                                       reg = <0x6>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x203>;
+                                               linux,phandle = <0x1fa>;
+                                               phandle = <0x1fa>;
+                                       };
+                               };
+
+                               port@8 {
+                                       reg = <0x7>;
+
+                                       endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <0x204>;
+                                               linux,phandle = <0x1fb>;
+                                               phandle = <0x1fb>;
+                                       };
+                               };
+                       };
+               };
+
+               arm,smmu-kgsl@5040000 {
+                       status = "ok";
+                       compatible = "qcom,smmu-v2";
+                       reg = <0x5040000 0x10000>;
+                       #iommu-cells = <0x1>;
+                       qcom,dynamic;
+                       qcom,use-3-lvl-tables;
+                       qcom,disable-atos;
+                       #global-interrupts = <0x2>;
+                       qcom,regulator-names = "vdd";
+                       vdd-supply = <0x205>;
+                       interrupts = <0x0 0xe5 0x4 0x0 0xe7 0x4 0x0 0x16c 0x4 0x0 0x16d 0x4 0x0 0x16e 0x4 0x0 0x16f 0x4 0x0 0x170 0x4 0x0 0x171 0x4 0x0 0x172 0x4 0x0 0x173 0x4>;
+                       clock-names = "gcc_gpu_memnoc_gfx_clk";
+                       clocks = <0x22 0x29>;
+                       attach-impl-defs = <0x6000 0x2378 0x6060 0x1055 0x678c 0x8 0x6794 0x28 0x6800 0x6 0x6900 0x3ff 0x6924 0x204 0x6928 0x11000 0x6930 0x800 0x6960 0xffffffff 0x6b64 0x1a5551 0x6b68 0x9a82a382>;
+                       linux,phandle = <0x20d>;
+                       phandle = <0x20d>;
+               };
+
+               apps-smmu@0x15000000 {
+                       compatible = "qcom,qsmmu-v500";
+                       reg = <0x15000000 0x80000 0x150c2000 0x20>;
+                       reg-names = "base", "tcu-base";
+                       #iommu-cells = <0x2>;
+                       qcom,skip-init;
+                       qcom,use-3-lvl-tables;
+                       qcom,no-asid-retention;
+                       qcom,disable-atos;
+                       #global-interrupts = <0x1>;
+                       #size-cells = <0x1>;
+                       #address-cells = <0x1>;
+                       ranges;
+                       interrupts = <0x0 0x41 0x4 0x0 0x60 0x4 0x0 0x61 0x4 0x0 0x62 0x4 0x0 0x63 0x4 0x0 0x64 0x4 0x0 0x65 0x4 0x0 0x66 0x4 0x0 0x67 0x4 0x0 0x68 0x4 0x0 0x69 0x4 0x0 0x6a 0x4 0x0 0x6b 0x4 0x0 0x6c 0x4 0x0 0x6d 0x4 0x0 0x6e 0x4 0x0 0x6f 0x4 0x0 0x70 0x4 0x0 0x71 0x4 0x0 0x72 0x4 0x0 0x73 0x4 0x0 0x74 0x4 0x0 0x75 0x4 0x0 0x76 0x4 0x0 0xb5 0x4 0x0 0xb6 0x4 0x0 0xb7 0x4 0x0 0xb8 0x4 0x0 0xb9 0x4 0x0 0xba 0x4 0x0 0xbb 0x4 0x0 0xbc 0x4 0x0 0xbd 0x4 0x0 0xbe 0x4 0x0 0xbf 0x4 0x0 0xc0 0x4 0x0 0x13b 0x4 0x0 0x13c 0x4 0x0 0x13d 0x4 0x0 0x13e 0x4 0x0 0x13f 0x4 0x0 0x140 0x4 0x0 0x141 0x4 0x0 0x142 0x4 0x0 0x143 0x4 0x0 0x144 0x4 0x0 0x145 0x4 0x0 0x146 0x4 0x0 0x147 0x4 0x0 0x148 0x4 0x0 0x149 0x4 0x0 0x14a 0x4 0x0 0x14b 0x4 0x0 0x14c 0x4 0x0 0x14d 0x4 0x0 0x14e 0x4 0x0 0x14f 0x4 0x0 0x150 0x4 0x0 0x151 0x4 0x0 0x152 0x4 0x0 0x153 0x4 0x0 0x154 0x4 0x0 0x155 0x4 0x0 0x156 0x4 0x0 0x157 0x4>;
+                       qcom,msm-bus,name = "apps_smmu";
+                       qcom,msm-bus,num-cases = <0x2>;
+                       qcom,msm-bus,active-only;
+                       qcom,msm-bus,num-paths = <0x1>;
+                       qcom,msm-bus,vectors-KBps = <0x8b 0x273 0x0 0x0 0x8b 0x273 0x0 0x3e8>;
+                       qcom,actlr = <0x880 0x8 0x103 0x881 0x8 0x103 0xc80 0x8 0x103 0xc81 0x8 0x103 0x1090 0x0 0x103 0x1091 0x0 0x103 0x10a0 0x8 0x103 0x10b0 0x0 0x103 0x10a1 0x8 0x103 0x10a3 0x8 0x103 0x10a4 0x8 0x103 0x10b4 0x0 0x103 0x10a5 0x8 0x103>;
+                       qcom,mmu500-errata-1 = <0x800 0x3ff 0xc00 0x3ff>;
+                       linux,phandle = <0x29>;
+                       phandle = <0x29>;
+
+                       anoc_1_tbu@0x150c5000 {
+                               compatible = "qcom,qsmmuv500-tbu";
+                               reg = <0x150c5000 0x1000 0x150c2200 0x8>;
+                               reg-names = "base", "status-reg";
+                               qcom,stream-id-range = <0x0 0x400>;
+                               qcom,regulator-names = "vdd";
+                               vdd-supply = <0x206>;
+                               qcom,msm-bus,name = "apps_smmu";
+                               qcom,msm-bus,num-cases = <0x2>;
+                               qcom,msm-bus,active-only;
+                               qcom,msm-bus,num-paths = <0x1>;
+                               qcom,msm-bus,vectors-KBps = <0x8b 0x273 0x0 0x0 0x8b 0x273 0x0 0x3e8>;
+                       };
+
+                       anoc_2_tbu@0x150c9000 {
+                               compatible = "qcom,qsmmuv500-tbu";
+                               reg = <0x150c9000 0x1000 0x150c2208 0x8>;
+                               reg-names = "base", "status-reg";
+                               qcom,stream-id-range = <0x400 0x400>;
+                               qcom,regulator-names = "vdd";
+                               vdd-supply = <0x207>;
+                               qcom,msm-bus,name = "apps_smmu";
+                               qcom,msm-bus,num-cases = <0x2>;
+                               qcom,msm-bus,active-only;
+                               qcom,msm-bus,num-paths = <0x1>;
+                               qcom,msm-bus,vectors-KBps = <0x8b 0x273 0x0 0x0 0x8b 0x273 0x0 0x3e8>;
+                       };
+
+                       mnoc_hf_0_tbu@0x150cd000 {
+                               compatible = "qcom,qsmmuv500-tbu";
+                               reg = <0x150cd000 0x1000 0x150c2210 0x8>;
+                               reg-names = "base", "status-reg";
+                               qcom,stream-id-range = <0x800 0x400>;
+                               qcom,regulator-names = "vdd";
+                               vdd-supply = <0x208>;
+                               qcom,msm-bus,name = "mnoc_hf_0_tbu";
+                               qcom,msm-bus,num-cases = <0x2>;
+                               qcom,msm-bus,active-only;
+                               qcom,msm-bus,num-paths = <0x1>;
+                               qcom,msm-bus,vectors-KBps = <0x16 0x305 0x0 0x0 0x16 0x305 0x0 0x3e8>;
+                       };
+
+                       mnoc_hf_1_tbu@0x150d1000 {
+                               compatible = "qcom,qsmmuv500-tbu";
+                               reg = <0x150d1000 0x1000 0x150c2218 0x8>;
+                               reg-names = "base", "status-reg";
+                               qcom,stream-id-range = <0xc00 0x400>;
+                               qcom,regulator-names = "vdd";
+                               vdd-supply = <0x209>;
+                               qcom,msm-bus,name = "mnoc_hf_1_tbu";
+                               qcom,msm-bus,num-cases = <0x2>;
+                               qcom,msm-bus,active-only;
+                               qcom,msm-bus,num-paths = <0x1>;
+                               qcom,msm-bus,vectors-KBps = <0x16 0x305 0x0 0x0 0x16 0x305 0x0 0x3e8>;
+                       };
+
+                       mnoc_sf_0_tbu@0x150d5000 {
+                               compatible = "qcom,qsmmuv500-tbu";
+                               reg = <0x150d5000 0x1000 0x150c2220 0x8>;
+                               reg-names = "base", "status-reg";
+                               qcom,stream-id-range = <0x1000 0x400>;
+                               qcom,regulator-names = "vdd";
+                               vdd-supply = <0x20a>;
+                               qcom,msm-bus,name = "mnoc_sf_0_tbu";
+                               qcom,msm-bus,num-cases = <0x2>;
+                               qcom,msm-bus,active-only;
+                               qcom,msm-bus,num-paths = <0x1>;
+                               qcom,msm-bus,vectors-KBps = <0x89 0x304 0x0 0x0 0x89 0x304 0x0 0x3e8>;
+                       };
+
+                       compute_dsp_tbu@0x150d9000 {
+                               compatible = "qcom,qsmmuv500-tbu";
+                               reg = <0x150d9000 0x1000 0x150c2228 0x8>;
+                               reg-names = "base", "status-reg";
+                               qcom,stream-id-range = <0x1400 0x400>;
+                               qcom,msm-bus,name = "apps_smmu";
+                               qcom,msm-bus,num-cases = <0x2>;
+                               qcom,msm-bus,active-only;
+                               qcom,msm-bus,num-paths = <0x1>;
+                               qcom,msm-bus,vectors-KBps = <0x8b 0x273 0x0 0x0 0x8b 0x273 0x0 0x3e8>;
+                       };
+
+                       adsp_tbu@0x150dd000 {
+                               compatible = "qcom,qsmmuv500-tbu";
+                               reg = <0x150dd000 0x1000 0x150c2230 0x8>;
+                               reg-names = "base", "status-reg";
+                               qcom,stream-id-range = <0x1800 0x400>;
+                               qcom,regulator-names = "vdd";
+                               vdd-supply = <0x20b>;
+                               qcom,msm-bus,name = "apps_smmu";
+                               qcom,msm-bus,num-cases = <0x2>;
+                               qcom,msm-bus,active-only;
+                               qcom,msm-bus,num-paths = <0x1>;
+                               qcom,msm-bus,vectors-KBps = <0x8b 0x273 0x0 0x0 0x8b 0x273 0x0 0x3e8>;
+                       };
+
+                       anoc_1_pcie_tbu@0x150e1000 {
+                               compatible = "qcom,qsmmuv500-tbu";
+                               reg = <0x150e1000 0x1000 0x150c2238 0x8>;
+                               reg-names = "base", "status-reg";
+                               qcom,stream-id-range = <0x1c00 0x400>;
+                               qcom,regulator-names = "vdd";
+                               vdd-supply = <0x20c>;
+                               clock-names = "gcc_aggre_noc_pcie_tbu_clk";
+                               clocks = <0x22 0x6>;
+                               qcom,msm-bus,name = "apps_smmu";
+                               qcom,msm-bus,num-cases = <0x2>;
+                               qcom,msm-bus,active-only;
+                               qcom,msm-bus,num-paths = <0x1>;
+                               qcom,msm-bus,vectors-KBps = <0x8b 0x273 0x0 0x0 0x8b 0x273 0x0 0x3e8>;
+                       };
+               };
+
+               kgsl_iommu_test_device {
+                       status = "disabled";
+                       compatible = "iommu-debug-test";
+                       iommus = <0x20d 0x7>;
+               };
+
+               apps_iommu_test_device {
+                       compatible = "iommu-debug-test";
+                       iommus = <0x29 0x20 0x0>;
+               };
+
+               apps_iommu_coherent_test_device {
+                       compatible = "iommu-debug-test";
+                       iommus = <0x29 0x20 0x0>;
+                       dma-coherent;
+               };
+
+               qcom,ion {
+                       compatible = "qcom,msm-ion";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+
+                       qcom,ion-heap@25 {
+                               reg = <0x19>;
+                               qcom,ion-heap-type = "SYSTEM";
+                       };
+
+                       qcom,ion-heap@22 {
+                               reg = <0x16>;
+                               memory-region = <0x11d>;
+                               qcom,ion-heap-type = "DMA";
+                       };
+
+                       qcom,ion-heap@27 {
+                               reg = <0x1b>;
+                               memory-region = <0x20e>;
+                               qcom,ion-heap-type = "DMA";
+                       };
+
+                       qcom,ion-heap@19 {
+                               reg = <0x13>;
+                               memory-region = <0x20f>;
+                               qcom,ion-heap-type = "DMA";
+                       };
+
+                       qcom,ion-heap@13 {
+                               reg = <0xd>;
+                               memory-region = <0x210>;
+                               qcom,ion-heap-type = "HYP_CMA";
+                       };
+
+                       qcom,ion-heap@10 {
+                               reg = <0xa>;
+                               memory-region = <0x211>;
+                               qcom,ion-heap-type = "HYP_CMA";
+                       };
+
+                       qcom,ion-heap@9 {
+                               reg = <0x9>;
+                               qcom,ion-heap-type = "SYSTEM_SECURE";
+                       };
+               };
+
+               qcom,smp2p-modem@1799000c {
+                       compatible = "qcom,smp2p";
+                       reg = <0x1799000c 0x4>;
+                       qcom,remote-pid = <0x1>;
+                       qcom,irq-bitmask = <0x4000>;
+                       interrupts = <0x0 0x1c3 0x1>;
+               };
+
+               qcom,smp2p-adsp@1799000c {
+                       compatible = "qcom,smp2p";
+                       reg = <0x1799000c 0x4>;
+                       qcom,remote-pid = <0x2>;
+                       qcom,irq-bitmask = <0x400>;
+                       interrupts = <0x0 0x9e 0x1>;
+               };
+
+               qcom,smp2p-dsps@1799000c {
+                       compatible = "qcom,smp2p";
+                       reg = <0x1799000c 0x4>;
+                       qcom,remote-pid = <0x3>;
+                       qcom,irq-bitmask = <0x4000000>;
+                       interrupts = <0x0 0xac 0x1>;
+               };
+
+               qcom,smp2p-cdsp@1799000c {
+                       compatible = "qcom,smp2p";
+                       reg = <0x1799000c 0x4>;
+                       qcom,remote-pid = <0x5>;
+                       qcom,irq-bitmask = <0x40>;
+                       interrupts = <0x0 0x240 0x1>;
+               };
+
+               qcom,smp2pgpio-smp2p-15-in {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "smp2p";
+                       qcom,remote-pid = <0xf>;
+                       qcom,is-inbound;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x212>;
+                       phandle = <0x212>;
+               };
+
+               qcom,smp2pgpio_test_smp2p_15_in {
+                       compatible = "qcom,smp2pgpio_test_smp2p_15_in";
+                       gpios = <0x212 0x0 0x0>;
+               };
+
+               qcom,smp2pgpio-smp2p-15-out {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "smp2p";
+                       qcom,remote-pid = <0xf>;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x213>;
+                       phandle = <0x213>;
+               };
+
+               qcom,smp2pgpio_test_smp2p_15_out {
+                       compatible = "qcom,smp2pgpio_test_smp2p_15_out";
+                       gpios = <0x213 0x0 0x0>;
+               };
+
+               qcom,smp2pgpio-smp2p-1-in {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "smp2p";
+                       qcom,remote-pid = <0x1>;
+                       qcom,is-inbound;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x214>;
+                       phandle = <0x214>;
+               };
+
+               qcom,smp2pgpio_test_smp2p_1_in {
+                       compatible = "qcom,smp2pgpio_test_smp2p_1_in";
+                       gpios = <0x214 0x0 0x0>;
+               };
+
+               qcom,smp2pgpio-smp2p-1-out {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "smp2p";
+                       qcom,remote-pid = <0x1>;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x215>;
+                       phandle = <0x215>;
+               };
+
+               qcom,smp2pgpio_test_smp2p_1_out {
+                       compatible = "qcom,smp2pgpio_test_smp2p_1_out";
+                       gpios = <0x215 0x0 0x0>;
+               };
+
+               qcom,smp2pgpio-smp2p-2-in {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "smp2p";
+                       qcom,remote-pid = <0x2>;
+                       qcom,is-inbound;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x216>;
+                       phandle = <0x216>;
+               };
+
+               qcom,smp2pgpio_test_smp2p_2_in {
+                       compatible = "qcom,smp2pgpio_test_smp2p_2_in";
+                       gpios = <0x216 0x0 0x0>;
+               };
+
+               qcom,smp2pgpio-smp2p-2-out {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "smp2p";
+                       qcom,remote-pid = <0x2>;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x217>;
+                       phandle = <0x217>;
+               };
+
+               qcom,smp2pgpio_test_smp2p_2_out {
+                       compatible = "qcom,smp2pgpio_test_smp2p_2_out";
+                       gpios = <0x217 0x0 0x0>;
+               };
+
+               qcom,smp2pgpio-smp2p-3-in {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "smp2p";
+                       qcom,remote-pid = <0x3>;
+                       qcom,is-inbound;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x218>;
+                       phandle = <0x218>;
+               };
+
+               qcom,smp2pgpio_test_smp2p_3_in {
+                       compatible = "qcom,smp2pgpio_test_smp2p_3_in";
+                       gpios = <0x218 0x0 0x0>;
+               };
+
+               qcom,smp2pgpio-smp2p-3-out {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "smp2p";
+                       qcom,remote-pid = <0x3>;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x219>;
+                       phandle = <0x219>;
+               };
+
+               qcom,smp2pgpio_test_smp2p_3_out {
+                       compatible = "qcom,smp2pgpio_test_smp2p_3_out";
+                       gpios = <0x219 0x0 0x0>;
+               };
+
+               qcom,smp2pgpio-smp2p-5-in {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "smp2p";
+                       qcom,remote-pid = <0x5>;
+                       qcom,is-inbound;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x21a>;
+                       phandle = <0x21a>;
+               };
+
+               qcom,smp2pgpio_test_smp2p_5_in {
+                       compatible = "qcom,smp2pgpio_test_smp2p_5_in";
+                       gpios = <0x21a 0x0 0x0>;
+               };
+
+               qcom,smp2pgpio-smp2p-5-out {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "smp2p";
+                       qcom,remote-pid = <0x5>;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x21b>;
+                       phandle = <0x21b>;
+               };
+
+               qcom,smp2pgpio_test_smp2p_5_out {
+                       compatible = "qcom,smp2pgpio_test_smp2p_5_out";
+                       gpios = <0x21b 0x0 0x0>;
+               };
+
+               qcom,smp2pgpio-sleepstate-gpio-3-out {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "sleepstate";
+                       qcom,remote-pid = <0x3>;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x21c>;
+                       phandle = <0x21c>;
+               };
+
+               qcom,smp2pgpio-sleepstate-3-out {
+                       compatible = "qcom,smp2pgpio_sleepstate_3_out";
+                       gpios = <0x21c 0x0 0x0>;
+               };
+
+               qcom,smp2pgpio-ssr-smp2p-1-in {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "slave-kernel";
+                       qcom,remote-pid = <0x1>;
+                       qcom,is-inbound;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0xff>;
+                       phandle = <0xff>;
+               };
+
+               qcom,smp2pgpio-ssr-smp2p-1-out {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "master-kernel";
+                       qcom,remote-pid = <0x1>;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x100>;
+                       phandle = <0x100>;
+               };
+
+               qcom,smp2pgpio-ssr-smp2p-2-in {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "slave-kernel";
+                       qcom,remote-pid = <0x2>;
+                       qcom,is-inbound;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x103>;
+                       phandle = <0x103>;
+               };
+
+               qcom,smp2pgpio-ssr-smp2p-2-out {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "master-kernel";
+                       qcom,remote-pid = <0x2>;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x104>;
+                       phandle = <0x104>;
+               };
+
+               qcom,smp2pgpio-ssr-smp2p-3-in {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "slave-kernel";
+                       qcom,remote-pid = <0x3>;
+                       qcom,is-inbound;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x108>;
+                       phandle = <0x108>;
+               };
+
+               qcom,smp2pgpio-ssr-smp2p-3-out {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "master-kernel";
+                       qcom,remote-pid = <0x3>;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x109>;
+                       phandle = <0x109>;
+               };
+
+               qcom,smp2pgpio-ssr-smp2p-5-in {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "slave-kernel";
+                       qcom,remote-pid = <0x5>;
+                       qcom,is-inbound;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x11b>;
+                       phandle = <0x11b>;
+               };
+
+               qcom,smp2pgpio-ssr-smp2p-5-out {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "master-kernel";
+                       qcom,remote-pid = <0x5>;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x11c>;
+                       phandle = <0x11c>;
+               };
+
+               qcom,smp2pgpio-ipa-1-out {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "ipa";
+                       qcom,remote-pid = <0x1>;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x144>;
+                       phandle = <0x144>;
+               };
+
+               qcom,smp2pgpio-ipa-1-in {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "ipa";
+                       qcom,remote-pid = <0x1>;
+                       qcom,is-inbound;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x145>;
+                       phandle = <0x145>;
+               };
+
+               qcom,smp2pgpio-wlan-1-in {
+                       compatible = "qcom,smp2pgpio";
+                       qcom,entry-name = "wlan";
+                       qcom,remote-pid = <0x1>;
+                       qcom,is-inbound;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       linux,phandle = <0x147>;
+                       phandle = <0x147>;
+               };
+
+               qcom,cam-req-mgr {
+                       compatible = "qcom,cam-req-mgr";
+                       status = "ok";
+               };
+
+               qcom,csiphy@ac65000 {
+                       cell-index = <0x0>;
+                       compatible = "qcom,csiphy-v1.0", "qcom,csiphy";
+                       reg = <0xac65000 0x1000>;
+                       reg-names = "csiphy";
+                       reg-cam-base = <0x65000>;
+                       interrupts = <0x0 0x1dd 0x0>;
+                       interrupt-names = "csiphy";
+                       gdscr-supply = <0x21d>;
+                       regulator-names = "gdscr", "refgen";
+                       csi-vdd-voltage = <0x124f80>;
+                       mipi-csi-vdd-supply = <0x36>;
+                       clocks = <0xdd 0x6 0xdd 0x55 0xdd 0x54 0xdd 0x9 0xdd 0xa 0xdd 0x13 0xdd 0xc 0xdd 0xb>;
+                       clock-names = "camnoc_axi_clk", "soc_ahb_clk", "slow_ahb_src_clk", "cpas_ahb_clk", "cphy_rx_clk_src", "csiphy0_clk", "csi0phytimer_clk_src", "csi0phytimer_clk";
+                       src-clock-name = "csi0phytimer_clk_src";
+                       clock-cntl-level = "turbo";
+                       clock-rates = <0x0 0x0 0x0 0x0 0x16e36000 0x0 0x100db355 0x0>;
+                       status = "ok";
+                       refgen-supply = <0x184>;
+                       linux,phandle = <0xc5>;
+                       phandle = <0xc5>;
+               };
+
+               qcom,csiphy@ac66000 {
+                       cell-index = <0x1>;
+                       compatible = "qcom,csiphy-v1.0", "qcom,csiphy";
+                       reg = <0xac66000 0x1000>;
+                       reg-names = "csiphy";
+                       reg-cam-base = <0x66000>;
+                       interrupts = <0x0 0x1de 0x0>;
+                       interrupt-names = "csiphy";
+                       gdscr-supply = <0x21d>;
+                       regulator-names = "gdscr", "refgen";
+                       csi-vdd-voltage = <0x124f80>;
+                       mipi-csi-vdd-supply = <0x36>;
+                       clocks = <0xdd 0x6 0xdd 0x55 0xdd 0x54 0xdd 0x9 0xdd 0xa 0xdd 0x14 0xdd 0xe 0xdd 0xd>;
+                       clock-names = "camnoc_axi_clk", "soc_ahb_clk", "slow_ahb_src_clk", "cpas_ahb_clk", "cphy_rx_clk_src", "csiphy1_clk", "csi1phytimer_clk_src", "csi1phytimer_clk";
+                       src-clock-name = "csi1phytimer_clk_src";
+                       clock-cntl-level = "turbo";
+                       clock-rates = <0x0 0x0 0x0 0x0 0x16e36000 0x0 0x100db355 0x0>;
+                       status = "ok";
+                       refgen-supply = <0x184>;
+                       linux,phandle = <0xc6>;
+                       phandle = <0xc6>;
+               };
+
+               qcom,csiphy@ac67000 {
+                       cell-index = <0x2>;
+                       compatible = "qcom,csiphy-v1.0", "qcom,csiphy";
+                       reg = <0xac67000 0x1000>;
+                       reg-names = "csiphy";
+                       reg-cam-base = <0x67000>;
+                       interrupts = <0x0 0x1df 0x0>;
+                       interrupt-names = "csiphy";
+                       gdscr-supply = <0x21d>;
+                       regulator-names = "gdscr", "refgen";
+                       csi-vdd-voltage = <0x124f80>;
+                       mipi-csi-vdd-supply = <0x36>;
+                       clocks = <0xdd 0x6 0xdd 0x55 0xdd 0x54 0xdd 0x9 0xdd 0xa 0xdd 0x15 0xdd 0x10 0xdd 0xf>;
+                       clock-names = "camnoc_axi_clk", "soc_ahb_clk", "slow_ahb_src_clk", "cpas_ahb_clk", "cphy_rx_clk_src", "csiphy2_clk", "csi2phytimer_clk_src", "csi2phytimer_clk";
+                       src-clock-name = "csi2phytimer_clk_src";
+                       clock-cntl-level = "turbo";
+                       clock-rates = <0x0 0x0 0x0 0x0 0x16e36000 0x0 0x100db355 0x0>;
+                       status = "ok";
+                       refgen-supply = <0x184>;
+                       linux,phandle = <0xc7>;
+                       phandle = <0xc7>;
+               };
+
+               qcom,cci@ac4a000 {
+                       cell-index = <0x0>;
+                       compatible = "qcom,cci";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       reg = <0xac4a000 0x4000>;
+                       reg-names = "cci";
+                       reg-cam-base = <0x4a000>;
+                       interrupt-names = "cci";
+                       interrupts = <0x0 0x1cc 0x0>;
+                       status = "ok";
+                       gdscr-supply = <0x21d>;
+                       regulator-names = "gdscr";
+                       clocks = <0xdd 0x6 0xdd 0x55 0xdd 0x54 0xdd 0x9 0xdd 0x7 0xdd 0x8>;
+                       clock-names = "camnoc_axi_clk", "soc_ahb_clk", "slow_ahb_src_clk", "cpas_ahb_clk", "cci_clk", "cci_clk_src";
+                       src-clock-name = "cci_clk_src";
+                       clock-cntl-level = "lowsvs";
+                       clock-rates = <0x0 0x0 0x0 0x0 0x0 0x23c3460>;
+                       pinctrl-names = "cam_default", "cam_suspend";
+                       pinctrl-0 = <0x21e 0x21f>;
+                       pinctrl-1 = <0x220 0x221>;
+                       gpios = <0x2e 0x11 0x0 0x2e 0x12 0x0 0x2e 0x13 0x0 0x2e 0x14 0x0>;
+                       gpio-req-tbl-num = <0x0 0x1 0x2 0x3>;
+                       gpio-req-tbl-flags = <0x1 0x1 0x1 0x1>;
+                       gpio-req-tbl-label = "CCI_I2C_DATA0", "CCI_I2C_CLK0", "CCI_I2C_DATA1", "CCI_I2C_CLK1";
+                       linux,phandle = <0xc8>;
+                       phandle = <0xc8>;
+
+                       qcom,i2c_standard_mode {
+                               hw-thigh = <0xc9>;
+                               hw-tlow = <0xae>;
+                               hw-tsu-sto = <0xcc>;
+                               hw-tsu-sta = <0xe7>;
+                               hw-thd-dat = <0x16>;
+                               hw-thd-sta = <0xa2>;
+                               hw-tbuf = <0xe3>;
+                               hw-scl-stretch-en = <0x1>;
+                               hw-trdhld = <0x6>;
+                               hw-tsp = <0x3>;
+                               cci-clk-src = <0x23c3460>;
+                               status = "ok";
+                       };
+
+                       qcom,i2c_fast_mode {
+                               hw-thigh = <0x26>;
+                               hw-tlow = <0x38>;
+                               hw-tsu-sto = <0x28>;
+                               hw-tsu-sta = <0x28>;
+                               hw-thd-dat = <0x16>;
+                               hw-thd-sta = <0x23>;
+                               hw-tbuf = <0x3e>;
+                               hw-scl-stretch-en = <0x1>;
+                               hw-trdhld = <0x6>;
+                               hw-tsp = <0x3>;
+                               cci-clk-src = <0x23c3460>;
+                               status = "ok";
+                       };
+
+                       qcom,i2c_custom_mode {
+                               hw-thigh = <0x26>;
+                               hw-tlow = <0x38>;
+                               hw-tsu-sto = <0x28>;
+                               hw-tsu-sta = <0x28>;
+                               hw-thd-dat = <0x16>;
+                               hw-thd-sta = <0x23>;
+                               hw-tbuf = <0x3e>;
+                               hw-scl-stretch-en = <0x1>;
+                               hw-trdhld = <0x6>;
+                               hw-tsp = <0x3>;
+                               cci-clk-src = <0x23c3460>;
+                               status = "ok";
+                       };
+
+                       qcom,i2c_fast_plus_mode {
+                               hw-thigh = <0x10>;
+                               hw-tlow = <0x16>;
+                               hw-tsu-sto = <0x11>;
+                               hw-tsu-sta = <0x12>;
+                               hw-thd-dat = <0x10>;
+                               hw-thd-sta = <0xf>;
+                               hw-tbuf = <0x18>;
+                               hw-scl-stretch-en = <0x1>;
+                               hw-trdhld = <0x3>;
+                               hw-tsp = <0x3>;
+                               cci-clk-src = <0x23c3460>;
+                               status = "ok";
+                       };
+
+                       qcom,cam-res-mgr {
+                               compatible = "qcom,cam-res-mgr";
+                               status = "ok";
+                       };
+
+                       qcom,actuator@0 {
+                               cell-index = <0x0>;
+                               reg = <0x0>;
+                               compatible = "qcom,actuator";
+                               cci-master = <0x0>;
+                               cam_vaf-supply = <0x222>;
+                               regulator-names = "cam_vaf";
+                               rgltr-cntrl-support;
+                               rgltr-min-voltage = <0x2ab980>;
+                               rgltr-max-voltage = <0x2ab980>;
+                               rgltr-load-current = <0x0>;
+                               linux,phandle = <0x238>;
+                               phandle = <0x238>;
+                       };
+
+                       qcom,actuator@1 {
+                               cell-index = <0x1>;
+                               reg = <0x1>;
+                               compatible = "qcom,actuator";
+                               cci-master = <0x1>;
+                               cam_vaf-supply = <0x223>;
+                               regulator-names = "cam_vaf";
+                               rgltr-cntrl-support;
+                               rgltr-min-voltage = <0x2ab980>;
+                               rgltr-max-voltage = <0x2ab980>;
+                               rgltr-load-current = <0x0>;
+                               linux,phandle = <0x23d>;
+                               phandle = <0x23d>;
+                       };
+
+                       qcom,ois@0 {
+                               cell-index = <0x0>;
+                               reg = <0x0>;
+                               compatible = "qcom,ois";
+                               cci-master = <0x0>;
+                               cam_vaf-supply = <0x224>;
+                               regulator-names = "cam_vaf";
+                               rgltr-cntrl-support;
+                               rgltr-min-voltage = <0x2ab980>;
+                               rgltr-max-voltage = <0x2ab980>;
+                               rgltr-load-current = <0x0>;
+                               status = "ok";
+                               linux,phandle = <0x23a>;
+                               phandle = <0x23a>;
+                       };
+
+                       qcom,eeprom@0 {
+                               cell-index = <0x0>;
+                               reg = <0x0>;
+                               compatible = "qcom,eeprom";
+                               slave-addr = <0xa0>;
+                               i2c-freq-mode = <0x1>;
+                               num-blocks = <0x1>;
+                               page0 = <0x0 0x0 0x0 0x0 0x0 0x0>;
+                               poll0 = <0x0 0x0 0x0 0x0 0x0 0x0>;
+                               mem0 = <0x2000 0x0 0x2 0x0 0x1 0x0>;
+                               qcom,cam-power-seq-type = "cam_vio";
+                               qcom,cam-power-seq-cfg-val = <0x1>;
+                               qcom,cam-power-seq-delay = <0x1>;
+                               cam_vio-supply = <0x225>;
+                               cam_clk-supply = <0x21d>;
+                               regulator-names = "cam_vio", "cam_clk";
+                               rgltr-cntrl-support;
+                               rgltr-min-voltage = <0x0 0x0>;
+                               rgltr-max-voltage = <0x0 0x0>;
+                               rgltr-load-current = <0x0 0x0>;
+                               gpio-no-mux = <0x0>;
+                               pinctrl-names = "cam_default", "cam_suspend";
+                               pinctrl-0 = <0x226 0x227>;
+                               pinctrl-1 = <0x228 0x229>;
+                               gpios = <0x2e 0xd 0x0>;
+                               gpio-req-tbl-num = <0x0>;
+                               gpio-req-tbl-flags = <0x1>;
+                               gpio-req-tbl-label = "CAMIF_MCLK0";
+                               cci-master = <0x0>;
+                               status = "ok";
+                               clocks = <0xdd 0x42>;
+                               clock-names = "cam_clk";
+                               clock-cntl-level = "turbo";
+                               clock-rates = <0x16e3600>;
+                               linux,phandle = <0x239>;
+                               phandle = <0x239>;
+                       };
+
+                       qcom,eeprom@1 {
+                               cell-index = <0x1>;
+                               reg = <0x1>;
+                               compatible = "qcom,eeprom";
+                               slave-addr = <0xa0>;
+                               i2c-freq-mode = <0x1>;
+                               num-blocks = <0x1>;
+                               page0 = <0x0 0x0 0x0 0x0 0x0 0x0>;
+                               poll0 = <0x0 0x0 0x0 0x0 0x0 0x0>;
+                               mem0 = <0x2000 0x0 0x2 0x0 0x1 0x0>;
+                               qcom,cam-power-seq-type = "cam_vio";
+                               qcom,cam-power-seq-cfg-val = <0x1>;
+                               qcom,cam-power-seq-delay = <0x1>;
+                               cam_vio-supply = <0x225>;
+                               cam_clk-supply = <0x21d>;
+                               regulator-names = "cam_vio", "cam_clk";
+                               rgltr-cntrl-support;
+                               rgltr-min-voltage = <0x0 0x0>;
+                               rgltr-max-voltage = <0x0 0x0>;
+                               rgltr-load-current = <0x0 0x0>;
+                               gpio-no-mux = <0x0>;
+                               pinctrl-names = "cam_default", "cam_suspend";
+                               pinctrl-0 = <0x226 0x22a>;
+                               pinctrl-1 = <0x228 0x22b>;
+                               gpios = <0x2e 0xd 0x0>;
+                               gpio-req-tbl-num = <0x0>;
+                               gpio-req-tbl-flags = <0x1>;
+                               gpio-req-tbl-label = "CAMIF_MCLK0";
+                               cci-master = <0x0>;
+                               status = "ok";
+                               clocks = <0xdd 0x42>;
+                               clock-names = "cam_clk";
+                               clock-cntl-level = "turbo";
+                               clock-rates = <0x16e3600>;
+                               linux,phandle = <0x23e>;
+                               phandle = <0x23e>;
+                       };
+
+                       qcom,eeprom@2 {
+                               cell-index = <0x2>;
+                               reg = <0x2>;
+                               compatible = "qcom,eeprom";
+                               slave-addr = <0x5a>;
+                               i2c-freq-mode = <0x1>;
+                               num-blocks = <0x1>;
+                               page0 = <0x0 0x0 0x0 0x0 0x0 0x0>;
+                               poll0 = <0x0 0x0 0x0 0x0 0x0 0x0>;
+                               mem0 = <0x2000 0x0 0x2 0x0 0x1 0x0>;
+                               qcom,cam-power-seq-type = "cam_vio";
+                               qcom,cam-power-seq-cfg-val = <0x1>;
+                               qcom,cam-power-seq-delay = <0x1>;
+                               cam_vio-supply = <0x225>;
+                               cam_vana-supply = <0x22c>;
+                               cam_vdig-supply = <0x22d>;
+                               cam_clk-supply = <0x21d>;
+                               regulator-names = "cam_vio", "cam_vana", "cam_vdig", "cam_clk";
+                               rgltr-cntrl-support;
+                               rgltr-min-voltage = <0x0 0x328980 0x149970 0x0>;
+                               rgltr-max-voltage = <0x0 0x36ee80 0x149970 0x0>;
+                               rgltr-load-current = <0x0 0x13880 0x20f58 0x0>;
+                               gpio-no-mux = <0x0>;
+                               pinctrl-names = "cam_default", "cam_suspend";
+                               pinctrl-0 = <0x22e 0x22f>;
+                               pinctrl-1 = <0x230 0x231>;
+                               gpios = <0x2e 0xf 0x0 0x2e 0x68 0x0 0x2e 0x50 0x0 0x4d 0x9 0x0>;
+                               gpio-reset = <0x1>;
+                               gpio-vana = <0x2>;
+                               gpio-vdig = <0x3>;
+                               gpio-req-tbl-num = <0x0 0x1 0x2 0x3>;
+                               gpio-req-tbl-flags = <0x1 0x0 0x0 0x0>;
+                               gpio-req-tbl-label = "CAMIF_MCLK2", "CAM_RESET2", "CAM_VANA2", "CAM_VDIG2";
+                               cci-master = <0x0>;
+                               status = "ok";
+                               clocks = <0xdd 0x46>;
+                               clock-names = "cam_clk";
+                               clock-cntl-level = "turbo";
+                               clock-rates = <0x16e3600>;
+                               linux,phandle = <0x241>;
+                               phandle = <0x241>;
+                       };
+
+                       qcom,eeprom@3 {
+                               cell-index = <0x3>;
+                               reg = <0x3>;
+                               compatible = "qcom,eeprom";
+                               slave-addr = <0xc0>;
+                               i2c-freq-mode = <0x1>;
+                               cam_vio-supply = <0x225>;
+                               cam_vana-supply = <0x22c>;
+                               cam_vdig-supply = <0x232>;
+                               cam_clk-supply = <0x21d>;
+                               regulator-names = "cam_vio", "cam_vana", "cam_vdig", "cam_clk";
+                               rgltr-cntrl-support;
+                               rgltr-min-voltage = <0x0 0x328980 0x16e360 0x0>;
+                               rgltr-max-voltage = <0x0 0x36ee80 0x16e360 0x0>;
+                               rgltr-load-current = <0x0 0x13880 0x249f0 0x0>;
+                               gpio-no-mux = <0x0>;
+                               pinctrl-names = "cam_default", "cam_suspend";
+                               pinctrl-0 = <0x233 0x234>;
+                               pinctrl-1 = <0x235 0x236>;
+                               gpios = <0x2e 0xe 0x0 0x2e 0x19 0x0 0x2e 0x2c 0x0 0x2e 0x16 0x0>;
+                               gpio-reset = <0x1>;
+                               gpio-vana = <0x2>;
+                               gpio-vdig = <0x3>;
+                               gpio-req-tbl-num = <0x0 0x1 0x2 0x3>;
+                               gpio-req-tbl-flags = <0x1 0x0 0x0 0x0>;
+                               gpio-req-tbl-label = "CAMIF_MCLK1", "CAM_RESET3", "CAM_VANA3", "CAM_VDIG3";
+                               sensor-mode = <0x0>;
+                               cci-master = <0x1>;
+                               status = "ok";
+                               clocks = <0xdd 0x44>;
+                               clock-names = "cam_clk";
+                               clock-cntl-level = "turbo";
+                               clock-rates = <0x16e3600>;
+                               linux,phandle = <0x242>;
+                               phandle = <0x242>;
+                       };
+
+                       qcom,cam-sensor@0 {
+                               cell-index = <0x0>;
+                               compatible = "qcom,cam-sensor";
+                               reg = <0x0>;
+                               csiphy-sd-index = <0x0>;
+                               sensor-position-roll = <0x5a>;
+                               sensor-position-pitch = <0x0>;
+                               sensor-position-yaw = <0xb4>;
+                               led-flash-src = <0x237>;
+                               actuator-src = <0x238>;
+                               eeprom-src = <0x239>;
+                               ois-src = <0x23a>;
+                               cam_vio-supply = <0x225>;
+                               cam_vana-supply = <0x23b>;
+                               cam_vdig-supply = <0x22d>;
+                               cam_clk-supply = <0x21d>;
+                               regulator-names = "cam_vio", "cam_vana", "cam_vdig", "cam_clk";
+                               rgltr-cntrl-support;
+                               rgltr-min-voltage = <0x0 0x2bb380 0x149970 0x0>;
+                               rgltr-max-voltage = <0x0 0x2bb380 0x149970 0x0>;
+                               rgltr-load-current = <0x0 0x13880 0x20f58 0x0>;
+                               gpio-no-mux = <0x0>;
+                               pinctrl-names = "cam_default", "cam_suspend";
+                               pinctrl-0 = <0x226 0x227>;
+                               pinctrl-1 = <0x228 0x229>;
+                               gpios = <0x2e 0xd 0x0 0x2e 0x77 0x0 0x2e 0xc 0x0 0x4d 0xb 0x0 0x2e 0x28 0x0>;
+                               gpio-reset = <0x1>;
+                               gpio-vana = <0x2>;
+                               gpio-vdig = <0x3>;
+                               gpio-custom1 = <0x4>;
+                               gpio-req-tbl-num = <0x0 0x1 0x2 0x3 0x4>;
+                               gpio-req-tbl-flags = <0x1 0x0 0x0 0x0 0x0>;
+                               gpio-req-tbl-label = "CAMIF_MCLK0", "CAM_RESET0", "CAM_VANA0", "CAM_VDIG0", "CAM_CUSTOM0";
+                               sensor-mode = <0x0>;
+                               cci-master = <0x0>;
+                               status = "ok";
+                               clocks = <0xdd 0x42>;
+                               clock-names = "cam_clk";
+                               clock-cntl-level = "turbo";
+                               clock-rates = <0x16e3600>;
+                       };
+
+                       qcom,cam-sensor@1 {
+                               cell-index = <0x1>;
+                               compatible = "qcom,cam-sensor";
+                               reg = <0x1>;
+                               csiphy-sd-index = <0x1>;
+                               sensor-position-roll = <0x5a>;
+                               sensor-position-pitch = <0x0>;
+                               sensor-position-yaw = <0xb4>;
+                               led-flash-src = <0x23c>;
+                               actuator-src = <0x23d>;
+                               eeprom-src = <0x23e>;
+                               cam_vdig-supply = <0x22d>;
+                               cam_vio-supply = <0x225>;
+                               cam_vana-supply = <0x22c>;
+                               cam_clk-supply = <0x21d>;
+                               regulator-names = "cam_vdig", "cam_vio", "cam_vana", "cam_clk";
+                               rgltr-cntrl-support;
+                               rgltr-min-voltage = <0x149970 0x0 0x328980 0x0>;
+                               rgltr-max-voltage = <0x149970 0x0 0x36ee80 0x0>;
+                               rgltr-load-current = <0x20f58 0x0 0x13880 0x0>;
+                               gpio-no-mux = <0x0>;
+                               pinctrl-names = "cam_default", "cam_suspend";
+                               pinctrl-0 = <0x23f 0x22a>;
+                               pinctrl-1 = <0x240 0x22b>;
+                               gpios = <0x2e 0x10 0x0 0x2e 0x2b 0x0 0x2e 0x79 0x0 0x2e 0x27 0x0 0x2e 0x24 0x0>;
+                               gpio-reset = <0x1>;
+                               gpio-vana = <0x2>;
+                               gpio-vdig = <0x3>;
+                               gpio-vio = <0x4>;
+                               gpio-req-tbl-num = <0x0 0x1 0x2 0x3 0x4>;
+                               gpio-req-tbl-flags = <0x1 0x0 0x0 0x0 0x0>;
+                               gpio-req-tbl-label = "CAMIF_MCLK3", "CAM_RESET1", "CAM_VANA1", "CAM_VDIG1", "CAM_VIO1";
+                               sensor-mode = <0x0>;
+                               cci-master = <0x1>;
+                               status = "ok";
+                               clocks = <0xdd 0x48>;
+                               clock-names = "cam_clk";
+                               clock-cntl-level = "turbo";
+                               clock-rates = <0x16e3600>;
+                       };
+
+                       qcom,cam-sensor@2 {
+                               cell-index = <0x2>;
+                               compatible = "qcom,cam-sensor";
+                               reg = <0x2>;
+                               csiphy-sd-index = <0x2>;
+                               sensor-position-roll = <0x10e>;
+                               sensor-position-pitch = <0x0>;
+                               sensor-position-yaw = <0x0>;
+                               eeprom-src = <0x241>;
+                               cam_vio-supply = <0x225>;
+                               cam_vana-supply = <0x22c>;
+                               cam_vdig-supply = <0x22d>;
+                               cam_clk-supply = <0x21d>;
+                               regulator-names = "cam_vio", "cam_vana", "cam_vdig", "cam_clk";
+                               rgltr-cntrl-support;
+                               rgltr-min-voltage = <0x0 0x328980 0x149970 0x0>;
+                               rgltr-max-voltage = <0x0 0x36ee80 0x149970 0x0>;
+                               rgltr-load-current = <0x0 0x13880 0x20f58 0x0>;
+                               gpio-no-mux = <0x0>;
+                               pinctrl-names = "cam_default", "cam_suspend";
+                               pinctrl-0 = <0x22e 0x22f>;
+                               pinctrl-1 = <0x230 0x231>;
+                               gpios = <0x2e 0xf 0x0 0x2e 0x68 0x0 0x2e 0x50 0x0 0x4d 0x9 0x0>;
+                               gpio-reset = <0x1>;
+                               gpio-vana = <0x2>;
+                               gpio-vdig = <0x3>;
+                               gpio-req-tbl-num = <0x0 0x1 0x2 0x3>;
+                               gpio-req-tbl-flags = <0x1 0x0 0x0 0x0>;
+                               gpio-req-tbl-label = "CAMIF_MCLK2", "CAM_RESET2", "CAM_VANA2", "CAM_VDIG2";
+                               sensor-mode = <0x0>;
+                               cci-master = <0x0>;
+                               status = "ok";
+                               clocks = <0xdd 0x46>;
+                               clock-names = "cam_clk";
+                               clock-cntl-level = "turbo";
+                               clock-rates = <0x16e3600>;
+                       };
+
+                       qcom,cam-sensor@3 {
+                               cell-index = <0x3>;
+                               compatible = "qcom,cam-sensor";
+                               reg = <0x3>;
+                               csiphy-sd-index = <0x1>;
+                               sensor-position-roll = <0x10e>;
+                               sensor-position-pitch = <0x0>;
+                               sensor-position-yaw = <0x0>;
+                               eeprom-src = <0x242>;
+                               cam_vio-supply = <0x225>;
+                               cam_vana-supply = <0x22c>;
+                               cam_vdig-supply = <0x232>;
+                               cam_clk-supply = <0x21d>;
+                               regulator-names = "cam_vio", "cam_vana", "cam_vdig", "cam_clk";
+                               rgltr-cntrl-support;
+                               rgltr-min-voltage = <0x0 0x328980 0x16e360 0x0>;
+                               rgltr-max-voltage = <0x0 0x36ee80 0x16e360 0x0>;
+                               rgltr-load-current = <0x0 0x13880 0x249f0 0x0>;
+                               gpio-no-mux = <0x0>;
+                               pinctrl-names = "cam_default", "cam_suspend";
+                               pinctrl-0 = <0x233 0x234>;
+                               pinctrl-1 = <0x235 0x236>;
+                               gpios = <0x2e 0xe 0x0 0x2e 0x19 0x0 0x2e 0x2c 0x0 0x2e 0x16 0x0>;
+                               gpio-reset = <0x1>;
+                               gpio-vana = <0x2>;
+                               gpio-vdig = <0x3>;
+                               gpio-req-tbl-num = <0x0 0x1 0x2 0x3>;
+                               gpio-req-tbl-flags = <0x1 0x0 0x0 0x0>;
+                               gpio-req-tbl-label = "CAMIF_MCLK1", "CAM_RESET3", "CAM_VANA3", "CAM_VDIG3";
+                               sensor-mode = <0x0>;
+                               cci-master = <0x1>;
+                               status = "ok";
+                               clocks = <0xdd 0x44>;
+                               clock-names = "cam_clk";
+                               clock-cntl-level = "turbo";
+                               clock-rates = <0x16e3600>;
+                       };
+               };
+
+               qcom,cam_smmu {
+                       compatible = "qcom,msm-cam-smmu";
+                       status = "ok";
+                       non-fatal-fault-disabled;
+
+                       msm_cam_smmu_ife {
+                               compatible = "qcom,msm-cam-smmu-cb";
+                               iommus = <0x29 0x808 0x0 0x29 0x810 0x8 0x29 0xc08 0x0 0x29 0xc10 0x8>;
+                               label = "ife";
+
+                               iova-mem-map {
+
+                                       iova-mem-region-io {
+                                               iova-region-name = "io";
+                                               iova-region-start = <0x7400000>;
+                                               iova-region-len = <0xd8c00000>;
+                                               iova-region-id = <0x3>;
+                                               status = "ok";
+                                       };
+                               };
+                       };
+
+                       msm_cam_smmu_jpeg {
+                               compatible = "qcom,msm-cam-smmu-cb";
+                               iommus = <0x29 0x1060 0x8 0x29 0x1068 0x8>;
+                               label = "jpeg";
+
+                               iova-mem-map {
+
+                                       iova-mem-region-io {
+                                               iova-region-name = "io";
+                                               iova-region-start = <0x7400000>;
+                                               iova-region-len = <0xd8c00000>;
+                                               iova-region-id = <0x3>;
+                                               status = "ok";
+                                       };
+                               };
+                       };
+
+                       msm_cam_icp_fw {
+                               compatible = "qcom,msm-cam-smmu-fw-dev";
+                               label = "icp";
+                               memory-region = <0x243>;
+                       };
+
+                       msm_cam_smmu_icp {
+                               compatible = "qcom,msm-cam-smmu-cb";
+                               iommus = <0x29 0x107a 0x2 0x29 0x1020 0x8 0x29 0x1040 0x8 0x29 0x1030 0x0 0x29 0x1050 0x0>;
+                               label = "icp";
+
+                               iova-mem-map {
+
+                                       iova-mem-region-firmware {
+                                               iova-region-name = "firmware";
+                                               iova-region-start = <0x0>;
+                                               iova-region-len = <0x500000>;
+                                               iova-region-id = <0x0>;
+                                               status = "ok";
+                                       };
+
+                                       iova-mem-region-shared {
+                                               iova-region-name = "shared";
+                                               iova-region-start = <0x7400000>;
+                                               iova-region-len = <0x9600000>;
+                                               iova-region-id = <0x1>;
+                                               status = "ok";
+                                               iova-granularity = <0x15>;
+                                       };
+
+                                       iova-mem-region-secondary-heap {
+                                               iova-region-name = "secheap";
+                                               iova-region-start = <0x10a00000>;
+                                               iova-region-len = <0x100000>;
+                                               iova-region-id = <0x4>;
+                                               status = "ok";
+                                       };
+
+                                       iova-mem-region-io {
+                                               iova-region-name = "io";
+                                               iova-region-start = <0x10c00000>;
+                                               iova-region-len = <0xcf300000>;
+                                               iova-region-id = <0x3>;
+                                               status = "ok";
+                                       };
+
+                                       iova-mem-qdss-region {
+                                               iova-region-name = "qdss";
+                                               iova-region-start = <0x10b00000>;
+                                               iova-region-len = <0x100000>;
+                                               iova-region-id = <0x5>;
+                                               qdss-phy-addr = <0x16790000>;
+                                               status = "ok";
+                                       };
+                               };
+                       };
+
+                       msm_cam_smmu_cpas_cdm {
+                               compatible = "qcom,msm-cam-smmu-cb";
+                               iommus = <0x29 0x1000 0x0>;
+                               label = "cpas-cdm0";
+
+                               iova-mem-map {
+
+                                       iova-mem-region-io {
+                                               iova-region-name = "io";
+                                               iova-region-start = <0x7400000>;
+                                               iova-region-len = <0xd8c00000>;
+                                               iova-region-id = <0x3>;
+                                               status = "ok";
+                                       };
+                               };
+                       };
+
+                       msm_cam_smmu_secure {
+                               compatible = "qcom,msm-cam-smmu-cb";
+                               label = "cam-secure";
+                               qcom,secure-cb;
+                       };
+
+                       msm_cam_smmu_fd {
+                               compatible = "qcom,msm-cam-smmu-cb";
+                               iommus = <0x29 0x1070 0x0>;
+                               label = "fd";
+
+                               iova-mem-map {
+
+                                       iova-mem-region-io {
+                                               iova-region-name = "io";
+                                               iova-region-start = <0x7400000>;
+                                               iova-region-len = <0xd8c00000>;
+                                               iova-region-id = <0x3>;
+                                               status = "ok";
+                                       };
+                               };
+                       };
+
+                       msm_cam_smmu_lrme {
+                               compatible = "qcom,msm-cam-smmu-cb";
+                               iommus = <0x29 0x1038 0x0 0x29 0x1058 0x0>;
+                               label = "lrme";
+
+                               iova-mem-map {
+
+                                       iova-mem-region-shared {
+                                               iova-region-name = "shared";
+                                               iova-region-start = <0x7400000>;
+                                               iova-region-len = <0x6400000>;
+                                               iova-region-id = <0x1>;
+                                               status = "ok";
+                                       };
+
+                                       iova-mem-region-io {
+                                               iova-region-name = "io";
+                                               iova-region-start = <0xd800000>;
+                                               iova-region-len = <0xd2800000>;
+                                               iova-region-id = <0x3>;
+                                               status = "ok";
+                                       };
+                               };
+                       };
+               };
+
+               qcom,cam-cpas@ac40000 {
+                       cell-index = <0x0>;
+                       compatible = "qcom,cam-cpas";
+                       label = "cpas";
+                       arch-compat = "cpas_top";
+                       status = "ok";
+                       reg-names = "cam_cpas_top", "cam_camnoc";
+                       reg = <0xac40000 0x1000 0xac42000 0x5000>;
+                       reg-cam-base = <0x40000 0x42000>;
+                       interrupt-names = "cpas_camnoc";
+                       interrupts = <0x0 0x1cb 0x0>;
+                       qcom,cpas-hw-ver = <0x170110>;
+                       camnoc-axi-min-ib-bw = <0xb2d05e00>;
+                       regulator-names = "camss-vdd";
+                       camss-vdd-supply = <0x21d>;
+                       clock-names = "gcc_ahb_clk", "gcc_axi_clk", "soc_ahb_clk", "slow_ahb_clk_src", "cpas_ahb_clk", "camnoc_axi_clk";
+                       clocks = <0x22 0xc 0x22 0xd 0xdd 0x55 0xdd 0x54 0xdd 0x9 0xdd 0x6>;
+                       src-clock-name = "slow_ahb_clk_src";
+                       clock-rates = <0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x124f800 0x0 0x0 0x0 0x0 0x0 0x4c4b400 0x0 0x0 0x0 0x0 0x0 0x4c4b400 0x0 0x0 0x0 0x0 0x0 0x4c4b400 0x0 0x0 0x0 0x0 0x0 0x4c4b400 0x0 0x0 0x0 0x0 0x0 0x4c4b400 0x0 0x0>;
+                       clock-cntl-level = "suspend", "minsvs", "lowsvs", "svs", "svs_l1", "nominal", "turbo";
+                       qcom,msm-bus,name = "cam_ahb";
+                       qcom,msm-bus,num-cases = <0x7>;
+                       qcom,msm-bus,num-paths = <0x1>;
+                       qcom,msm-bus,vectors-KBps = <0x1 0x24d 0x0 0x0 0x1 0x24d 0x0 0x12ad4 0x1 0x24d 0x0 0x12ad4 0x1 0x24d 0x0 0x249f0 0x1 0x24d 0x0 0x249f0 0x1 0x24d 0x0 0x493e0 0x1 0x24d 0x0 0x493e0>;
+                       vdd-corners = <0x1 0x11 0x31 0x41 0x81 0xc1 0x101 0x141 0x151 0x181 0x1a1>;
+                       vdd-corner-ahb-mapping = "suspend", "suspend", "minsvs", "lowsvs", "svs", "svs_l1", "nominal", "nominal", "nominal", "turbo", "turbo";
+                       client-id-based;
+                       client-names = "csiphy0", "csiphy1", "csiphy2", "csiphy3", "cci0", "csid0", "csid1", "csid2", "ife0", "ife1", "ife2", "ipe0", "ipe1", "cam-cdm-intf0", "cpas-cdm0", "bps0", "icp0", "jpeg-dma0", "jpeg-enc0", "fd0", "lrmecpas0";
+                       client-axi-port-names = "cam_hf_1", "cam_hf_2", "cam_hf_2", "cam_hf_2", "cam_sf_1", "cam_hf_1", "cam_hf_2", "cam_hf_2", "cam_hf_1", "cam_hf_2", "cam_hf_2", "cam_sf_1", "cam_sf_1", "cam_sf_1", "cam_sf_1", "cam_sf_1", "cam_sf_1", "cam_sf_1", "cam_sf_1", "cam_sf_1", "cam_sf_1";
+                       client-bus-camnoc-based;
+
+                       qcom,axi-port-list {
+
+                               qcom,axi-port1 {
+                                       qcom,axi-port-name = "cam_hf_1";
+
+                                       qcom,axi-port-mnoc {
+                                               qcom,msm-bus,name = "cam_hf_1_mnoc";
+                                               qcom,msm-bus-vector-dyn-vote;
+                                               qcom,msm-bus,num-cases = <0x2>;
+                                               qcom,msm-bus,num-paths = <0x1>;
+                                               qcom,msm-bus,vectors-KBps = <0x88 0x200 0x0 0x0 0x88 0x200 0x0 0x0>;
+                                       };
+
+                                       qcom,axi-port-camnoc {
+                                               qcom,msm-bus,name = "cam_hf_1_camnoc";
+                                               qcom,msm-bus-vector-dyn-vote;
+                                               qcom,msm-bus,num-cases = <0x2>;
+                                               qcom,msm-bus,num-paths = <0x1>;
+                                               qcom,msm-bus,vectors-KBps = <0x92 0x30a 0x0 0x0 0x92 0x30a 0x0 0x0>;
+                                       };
+                               };
+
+                               qcom,axi-port2 {
+                                       qcom,axi-port-name = "cam_hf_2";
+
+                                       qcom,axi-port-mnoc {
+                                               qcom,msm-bus,name = "cam_hf_2_mnoc";
+                                               qcom,msm-bus-vector-dyn-vote;
+                                               qcom,msm-bus,num-cases = <0x2>;
+                                               qcom,msm-bus,num-paths = <0x1>;
+                                               qcom,msm-bus,vectors-KBps = <0x91 0x200 0x0 0x0 0x91 0x200 0x0 0x0>;
+                                       };
+
+                                       qcom,axi-port-camnoc {
+                                               qcom,msm-bus,name = "cam_hf_2_camnoc";
+                                               qcom,msm-bus-vector-dyn-vote;
+                                               qcom,msm-bus,num-cases = <0x2>;
+                                               qcom,msm-bus,num-paths = <0x1>;
+                                               qcom,msm-bus,vectors-KBps = <0x93 0x30a 0x0 0x0 0x93 0x30a 0x0 0x0>;
+                                       };
+                               };
+
+                               qcom,axi-port3 {
+                                       qcom,axi-port-name = "cam_sf_1";
+
+                                       qcom,axi-port-mnoc {
+                                               qcom,msm-bus,name = "cam_sf_1_mnoc";
+                                               qcom,msm-bus-vector-dyn-vote;
+                                               qcom,msm-bus,num-cases = <0x2>;
+                                               qcom,msm-bus,num-paths = <0x1>;
+                                               qcom,msm-bus,vectors-KBps = <0x89 0x200 0x0 0x0 0x89 0x200 0x0 0x0>;
+                                       };
+
+                                       qcom,axi-port-camnoc {
+                                               qcom,msm-bus,name = "cam_sf_1_camnoc";
+                                               qcom,msm-bus-vector-dyn-vote;
+                                               qcom,msm-bus,num-cases = <0x2>;
+                                               qcom,msm-bus,num-paths = <0x1>;
+                                               qcom,msm-bus,vectors-KBps = <0x94 0x30a 0x0 0x0 0x94 0x30a 0x0 0x0>;
+                                       };
+                               };
+                       };
+               };
+
+               qcom,cam-cdm-intf {
+                       compatible = "qcom,cam-cdm-intf";
+                       cell-index = <0x0>;
+                       label = "cam-cdm-intf";
+                       num-hw-cdm = <0x1>;
+                       cdm-client-names = "vfe", "jpegdma", "jpegenc", "fd", "lrmecdm";
+                       status = "ok";
+               };
+
+               qcom,cpas-cdm0@ac48000 {
+                       cell-index = <0x0>;
+                       compatible = "qcom,cam170-cpas-cdm0";
+                       label = "cpas-cdm";
+                       reg = <0xac48000 0x1000>;
+                       reg-names = "cpas-cdm";
+                       reg-cam-base = <0x48000>;
+                       interrupts = <0x0 0x1cd 0x0>;
+                       interrupt-names = "cpas-cdm";
+                       regulator-names = "camss";
+                       camss-supply = <0x21d>;
+                       clock-names = "gcc_camera_ahb", "gcc_camera_axi", "cam_cc_soc_ahb_clk", "cam_cc_cpas_ahb_clk", "cam_cc_camnoc_axi_clk";
+                       clocks = <0x22 0xc 0x22 0xd 0xdd 0x55 0xdd 0x9 0xdd 0x6>;
+                       clock-rates = <0x0 0x0 0x0 0x0 0x0>;
+                       clock-cntl-level = "svs";
+                       cdm-client-names = "ife";
+                       status = "ok";
+               };
+
+               qcom,cam-isp {
+                       compatible = "qcom,cam-isp";
+                       arch-compat = "ife";
+                       status = "ok";
+               };
+
+               qcom,csid0@acb3000 {
+                       cell-index = <0x0>;
+                       compatible = "qcom,csid170";
+                       reg-names = "csid";
+                       reg = <0xacb3000 0x1000>;
+                       reg-cam-base = <0xb3000>;
+                       interrupt-names = "csid";
+                       interrupts = <0x0 0x1d0 0x0>;
+                       regulator-names = "camss", "ife0";
+                       camss-supply = <0x21d>;
+                       ife0-supply = <0x244>;
+                       clock-names = "camera_ahb", "camera_axi", "soc_ahb_clk", "cpas_ahb_clk", "slow_ahb_clk_src", "ife_csid_clk", "ife_csid_clk_src", "ife_cphy_rx_clk", "cphy_rx_clk_src", "ife_clk", "ife_clk_src", "camnoc_axi_clk", "ife_axi_clk";
+                       clocks = <0x22 0xc 0x22 0xd 0xdd 0x55 0xdd 0x9 0xdd 0x54 0xdd 0x25 0xdd 0x26 0xdd 0x24 0xdd 0xa 0xdd 0x22 0xdd 0x23 0xdd 0x6 0xdd 0x21>;
+                       clock-rates = <0x0 0x0 0x0 0x0 0x0 0x0 0x16e36000 0x0 0x0 0x0 0x18148d00 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x20113a80 0x0 0x0 0x0 0x23c34600 0x0 0x0>;
+                       clock-cntl-level = "svs", "turbo";
+                       src-clock-name = "ife_csid_clk_src";
+                       clock-control-debugfs = "true";
+                       status = "ok";
+                       linux,phandle = <0xc9>;
+                       phandle = <0xc9>;
+               };
+
+               qcom,vfe0@acaf000 {
+                       cell-index = <0x0>;
+                       compatible = "qcom,vfe170";
+                       reg-names = "ife";
+                       reg = <0xacaf000 0x4000>;
+                       reg-cam-base = <0xaf000>;
+                       interrupt-names = "ife";
+                       interrupts = <0x0 0x1d1 0x0>;
+                       regulator-names = "camss", "ife0";
+                       camss-supply = <0x21d>;
+                       ife0-supply = <0x244>;
+                       clock-names = "camera_ahb", "camera_axi", "soc_ahb_clk", "cpas_ahb_clk", "slow_ahb_clk_src", "ife_clk", "ife_clk_src", "camnoc_axi_clk", "ife_axi_clk";
+                       clocks = <0x22 0xc 0x22 0xd 0xdd 0x55 0xdd 0x9 0xdd 0x54 0xdd 0x22 0xdd 0x23 0xdd 0x6 0xdd 0x21>;
+                       clock-rates = <0x0 0x0 0x0 0x0 0x0 0x0 0x18148d00 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1c9c3800 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x23c34600 0x0 0x0>;
+                       clock-cntl-level = "svs", "svs_l1", "turbo";
+                       src-clock-name = "ife_clk_src";
+                       clock-control-debugfs = "true";
+                       clock-names-option = "ife_dsp_clk";
+                       clocks-option = <0xdd 0x27>;
+                       clock-rates-option = <0x23c34600>;
+                       status = "ok";
+                       linux,phandle = <0xca>;
+                       phandle = <0xca>;
+               };
+
+               qcom,csid1@acba000 {
+                       cell-index = <0x1>;
+                       compatible = "qcom,csid170";
+                       reg-names = "csid";
+                       reg = <0xacba000 0x1000>;
+                       reg-cam-base = <0xba000>;
+                       interrupt-names = "csid";
+                       interrupts = <0x0 0x1d2 0x0>;
+                       regulator-names = "camss", "ife1";
+                       camss-supply = <0x21d>;
+                       ife1-supply = <0x245>;
+                       clock-names = "camera_ahb", "camera_axi", "soc_ahb_clk", "cpas_ahb_clk", "slow_ahb_clk_src", "ife_csid_clk", "ife_csid_clk_src", "ife_cphy_rx_clk", "cphy_rx_clk_src", "ife_clk", "ife_clk_src", "camnoc_axi_clk", "ife_axi_clk";
+                       clocks = <0x22 0xc 0x22 0xd 0xdd 0x55 0xdd 0x9 0xdd 0x54 0xdd 0x2c 0xdd 0x2d 0xdd 0x2b 0xdd 0xa 0xdd 0x29 0xdd 0x2a 0xdd 0x6 0xdd 0x28>;
+                       clock-rates = <0x0 0x0 0x0 0x0 0x0 0x0 0x16e36000 0x0 0x0 0x0 0x18148d00 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x20113a80 0x0 0x0 0x0 0x23c34600 0x0 0x0>;
+                       clock-cntl-level = "svs", "turbo";
+                       src-clock-name = "ife_csid_clk_src";
+                       clock-control-debugfs = "true";
+                       status = "ok";
+                       linux,phandle = <0xcb>;
+                       phandle = <0xcb>;
+               };
+
+               qcom,vfe1@acb6000 {
+                       cell-index = <0x1>;
+                       compatible = "qcom,vfe170";
+                       reg-names = "ife";
+                       reg = <0xacb6000 0x4000>;
+                       reg-cam-base = <0xb6000>;
+                       interrupt-names = "ife";
+                       interrupts = <0x0 0x1d3 0x0>;
+                       regulator-names = "camss", "ife1";
+                       camss-supply = <0x21d>;
+                       ife1-supply = <0x245>;
+                       clock-names = "camera_ahb", "camera_axi", "soc_ahb_clk", "cpas_ahb_clk", "slow_ahb_clk_src", "ife_clk", "ife_clk_src", "camnoc_axi_clk", "ife_axi_clk";
+                       clocks = <0x22 0xc 0x22 0xd 0xdd 0x55 0xdd 0x9 0xdd 0x54 0xdd 0x29 0xdd 0x2a 0xdd 0x6 0xdd 0x28>;
+                       clock-rates = <0x0 0x0 0x0 0x0 0x0 0x0 0x18148d00 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1c9c3800 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x23c34600 0x0 0x0>;
+                       clock-cntl-level = "svs", "svs_l1", "turbo";
+                       src-clock-name = "ife_clk_src";
+                       clock-control-debugfs = "true";
+                       clock-names-option = "ife_dsp_clk";
+                       clocks-option = <0xdd 0x2e>;
+                       clock-rates-option = <0x23c34600>;
+                       status = "ok";
+                       linux,phandle = <0xcc>;
+                       phandle = <0xcc>;
+               };
+
+               qcom,csid-lite@acc8000 {
+                       cell-index = <0x2>;
+                       compatible = "qcom,csid-lite170";
+                       reg-names = "csid-lite";
+                       reg = <0xacc8000 0x1000>;
+                       reg-cam-base = <0xc8000>;
+                       interrupt-names = "csid-lite";
+                       interrupts = <0x0 0x1d4 0x0>;
+                       regulator-names = "camss";
+                       camss-supply = <0x21d>;
+                       clock-names = "camera_ahb", "camera_axi", "soc_ahb_clk", "cpas_ahb_clk", "slow_ahb_clk_src", "ife_csid_clk", "ife_csid_clk_src", "ife_cphy_rx_clk", "cphy_rx_clk_src", "ife_clk", "ife_clk_src", "camnoc_axi_clk";
+                       clocks = <0x22 0xc 0x22 0xd 0xdd 0x55 0xdd 0x9 0xdd 0x54 0xdd 0x32 0xdd 0x33 0xdd 0x31 0xdd 0xa 0xdd 0x2f 0xdd 0x30 0xdd 0x6>;
+                       clock-rates = <0x0 0x0 0x0 0x0 0x0 0x0 0x16e36000 0x0 0x0 0x0 0x18148d00 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x20113a80 0x0 0x0 0x0 0x23c34600 0x0>;
+                       clock-cntl-level = "svs", "turbo";
+                       src-clock-name = "ife_csid_clk_src";
+                       clock-control-debugfs = "true";
+                       status = "ok";
+                       linux,phandle = <0xcd>;
+                       phandle = <0xcd>;
+               };
+
+               qcom,vfe-lite@acc4000 {
+                       cell-index = <0x2>;
+                       compatible = "qcom,vfe-lite170";
+                       reg-names = "ife-lite";
+                       reg = <0xacc4000 0x4000>;
+                       reg-cam-base = <0xc4000>;
+                       interrupt-names = "ife-lite";
+                       interrupts = <0x0 0x1d5 0x0>;
+                       regulator-names = "camss";
+                       camss-supply = <0x21d>;
+                       clock-names = "camera_ahb", "camera_axi", "soc_ahb_clk", "cpas_ahb_clk", "slow_ahb_clk_src", "ife_clk", "ife_clk_src", "camnoc_axi_clk";
+                       clocks = <0x22 0xc 0x22 0xd 0xdd 0x55 0xdd 0x9 0xdd 0x54 0xdd 0x2f 0xdd 0x30 0xdd 0x6>;
+                       clock-rates = <0x0 0x0 0x0 0x0 0x0 0x0 0x18148d00 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1c9c3800 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x23c34600 0x0>;
+                       clock-cntl-level = "svs", "svs_l1", "turbo";
+                       src-clock-name = "ife_clk_src";
+                       clock-control-debugfs = "true";
+                       status = "ok";
+                       linux,phandle = <0xce>;
+                       phandle = <0xce>;
+               };
+
+               qcom,cam-icp {
+                       compatible = "qcom,cam-icp";
+                       compat-hw-name = "qcom,a5", "qcom,ipe0", "qcom,ipe1", "qcom,bps";
+                       num-a5 = <0x1>;
+                       num-ipe = <0x2>;
+                       num-bps = <0x1>;
+                       status = "ok";
+               };
+
+               qcom,a5@ac00000 {
+                       cell-index = <0x0>;
+                       compatible = "qcom,cam-a5";
+                       reg = <0xac00000 0x6000 0xac10000 0x8000 0xac18000 0x3000>;
+                       reg-names = "a5_qgic", "a5_sierra", "a5_csr";
+                       reg-cam-base = <0x0 0x10000 0x18000>;
+                       interrupts = <0x0 0x1cf 0x0>;
+                       interrupt-names = "a5";
+                       regulator-names = "camss-vdd";
+                       camss-vdd-supply = <0x21d>;
+                       clock-names = "gcc_cam_ahb_clk", "gcc_cam_axi_clk", "soc_fast_ahb", "soc_ahb_clk", "cpas_ahb_clk", "camnoc_axi_clk", "icp_clk", "icp_clk_src";
+                       clocks = <0x22 0xc 0x22 0xd 0xdd 0x17 0xdd 0x55 0xdd 0x9 0xdd 0x6 0xdd 0x1d 0xdd 0x1e>;
+                       clock-rates = <0x0 0x0 0xbebc200 0x0 0x0 0x0 0x0 0x17d78400 0x0 0x0 0xbebc200 0x0 0x0 0x0 0x0 0x23c34600>;
+                       clock-cntl-level = "svs", "turbo";
+                       fw_name = "CAMERA_ICP.elf";
+                       ubwc-cfg = <0x7b 0x1ef>;
+                       status = "ok";
+                       linux,phandle = <0xcf>;
+                       phandle = <0xcf>;
+               };
+
+               qcom,ipe0 {
+                       cell-index = <0x0>;
+                       compatible = "qcom,cam-ipe";
+                       reg = <0xac87000 0x3000>;
+                       reg-names = "ipe0_top";
+                       reg-cam-base = <0x87000>;
+                       regulator-names = "ipe0-vdd";
+                       ipe0-vdd-supply = <0x246>;
+                       clock-names = "ipe_0_ahb_clk", "ipe_0_areg_clk", "ipe_0_axi_clk", "ipe_0_clk", "ipe_0_clk_src";
+                       src-clock-name = "ipe_0_clk_src";
+                       clock-control-debugfs = "true";
+                       clocks = <0xdd 0x34 0xdd 0x35 0xdd 0x36 0xdd 0x37 0xdd 0x38>;
+                       clock-rates = <0x0 0x0 0x0 0x0 0x18148d00 0x0 0x0 0x0 0x0 0x1c9c3800 0x0 0x0 0x0 0x0 0x20113a80 0x0 0x0 0x0 0x0 0x23c34600>;
+                       clock-cntl-level = "svs", "svs_l1", "nominal", "turbo";
+                       status = "ok";
+                       linux,phandle = <0xd0>;
+                       phandle = <0xd0>;
+               };
+
+               qcom,ipe1 {
+                       cell-index = <0x1>;
+                       compatible = "qcom,cam-ipe";
+                       reg = <0xac91000 0x3000>;
+                       reg-names = "ipe1_top";
+                       reg-cam-base = <0x91000>;
+                       regulator-names = "ipe1-vdd";
+                       ipe1-vdd-supply = <0x247>;
+                       clock-names = "ipe_1_ahb_clk", "ipe_1_areg_clk", "ipe_1_axi_clk", "ipe_1_clk", "ipe_1_clk_src";
+                       src-clock-name = "ipe_1_clk_src";
+                       clock-control-debugfs = "true";
+                       clocks = <0xdd 0x39 0xdd 0x3a 0xdd 0x3b 0xdd 0x3c 0xdd 0x3d>;
+                       clock-rates = <0x0 0x0 0x0 0x0 0x18148d00 0x0 0x0 0x0 0x0 0x1c9c3800 0x0 0x0 0x0 0x0 0x20113a80 0x0 0x0 0x0 0x0 0x23c34600>;
+                       clock-cntl-level = "svs", "svs_l1", "nominal", "turbo";
+                       status = "ok";
+                       linux,phandle = <0xd1>;
+                       phandle = <0xd1>;
+               };
+
+               qcom,bps {
+                       cell-index = <0x0>;
+                       compatible = "qcom,cam-bps";
+                       reg = <0xac6f000 0x3000>;
+                       reg-names = "bps_top";
+                       reg-cam-base = <0x6f000>;
+                       regulator-names = "bps-vdd";
+                       bps-vdd-supply = <0x248>;
+                       clock-names = "bps_ahb_clk", "bps_areg_clk", "bps_axi_clk", "bps_clk", "bps_clk_src";
+                       src-clock-name = "bps_clk_src";
+                       clock-control-debugfs = "true";
+                       clocks = <0xdd 0x0 0xdd 0x1 0xdd 0x2 0xdd 0x3 0xdd 0x4>;
+                       clock-rates = <0x0 0x0 0x0 0x0 0x18148d00 0x0 0x0 0x0 0x0 0x1c9c3800 0x0 0x0 0x0 0x0 0x23c34600 0x0 0x0 0x0 0x0 0x23c34600>;
+                       clock-cntl-level = "svs", "svs_l1", "nominal", "turbo";
+                       status = "ok";
+                       linux,phandle = <0xd2>;
+                       phandle = <0xd2>;
+               };
+
+               qcom,cam-jpeg {
+                       compatible = "qcom,cam-jpeg";
+                       compat-hw-name = "qcom,jpegenc", "qcom,jpegdma";
+                       num-jpeg-enc = <0x1>;
+                       num-jpeg-dma = <0x1>;
+                       status = "ok";
+               };
+
+               qcom,jpegenc@ac4e000 {
+                       cell-index = <0x0>;
+                       compatible = "qcom,cam_jpeg_enc";
+                       reg-names = "jpege_hw";
+                       reg = <0xac4e000 0x4000>;
+                       reg-cam-base = <0x4e000>;
+                       interrupt-names = "jpeg";
+                       interrupts = <0x0 0x1da 0x0>;
+                       regulator-names = "camss-vdd";
+                       camss-vdd-supply = <0x21d>;
+                       clock-names = "camera_ahb", "camera_axi", "soc_ahb_clk", "cpas_ahb_clk", "camnoc_axi_clk", "jpegenc_clk_src", "jpegenc_clk";
+                       clocks = <0x22 0xc 0x22 0xd 0xdd 0x55 0xdd 0x9 0xdd 0x6 0xdd 0x3f 0xdd 0x3e>;
+                       clock-rates = <0x0 0x0 0x0 0x0 0x0 0x23c34600 0x0>;
+                       src-clock-name = "jpegenc_clk_src";
+                       clock-cntl-level = "nominal";
+                       status = "ok";
+               };
+
+               qcom,jpegdma@0xac52000 {
+                       cell-index = <0x0>;
+                       compatible = "qcom,cam_jpeg_dma";
+                       reg-names = "jpegdma_hw";
+                       reg = <0xac52000 0x4000>;
+                       reg-cam-base = <0x52000>;
+                       interrupt-names = "jpegdma";
+                       interrupts = <0x0 0x1db 0x0>;
+                       regulator-names = "camss-vdd";
+                       camss-vdd-supply = <0x21d>;
+                       clock-names = "camera_ahb", "camera_axi", "soc_ahb_clk", "cpas_ahb_clk", "camnoc_axi_clk", "jpegdma_clk_src", "jpegdma_clk";
+                       clocks = <0x22 0xc 0x22 0xd 0xdd 0x55 0xdd 0x9 0xdd 0x6 0xdd 0x3f 0xdd 0x3e>;
+                       clock-rates = <0x0 0x0 0x0 0x0 0x0 0x23c34600 0x0>;
+                       src-clock-name = "jpegdma_clk_src";
+                       clock-cntl-level = "nominal";
+                       status = "ok";
+               };
+
+               qcom,cam-fd {
+                       compatible = "qcom,cam-fd";
+                       compat-hw-name = "qcom,fd";
+                       num-fd = <0x1>;
+                       status = "ok";
+               };
+
+               qcom,fd@ac5a000 {
+                       cell-index = <0x0>;
+                       compatible = "qcom,fd41";
+                       reg-names = "fd_core", "fd_wrapper";
+                       reg = <0xac5a000 0x1000 0xac5b000 0x400>;
+                       reg-cam-base = <0x5a000 0x5b000>;
+                       interrupt-names = "fd";
+                       interrupts = <0x0 0x1ce 0x0>;
+                       regulator-names = "camss-vdd";
+                       camss-vdd-supply = <0x21d>;
+                       clock-names = "gcc_ahb_clk", "gcc_axi_clk", "soc_ahb_clk", "cpas_ahb_clk", "camnoc_axi_clk", "fd_core_clk_src", "fd_core_clk", "fd_core_uar_clk";
+                       clocks = <0x22 0xc 0x22 0xd 0xdd 0x55 0xdd 0x9 0xdd 0x6 0xdd 0x19 0xdd 0x18 0xdd 0x1a>;
+                       src-clock-name = "fd_core_clk_src";
+                       clock-control-debugfs = "true";
+                       clock-cntl-level = "svs", "svs_l1", "turbo";
+                       clock-rates = <0x0 0x0 0x0 0x0 0x0 0x17d78400 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x20113a80 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x23c34600 0x0 0x0>;
+                       status = "ok";
+               };
+
+               ad-hoc-bus {
+                       compatible = "qcom,msm-bus-device";
+                       reg = <0x16e0000 0x40000 0x1700000 0x40000 0x1500000 0x40000 0x14e0000 0x40000 0x17900000 0x40000 0x1380000 0x40000 0x1380000 0x40000 0x1740000 0x40000 0x1620000 0x40000 0x1620000 0x40000 0x1620000 0x40000>;
+                       reg-names = "aggre1_noc-base", "aggre2_noc-base", "config_noc-base", "dc_noc-base", "gladiator_noc-base", "mc_virt-base", "mem_noc-base", "mmss_noc-base", "system_noc-base", "ipa_virt-base", "camnoc_virt-base";
+                       mbox-names = "apps_rsc", "disp_rsc";
+                       mboxes = <0xc2 0x0 0x32 0x0>;
+
+                       rsc-apps {
+                               cell-id = <0x1f40>;
+                               label = "apps_rsc";
+                               qcom,rsc-dev;
+                               qcom,req_state = <0x2>;
+                               linux,phandle = <0x249>;
+                               phandle = <0x249>;
+                       };
+
+                       rsc-disp {
+                               cell-id = <0x1f41>;
+                               label = "disp_rsc";
+                               qcom,rsc-dev;
+                               qcom,req_state = <0x3>;
+                               linux,phandle = <0x24a>;
+                               phandle = <0x24a>;
+                       };
+
+                       bcm-acv {
+                               cell-id = <0x1b7d>;
+                               label = "ACV";
+                               qcom,bcm-name = "ACV";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2c7>;
+                               phandle = <0x2c7>;
+                       };
+
+                       bcm-alc {
+                               cell-id = <0x1b7e>;
+                               label = "ALC";
+                               qcom,bcm-name = "ALC";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2af>;
+                               phandle = <0x2af>;
+                       };
+
+                       bcm-mc0 {
+                               cell-id = <0x1b58>;
+                               label = "MC0";
+                               qcom,bcm-name = "MC0";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2c6>;
+                               phandle = <0x2c6>;
+                       };
+
+                       bcm-sh0 {
+                               cell-id = <0x1b5b>;
+                               label = "SH0";
+                               qcom,bcm-name = "SH0";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2ca>;
+                               phandle = <0x2ca>;
+                       };
+
+                       bcm-mm0 {
+                               cell-id = <0x1b63>;
+                               label = "MM0";
+                               qcom,bcm-name = "MM0";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2d0>;
+                               phandle = <0x2d0>;
+                       };
+
+                       bcm-sh1 {
+                               cell-id = <0x1b5c>;
+                               label = "SH1";
+                               qcom,bcm-name = "SH1";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2c8>;
+                               phandle = <0x2c8>;
+                       };
+
+                       bcm-mm1 {
+                               cell-id = <0x1b64>;
+                               label = "MM1";
+                               qcom,bcm-name = "MM1";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x257>;
+                               phandle = <0x257>;
+                       };
+
+                       bcm-sh2 {
+                               cell-id = <0x1b5d>;
+                               label = "SH2";
+                               qcom,bcm-name = "SH2";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2cc>;
+                               phandle = <0x2cc>;
+                       };
+
+                       bcm-mm2 {
+                               cell-id = <0x1b65>;
+                               label = "MM2";
+                               qcom,bcm-name = "MM2";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2ce>;
+                               phandle = <0x2ce>;
+                       };
+
+                       bcm-sh3 {
+                               cell-id = <0x1b5e>;
+                               label = "SH3";
+                               qcom,bcm-name = "SH3";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x294>;
+                               phandle = <0x294>;
+                       };
+
+                       bcm-mm3 {
+                               cell-id = <0x1b66>;
+                               label = "MM3";
+                               qcom,bcm-name = "MM3";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x29c>;
+                               phandle = <0x29c>;
+                       };
+
+                       bcm-sh4 {
+                               cell-id = <0x1b5f>;
+                               label = "SH4";
+                               qcom,bcm-name = "SH4";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                       };
+
+                       bcm-sh5 {
+                               cell-id = <0x1b60>;
+                               label = "SH5";
+                               qcom,bcm-name = "SH5";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x297>;
+                               phandle = <0x297>;
+                       };
+
+                       bcm-sn0 {
+                               cell-id = <0x1b6a>;
+                               label = "SN0";
+                               qcom,bcm-name = "SN0";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2d7>;
+                               phandle = <0x2d7>;
+                       };
+
+                       bcm-ce0 {
+                               cell-id = <0x1b7a>;
+                               label = "CE0";
+                               qcom,bcm-name = "CE0";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x253>;
+                               phandle = <0x253>;
+                       };
+
+                       bcm-ip0 {
+                               cell-id = <0x1b7b>;
+                               label = "IP0";
+                               qcom,bcm-name = "IP0";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2c5>;
+                               phandle = <0x2c5>;
+                       };
+
+                       bcm-cn0 {
+                               cell-id = <0x1b7c>;
+                               label = "CN0";
+                               qcom,bcm-name = "CN0";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x25a>;
+                               phandle = <0x25a>;
+                       };
+
+                       bcm-qup0 {
+                               cell-id = <0x1b7f>;
+                               label = "QUP0";
+                               qcom,bcm-name = "QUP0";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x24e>;
+                               phandle = <0x24e>;
+                       };
+
+                       bcm-sn1 {
+                               cell-id = <0x1b6b>;
+                               label = "SN1";
+                               qcom,bcm-name = "SN1";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2d8>;
+                               phandle = <0x2d8>;
+                       };
+
+                       bcm-sn2 {
+                               cell-id = <0x1b6c>;
+                               label = "SN2";
+                               qcom,bcm-name = "SN2";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2d5>;
+                               phandle = <0x2d5>;
+                       };
+
+                       bcm-sn3 {
+                               cell-id = <0x1b6d>;
+                               label = "SN3";
+                               qcom,bcm-name = "SN3";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2d3>;
+                               phandle = <0x2d3>;
+                       };
+
+                       bcm-sn4 {
+                               cell-id = <0x1b6e>;
+                               label = "SN4";
+                               qcom,bcm-name = "SN4";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2ae>;
+                               phandle = <0x2ae>;
+                       };
+
+                       bcm-sn5 {
+                               cell-id = <0x1b6f>;
+                               label = "SN5";
+                               qcom,bcm-name = "SN5";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2db>;
+                               phandle = <0x2db>;
+                       };
+
+                       bcm-sn6 {
+                               cell-id = <0x1b70>;
+                               label = "SN6";
+                               qcom,bcm-name = "SN6";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2d1>;
+                               phandle = <0x2d1>;
+                       };
+
+                       bcm-sn7 {
+                               cell-id = <0x1b71>;
+                               label = "SN7";
+                               qcom,bcm-name = "SN7";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2d9>;
+                               phandle = <0x2d9>;
+                       };
+
+                       bcm-sn8 {
+                               cell-id = <0x1b72>;
+                               label = "SN8";
+                               qcom,bcm-name = "SN8";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2da>;
+                               phandle = <0x2da>;
+                       };
+
+                       bcm-sn9 {
+                               cell-id = <0x1b73>;
+                               label = "SN9";
+                               qcom,bcm-name = "SN9";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2a5>;
+                               phandle = <0x2a5>;
+                       };
+
+                       bcm-sn11 {
+                               cell-id = <0x1b75>;
+                               label = "SN11";
+                               qcom,bcm-name = "SN11";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2a9>;
+                               phandle = <0x2a9>;
+                       };
+
+                       bcm-sn12 {
+                               cell-id = <0x1b76>;
+                               label = "SN12";
+                               qcom,bcm-name = "SN12";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2aa>;
+                               phandle = <0x2aa>;
+                       };
+
+                       bcm-sn14 {
+                               cell-id = <0x1b78>;
+                               label = "SN14";
+                               qcom,bcm-name = "SN14";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2ac>;
+                               phandle = <0x2ac>;
+                       };
+
+                       bcm-sn15 {
+                               cell-id = <0x1b79>;
+                               label = "SN15";
+                               qcom,bcm-name = "SN15";
+                               qcom,rscs = <0x249>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2ab>;
+                               phandle = <0x2ab>;
+                       };
+
+                       bcm-mc0_display {
+                               cell-id = <0x6978>;
+                               label = "MC0_DISPLAY";
+                               qcom,bcm-name = "MC0";
+                               qcom,rscs = <0x24a>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2dc>;
+                               phandle = <0x2dc>;
+                       };
+
+                       bcm-sh0_display {
+                               cell-id = <0x6979>;
+                               label = "SH0_DISPLAY";
+                               qcom,bcm-name = "SH0";
+                               qcom,rscs = <0x24a>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2de>;
+                               phandle = <0x2de>;
+                       };
+
+                       bcm-mm0_display {
+                               cell-id = <0x697a>;
+                               label = "MM0_DISPLAY";
+                               qcom,bcm-name = "MM0";
+                               qcom,rscs = <0x24a>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2e2>;
+                               phandle = <0x2e2>;
+                       };
+
+                       bcm-mm1_display {
+                               cell-id = <0x697b>;
+                               label = "MM1_DISPLAY";
+                               qcom,bcm-name = "MM1";
+                               qcom,rscs = <0x24a>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2b6>;
+                               phandle = <0x2b6>;
+                       };
+
+                       bcm-mm2_display {
+                               cell-id = <0x697c>;
+                               label = "MM2_DISPLAY";
+                               qcom,bcm-name = "MM2";
+                               qcom,rscs = <0x24a>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2e0>;
+                               phandle = <0x2e0>;
+                       };
+
+                       bcm-mm3_display {
+                               cell-id = <0x697d>;
+                               label = "MM3_DISPLAY";
+                               qcom,bcm-name = "MM3";
+                               qcom,rscs = <0x24a>;
+                               qcom,bcm-dev;
+                               linux,phandle = <0x2b8>;
+                               phandle = <0x2b8>;
+                       };
+
+                       fab-aggre1_noc {
+                               cell-id = <0x1802>;
+                               label = "fab-aggre1_noc";
+                               qcom,fab-dev;
+                               qcom,base-name = "aggre1_noc-base";
+                               qcom,qos-off = <0x1000>;
+                               qcom,base-offset = <0x4000>;
+                               qcom,bus-type = <0x1>;
+                               clocks;
+                               linux,phandle = <0x24c>;
+                               phandle = <0x24c>;
+                       };
+
+                       fab-aggre2_noc {
+                               cell-id = <0x1803>;
+                               label = "fab-aggre2_noc";
+                               qcom,fab-dev;
+                               qcom,base-name = "aggre2_noc-base";
+                               qcom,qos-off = <0x1000>;
+                               qcom,base-offset = <0x4000>;
+                               qcom,bus-type = <0x1>;
+                               clocks;
+                               linux,phandle = <0x251>;
+                               phandle = <0x251>;
+                       };
+
+                       fab-camnoc_virt {
+                               cell-id = <0x180a>;
+                               label = "fab-camnoc_virt";
+                               qcom,fab-dev;
+                               qcom,base-name = "camnoc_virt-base";
+                               qcom,bypass-qos-prg;
+                               clocks;
+                               linux,phandle = <0x256>;
+                               phandle = <0x256>;
+                       };
+
+                       fab-config_noc {
+                               cell-id = <0x1400>;
+                               label = "fab-config_noc";
+                               qcom,fab-dev;
+                               qcom,base-name = "config_noc-base";
+                               qcom,bypass-qos-prg;
+                               qcom,bus-type = <0x1>;
+                               clocks;
+                               linux,phandle = <0x259>;
+                               phandle = <0x259>;
+                       };
+
+                       fab-dc_noc {
+                               cell-id = <0x1806>;
+                               label = "fab-dc_noc";
+                               qcom,fab-dev;
+                               qcom,base-name = "dc_noc-base";
+                               qcom,bypass-qos-prg;
+                               qcom,bus-type = <0x1>;
+                               clocks;
+                               linux,phandle = <0x287>;
+                               phandle = <0x287>;
+                       };
+
+                       fab-gladiator_noc {
+                               cell-id = <0x1804>;
+                               label = "fab-gladiator_noc";
+                               qcom,fab-dev;
+                               qcom,base-name = "gladiator_noc-base";
+                               qcom,bypass-qos-prg;
+                               qcom,bus-type = <0x1>;
+                               clocks;
+                               linux,phandle = <0x28b>;
+                               phandle = <0x28b>;
+                       };
+
+                       fab-ipa_virt {
+                               cell-id = <0x1809>;
+                               label = "fab-ipa_virt";
+                               qcom,fab-dev;
+                               qcom,base-name = "ipa_virt-base";
+                               qcom,bypass-qos-prg;
+                               clocks;
+                               linux,phandle = <0x28d>;
+                               phandle = <0x28d>;
+                       };
+
+                       fab-mc_virt {
+                               cell-id = <0x1807>;
+                               label = "fab-mc_virt";
+                               qcom,fab-dev;
+                               qcom,base-name = "mc_virt-base";
+                               qcom,bypass-qos-prg;
+                               clocks;
+                               linux,phandle = <0x28f>;
+                               phandle = <0x28f>;
+                       };
+
+                       fab-mem_noc {
+                               cell-id = <0x1808>;
+                               label = "fab-mem_noc";
+                               qcom,fab-dev;
+                               qcom,base-name = "mem_noc-base";
+                               qcom,qos-off = <0x1000>;
+                               qcom,base-offset = <0x10000>;
+                               qcom,bus-type = <0x1>;
+                               clocks;
+                               linux,phandle = <0x293>;
+                               phandle = <0x293>;
+                       };
+
+                       fab-mmss_noc {
+                               cell-id = <0x800>;
+                               label = "fab-mmss_noc";
+                               qcom,fab-dev;
+                               qcom,base-name = "mmss_noc-base";
+                               qcom,qos-off = <0x1000>;
+                               qcom,base-offset = <0x9000>;
+                               qcom,bus-type = <0x1>;
+                               clocks;
+                               linux,phandle = <0x299>;
+                               phandle = <0x299>;
+                       };
+
+                       fab-system_noc {
+                               cell-id = <0x400>;
+                               label = "fab-system_noc";
+                               qcom,fab-dev;
+                               qcom,base-name = "system_noc-base";
+                               qcom,qos-off = <0x1000>;
+                               qcom,base-offset = <0x9000>;
+                               qcom,bus-type = <0x1>;
+                               clocks;
+                               linux,phandle = <0x29e>;
+                               phandle = <0x29e>;
+                       };
+
+                       fab-mc_virt_display {
+                               cell-id = <0x6590>;
+                               label = "fab-mc_virt_display";
+                               qcom,fab-dev;
+                               qcom,base-name = "mc_virt-base";
+                               qcom,bypass-qos-prg;
+                               clocks;
+                               linux,phandle = <0x2b1>;
+                               phandle = <0x2b1>;
+                       };
+
+                       fab-mem_noc_display {
+                               cell-id = <0x6591>;
+                               label = "fab-mem_noc_display";
+                               qcom,fab-dev;
+                               qcom,base-name = "mem_noc-base";
+                               qcom,qos-off = <0x1000>;
+                               qcom,base-offset = <0x10000>;
+                               qcom,bypass-qos-prg;
+                               qcom,bus-type = <0x1>;
+                               clocks;
+                               linux,phandle = <0x2b3>;
+                               phandle = <0x2b3>;
+                       };
+
+                       fab-mmss_noc_display {
+                               cell-id = <0x6592>;
+                               label = "fab-mmss_noc_display";
+                               qcom,fab-dev;
+                               qcom,base-name = "mmss_noc-base";
+                               qcom,bypass-qos-prg;
+                               qcom,bus-type = <0x1>;
+                               clocks;
+                               linux,phandle = <0x2b5>;
+                               phandle = <0x2b5>;
+                       };
+
+                       mas-qhm-a1noc-cfg {
+                               cell-id = <0x79>;
+                               label = "mas-qhm-a1noc-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,connections = <0x24b>;
+                               qcom,bus-dev = <0x24c>;
+                               linux,phandle = <0x2bc>;
+                               phandle = <0x2bc>;
+                       };
+
+                       mas-qhm-qup1 {
+                               cell-id = <0x56>;
+                               label = "mas-qhm-qup1";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,connections = <0x24d>;
+                               qcom,bus-dev = <0x24c>;
+                               qcom,bcms = <0x24e>;
+                       };
+
+                       mas-qhm-tsif {
+                               cell-id = <0x52>;
+                               label = "mas-qhm-tsif";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,connections = <0x24d>;
+                               qcom,bus-dev = <0x24c>;
+                       };
+
+                       mas-xm-sdc2 {
+                               cell-id = <0x51>;
+                               label = "mas-xm-sdc2";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x1>;
+                               qcom,connections = <0x24d>;
+                               qcom,bus-dev = <0x24c>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x1>;
+                       };
+
+                       mas-xm-sdc4 {
+                               cell-id = <0x50>;
+                               label = "mas-xm-sdc4";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x2>;
+                               qcom,connections = <0x24d>;
+                               qcom,bus-dev = <0x24c>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x1>;
+                       };
+
+                       mas-xm-ufs-card {
+                               cell-id = <0x7a>;
+                               label = "mas-xm-ufs-card";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x3>;
+                               qcom,connections = <0x24d>;
+                               qcom,bus-dev = <0x24c>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x2>;
+                       };
+
+                       mas-xm-ufs-mem {
+                               cell-id = <0x7b>;
+                               label = "mas-xm-ufs-mem";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x4>;
+                               qcom,connections = <0x24d>;
+                               qcom,bus-dev = <0x24c>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x2>;
+                       };
+
+                       mas-xm-pcie-0 {
+                               cell-id = <0x2d>;
+                               label = "mas-xm-pcie-0";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x5>;
+                               qcom,connections = <0x24f>;
+                               qcom,bus-dev = <0x24c>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x2>;
+                       };
+
+                       mas-qhm-a2noc-cfg {
+                               cell-id = <0x7c>;
+                               label = "mas-qhm-a2noc-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,connections = <0x250>;
+                               qcom,bus-dev = <0x251>;
+                               linux,phandle = <0x2bd>;
+                               phandle = <0x2bd>;
+                       };
+
+                       mas-qhm-qdss-bam {
+                               cell-id = <0x35>;
+                               label = "mas-qhm-qdss-bam";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,connections = <0x252>;
+                               qcom,bus-dev = <0x251>;
+                       };
+
+                       mas-qhm-qup2 {
+                               cell-id = <0x54>;
+                               label = "mas-qhm-qup2";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,connections = <0x252>;
+                               qcom,bus-dev = <0x251>;
+                               qcom,bcms = <0x24e>;
+                       };
+
+                       mas-qnm-cnoc {
+                               cell-id = <0x76>;
+                               label = "mas-qnm-cnoc";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x0>;
+                               qcom,connections = <0x252>;
+                               qcom,bus-dev = <0x251>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x1>;
+                               linux,phandle = <0x2c1>;
+                               phandle = <0x2c1>;
+                       };
+
+                       mas-qxm-crypto {
+                               cell-id = <0x7d>;
+                               label = "mas-qxm-crypto";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x1>;
+                               qcom,connections = <0x252>;
+                               qcom,bus-dev = <0x251>;
+                               qcom,bcms = <0x253>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x2>;
+                       };
+
+                       mas-qxm-ipa {
+                               cell-id = <0x5a>;
+                               label = "mas-qxm-ipa";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x2>;
+                               qcom,connections = <0x252>;
+                               qcom,bus-dev = <0x251>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x2>;
+                               qcom,defer-init-qos;
+                               qcom,node-qos-bcms = <0x1b7b 0x0 0x1>;
+                       };
+
+                       mas-xm-pcie3-1 {
+                               cell-id = <0x64>;
+                               label = "mas-xm-pcie3-1";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x6>;
+                               qcom,connections = <0x254>;
+                               qcom,bus-dev = <0x251>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x2>;
+                       };
+
+                       mas-xm-qdss-etr {
+                               cell-id = <0x3c>;
+                               label = "mas-xm-qdss-etr";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x7>;
+                               qcom,connections = <0x252>;
+                               qcom,bus-dev = <0x251>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x2>;
+                       };
+
+                       mas-xm-usb3-0 {
+                               cell-id = <0x3d>;
+                               label = "mas-xm-usb3-0";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0xa>;
+                               qcom,connections = <0x252>;
+                               qcom,bus-dev = <0x251>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x2>;
+
+                               qcom,node-qos-clks {
+                                       clocks = <0x22 0x9>;
+                                       clock-names = "clk-usb3-prim-axi-no-rate";
+                               };
+                       };
+
+                       mas-xm-usb3-1 {
+                               cell-id = <0x65>;
+                               label = "mas-xm-usb3-1";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0xb>;
+                               qcom,connections = <0x252>;
+                               qcom,bus-dev = <0x251>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x2>;
+
+                               qcom,node-qos-clks {
+                                       clocks = <0x22 0xa>;
+                                       clock-names = "clk-usb3-sec-axi-no-rate";
+                               };
+                       };
+
+                       mas-qxm-camnoc-hf0-uncomp {
+                               cell-id = <0x92>;
+                               label = "mas-qxm-camnoc-hf0-uncomp";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,connections = <0x255>;
+                               qcom,bus-dev = <0x256>;
+                               qcom,bcms = <0x257>;
+                       };
+
+                       mas-qxm-camnoc-hf1-uncomp {
+                               cell-id = <0x93>;
+                               label = "mas-qxm-camnoc-hf1-uncomp";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,connections = <0x255>;
+                               qcom,bus-dev = <0x256>;
+                               qcom,bcms = <0x257>;
+                       };
+
+                       mas-qxm-camnoc-sf-uncomp {
+                               cell-id = <0x94>;
+                               label = "mas-qxm-camnoc-sf-uncomp";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,connections = <0x255>;
+                               qcom,bus-dev = <0x256>;
+                               qcom,bcms = <0x257>;
+                       };
+
+                       mas-qhm-spdm {
+                               cell-id = <0x24>;
+                               label = "mas-qhm-spdm";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,connections = <0x258>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                       };
+
+                       mas-qnm-snoc {
+                               cell-id = <0x2733>;
+                               label = "mas-qnm-snoc";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,connections = <0x25b 0x25c 0x25d 0x25e 0x25f 0x260 0x261 0x262 0x263 0x264 0x265 0x266 0x267 0x268 0x269 0x26a 0x26b 0x26c 0x26d 0x26e 0x26f 0x270 0x271 0x272 0x273 0x274 0x275 0x276 0x277 0x278 0x279 0x27a 0x27b 0x27c 0x27d 0x27e 0x27f 0x280 0x281 0x282 0x283 0x284>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x2d2>;
+                               phandle = <0x2d2>;
+                       };
+
+                       mas-qhm-cnoc {
+                               cell-id = <0x7e>;
+                               label = "mas-qhm-cnoc";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,connections = <0x285 0x286>;
+                               qcom,bus-dev = <0x287>;
+                               linux,phandle = <0x2be>;
+                               phandle = <0x2be>;
+                       };
+
+                       mas-acm-l3 {
+                               cell-id = <0x1>;
+                               label = "mas-acm-l3";
+                               qcom,buswidth = <0x10>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,connections = <0x288 0x289 0x28a>;
+                               qcom,bus-dev = <0x28b>;
+                       };
+
+                       mas-pm-gnoc-cfg {
+                               cell-id = <0x7f>;
+                               label = "mas-pm-gnoc-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,connections = <0x288>;
+                               qcom,bus-dev = <0x28b>;
+                       };
+
+                       mas-ipa-core-master {
+                               cell-id = <0x8f>;
+                               label = "mas-ipa-core-master";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,connections = <0x28c>;
+                               qcom,bus-dev = <0x28d>;
+                       };
+
+                       mas-llcc-mc {
+                               cell-id = <0x81>;
+                               label = "mas-llcc-mc";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x4>;
+                               qcom,connections = <0x28e>;
+                               qcom,bus-dev = <0x28f>;
+                               linux,phandle = <0x2c9>;
+                               phandle = <0x2c9>;
+                       };
+
+                       mas-acm-tcu {
+                               cell-id = <0x68>;
+                               label = "mas-acm-tcu";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x0>;
+                               qcom,connections = <0x290 0x291 0x292>;
+                               qcom,bus-dev = <0x293>;
+                               qcom,bcms = <0x294>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x7>;
+                       };
+
+                       mas-qhm-memnoc-cfg {
+                               cell-id = <0x82>;
+                               label = "mas-qhm-memnoc-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,connections = <0x295 0x296>;
+                               qcom,bus-dev = <0x293>;
+                               linux,phandle = <0x2c2>;
+                               phandle = <0x2c2>;
+                       };
+
+                       mas-qnm-apps {
+                               cell-id = <0x83>;
+                               label = "mas-qnm-apps";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x2>;
+                               qcom,qport = <0x2 0x3>;
+                               qcom,connections = <0x291>;
+                               qcom,bus-dev = <0x293>;
+                               qcom,bcms = <0x297>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x0>;
+                               linux,phandle = <0x2c4>;
+                               phandle = <0x2c4>;
+                       };
+
+                       mas-qnm-mnoc-hf {
+                               cell-id = <0x84>;
+                               label = "mas-qnm-mnoc-hf";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x2>;
+                               qcom,qport = <0x4 0x5>;
+                               qcom,connections = <0x290 0x291>;
+                               qcom,bus-dev = <0x293>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x0>;
+                               qcom,forwarding;
+                               qcom,node-qos-bcms = <0x1b64 0x0 0x1>;
+                               linux,phandle = <0x2cf>;
+                               phandle = <0x2cf>;
+                       };
+
+                       mas-qnm-mnoc-sf {
+                               cell-id = <0x85>;
+                               label = "mas-qnm-mnoc-sf";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x7>;
+                               qcom,connections = <0x290 0x291 0x292>;
+                               qcom,bus-dev = <0x293>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x0>;
+                               qcom,forwarding;
+                               qcom,node-qos-bcms = <0x1b64 0x0 0x1>;
+                               linux,phandle = <0x2cd>;
+                               phandle = <0x2cd>;
+                       };
+
+                       mas-qnm-snoc-gc {
+                               cell-id = <0x86>;
+                               label = "mas-qnm-snoc-gc";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x8>;
+                               qcom,connections = <0x291>;
+                               qcom,bus-dev = <0x293>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x0>;
+                               qcom,forwarding;
+                               linux,phandle = <0x2d4>;
+                               phandle = <0x2d4>;
+                       };
+
+                       mas-qnm-snoc-sf {
+                               cell-id = <0x87>;
+                               label = "mas-qnm-snoc-sf";
+                               qcom,buswidth = <0x10>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x9>;
+                               qcom,connections = <0x290 0x291>;
+                               qcom,bus-dev = <0x293>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x0>;
+                               qcom,forwarding;
+                               linux,phandle = <0x2d6>;
+                               phandle = <0x2d6>;
+                       };
+
+                       mas-qxm-gpu {
+                               cell-id = <0x1a>;
+                               label = "mas-qxm-gpu";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x2>;
+                               qcom,qport = <0xa 0xb>;
+                               qcom,connections = <0x290 0x291 0x292>;
+                               qcom,bus-dev = <0x293>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x0>;
+                       };
+
+                       mas-qhm-mnoc-cfg {
+                               cell-id = <0x67>;
+                               label = "mas-qhm-mnoc-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,connections = <0x298>;
+                               qcom,bus-dev = <0x299>;
+                               linux,phandle = <0x2bf>;
+                               phandle = <0x2bf>;
+                       };
+
+                       mas-qxm-camnoc-hf0 {
+                               cell-id = <0x88>;
+                               label = "mas-qxm-camnoc-hf0";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x1>;
+                               qcom,connections = <0x29a>;
+                               qcom,bus-dev = <0x299>;
+                               qcom,bcms = <0x257>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x0>;
+                               qcom,forwarding;
+                               qcom,node-qos-bcms = <0x1b64 0x0 0x1>;
+                       };
+
+                       mas-qxm-camnoc-hf1 {
+                               cell-id = <0x91>;
+                               label = "mas-qxm-camnoc-hf1";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x2>;
+                               qcom,connections = <0x29a>;
+                               qcom,bus-dev = <0x299>;
+                               qcom,bcms = <0x257>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x0>;
+                               qcom,forwarding;
+                               qcom,node-qos-bcms = <0x1b64 0x0 0x1>;
+                       };
+
+                       mas-qxm-camnoc-sf {
+                               cell-id = <0x89>;
+                               label = "mas-qxm-camnoc-sf";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x0>;
+                               qcom,connections = <0x29b>;
+                               qcom,bus-dev = <0x299>;
+                               qcom,bcms = <0x29c>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x0>;
+                               qcom,forwarding;
+                               qcom,node-qos-bcms = <0x1b64 0x0 0x1>;
+                       };
+
+                       mas-qxm-mdp0 {
+                               cell-id = <0x16>;
+                               label = "mas-qxm-mdp0";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x3>;
+                               qcom,connections = <0x29a>;
+                               qcom,bus-dev = <0x299>;
+                               qcom,bcms = <0x257>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x0>;
+                               qcom,forwarding;
+                               qcom,node-qos-bcms = <0x1b64 0x0 0x1>;
+                       };
+
+                       mas-qxm-mdp1 {
+                               cell-id = <0x17>;
+                               label = "mas-qxm-mdp1";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x4>;
+                               qcom,connections = <0x29a>;
+                               qcom,bus-dev = <0x299>;
+                               qcom,bcms = <0x257>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x0>;
+                               qcom,forwarding;
+                               qcom,node-qos-bcms = <0x1b64 0x0 0x1>;
+                       };
+
+                       mas-qxm-rot {
+                               cell-id = <0x19>;
+                               label = "mas-qxm-rot";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x5>;
+                               qcom,connections = <0x29b>;
+                               qcom,bus-dev = <0x299>;
+                               qcom,bcms = <0x29c>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x0>;
+                               qcom,forwarding;
+                               qcom,node-qos-bcms = <0x1b64 0x0 0x1>;
+                       };
+
+                       mas-qxm-venus0 {
+                               cell-id = <0x3f>;
+                               label = "mas-qxm-venus0";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x6>;
+                               qcom,connections = <0x29b>;
+                               qcom,bus-dev = <0x299>;
+                               qcom,bcms = <0x29c>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x0>;
+                               qcom,forwarding;
+                               qcom,node-qos-bcms = <0x1b64 0x0 0x1>;
+                       };
+
+                       mas-qxm-venus1 {
+                               cell-id = <0x40>;
+                               label = "mas-qxm-venus1";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x7>;
+                               qcom,connections = <0x29b>;
+                               qcom,bus-dev = <0x299>;
+                               qcom,bcms = <0x29c>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x0>;
+                               qcom,forwarding;
+                               qcom,node-qos-bcms = <0x1b64 0x0 0x1>;
+                       };
+
+                       mas-qxm-venus-arm9 {
+                               cell-id = <0x8a>;
+                               label = "mas-qxm-venus-arm9";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x8>;
+                               qcom,connections = <0x29b>;
+                               qcom,bus-dev = <0x299>;
+                               qcom,bcms = <0x29c>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x0>;
+                               qcom,forwarding;
+                               qcom,node-qos-bcms = <0x1b64 0x0 0x1>;
+                       };
+
+                       mas-qhm-snoc-cfg {
+                               cell-id = <0x36>;
+                               label = "mas-qhm-snoc-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,connections = <0x29d>;
+                               qcom,bus-dev = <0x29e>;
+                               linux,phandle = <0x2c0>;
+                               phandle = <0x2c0>;
+                       };
+
+                       mas-qnm-aggre1-noc {
+                               cell-id = <0x274f>;
+                               label = "mas-qnm-aggre1-noc";
+                               qcom,buswidth = <0x10>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,connections = <0x29f 0x2a0 0x2a1 0x2a2 0x2a3 0x2a4>;
+                               qcom,bus-dev = <0x29e>;
+                               qcom,bcms = <0x2a5>;
+                               linux,phandle = <0x2b9>;
+                               phandle = <0x2b9>;
+                       };
+
+                       mas-qnm-aggre2-noc {
+                               cell-id = <0x2750>;
+                               label = "mas-qnm-aggre2-noc";
+                               qcom,buswidth = <0x10>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,connections = <0x29f 0x2a0 0x2a6 0x2a1 0x2a2 0x2a3 0x2a7 0x2a8 0x2a4>;
+                               qcom,bus-dev = <0x29e>;
+                               qcom,bcms = <0x2a9>;
+                               linux,phandle = <0x2bb>;
+                               phandle = <0x2bb>;
+                       };
+
+                       mas-qnm-gladiator-sodv {
+                               cell-id = <0x8b>;
+                               label = "mas-qnm-gladiator-sodv";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,connections = <0x29f 0x2a6 0x2a1 0x2a2 0x2a3 0x2a7 0x2a8 0x2a4>;
+                               qcom,bus-dev = <0x29e>;
+                               qcom,bcms = <0x2aa>;
+                               linux,phandle = <0x2c3>;
+                               phandle = <0x2c3>;
+                       };
+
+                       mas-qnm-memnoc {
+                               cell-id = <0x8e>;
+                               label = "mas-qnm-memnoc";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,connections = <0x2a1 0x2a2 0x29f 0x2a3 0x2a4>;
+                               qcom,bus-dev = <0x29e>;
+                               qcom,bcms = <0x2ab>;
+                               linux,phandle = <0x2cb>;
+                               phandle = <0x2cb>;
+                       };
+
+                       mas-qnm-pcie-anoc {
+                               cell-id = <0x8c>;
+                               label = "mas-qnm-pcie-anoc";
+                               qcom,buswidth = <0x10>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,connections = <0x2a1 0x2a2 0x2a3 0x2a0 0x2a4>;
+                               qcom,bus-dev = <0x29e>;
+                               qcom,bcms = <0x2ac>;
+                               linux,phandle = <0x2ba>;
+                               phandle = <0x2ba>;
+                       };
+
+                       mas-qxm-pimem {
+                               cell-id = <0x8d>;
+                               label = "mas-qxm-pimem";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x3>;
+                               qcom,connections = <0x2a1 0x2ad>;
+                               qcom,bus-dev = <0x29e>;
+                               qcom,bcms = <0x2ae>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x2>;
+                       };
+
+                       mas-xm-gic {
+                               cell-id = <0x95>;
+                               label = "mas-xm-gic";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x0>;
+                               qcom,connections = <0x2a1 0x2ad>;
+                               qcom,bus-dev = <0x29e>;
+                               qcom,bcms = <0x2aa>;
+                               qcom,ap-owned;
+                               qcom,prio = <0x1>;
+                       };
+
+                       mas-alc {
+                               cell-id = <0x90>;
+                               label = "mas-alc";
+                               qcom,buswidth = <0x1>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x28f>;
+                               qcom,bcms = <0x2af>;
+                       };
+
+                       mas-llcc-mc_display {
+                               cell-id = <0x4e20>;
+                               label = "mas-llcc-mc_display";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x4>;
+                               qcom,connections = <0x2b0>;
+                               qcom,bus-dev = <0x2b1>;
+                               linux,phandle = <0x2dd>;
+                               phandle = <0x2dd>;
+                       };
+
+                       mas-qnm-mnoc-hf_display {
+                               cell-id = <0x4e21>;
+                               label = "mas-qnm-mnoc-hf_display";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x2>;
+                               qcom,qport = <0x4 0x5>;
+                               qcom,connections = <0x2b2>;
+                               qcom,bus-dev = <0x2b3>;
+                               linux,phandle = <0x2e1>;
+                               phandle = <0x2e1>;
+                       };
+
+                       mas-qnm-mnoc-sf_display {
+                               cell-id = <0x4e22>;
+                               label = "mas-qnm-mnoc-sf_display";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x7>;
+                               qcom,connections = <0x2b2>;
+                               qcom,bus-dev = <0x2b3>;
+                               linux,phandle = <0x2df>;
+                               phandle = <0x2df>;
+                       };
+
+                       mas-qxm-mdp0_display {
+                               cell-id = <0x4e23>;
+                               label = "mas-qxm-mdp0_display";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x3>;
+                               qcom,connections = <0x2b4>;
+                               qcom,bus-dev = <0x2b5>;
+                               qcom,bcms = <0x2b6>;
+                       };
+
+                       mas-qxm-mdp1_display {
+                               cell-id = <0x4e24>;
+                               label = "mas-qxm-mdp1_display";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x4>;
+                               qcom,connections = <0x2b4>;
+                               qcom,bus-dev = <0x2b5>;
+                               qcom,bcms = <0x2b6>;
+                       };
+
+                       mas-qxm-rot_display {
+                               cell-id = <0x4e25>;
+                               label = "mas-qxm-rot_display";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,qport = <0x5>;
+                               qcom,connections = <0x2b7>;
+                               qcom,bus-dev = <0x2b5>;
+                               qcom,bcms = <0x2b8>;
+                       };
+
+                       slv-qns-a1noc-snoc {
+                               cell-id = <0x274e>;
+                               label = "slv-qns-a1noc-snoc";
+                               qcom,buswidth = <0x10>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x24c>;
+                               qcom,connections = <0x2b9>;
+                               linux,phandle = <0x24d>;
+                               phandle = <0x24d>;
+                       };
+
+                       slv-srvc-aggre1-noc {
+                               cell-id = <0x2e8>;
+                               label = "slv-srvc-aggre1-noc";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x24c>;
+                               qcom,bcms = <0x2a5>;
+                               linux,phandle = <0x24b>;
+                               phandle = <0x24b>;
+                       };
+
+                       slv-qns-pcie-a1noc-snoc {
+                               cell-id = <0x2754>;
+                               label = "slv-qns-pcie-a1noc-snoc";
+                               qcom,buswidth = <0x10>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x24c>;
+                               qcom,connections = <0x2ba>;
+                               linux,phandle = <0x24f>;
+                               phandle = <0x24f>;
+                       };
+
+                       slv-qns-a2noc-snoc {
+                               cell-id = <0x2751>;
+                               label = "slv-qns-a2noc-snoc";
+                               qcom,buswidth = <0x10>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x251>;
+                               qcom,connections = <0x2bb>;
+                               linux,phandle = <0x252>;
+                               phandle = <0x252>;
+                       };
+
+                       slv-qns-pcie-snoc {
+                               cell-id = <0x2e9>;
+                               label = "slv-qns-pcie-snoc";
+                               qcom,buswidth = <0x10>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x251>;
+                               qcom,connections = <0x2ba>;
+                               linux,phandle = <0x254>;
+                               phandle = <0x254>;
+                       };
+
+                       slv-srvc-aggre2-noc {
+                               cell-id = <0x2ea>;
+                               label = "slv-srvc-aggre2-noc";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x251>;
+                               qcom,bcms = <0x2a9>;
+                               linux,phandle = <0x250>;
+                               phandle = <0x250>;
+                       };
+
+                       slv-qns-camnoc-uncomp {
+                               cell-id = <0x30a>;
+                               label = "slv-qns-camnoc-uncomp";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x256>;
+                               linux,phandle = <0x255>;
+                               phandle = <0x255>;
+                       };
+
+                       slv-qhs-a1-noc-cfg {
+                               cell-id = <0x2af>;
+                               label = "slv-qhs-a1-noc-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,connections = <0x2bc>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x27a>;
+                               phandle = <0x27a>;
+                       };
+
+                       slv-qhs-a2-noc-cfg {
+                               cell-id = <0x2b0>;
+                               label = "slv-qhs-a2-noc-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,connections = <0x2bd>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x265>;
+                               phandle = <0x265>;
+                       };
+
+                       slv-qhs-aop {
+                               cell-id = <0x2eb>;
+                               label = "slv-qhs-aop";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x272>;
+                               phandle = <0x272>;
+                       };
+
+                       slv-qhs-aoss {
+                               cell-id = <0x2ec>;
+                               label = "slv-qhs-aoss";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x27b>;
+                               phandle = <0x27b>;
+                       };
+
+                       slv-qhs-camera-cfg {
+                               cell-id = <0x24d>;
+                               label = "slv-qhs-camera-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x25d>;
+                               phandle = <0x25d>;
+                       };
+
+                       slv-qhs-clk-ctl {
+                               cell-id = <0x26c>;
+                               label = "slv-qhs-clk-ctl";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x283>;
+                               phandle = <0x283>;
+                       };
+
+                       slv-qhs-compute-dsp-cfg {
+                               cell-id = <0x2ed>;
+                               label = "slv-qhs-compute-dsp-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x271>;
+                               phandle = <0x271>;
+                       };
+
+                       slv-qhs-cpr-cx {
+                               cell-id = <0x28b>;
+                               label = "slv-qhs-cpr-cx";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x279>;
+                               phandle = <0x279>;
+                       };
+
+                       slv-qhs-crypto0-cfg {
+                               cell-id = <0x271>;
+                               label = "slv-qhs-crypto0-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x280>;
+                               phandle = <0x280>;
+                       };
+
+                       slv-qhs-dcc-cfg {
+                               cell-id = <0x2aa>;
+                               label = "slv-qhs-dcc-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,connections = <0x2be>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x269>;
+                               phandle = <0x269>;
+                       };
+
+                       slv-qhs-ddrss-cfg {
+                               cell-id = <0x2ee>;
+                               label = "slv-qhs-ddrss-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x26a>;
+                               phandle = <0x26a>;
+                       };
+
+                       slv-qhs-display-cfg {
+                               cell-id = <0x24e>;
+                               label = "slv-qhs-display-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x267>;
+                               phandle = <0x267>;
+                       };
+
+                       slv-qhs-glm {
+                               cell-id = <0x2d6>;
+                               label = "slv-qhs-glm";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x263>;
+                               phandle = <0x263>;
+                       };
+
+                       slv-qhs-gpuss-cfg {
+                               cell-id = <0x256>;
+                               label = "slv-qhs-gpuss-cfg";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x26e>;
+                               phandle = <0x26e>;
+                       };
+
+                       slv-qhs-imem-cfg {
+                               cell-id = <0x273>;
+                               label = "slv-qhs-imem-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x284>;
+                               phandle = <0x284>;
+                       };
+
+                       slv-qhs-ipa {
+                               cell-id = <0x2a4>;
+                               label = "slv-qhs-ipa";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x278>;
+                               phandle = <0x278>;
+                       };
+
+                       slv-qhs-mnoc-cfg {
+                               cell-id = <0x280>;
+                               label = "slv-qhs-mnoc-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,connections = <0x2bf>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x260>;
+                               phandle = <0x260>;
+                       };
+
+                       slv-qhs-pcie0-cfg {
+                               cell-id = <0x29b>;
+                               label = "slv-qhs-pcie0-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x26d>;
+                               phandle = <0x26d>;
+                       };
+
+                       slv-qhs-pcie-gen3-cfg {
+                               cell-id = <0x29c>;
+                               label = "slv-qhs-pcie-gen3-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x26c>;
+                               phandle = <0x26c>;
+                       };
+
+                       slv-qhs-pdm {
+                               cell-id = <0x267>;
+                               label = "slv-qhs-pdm";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x264>;
+                               phandle = <0x264>;
+                       };
+
+                       slv-qhs-phy-refgen-south {
+                               cell-id = <0x2f0>;
+                               label = "slv-qhs-phy-refgen-south";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x26b>;
+                               phandle = <0x26b>;
+                       };
+
+                       slv-qhs-pimem-cfg {
+                               cell-id = <0x2a9>;
+                               label = "slv-qhs-pimem-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x281>;
+                               phandle = <0x281>;
+                       };
+
+                       slv-qhs-prng {
+                               cell-id = <0x26a>;
+                               label = "slv-qhs-prng";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x27c>;
+                               phandle = <0x27c>;
+                       };
+
+                       slv-qhs-qdss-cfg {
+                               cell-id = <0x27b>;
+                               label = "slv-qhs-qdss-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x266>;
+                               phandle = <0x266>;
+                       };
+
+                       slv-qhs-qupv3-north {
+                               cell-id = <0x263>;
+                               label = "slv-qhs-qupv3-north";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x273>;
+                               phandle = <0x273>;
+                       };
+
+                       slv-qhs-qupv3-south {
+                               cell-id = <0x265>;
+                               label = "slv-qhs-qupv3-south";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x27e>;
+                               phandle = <0x27e>;
+                       };
+
+                       slv-qhs-sdc2 {
+                               cell-id = <0x260>;
+                               label = "slv-qhs-sdc2";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x25f>;
+                               phandle = <0x25f>;
+                       };
+
+                       slv-qhs-sdc4 {
+                               cell-id = <0x261>;
+                               label = "slv-qhs-sdc4";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x25e>;
+                               phandle = <0x25e>;
+                       };
+
+                       slv-qhs-snoc-cfg {
+                               cell-id = <0x282>;
+                               label = "slv-qhs-snoc-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,connections = <0x2c0>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x262>;
+                               phandle = <0x262>;
+                       };
+
+                       slv-qhs-spdm {
+                               cell-id = <0x279>;
+                               label = "slv-qhs-spdm";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x27f>;
+                               phandle = <0x27f>;
+                       };
+
+                       slv-qhs-spss-cfg {
+                               cell-id = <0x2f1>;
+                               label = "slv-qhs-spss-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x25c>;
+                               phandle = <0x25c>;
+                       };
+
+                       slv-qhs-tcsr {
+                               cell-id = <0x26f>;
+                               label = "slv-qhs-tcsr";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x268>;
+                               phandle = <0x268>;
+                       };
+
+                       slv-qhs-tlmm-north {
+                               cell-id = <0x2db>;
+                               label = "slv-qhs-tlmm-north";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x282>;
+                               phandle = <0x282>;
+                       };
+
+                       slv-qhs-tlmm-south {
+                               cell-id = <0x2f3>;
+                               label = "slv-qhs-tlmm-south";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x25b>;
+                               phandle = <0x25b>;
+                       };
+
+                       slv-qhs-tsif {
+                               cell-id = <0x23f>;
+                               label = "slv-qhs-tsif";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x270>;
+                               phandle = <0x270>;
+                       };
+
+                       slv-qhs-ufs-card-cfg {
+                               cell-id = <0x2f4>;
+                               label = "slv-qhs-ufs-card-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x276>;
+                               phandle = <0x276>;
+                       };
+
+                       slv-qhs-ufs-mem-cfg {
+                               cell-id = <0x2f5>;
+                               label = "slv-qhs-ufs-mem-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x261>;
+                               phandle = <0x261>;
+                       };
+
+                       slv-qhs-usb3-0 {
+                               cell-id = <0x247>;
+                               label = "slv-qhs-usb3-0";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x274>;
+                               phandle = <0x274>;
+                       };
+
+                       slv-qhs-usb3-1 {
+                               cell-id = <0x2ef>;
+                               label = "slv-qhs-usb3-1";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x277>;
+                               phandle = <0x277>;
+                       };
+
+                       slv-qhs-venus-cfg {
+                               cell-id = <0x254>;
+                               label = "slv-qhs-venus-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x26f>;
+                               phandle = <0x26f>;
+                       };
+
+                       slv-qhs-vsense-ctrl-cfg {
+                               cell-id = <0x2f6>;
+                               label = "slv-qhs-vsense-ctrl-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x27d>;
+                               phandle = <0x27d>;
+                       };
+
+                       slv-qns-cnoc-a2noc {
+                               cell-id = <0x2d5>;
+                               label = "slv-qns-cnoc-a2noc";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,connections = <0x2c1>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x258>;
+                               phandle = <0x258>;
+                       };
+
+                       slv-srvc-cnoc {
+                               cell-id = <0x286>;
+                               label = "slv-srvc-cnoc";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x259>;
+                               qcom,bcms = <0x25a>;
+                               linux,phandle = <0x275>;
+                               phandle = <0x275>;
+                       };
+
+                       slv-qhs-llcc {
+                               cell-id = <0x2f8>;
+                               label = "slv-qhs-llcc";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x287>;
+                               linux,phandle = <0x286>;
+                               phandle = <0x286>;
+                       };
+
+                       slv-qhs-memnoc {
+                               cell-id = <0x2f9>;
+                               label = "slv-qhs-memnoc";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x287>;
+                               qcom,connections = <0x2c2>;
+                               linux,phandle = <0x285>;
+                               phandle = <0x285>;
+                       };
+
+                       slv-qns-gladiator-sodv {
+                               cell-id = <0x2d8>;
+                               label = "slv-qns-gladiator-sodv";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x28b>;
+                               qcom,connections = <0x2c3>;
+                               linux,phandle = <0x289>;
+                               phandle = <0x289>;
+                       };
+
+                       slv-qns-gnoc-memnoc {
+                               cell-id = <0x2fb>;
+                               label = "slv-qns-gnoc-memnoc";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x2>;
+                               qcom,bus-dev = <0x28b>;
+                               qcom,connections = <0x2c4>;
+                               linux,phandle = <0x28a>;
+                               phandle = <0x28a>;
+                       };
+
+                       slv-srvc-gnoc {
+                               cell-id = <0x2fc>;
+                               label = "slv-srvc-gnoc";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x28b>;
+                               linux,phandle = <0x288>;
+                               phandle = <0x288>;
+                       };
+
+                       slv-ipa-core-slave {
+                               cell-id = <0x309>;
+                               label = "slv-ipa-core-slave";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x28d>;
+                               qcom,bcms = <0x2c5>;
+                               linux,phandle = <0x28c>;
+                               phandle = <0x28c>;
+                       };
+
+                       slv-ebi {
+                               cell-id = <0x200>;
+                               label = "slv-ebi";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x4>;
+                               qcom,bus-dev = <0x28f>;
+                               qcom,bcms = <0x2c6 0x2c7>;
+                               linux,phandle = <0x28e>;
+                               phandle = <0x28e>;
+                       };
+
+                       slv-qhs-mdsp-ms-mpu-cfg {
+                               cell-id = <0x2fd>;
+                               label = "slv-qhs-mdsp-ms-mpu-cfg";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x293>;
+                               linux,phandle = <0x296>;
+                               phandle = <0x296>;
+                       };
+
+                       slv-qns-apps-io {
+                               cell-id = <0x2fe>;
+                               label = "slv-qns-apps-io";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x293>;
+                               qcom,bcms = <0x2c8>;
+                               linux,phandle = <0x290>;
+                               phandle = <0x290>;
+                       };
+
+                       slv-qns-llcc {
+                               cell-id = <0x302>;
+                               label = "slv-qns-llcc";
+                               qcom,buswidth = <0x10>;
+                               qcom,agg-ports = <0x4>;
+                               qcom,bus-dev = <0x293>;
+                               qcom,connections = <0x2c9>;
+                               qcom,bcms = <0x2ca>;
+                               linux,phandle = <0x291>;
+                               phandle = <0x291>;
+                       };
+
+                       slv-qns-memnoc-snoc {
+                               cell-id = <0x308>;
+                               label = "slv-qns-memnoc-snoc";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x293>;
+                               qcom,connections = <0x2cb>;
+                               qcom,bcms = <0x2cc>;
+                               linux,phandle = <0x292>;
+                               phandle = <0x292>;
+                       };
+
+                       slv-srvc-memnoc {
+                               cell-id = <0x303>;
+                               label = "slv-srvc-memnoc";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x293>;
+                               linux,phandle = <0x295>;
+                               phandle = <0x295>;
+                       };
+
+                       slv-qns2-mem-noc {
+                               cell-id = <0x304>;
+                               label = "slv-qns2-mem-noc";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x299>;
+                               qcom,connections = <0x2cd>;
+                               qcom,bcms = <0x2ce>;
+                               linux,phandle = <0x29b>;
+                               phandle = <0x29b>;
+                       };
+
+                       slv-qns-mem-noc-hf {
+                               cell-id = <0x305>;
+                               label = "slv-qns-mem-noc-hf";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x2>;
+                               qcom,bus-dev = <0x299>;
+                               qcom,connections = <0x2cf>;
+                               qcom,bcms = <0x2d0>;
+                               linux,phandle = <0x29a>;
+                               phandle = <0x29a>;
+                       };
+
+                       slv-srvc-mnoc {
+                               cell-id = <0x25b>;
+                               label = "slv-srvc-mnoc";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x299>;
+                               linux,phandle = <0x298>;
+                               phandle = <0x298>;
+                       };
+
+                       slv-qhs-apss {
+                               cell-id = <0x2a1>;
+                               label = "slv-qhs-apss";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x29e>;
+                               qcom,bcms = <0x2d1>;
+                               linux,phandle = <0x2a2>;
+                               phandle = <0x2a2>;
+                       };
+
+                       slv-qns-cnoc {
+                               cell-id = <0x2734>;
+                               label = "slv-qns-cnoc";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x29e>;
+                               qcom,connections = <0x2d2>;
+                               qcom,bcms = <0x2d3>;
+                               linux,phandle = <0x2a3>;
+                               phandle = <0x2a3>;
+                       };
+
+                       slv-qns-memnoc-gc {
+                               cell-id = <0x306>;
+                               label = "slv-qns-memnoc-gc";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x29e>;
+                               qcom,connections = <0x2d4>;
+                               qcom,bcms = <0x2d5>;
+                               linux,phandle = <0x2ad>;
+                               phandle = <0x2ad>;
+                       };
+
+                       slv-qns-memnoc-sf {
+                               cell-id = <0x307>;
+                               label = "slv-qns-memnoc-sf";
+                               qcom,buswidth = <0x10>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x29e>;
+                               qcom,connections = <0x2d6>;
+                               qcom,bcms = <0x2d7>;
+                               linux,phandle = <0x2a0>;
+                               phandle = <0x2a0>;
+                       };
+
+                       slv-qxs-imem {
+                               cell-id = <0x249>;
+                               label = "slv-qxs-imem";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x29e>;
+                               qcom,bcms = <0x2d8>;
+                               linux,phandle = <0x2a1>;
+                               phandle = <0x2a1>;
+                       };
+
+                       slv-qxs-pcie {
+                               cell-id = <0x299>;
+                               label = "slv-qxs-pcie";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x29e>;
+                               qcom,bcms = <0x2d9>;
+                               linux,phandle = <0x2a7>;
+                               phandle = <0x2a7>;
+                       };
+
+                       slv-qxs-pcie-gen3 {
+                               cell-id = <0x29a>;
+                               label = "slv-qxs-pcie-gen3";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x29e>;
+                               qcom,bcms = <0x2da>;
+                               linux,phandle = <0x2a6>;
+                               phandle = <0x2a6>;
+                       };
+
+                       slv-qxs-pimem {
+                               cell-id = <0x2c8>;
+                               label = "slv-qxs-pimem";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x29e>;
+                               linux,phandle = <0x29f>;
+                               phandle = <0x29f>;
+                       };
+
+                       slv-srvc-snoc {
+                               cell-id = <0x24b>;
+                               label = "slv-srvc-snoc";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x29e>;
+                               qcom,bcms = <0x2d1>;
+                               linux,phandle = <0x29d>;
+                               phandle = <0x29d>;
+                       };
+
+                       slv-xs-qdss-stm {
+                               cell-id = <0x24c>;
+                               label = "slv-xs-qdss-stm";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x29e>;
+                               qcom,bcms = <0x2db>;
+                               linux,phandle = <0x2a4>;
+                               phandle = <0x2a4>;
+                       };
+
+                       slv-xs-sys-tcu-cfg {
+                               cell-id = <0x2a0>;
+                               label = "slv-xs-sys-tcu-cfg";
+                               qcom,buswidth = <0x8>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x29e>;
+                               qcom,bcms = <0x2d1>;
+                               linux,phandle = <0x2a8>;
+                               phandle = <0x2a8>;
+                       };
+
+                       slv-ebi_display {
+                               cell-id = <0x5020>;
+                               label = "slv-ebi_display";
+                               qcom,buswidth = <0x4>;
+                               qcom,agg-ports = <0x4>;
+                               qcom,bus-dev = <0x2b1>;
+                               qcom,bcms = <0x2dc>;
+                               linux,phandle = <0x2b0>;
+                               phandle = <0x2b0>;
+                       };
+
+                       slv-qns-llcc_display {
+                               cell-id = <0x5021>;
+                               label = "slv-qns-llcc_display";
+                               qcom,buswidth = <0x10>;
+                               qcom,agg-ports = <0x4>;
+                               qcom,bus-dev = <0x2b3>;
+                               qcom,connections = <0x2dd>;
+                               qcom,bcms = <0x2de>;
+                               linux,phandle = <0x2b2>;
+                               phandle = <0x2b2>;
+                       };
+
+                       slv-qns2-mem-noc_display {
+                               cell-id = <0x5022>;
+                               label = "slv-qns2-mem-noc_display";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x1>;
+                               qcom,bus-dev = <0x2b5>;
+                               qcom,connections = <0x2df>;
+                               qcom,bcms = <0x2e0>;
+                               linux,phandle = <0x2b7>;
+                               phandle = <0x2b7>;
+                       };
+
+                       slv-qns-mem-noc-hf_display {
+                               cell-id = <0x5023>;
+                               label = "slv-qns-mem-noc-hf_display";
+                               qcom,buswidth = <0x20>;
+                               qcom,agg-ports = <0x2>;
+                               qcom,bus-dev = <0x2b5>;
+                               qcom,connections = <0x2e1>;
+                               qcom,bcms = <0x2e2>;
+                               linux,phandle = <0x2b4>;
+                               phandle = <0x2b4>;
+                       };
+               };
+
+               qcom,vidc@aa00000 {
+                       compatible = "qcom,msm-vidc", "qcom,sdm845-vidc";
+                       status = "ok";
+                       reg = <0xaa00000 0x200000>;
+                       interrupts = <0x0 0xae 0x4>;
+                       cache-slice-names = "vidsc0", "vidsc1";
+                       cache-slices = <0x34 0x2 0x34 0x3>;
+                       venus-supply = <0x11e>;
+                       venus-core0-supply = <0x2e3>;
+                       venus-core1-supply = <0x2e4>;
+                       clock-names = "core_clk", "iface_clk", "bus_clk", "core0_clk", "core0_bus_clk", "core1_clk", "core1_bus_clk";
+                       clocks = <0xdc 0xb 0xdc 0x8 0xdc 0xa 0xdc 0x5 0xdc 0x4 0xdc 0x7 0xdc 0x6>;
+                       qcom,proxy-clock-names = "core_clk", "iface_clk", "bus_clk", "core0_clk", "core0_bus_clk", "core1_clk", "core1_bus_clk";
+                       qcom,clock-configs = <0x1 0x0 0x0 0x1 0x0 0x1 0x0>;
+                       qcom,allowed-clock-rates = <0x5f5e100 0xbebc200 0x13ab6680 0x18148d00 0x1a76e700 0x1fc4ef40>;
+
+                       bus_cnoc {
+                               compatible = "qcom,msm-vidc,bus";
+                               label = "cnoc";
+                               qcom,bus-master = <0x1>;
+                               qcom,bus-slave = <0x254>;
+                               qcom,bus-governor = "performance";
+                               qcom,bus-range-kbps = <0x3e8 0x3e8>;
+                       };
+
+                       venus_bus_ddr {
+                               compatible = "qcom,msm-vidc,bus";
+                               label = "venus-ddr";
+                               qcom,bus-master = <0x81>;
+                               qcom,bus-slave = <0x200>;
+                               qcom,bus-governor = "msm-vidc-ddr";
+                               qcom,bus-range-kbps = <0x3e8 0x33b260>;
+                       };
+
+                       arm9_bus_ddr {
+                               compatible = "qcom,msm-vidc,bus";
+                               label = "venus-arm9-ddr";
+                               qcom,bus-master = <0x3f>;
+                               qcom,bus-slave = <0x200>;
+                               qcom,bus-governor = "performance";
+                               qcom,bus-range-kbps = <0x3e8 0x3e8>;
+                       };
+
+                       venus_bus_llcc {
+                               compatible = "qcom,msm-vidc,bus";
+                               label = "venus-llcc";
+                               qcom,bus-master = <0x3f>;
+                               qcom,bus-slave = <0x302>;
+                               qcom,bus-governor = "msm-vidc-llcc";
+                               qcom,bus-range-kbps = <0x4268 0x33b260>;
+                       };
+
+                       non_secure_cb {
+                               compatible = "qcom,msm-vidc,context-bank";
+                               label = "venus_ns";
+                               iommus = <0x29 0x10a0 0x8 0x29 0x10b0 0x0>;
+                               buffer-types = <0xfff>;
+                               virtual-addr-pool = <0x70800000 0x6f800000>;
+                       };
+
+                       secure_bitstream_cb {
+                               compatible = "qcom,msm-vidc,context-bank";
+                               label = "venus_sec_bitstream";
+                               iommus = <0x29 0x10a1 0x8 0x29 0x10a5 0x8>;
+                               buffer-types = <0x241>;
+                               virtual-addr-pool = <0x4b000000 0x25800000>;
+                               qcom,secure-context-bank;
+                       };
+
+                       secure_pixel_cb {
+                               compatible = "qcom,msm-vidc,context-bank";
+                               label = "venus_sec_pixel";
+                               iommus = <0x29 0x10a3 0x8>;
+                               buffer-types = <0x106>;
+                               virtual-addr-pool = <0x25800000 0x25800000>;
+                               qcom,secure-context-bank;
+                       };
+
+                       secure_non_pixel_cb {
+                               compatible = "qcom,msm-vidc,context-bank";
+                               label = "venus_sec_non_pixel";
+                               iommus = <0x29 0x10a4 0x8 0x29 0x10b4 0x0>;
+                               buffer-types = <0x480>;
+                               virtual-addr-pool = <0x1000000 0x24800000>;
+                               qcom,secure-context-bank;
+                       };
+               };
+
+               qcom,lpm-levels {
+                       compatible = "qcom,lpm-levels";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+
+                       qcom,pm-cluster@0 {
+                               reg = <0x0>;
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+                               label = "L3";
+                               qcom,clstr-tmr-add = <0x3e8>;
+                               qcom,psci-mode-shift = <0x4>;
+                               qcom,psci-mode-mask = <0xfff>;
+
+                               qcom,pm-cluster-level@0 {
+                                       reg = <0x0>;
+                                       label = "l3-wfi";
+                                       qcom,psci-mode = <0x1>;
+                                       qcom,latency-us = <0x33>;
+                                       qcom,ss-power = <0x1c4>;
+                                       qcom,energy-overhead = <0x10eeb>;
+                                       qcom,time-overhead = <0x63>;
+                               };
+
+                               qcom,pm-cluster-level@1 {
+                                       reg = <0x1>;
+                                       label = "llcc-off";
+                                       qcom,psci-mode = <0xc24>;
+                                       qcom,latency-us = <0x19a2>;
+                                       qcom,ss-power = <0x6c>;
+                                       qcom,energy-overhead = <0x3d0900>;
+                                       qcom,time-overhead = <0x1388>;
+                                       qcom,min-child-idx = <0x2>;
+                                       qcom,is-reset;
+                                       qcom,notify-rpm;
+                               };
+
+                               qcom,pm-cpu@0 {
+                                       #address-cells = <0x1>;
+                                       #size-cells = <0x0>;
+                                       qcom,psci-mode-shift = <0x0>;
+                                       qcom,psci-mode-mask = <0xf>;
+                                       qcom,ref-stddev = <0x1f4>;
+                                       qcom,tmr-add = <0x3e8>;
+                                       qcom,ref-premature-cnt = <0x1>;
+                                       qcom,cpu = <0x11 0x12 0x13 0x14>;
+
+                                       qcom,pm-cpu-level@0 {
+                                               reg = <0x0>;
+                                               label = "wfi";
+                                               qcom,psci-cpu-mode = <0x1>;
+                                               qcom,latency-us = <0x2b>;
+                                               qcom,ss-power = <0x96>;
+                                               qcom,energy-overhead = <0x2710>;
+                                               qcom,time-overhead = <0x64>;
+                                       };
+
+                                       qcom,pm-cpu-level@1 {
+                                               reg = <0x1>;
+                                               label = "pc";
+                                               qcom,psci-cpu-mode = <0x3>;
+                                               qcom,latency-us = <0x1cd>;
+                                               qcom,ss-power = <0x64>;
+                                               qcom,energy-overhead = <0x61a80>;
+                                               qcom,time-overhead = <0x1f4>;
+                                               qcom,is-reset;
+                                               qcom,use-broadcast-timer;
+                                       };
+
+                                       qcom,pm-cpu-level@2 {
+                                               reg = <0x2>;
+                                               label = "rail-pc";
+                                               qcom,psci-cpu-mode = <0x4>;
+                                               qcom,latency-us = <0x213>;
+                                               qcom,ss-power = <0x49>;
+                                               qcom,energy-overhead = <0x7a120>;
+                                               qcom,time-overhead = <0x258>;
+                                               qcom,is-reset;
+                                               qcom,use-broadcast-timer;
+                                       };
+                               };
+
+                               qcom,pm-cpu@1 {
+                                       #address-cells = <0x1>;
+                                       #size-cells = <0x0>;
+                                       qcom,psci-mode-shift = <0x0>;
+                                       qcom,psci-mode-mask = <0xf>;
+                                       qcom,ref-stddev = <0x64>;
+                                       qcom,tmr-add = <0x64>;
+                                       qcom,ref-premature-cnt = <0x3>;
+                                       qcom,cpu = <0x15 0x16 0x17 0x18>;
+
+                                       qcom,pm-cpu-level@0 {
+                                               reg = <0x0>;
+                                               label = "wfi";
+                                               qcom,psci-cpu-mode = <0x1>;
+                                               qcom,latency-us = <0x2b>;
+                                               qcom,ss-power = <0x1c6>;
+                                               qcom,energy-overhead = <0x96ef>;
+                                               qcom,time-overhead = <0x53>;
+                                       };
+
+                                       qcom,pm-cpu-level@1 {
+                                               reg = <0x1>;
+                                               label = "pc";
+                                               qcom,psci-cpu-mode = <0x3>;
+                                               qcom,latency-us = <0x26d>;
+                                               qcom,ss-power = <0x1b4>;
+                                               qcom,energy-overhead = <0x661b1>;
+                                               qcom,time-overhead = <0x375>;
+                                               qcom,is-reset;
+                                               qcom,use-broadcast-timer;
+                                       };
+
+                                       qcom,pm-cpu-level@2 {
+                                               reg = <0x2>;
+                                               label = "rail-pc";
+                                               qcom,psci-cpu-mode = <0x4>;
+                                               qcom,latency-us = <0x425>;
+                                               qcom,ss-power = <0x190>;
+                                               qcom,energy-overhead = <0x688c1>;
+                                               qcom,time-overhead = <0x3e8>;
+                                               qcom,is-reset;
+                                               qcom,use-broadcast-timer;
+                                       };
+                               };
+                       };
+               };
+
+               qcom,rpm-stats@c300000 {
+                       compatible = "qcom,rpm-stats";
+                       reg = <0xc300000 0x1000 0xc3f0004 0x4>;
+                       reg-names = "phys_addr_base", "offset_addr";
+               };
+
+               qcom,rpmh-master-stats@b221200 {
+                       compatible = "qcom,rpmh-master-stats-v1";
+                       reg = <0xb221200 0x60>;
+                       qcom,use-alt-unit = <0x3>;
+               };
+
+               pinctrl@03400000 {
+                       compatible = "qcom,sdm845-pinctrl-v2";
+                       reg = <0x3400000 0xc00000 0x179900f0 0x60>;
+                       reg-names = "pinctrl_regs", "spi_cfg_regs";
+                       interrupts = <0x0 0xd0 0x0>;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+                       interrupt-parent = <0x1>;
+                       linux,phandle = <0x2e>;
+                       phandle = <0x2e>;
+
+                       ufs_dev_reset_assert {
+                               linux,phandle = <0xe3>;
+                               phandle = <0xe3>;
+
+                               config {
+                                       pins = "ufs_reset";
+                                       bias-pull-down;
+                                       drive-strength = <0x8>;
+                                       output-low;
+                               };
+                       };
+
+                       ufs_dev_reset_deassert {
+                               linux,phandle = <0xe4>;
+                               phandle = <0xe4>;
+
+                               config {
+                                       pins = "ufs_reset";
+                                       bias-pull-down;
+                                       drive-strength = <0x8>;
+                                       output-high;
+                               };
+                       };
+
+                       flash_led3_front {
+
+                               flash_led3_front_en {
+
+                                       mux {
+                                               pins = "gpio21";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio21";
+                                               drive_strength = <0x2>;
+                                               output-high;
+                                               bias-disable;
+                                       };
+                               };
+
+                               flash_led3_front_dis {
+
+                                       mux {
+                                               pins = "gpio21";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio21";
+                                               drive_strength = <0x2>;
+                                               output-low;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       flash_led3_iris {
+
+                               flash_led3_iris_en {
+                                       linux,phandle = <0xb7>;
+                                       phandle = <0xb7>;
+
+                                       mux {
+                                               pins = "gpio23";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio23";
+                                               drive_strength = <0x2>;
+                                               output-high;
+                                               bias-disable;
+                                       };
+                               };
+
+                               flash_led3_iris_dis {
+                                       linux,phandle = <0xb8>;
+                                       phandle = <0xb8>;
+
+                                       mux {
+                                               pins = "gpio23";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio23";
+                                               drive_strength = <0x2>;
+                                               output-low;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       wcd9xxx_intr {
+
+                               wcd_intr_default {
+                                       linux,phandle = <0x364>;
+                                       phandle = <0x364>;
+
+                                       mux {
+                                               pins = "gpio54";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio54";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+                       };
+
+                       storage_cd {
+                               linux,phandle = <0xed>;
+                               phandle = <0xed>;
+
+                               mux {
+                                       pins = "gpio126";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio126";
+                                       bias-pull-up;
+                                       drive-strength = <0x2>;
+                               };
+                       };
+
+                       sdc2_clk_on {
+                               linux,phandle = <0xea>;
+                               phandle = <0xea>;
+
+                               config {
+                                       pins = "sdc2_clk";
+                                       bias-disable;
+                                       drive-strength = <0x10>;
+                               };
+                       };
+
+                       sdc2_clk_off {
+                               linux,phandle = <0xee>;
+                               phandle = <0xee>;
+
+                               config {
+                                       pins = "sdc2_clk";
+                                       bias-disable;
+                                       drive-strength = <0x2>;
+                               };
+                       };
+
+                       sdc2_clk_ds_400KHz {
+                               linux,phandle = <0xf1>;
+                               phandle = <0xf1>;
+
+                               config {
+                                       pins = "sdc2_clk";
+                                       bias-disable;
+                                       drive-strength = <0x10>;
+                               };
+                       };
+
+                       sdc2_clk_ds_50MHz {
+                               linux,phandle = <0xf4>;
+                               phandle = <0xf4>;
+
+                               config {
+                                       pins = "sdc2_clk";
+                                       bias-disable;
+                                       drive-strength = <0x10>;
+                               };
+                       };
+
+                       sdc2_clk_ds_100MHz {
+                               linux,phandle = <0xf7>;
+                               phandle = <0xf7>;
+
+                               config {
+                                       pins = "sdc2_clk";
+                                       bias-disable;
+                                       drive-strength = <0x10>;
+                               };
+                       };
+
+                       sdc2_clk_ds_200MHz {
+                               linux,phandle = <0xfa>;
+                               phandle = <0xfa>;
+
+                               config {
+                                       pins = "sdc2_clk";
+                                       bias-disable;
+                                       drive-strength = <0x10>;
+                               };
+                       };
+
+                       sdc2_cmd_on {
+                               linux,phandle = <0xeb>;
+                               phandle = <0xeb>;
+
+                               config {
+                                       pins = "sdc2_cmd";
+                                       bias-pull-up;
+                                       drive-strength = <0xa>;
+                               };
+                       };
+
+                       sdc2_cmd_off {
+                               linux,phandle = <0xef>;
+                               phandle = <0xef>;
+
+                               config {
+                                       pins = "sdc2_cmd";
+                                       bias-pull-up;
+                                       drive-strength = <0x2>;
+                               };
+                       };
+
+                       sdc2_cmd_ds_400KHz {
+                               linux,phandle = <0xf2>;
+                               phandle = <0xf2>;
+
+                               config {
+                                       pins = "sdc2_cmd";
+                                       bias-pull-up;
+                                       drive-strength = <0xa>;
+                               };
+                       };
+
+                       sdc2_cmd_ds_50MHz {
+                               linux,phandle = <0xf5>;
+                               phandle = <0xf5>;
+
+                               config {
+                                       pins = "sdc2_cmd";
+                                       bias-pull-up;
+                                       drive-strength = <0xa>;
+                               };
+                       };
+
+                       sdc2_cmd_ds_100MHz {
+                               linux,phandle = <0xf8>;
+                               phandle = <0xf8>;
+
+                               config {
+                                       pins = "sdc2_cmd";
+                                       bias-pull-up;
+                                       drive-strength = <0xa>;
+                               };
+                       };
+
+                       sdc2_cmd_ds_200MHz {
+                               linux,phandle = <0xfb>;
+                               phandle = <0xfb>;
+
+                               config {
+                                       pins = "sdc2_cmd";
+                                       bias-pull-up;
+                                       drive-strength = <0xa>;
+                               };
+                       };
+
+                       sdc2_data_on {
+                               linux,phandle = <0xec>;
+                               phandle = <0xec>;
+
+                               config {
+                                       pins = "sdc2_data";
+                                       bias-pull-up;
+                                       drive-strength = <0xa>;
+                               };
+                       };
+
+                       sdc2_data_off {
+                               linux,phandle = <0xf0>;
+                               phandle = <0xf0>;
+
+                               config {
+                                       pins = "sdc2_data";
+                                       bias-pull-up;
+                                       drive-strength = <0x2>;
+                               };
+                       };
+
+                       sdc2_data_ds_400KHz {
+                               linux,phandle = <0xf3>;
+                               phandle = <0xf3>;
+
+                               config {
+                                       pins = "sdc2_data";
+                                       bias-pull-up;
+                                       drive-strength = <0xa>;
+                               };
+                       };
+
+                       sdc2_data_ds_50MHz {
+                               linux,phandle = <0xf6>;
+                               phandle = <0xf6>;
+
+                               config {
+                                       pins = "sdc2_data";
+                                       bias-pull-up;
+                                       drive-strength = <0xa>;
+                               };
+                       };
+
+                       sdc2_data_ds_100MHz {
+                               linux,phandle = <0xf9>;
+                               phandle = <0xf9>;
+
+                               config {
+                                       pins = "sdc2_data";
+                                       bias-pull-up;
+                                       drive-strength = <0xa>;
+                               };
+                       };
+
+                       sdc2_data_ds_200MHz {
+                               linux,phandle = <0xfc>;
+                               phandle = <0xfc>;
+
+                               config {
+                                       pins = "sdc2_data";
+                                       bias-pull-up;
+                                       drive-strength = <0xa>;
+                               };
+                       };
+
+                       pcie0 {
+
+                               pcie0_clkreq_default {
+                                       linux,phandle = <0x2e5>;
+                                       phandle = <0x2e5>;
+
+                                       mux {
+                                               pins = "gpio36";
+                                               function = "pci_e0";
+                                       };
+
+                                       config {
+                                               pins = "gpio36";
+                                               drive-strength = <0x2>;
+                                               bias-pull-up;
+                                       };
+                               };
+
+                               pcie0_perst_default {
+                                       linux,phandle = <0x2e6>;
+                                       phandle = <0x2e6>;
+
+                                       mux {
+                                               pins = "gpio35";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio35";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                       };
+                               };
+
+                               pcie0_wake_default {
+                                       linux,phandle = <0x2e7>;
+                                       phandle = <0x2e7>;
+
+                                       mux {
+                                               pins = "gpio37";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio37";
+                                               drive-strength = <0x2>;
+                                               bias-pull-up;
+                                       };
+                               };
+
+                               pcie0_3v3_on {
+
+                                       mux {
+                                               pins = "gpio90";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio90";
+                                               drive_strength = <0x2>;
+                                               bias-disable;
+                                               output-high;
+                                       };
+                               };
+
+                               pcie0_1v5_on {
+
+                                       mux {
+                                               pins = "gpio90";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio90";
+                                               drive_strength = <0x2>;
+                                               bias-disable;
+                                               output-high;
+                                       };
+                               };
+                       };
+
+                       pcie1 {
+
+                               pcie1_clkreq_default {
+                                       linux,phandle = <0x2ea>;
+                                       phandle = <0x2ea>;
+
+                                       mux {
+                                               pins = "gpio103";
+                                               function = "pci_e1";
+                                       };
+
+                                       config {
+                                               pins = "gpio103";
+                                               drive-strength = <0x2>;
+                                               bias-pull-up;
+                                       };
+                               };
+
+                               pcie1_perst_default {
+                                       linux,phandle = <0x2eb>;
+                                       phandle = <0x2eb>;
+
+                                       mux {
+                                               pins = "gpio102";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio102";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                       };
+                               };
+
+                               pcie1_wake_default {
+                                       linux,phandle = <0x2ec>;
+                                       phandle = <0x2ec>;
+
+                                       mux {
+                                               pins = "gpio104";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio104";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                       };
+                               };
+                       };
+
+                       cdc_reset_ctrl {
+
+                               cdc_reset_sleep {
+                                       linux,phandle = <0x366>;
+                                       phandle = <0x366>;
+
+                                       mux {
+                                               pins = "gpio64";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio64";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                               output-low;
+                                       };
+                               };
+
+                               cdc_reset_active {
+                                       linux,phandle = <0x365>;
+                                       phandle = <0x365>;
+
+                                       mux {
+                                               pins = "gpio64";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio64";
+                                               drive-strength = <0x8>;
+                                               bias-pull-down;
+                                               output-high;
+                                       };
+                               };
+                       };
+
+                       spkr_i2s_clk_pin {
+
+                               spkr_i2s_clk_sleep {
+
+                                       mux {
+                                               pins = "gpio69";
+                                               function = "spkr_i2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio69";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                       };
+                               };
+
+                               spkr_i2s_clk_active {
+
+                                       mux {
+                                               pins = "gpio69";
+                                               function = "spkr_i2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio69";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       wcd_gnd_mic_swap {
+
+                               wcd_gnd_mic_swap_idle {
+
+                                       mux {
+                                               pins = "gpio51";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio51";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               output-low;
+                                       };
+                               };
+
+                               wcd_gnd_mic_swap_active {
+
+                                       mux {
+                                               pins = "gpio51";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio51";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                               output-high;
+                                       };
+                               };
+                       };
+
+                       wcd_usbc_analog_en1 {
+
+                               wcd_usbc_ana_en1_idle {
+                                       linux,phandle = <0x363>;
+                                       phandle = <0x363>;
+
+                                       mux {
+                                               pins = "gpio49";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio49";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               output-low;
+                                       };
+                               };
+
+                               wcd_usbc_ana_en1_active {
+                                       linux,phandle = <0x362>;
+                                       phandle = <0x362>;
+
+                                       mux {
+                                               pins = "gpio49";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio49";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                               output-high;
+                                       };
+                               };
+                       };
+
+                       wcd_usbc_analog_en2 {
+
+                               wcd_usbc_ana_en2_idle {
+                                       linux,phandle = <0x32e>;
+                                       phandle = <0x32e>;
+
+                                       mux {
+                                               pins = "gpio51";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio51";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               output-low;
+                                       };
+                               };
+
+                               wcd_usbc_ana_en2_active {
+                                       linux,phandle = <0x32d>;
+                                       phandle = <0x32d>;
+
+                                       mux {
+                                               pins = "gpio51";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio51";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                               output-high;
+                                       };
+                               };
+                       };
+
+                       pri_aux_pcm_clk {
+
+                               pri_aux_pcm_clk_sleep {
+
+                                       mux {
+                                               pins = "gpio65";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio65";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               pri_aux_pcm_clk_active {
+
+                                       mux {
+                                               pins = "gpio65";
+                                               function = "pri_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio65";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                               output-high;
+                                       };
+                               };
+                       };
+
+                       pri_aux_pcm_sync {
+
+                               pri_aux_pcm_sync_sleep {
+
+                                       mux {
+                                               pins = "gpio66";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio66";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               pri_aux_pcm_sync_active {
+
+                                       mux {
+                                               pins = "gpio66";
+                                               function = "pri_mi2s_ws";
+                                       };
+
+                                       config {
+                                               pins = "gpio66";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                               output-high;
+                                       };
+                               };
+                       };
+
+                       pri_aux_pcm_din {
+
+                               pri_aux_pcm_din_sleep {
+
+                                       mux {
+                                               pins = "gpio67";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio67";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               pri_aux_pcm_din_active {
+
+                                       mux {
+                                               pins = "gpio67";
+                                               function = "pri_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio67";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       pri_aux_pcm_dout {
+
+                               pri_aux_pcm_dout_sleep {
+
+                                       mux {
+                                               pins = "gpio68";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio68";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               pri_aux_pcm_dout_active {
+
+                                       mux {
+                                               pins = "gpio68";
+                                               function = "pri_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio68";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       pmx_sde {
+
+                               sde_dsi_active {
+                                       linux,phandle = <0x346>;
+                                       phandle = <0x346>;
+
+                                       mux {
+                                               pins = "gpio6", "gpio52";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio6", "gpio52";
+                                               drive-strength = <0x8>;
+                                               bias-disable = <0x0>;
+                                       };
+                               };
+
+                               sde_dsi_suspend {
+                                       linux,phandle = <0x348>;
+                                       phandle = <0x348>;
+
+                                       mux {
+                                               pins = "gpio6", "gpio52";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio6", "gpio52";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                       };
+                               };
+                       };
+
+                       pmx_sde_te {
+
+                               sde_te_active {
+                                       linux,phandle = <0x347>;
+                                       phandle = <0x347>;
+
+                                       mux {
+                                               pins = "gpio10";
+                                               function = "mdp_vsync";
+                                       };
+
+                                       config {
+                                               pins = "gpio10";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                       };
+                               };
+
+                               sde_te_suspend {
+                                       linux,phandle = <0x349>;
+                                       phandle = <0x349>;
+
+                                       mux {
+                                               pins = "gpio10";
+                                               function = "mdp_vsync";
+                                       };
+
+                                       config {
+                                               pins = "gpio10";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                       };
+                               };
+                       };
+
+                       sde_dp_aux_active {
+                               linux,phandle = <0x3a>;
+                               phandle = <0x3a>;
+
+                               mux {
+                                       pins = "gpio43", "gpio51";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio43", "gpio51";
+                                       bias-disable = <0x0>;
+                                       drive-strength = <0x8>;
+                               };
+                       };
+
+                       sde_dp_aux_suspend {
+                               linux,phandle = <0x3c>;
+                               phandle = <0x3c>;
+
+                               mux {
+                                       pins = "gpio43", "gpio51";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio43", "gpio51";
+                                       bias-pull-down;
+                                       drive-strength = <0x2>;
+                               };
+                       };
+
+                       sde_dp_usbplug_cc_active {
+                               linux,phandle = <0x3b>;
+                               phandle = <0x3b>;
+
+                               mux {
+                                       pins = "gpio38";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio38";
+                                       bias-disable;
+                                       drive-strength = <0x10>;
+                               };
+                       };
+
+                       sde_dp_usbplug_cc_suspend {
+                               linux,phandle = <0x3d>;
+                               phandle = <0x3d>;
+
+                               mux {
+                                       pins = "gpio38";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio38";
+                                       bias-pull-down;
+                                       drive-strength = <0x2>;
+                               };
+                       };
+
+                       pmx_ts_int_active {
+
+                               ts_int_active {
+
+                                       mux {
+                                               pins = "gpio122";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio122";
+                                               drive-strength = <0x8>;
+                                               bias-pull-up;
+                                       };
+                               };
+                       };
+
+                       pmx_ts_int_suspend {
+
+                               ts_int_suspend1 {
+
+                                       mux {
+                                               pins = "gpio122";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio122";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                       };
+                               };
+                       };
+
+                       pmx_ts_reset_active {
+
+                               ts_reset_active {
+
+                                       mux {
+                                               pins = "gpio99";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio99";
+                                               drive-strength = <0x8>;
+                                               bias-pull-up;
+                                       };
+                               };
+                       };
+
+                       pmx_ts_reset_suspend {
+
+                               ts_reset_suspend1 {
+
+                                       mux {
+                                               pins = "gpio99";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio99";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                       };
+                               };
+                       };
+
+                       pmx_ts_release {
+
+                               ts_release {
+
+                                       mux {
+                                               pins = "gpio122", "gpio99";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio122", "gpio99";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                       };
+                               };
+                       };
+
+                       ts_mux {
+
+                               ts_active {
+                                       linux,phandle = <0x93>;
+                                       phandle = <0x93>;
+
+                                       mux {
+                                               pins = "gpio31", "gpio32";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio31", "gpio32";
+                                               drive-strength = <0x10>;
+                                               bias-pull-up;
+                                       };
+                               };
+
+                               ts_reset_suspend {
+                                       linux,phandle = <0x95>;
+                                       phandle = <0x95>;
+
+                                       mux {
+                                               pins = "gpio32";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio32";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               bias-disable;
+                                       };
+                               };
+
+                               ts_int_suspend {
+                                       linux,phandle = <0x94>;
+                                       phandle = <0x94>;
+
+                                       mux {
+                                               pins = "gpio31";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio31";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       ext_bridge_mux {
+
+                               lt9611_pins {
+
+                                       mux {
+                                               pins = "gpio84", "gpio128", "gpio89";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio84", "gpio128", "gpio89";
+                                               bias-disable = <0x0>;
+                                               drive-strength = <0x8>;
+                                       };
+                               };
+                       };
+
+                       sec_aux_pcm {
+
+                               sec_aux_pcm_sleep {
+
+                                       mux {
+                                               pins = "gpio80", "gpio81";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio80", "gpio81";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               sec_aux_pcm_active {
+
+                                       mux {
+                                               pins = "gpio80", "gpio81";
+                                               function = "sec_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio80", "gpio81";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       sec_aux_pcm_din {
+
+                               sec_aux_pcm_din_sleep {
+
+                                       mux {
+                                               pins = "gpio82";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio82";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               sec_aux_pcm_din_active {
+
+                                       mux {
+                                               pins = "gpio82";
+                                               function = "sec_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio82";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       sec_aux_pcm_dout {
+
+                               sec_aux_pcm_dout_sleep {
+
+                                       mux {
+                                               pins = "gpio83";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio83";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               sec_aux_pcm_dout_active {
+
+                                       mux {
+                                               pins = "gpio83";
+                                               function = "sec_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio83";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       tert_aux_pcm {
+
+                               tert_aux_pcm_sleep {
+
+                                       mux {
+                                               pins = "gpio75", "gpio76";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio75", "gpio76";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               tert_aux_pcm_active {
+
+                                       mux {
+                                               pins = "gpio75", "gpio76";
+                                               function = "ter_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio75", "gpio76";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                               output-high;
+                                       };
+                               };
+                       };
+
+                       tert_aux_pcm_din {
+
+                               tert_aux_pcm_din_sleep {
+
+                                       mux {
+                                               pins = "gpio77";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio77";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               tert_aux_pcm_din_active {
+
+                                       mux {
+                                               pins = "gpio77";
+                                               function = "ter_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio77";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       tert_aux_pcm_dout {
+
+                               tert_aux_pcm_dout_sleep {
+
+                                       mux {
+                                               pins = "gpio78";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio78";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               tert_aux_pcm_dout_active {
+
+                                       mux {
+                                               pins = "gpio78";
+                                               function = "ter_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio78";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       quat_aux_pcm {
+
+                               quat_aux_pcm_sleep {
+
+                                       mux {
+                                               pins = "gpio58", "gpio59";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio58", "gpio59";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               quat_aux_pcm_active {
+
+                                       mux {
+                                               pins = "gpio58", "gpio59";
+                                               function = "qua_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio58", "gpio59";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                               output-high;
+                                       };
+                               };
+                       };
+
+                       quat_aux_pcm_din {
+
+                               quat_aux_pcm_din_sleep {
+
+                                       mux {
+                                               pins = "gpio60";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio60";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               quat_aux_pcm_din_active {
+
+                                       mux {
+                                               pins = "gpio60";
+                                               function = "qua_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio60";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       quat_aux_pcm_dout {
+
+                               quat_aux_pcm_dout_sleep {
+
+                                       mux {
+                                               pins = "gpio61";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio61";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               quat_aux_pcm_dout_active {
+
+                                       mux {
+                                               pins = "gpio61";
+                                               function = "qua_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio61";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       pri_mi2s_mclk {
+
+                               pri_mi2s_mclk_sleep {
+
+                                       mux {
+                                               pins = "gpio64";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio64";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               pri_mi2s_mclk_active {
+
+                                       mux {
+                                               pins = "gpio64";
+                                               function = "pri_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio64";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                               output-high;
+                                       };
+                               };
+                       };
+
+                       pri_mi2s_sck {
+
+                               pri_mi2s_sck_sleep {
+
+                                       mux {
+                                               pins = "gpio65";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio65";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               pri_mi2s_sck_active {
+
+                                       mux {
+                                               pins = "gpio65";
+                                               function = "pri_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio65";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                               output-high;
+                                       };
+                               };
+                       };
+
+                       pri_mi2s_ws {
+
+                               pri_mi2s_ws_sleep {
+
+                                       mux {
+                                               pins = "gpio66";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio66";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               pri_mi2s_ws_active {
+
+                                       mux {
+                                               pins = "gpio66";
+                                               function = "pri_mi2s_ws";
+                                       };
+
+                                       config {
+                                               pins = "gpio66";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                               output-high;
+                                       };
+                               };
+                       };
+
+                       pri_mi2s_sd0 {
+
+                               pri_mi2s_sd0_sleep {
+
+                                       mux {
+                                               pins = "gpio67";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio67";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               pri_mi2s_sd0_active {
+
+                                       mux {
+                                               pins = "gpio67";
+                                               function = "pri_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio67";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       pri_mi2s_sd1 {
+
+                               pri_mi2s_sd1_sleep {
+
+                                       mux {
+                                               pins = "gpio68";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio68";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               pri_mi2s_sd1_active {
+
+                                       mux {
+                                               pins = "gpio68";
+                                               function = "pri_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio68";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       sec_mi2s_mclk {
+
+                               sec_mi2s_mclk_sleep {
+
+                                       mux {
+                                               pins = "gpio79";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio79";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               sec_mi2s_mclk_active {
+
+                                       mux {
+                                               pins = "gpio79";
+                                               function = "sec_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio79";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       sec_mi2s {
+
+                               sec_mi2s_sleep {
+
+                                       mux {
+                                               pins = "gpio80", "gpio81";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio80", "gpio81";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                               input-enable;
+                                       };
+                               };
+
+                               sec_mi2s_active {
+
+                                       mux {
+                                               pins = "gpio80", "gpio81";
+                                               function = "sec_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio80", "gpio81";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       sec_mi2s_sd0 {
+
+                               sec_mi2s_sd0_sleep {
+
+                                       mux {
+                                               pins = "gpio82";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio82";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               sec_mi2s_sd0_active {
+
+                                       mux {
+                                               pins = "gpio82";
+                                               function = "sec_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio82";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       sec_mi2s_sd1 {
+
+                               sec_mi2s_sd1_sleep {
+
+                                       mux {
+                                               pins = "gpio83";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio83";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               sec_mi2s_sd1_active {
+
+                                       mux {
+                                               pins = "gpio83";
+                                               function = "sec_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio83";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       tert_mi2s_mclk {
+
+                               tert_mi2s_mclk_sleep {
+
+                                       mux {
+                                               pins = "gpio74";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio74";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               tert_mi2s_mclk_active {
+
+                                       mux {
+                                               pins = "gpio74";
+                                               function = "ter_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio74";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       tert_mi2s {
+
+                               tert_mi2s_sleep {
+
+                                       mux {
+                                               pins = "gpio75", "gpio76";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio75", "gpio76";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               tert_mi2s_active {
+
+                                       mux {
+                                               pins = "gpio75", "gpio76";
+                                               function = "ter_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio75", "gpio76";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                               output-high;
+                                       };
+                               };
+                       };
+
+                       tert_mi2s_sd0 {
+
+                               tert_mi2s_sd0_sleep {
+
+                                       mux {
+                                               pins = "gpio77";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio77";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               tert_mi2s_sd0_active {
+
+                                       mux {
+                                               pins = "gpio77";
+                                               function = "ter_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio77";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       tert_mi2s_sd1 {
+
+                               tert_mi2s_sd1_sleep {
+
+                                       mux {
+                                               pins = "gpio78";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio78";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               tert_mi2s_sd1_active {
+
+                                       mux {
+                                               pins = "gpio78";
+                                               function = "ter_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio78";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       quat_mi2s_mclk {
+
+                               quat_mi2s_mclk_sleep {
+
+                                       mux {
+                                               pins = "gpio57";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio57";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               quat_mi2s_mclk_active {
+
+                                       mux {
+                                               pins = "gpio57";
+                                               function = "qua_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio57";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       quat_mi2s {
+
+                               quat_mi2s_sleep {
+
+                                       mux {
+                                               pins = "gpio58", "gpio59";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio58", "gpio59";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               quat_mi2s_active {
+
+                                       mux {
+                                               pins = "gpio58", "gpio59";
+                                               function = "qua_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio58", "gpio59";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                               output-high;
+                                       };
+                               };
+                       };
+
+                       quat_mi2s_sd0 {
+
+                               quat_mi2s_sd0_sleep {
+
+                                       mux {
+                                               pins = "gpio60";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio60";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               quat_mi2s_sd0_active {
+
+                                       mux {
+                                               pins = "gpio60";
+                                               function = "qua_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio60";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       quat_mi2s_sd1 {
+
+                               quat_mi2s_sd1_sleep {
+
+                                       mux {
+                                               pins = "gpio61";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio61";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               quat_mi2s_sd1_active {
+
+                                       mux {
+                                               pins = "gpio61";
+                                               function = "qua_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio61";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       quat_mi2s_sd2 {
+
+                               quat_mi2s_sd2_sleep {
+
+                                       mux {
+                                               pins = "gpio62";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio62";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               quat_mi2s_sd2_active {
+
+                                       mux {
+                                               pins = "gpio62";
+                                               function = "qua_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio62";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       quat_mi2s_sd3 {
+
+                               quat_mi2s_sd3_sleep {
+
+                                       mux {
+                                               pins = "gpio63";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio63";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               input-enable;
+                                       };
+                               };
+
+                               quat_mi2s_sd3_active {
+
+                                       mux {
+                                               pins = "gpio63";
+                                               function = "qua_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio63";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       quat_tdm {
+
+                               quat_tdm_sleep {
+
+                                       mux {
+                                               pins = "gpio58", "gpio59";
+                                               function = "qua_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio58", "gpio59";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                       };
+                               };
+
+                               quat_tdm_active {
+
+                                       mux {
+                                               pins = "gpio58", "gpio59";
+                                               function = "qua_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio58", "gpio59";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       quat_tdm_dout {
+
+                               quat_tdm_dout_sleep {
+
+                                       mux {
+                                               pins = "gpio61";
+                                               function = "qua_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio61";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                       };
+                               };
+
+                               quat_tdm_dout_active {
+
+                                       mux {
+                                               pins = "gpio61";
+                                               function = "qua_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio61";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       quat_tdm_din {
+
+                               quat_tdm_din_sleep {
+
+                                       mux {
+                                               pins = "gpio60";
+                                               function = "qua_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio60";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                       };
+                               };
+
+                               quat_tdm_din_active {
+
+                                       mux {
+                                               pins = "gpio60";
+                                               function = "qua_mi2s";
+                                       };
+
+                                       config {
+                                               pins = "gpio60";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       qupv3_se0_i2c_pins {
+
+                               qupv3_se0_i2c_active {
+                                       linux,phandle = <0x45>;
+                                       phandle = <0x45>;
+
+                                       mux {
+                                               pins = "gpio0", "gpio1";
+                                               function = "qup0";
+                                       };
+
+                                       config {
+                                               pins = "gpio0", "gpio1";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se0_i2c_sleep {
+                                       linux,phandle = <0x46>;
+                                       phandle = <0x46>;
+
+                                       mux {
+                                               pins = "gpio0", "gpio1";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio0", "gpio1";
+                                               drive-strength = <0x2>;
+                                               bias-pull-up;
+                                       };
+                               };
+                       };
+
+                       qupv3_se0_spi_pins {
+
+                               qupv3_se0_spi_active {
+                                       linux,phandle = <0x5c>;
+                                       phandle = <0x5c>;
+
+                                       mux {
+                                               pins = "gpio0", "gpio1", "gpio2", "gpio3";
+                                               function = "qup0";
+                                       };
+
+                                       config {
+                                               pins = "gpio0", "gpio1", "gpio2", "gpio3";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se0_spi_sleep {
+                                       linux,phandle = <0x5d>;
+                                       phandle = <0x5d>;
+
+                                       mux {
+                                               pins = "gpio0", "gpio1", "gpio2", "gpio3";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio0", "gpio1", "gpio2", "gpio3";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       qupv3_se1_i2c_pins {
+
+                               qupv3_se1_i2c_active {
+                                       linux,phandle = <0x47>;
+                                       phandle = <0x47>;
+
+                                       mux {
+                                               pins = "gpio17", "gpio18";
+                                               function = "qup1";
+                                       };
+
+                                       config {
+                                               pins = "gpio17", "gpio18";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se1_i2c_sleep {
+                                       linux,phandle = <0x48>;
+                                       phandle = <0x48>;
+
+                                       mux {
+                                               pins = "gpio17", "gpio18";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio17", "gpio18";
+                                               drive-strength = <0x2>;
+                                               bias-pull-up;
+                                       };
+                               };
+                       };
+
+                       qupv3_se1_spi_pins {
+
+                               qupv3_se1_spi_active {
+                                       linux,phandle = <0x5e>;
+                                       phandle = <0x5e>;
+
+                                       mux {
+                                               pins = "gpio17", "gpio18", "gpio19", "gpio20";
+                                               function = "qup1";
+                                       };
+
+                                       config {
+                                               pins = "gpio17", "gpio18", "gpio19", "gpio20";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se1_spi_sleep {
+                                       linux,phandle = <0x5f>;
+                                       phandle = <0x5f>;
+
+                                       mux {
+                                               pins = "gpio17", "gpio18", "gpio19", "gpio20";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio17", "gpio18", "gpio19", "gpio20";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       qupv3_se2_i2c_pins {
+
+                               qupv3_se2_i2c_active {
+                                       linux,phandle = <0x49>;
+                                       phandle = <0x49>;
+
+                                       mux {
+                                               pins = "gpio27", "gpio28";
+                                               function = "qup2";
+                                       };
+
+                                       config {
+                                               pins = "gpio27", "gpio28";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se2_i2c_sleep {
+                                       linux,phandle = <0x4a>;
+                                       phandle = <0x4a>;
+
+                                       mux {
+                                               pins = "gpio27", "gpio28";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio27", "gpio28";
+                                               drive-strength = <0x2>;
+                                               bias-pull-up;
+                                       };
+                               };
+                       };
+
+                       qupv3_se2_spi_pins {
+
+                               qupv3_se2_spi_active {
+                                       linux,phandle = <0x60>;
+                                       phandle = <0x60>;
+
+                                       mux {
+                                               pins = "gpio27", "gpio28", "gpio29", "gpio30";
+                                               function = "qup2";
+                                       };
+
+                                       config {
+                                               pins = "gpio27", "gpio28", "gpio29", "gpio30";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se2_spi_sleep {
+                                       linux,phandle = <0x61>;
+                                       phandle = <0x61>;
+
+                                       mux {
+                                               pins = "gpio27", "gpio28", "gpio29", "gpio30";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio27", "gpio28", "gpio29", "gpio30";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       qupv3_se3_i2c_pins {
+
+                               qupv3_se3_i2c_active {
+                                       linux,phandle = <0x4b>;
+                                       phandle = <0x4b>;
+
+                                       mux {
+                                               pins = "gpio41", "gpio42";
+                                               function = "qup3";
+                                       };
+
+                                       config {
+                                               pins = "gpio41", "gpio42";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se3_i2c_sleep {
+                                       linux,phandle = <0x4c>;
+                                       phandle = <0x4c>;
+
+                                       mux {
+                                               pins = "gpio41", "gpio42";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio41", "gpio42";
+                                               drive-strength = <0x2>;
+                                               bias-pull-up;
+                                       };
+                               };
+                       };
+
+                       nfc {
+
+                               nfc_int_active {
+                                       linux,phandle = <0x4e>;
+                                       phandle = <0x4e>;
+
+                                       mux {
+                                               pins = "gpio63";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio63";
+                                               drive-strength = <0x2>;
+                                               bias-pull-up;
+                                       };
+                               };
+
+                               nfc_int_suspend {
+                                       linux,phandle = <0x51>;
+                                       phandle = <0x51>;
+
+                                       mux {
+                                               pins = "gpio63";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio63";
+                                               drive-strength = <0x2>;
+                                               bias-pull-up;
+                                       };
+                               };
+
+                               nfc_enable_active {
+                                       linux,phandle = <0x4f>;
+                                       phandle = <0x4f>;
+
+                                       mux {
+                                               pins = "gpio128", "gpio88", "gpio116";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio128", "gpio88", "gpio116";
+                                               drive-strength = <0x2>;
+                                               bias-pull-up;
+                                       };
+                               };
+
+                               nfc_enable_suspend {
+                                       linux,phandle = <0x52>;
+                                       phandle = <0x52>;
+
+                                       mux {
+                                               pins = "gpio128", "gpio88", "gpio116";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio128", "gpio88", "gpio116";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       qupv3_se3_spi_pins {
+
+                               qupv3_se3_spi_active {
+                                       linux,phandle = <0x62>;
+                                       phandle = <0x62>;
+
+                                       mux {
+                                               pins = "gpio41", "gpio42", "gpio43", "gpio44";
+                                               function = "qup3";
+                                       };
+
+                                       config {
+                                               pins = "gpio41", "gpio42", "gpio43", "gpio44";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se3_spi_sleep {
+                                       linux,phandle = <0x63>;
+                                       phandle = <0x63>;
+
+                                       mux {
+                                               pins = "gpio41", "gpio42", "gpio43", "gpio44";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio41", "gpio42", "gpio43", "gpio44";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       qupv3_se4_i2c_pins {
+
+                               qupv3_se4_i2c_active {
+                                       linux,phandle = <0x53>;
+                                       phandle = <0x53>;
+
+                                       mux {
+                                               pins = "gpio89", "gpio90";
+                                               function = "qup4";
+                                       };
+
+                                       config {
+                                               pins = "gpio89", "gpio90";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se4_i2c_sleep {
+                                       linux,phandle = <0x54>;
+                                       phandle = <0x54>;
+
+                                       mux {
+                                               pins = "gpio89", "gpio90";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio89", "gpio90";
+                                               drive-strength = <0x2>;
+                                               bias-pull-up;
+                                       };
+                               };
+                       };
+
+                       qupv3_se4_spi_pins {
+
+                               qupv3_se4_spi_active {
+                                       linux,phandle = <0x64>;
+                                       phandle = <0x64>;
+
+                                       mux {
+                                               pins = "gpio89", "gpio90", "gpio91", "gpio92";
+                                               function = "qup4";
+                                       };
+
+                                       config {
+                                               pins = "gpio89", "gpio90", "gpio91", "gpio92";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se4_spi_sleep {
+                                       linux,phandle = <0x65>;
+                                       phandle = <0x65>;
+
+                                       mux {
+                                               pins = "gpio89", "gpio90", "gpio91", "gpio92";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio89", "gpio90", "gpio91", "gpio92";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                               output-high;
+                                       };
+                               };
+                       };
+
+                       qupv3_se5_i2c_pins {
+
+                               qupv3_se5_i2c_active {
+                                       linux,phandle = <0x55>;
+                                       phandle = <0x55>;
+
+                                       mux {
+                                               pins = "gpio85", "gpio86";
+                                               function = "qup5";
+                                       };
+
+                                       config {
+                                               pins = "gpio85", "gpio86";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se5_i2c_sleep {
+                                       linux,phandle = <0x56>;
+                                       phandle = <0x56>;
+
+                                       mux {
+                                               pins = "gpio85", "gpio86";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio85", "gpio86";
+                                               drive-strength = <0x2>;
+                                               bias-pull-up;
+                                       };
+                               };
+                       };
+
+                       qupv3_se5_spi_pins {
+
+                               qupv3_se5_spi_active {
+                                       linux,phandle = <0x6e>;
+                                       phandle = <0x6e>;
+
+                                       mux {
+                                               pins = "gpio85", "gpio86", "gpio87", "gpio88";
+                                               function = "qup5";
+                                       };
+
+                                       config {
+                                               pins = "gpio85", "gpio86", "gpio87", "gpio88";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se5_spi_sleep {
+                                       linux,phandle = <0x6f>;
+                                       phandle = <0x6f>;
+
+                                       mux {
+                                               pins = "gpio85", "gpio86", "gpio87", "gpio88";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio85", "gpio86", "gpio87", "gpio88";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       qupv3_se6_i2c_pins {
+
+                               qupv3_se6_i2c_active {
+                                       linux,phandle = <0x58>;
+                                       phandle = <0x58>;
+
+                                       mux {
+                                               pins = "gpio45", "gpio46";
+                                               function = "qup6";
+                                       };
+
+                                       config {
+                                               pins = "gpio45", "gpio46";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se6_i2c_sleep {
+                                       linux,phandle = <0x59>;
+                                       phandle = <0x59>;
+
+                                       mux {
+                                               pins = "gpio45", "gpio46";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio45", "gpio46";
+                                               drive-strength = <0x2>;
+                                               bias-pull-up;
+                                       };
+                               };
+                       };
+
+                       qupv3_se6_4uart_pins {
+
+                               qupv3_se6_ctsrx {
+                                       linux,phandle = <0x3e>;
+                                       phandle = <0x3e>;
+
+                                       mux {
+                                               pins = "gpio45", "gpio48";
+                                               function = "qup6";
+                                       };
+
+                                       config {
+                                               pins = "gpio45", "gpio48";
+                                               drive-strength = <0x2>;
+                                               bias-no-pull;
+                                       };
+                               };
+
+                               qupv3_se6_rts {
+                                       linux,phandle = <0x3f>;
+                                       phandle = <0x3f>;
+
+                                       mux {
+                                               pins = "gpio46";
+                                               function = "qup6";
+                                       };
+
+                                       config {
+                                               pins = "gpio46";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                       };
+                               };
+
+                               qupv3_se6_tx {
+                                       linux,phandle = <0x40>;
+                                       phandle = <0x40>;
+
+                                       mux {
+                                               pins = "gpio47";
+                                               function = "qup6";
+                                       };
+
+                                       config {
+                                               pins = "gpio47";
+                                               drive-strength = <0x2>;
+                                               bias-pull-up;
+                                       };
+                               };
+                       };
+
+                       qupv3_se6_spi_pins {
+
+                               qupv3_se6_spi_active {
+                                       linux,phandle = <0x70>;
+                                       phandle = <0x70>;
+
+                                       mux {
+                                               pins = "gpio45", "gpio46", "gpio47", "gpio48";
+                                               function = "qup6";
+                                       };
+
+                                       config {
+                                               pins = "gpio45", "gpio46", "gpio47", "gpio48";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se6_spi_sleep {
+                                       linux,phandle = <0x71>;
+                                       phandle = <0x71>;
+
+                                       mux {
+                                               pins = "gpio45", "gpio46", "gpio47", "gpio48";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio45", "gpio46", "gpio47", "gpio48";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       qupv3_se7_i2c_pins {
+
+                               qupv3_se7_i2c_active {
+                                       linux,phandle = <0x5a>;
+                                       phandle = <0x5a>;
+
+                                       mux {
+                                               pins = "gpio93", "gpio94";
+                                               function = "qup7";
+                                       };
+
+                                       config {
+                                               pins = "gpio93", "gpio94";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se7_i2c_sleep {
+                                       linux,phandle = <0x5b>;
+                                       phandle = <0x5b>;
+
+                                       mux {
+                                               pins = "gpio93", "gpio94";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio93", "gpio94";
+                                               drive-strength = <0x2>;
+                                               bias-pull-up;
+                                       };
+                               };
+                       };
+
+                       qupv3_se7_4uart_pins {
+
+                               qupv3_se7_4uart_active {
+                                       linux,phandle = <0x42>;
+                                       phandle = <0x42>;
+
+                                       mux {
+                                               pins = "gpio93", "gpio94", "gpio95", "gpio96";
+                                               function = "qup7";
+                                       };
+
+                                       config {
+                                               pins = "gpio93", "gpio94", "gpio95", "gpio96";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se7_4uart_sleep {
+                                       linux,phandle = <0x43>;
+                                       phandle = <0x43>;
+
+                                       mux {
+                                               pins = "gpio93", "gpio94", "gpio95", "gpio96";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio93", "gpio94", "gpio95", "gpio96";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       qupv3_se7_spi_pins {
+
+                               qupv3_se7_spi_active {
+                                       linux,phandle = <0x72>;
+                                       phandle = <0x72>;
+
+                                       mux {
+                                               pins = "gpio93", "gpio94", "gpio95", "gpio96";
+                                               function = "qup7";
+                                       };
+
+                                       config {
+                                               pins = "gpio93", "gpio94", "gpio95", "gpio96";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se7_spi_sleep {
+                                       linux,phandle = <0x73>;
+                                       phandle = <0x73>;
+
+                                       mux {
+                                               pins = "gpio93", "gpio94", "gpio95", "gpio96";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio93", "gpio94", "gpio95", "gpio96";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       qupv3_se8_i2c_pins {
+
+                               qupv3_se8_i2c_active {
+                                       linux,phandle = <0x7a>;
+                                       phandle = <0x7a>;
+
+                                       mux {
+                                               pins = "gpio65", "gpio66";
+                                               function = "qup8";
+                                       };
+
+                                       config {
+                                               pins = "gpio65", "gpio66";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se8_i2c_sleep {
+                                       linux,phandle = <0x7b>;
+                                       phandle = <0x7b>;
+
+                                       mux {
+                                               pins = "gpio65", "gpio66";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio65", "gpio66";
+                                               drive-strength = <0x2>;
+                                               bias-pull-up;
+                                       };
+                               };
+                       };
+
+                       qupv3_se8_spi_pins {
+
+                               qupv3_se8_spi_active {
+                                       linux,phandle = <0x9a>;
+                                       phandle = <0x9a>;
+
+                                       mux {
+                                               pins = "gpio65", "gpio66", "gpio67", "gpio68";
+                                               function = "qup8";
+                                       };
+
+                                       config {
+                                               pins = "gpio65", "gpio66", "gpio67", "gpio68";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se8_spi_sleep {
+
+                                       mux {
+                                               pins = "gpio65", "gpio66", "gpio67", "gpio68";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio65", "gpio66", "gpio67", "gpio68";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       qupv3_se9_i2c_pins {
+
+                               qupv3_se9_i2c_active {
+                                       linux,phandle = <0x7c>;
+                                       phandle = <0x7c>;
+
+                                       mux {
+                                               pins = "gpio6", "gpio7";
+                                               function = "qup9";
+                                       };
+
+                                       config {
+                                               pins = "gpio6", "gpio7";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se9_i2c_sleep {
+                                       linux,phandle = <0x7d>;
+                                       phandle = <0x7d>;
+
+                                       mux {
+                                               pins = "gpio6", "gpio7";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio6", "gpio7";
+                                               drive-strength = <0x2>;
+                                               bias-pull-up;
+                                       };
+                               };
+                       };
+
+                       qupv3_se9_2uart_pins {
+
+                               qupv3_se9_2uart_active {
+                                       linux,phandle = <0x74>;
+                                       phandle = <0x74>;
+
+                                       mux {
+                                               pins = "gpio4", "gpio5";
+                                               function = "qup9";
+                                       };
+
+                                       config {
+                                               pins = "gpio4", "gpio5";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se9_2uart_sleep {
+                                       linux,phandle = <0x75>;
+                                       phandle = <0x75>;
+
+                                       mux {
+                                               pins = "gpio4", "gpio5";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio4", "gpio5";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       qupv3_se9_spi_pins {
+
+                               qupv3_se9_spi_active {
+                                       linux,phandle = <0x9b>;
+                                       phandle = <0x9b>;
+
+                                       mux {
+                                               pins = "gpio4", "gpio5", "gpio6", "gpio7";
+                                               function = "qup9";
+                                       };
+
+                                       config {
+                                               pins = "gpio4", "gpio5", "gpio6", "gpio7";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se9_spi_sleep {
+                                       linux,phandle = <0x9c>;
+                                       phandle = <0x9c>;
+
+                                       mux {
+                                               pins = "gpio4", "gpio5", "gpio6", "gpio7";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio4", "gpio5", "gpio6", "gpio7";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       qupv3_se10_i2c_pins {
+
+                               qupv3_se10_i2c_active {
+                                       linux,phandle = <0x7e>;
+                                       phandle = <0x7e>;
+
+                                       mux {
+                                               pins = "gpio55", "gpio56";
+                                               function = "qup10";
+                                       };
+
+                                       config {
+                                               pins = "gpio55", "gpio56";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se10_i2c_sleep {
+                                       linux,phandle = <0x7f>;
+                                       phandle = <0x7f>;
+
+                                       mux {
+                                               pins = "gpio55", "gpio56";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio55", "gpio56";
+                                               drive-strength = <0x2>;
+                                               bias-pull-up;
+                                       };
+                               };
+                       };
+
+                       qupv3_se10_2uart_pins {
+
+                               qupv3_se10_2uart_active {
+                                       linux,phandle = <0x77>;
+                                       phandle = <0x77>;
+
+                                       mux {
+                                               pins = "gpio53", "gpio54";
+                                               function = "qup10";
+                                       };
+
+                                       config {
+                                               pins = "gpio53", "gpio54";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se10_2uart_sleep {
+                                       linux,phandle = <0x78>;
+                                       phandle = <0x78>;
+
+                                       mux {
+                                               pins = "gpio53", "gpio54";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio53", "gpio54";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       qupv3_se10_spi_pins {
+
+                               qupv3_se10_spi_active {
+                                       linux,phandle = <0x9d>;
+                                       phandle = <0x9d>;
+
+                                       mux {
+                                               pins = "gpio53", "gpio54", "gpio55", "gpio56";
+                                               function = "qup10";
+                                       };
+
+                                       config {
+                                               pins = "gpio53", "gpio54", "gpio55", "gpio56";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se10_spi_sleep {
+                                       linux,phandle = <0x9e>;
+                                       phandle = <0x9e>;
+
+                                       mux {
+                                               pins = "gpio53", "gpio54", "gpio55", "gpio56";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio53", "gpio54", "gpio55", "gpio56";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       qupv3_se11_i2c_pins {
+
+                               qupv3_se11_i2c_active {
+                                       linux,phandle = <0x8b>;
+                                       phandle = <0x8b>;
+
+                                       mux {
+                                               pins = "gpio31", "gpio32";
+                                               function = "qup11";
+                                       };
+
+                                       config {
+                                               pins = "gpio31", "gpio32";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se11_i2c_sleep {
+                                       linux,phandle = <0x8c>;
+                                       phandle = <0x8c>;
+
+                                       mux {
+                                               pins = "gpio31", "gpio32";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio31", "gpio32";
+                                               drive-strength = <0x2>;
+                                               bias-pull-up;
+                                       };
+                               };
+                       };
+
+                       qupv3_se11_spi_pins {
+
+                               qupv3_se11_spi_active {
+                                       linux,phandle = <0x9f>;
+                                       phandle = <0x9f>;
+
+                                       mux {
+                                               pins = "gpio31", "gpio32", "gpio33", "gpio34";
+                                               function = "qup11";
+                                       };
+
+                                       config {
+                                               pins = "gpio31", "gpio32", "gpio33", "gpio34";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se11_spi_sleep {
+                                       linux,phandle = <0xa0>;
+                                       phandle = <0xa0>;
+
+                                       mux {
+                                               pins = "gpio31", "gpio32", "gpio33", "gpio34";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio31", "gpio32", "gpio33", "gpio34";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       qupv3_se12_i2c_pins {
+
+                               qupv3_se12_i2c_active {
+                                       linux,phandle = <0x8d>;
+                                       phandle = <0x8d>;
+
+                                       mux {
+                                               pins = "gpio49", "gpio50";
+                                               function = "qup12";
+                                       };
+
+                                       config {
+                                               pins = "gpio49", "gpio50";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se12_i2c_sleep {
+                                       linux,phandle = <0x8e>;
+                                       phandle = <0x8e>;
+
+                                       mux {
+                                               pins = "gpio49", "gpio50";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio49", "gpio50";
+                                               drive-strength = <0x2>;
+                                               bias-pull-up;
+                                       };
+                               };
+                       };
+
+                       qupv3_se12_spi_pins {
+
+                               qupv3_se12_spi_active {
+                                       linux,phandle = <0xa1>;
+                                       phandle = <0xa1>;
+
+                                       mux {
+                                               pins = "gpio49", "gpio50", "gpio51", "gpio52";
+                                               function = "qup12";
+                                       };
+
+                                       config {
+                                               pins = "gpio49", "gpio50", "gpio51", "gpio52";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se12_spi_sleep {
+                                       linux,phandle = <0xa2>;
+                                       phandle = <0xa2>;
+
+                                       mux {
+                                               pins = "gpio49", "gpio50", "gpio51", "gpio52";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio49", "gpio50", "gpio51", "gpio52";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       qupv3_se13_i2c_pins {
+
+                               qupv3_se13_i2c_active {
+                                       linux,phandle = <0x8f>;
+                                       phandle = <0x8f>;
+
+                                       mux {
+                                               pins = "gpio105", "gpio106";
+                                               function = "qup13";
+                                       };
+
+                                       config {
+                                               pins = "gpio105", "gpio106";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se13_i2c_sleep {
+                                       linux,phandle = <0x90>;
+                                       phandle = <0x90>;
+
+                                       mux {
+                                               pins = "gpio105", "gpio106";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio105", "gpio106";
+                                               drive-strength = <0x2>;
+                                               bias-pull-up;
+                                       };
+                               };
+                       };
+
+                       qupv3_se13_spi_pins {
+
+                               qupv3_se13_spi_active {
+                                       linux,phandle = <0xa3>;
+                                       phandle = <0xa3>;
+
+                                       mux {
+                                               pins = "gpio105", "gpio106", "gpio107", "gpio108";
+                                               function = "qup13";
+                                       };
+
+                                       config {
+                                               pins = "gpio105", "gpio106", "gpio107", "gpio108";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se13_spi_sleep {
+                                       linux,phandle = <0xa4>;
+                                       phandle = <0xa4>;
+
+                                       mux {
+                                               pins = "gpio105", "gpio106", "gpio107", "gpio108";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio105", "gpio106", "gpio107", "gpio108";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       qupv3_se14_i2c_pins {
+
+                               qupv3_se14_i2c_active {
+                                       linux,phandle = <0x91>;
+                                       phandle = <0x91>;
+
+                                       mux {
+                                               pins = "gpio33", "gpio34";
+                                               function = "qup14";
+                                       };
+
+                                       config {
+                                               pins = "gpio33", "gpio34";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se14_i2c_sleep {
+                                       linux,phandle = <0x92>;
+                                       phandle = <0x92>;
+
+                                       mux {
+                                               pins = "gpio33", "gpio34";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio33", "gpio34";
+                                               drive-strength = <0x2>;
+                                               bias-pull-up;
+                                       };
+                               };
+                       };
+
+                       qupv3_se14_spi_pins {
+
+                               qupv3_se14_spi_active {
+                                       linux,phandle = <0xa5>;
+                                       phandle = <0xa5>;
+
+                                       mux {
+                                               pins = "gpio31", "gpio32", "gpio33", "gpio34";
+                                               function = "qup14";
+                                       };
+
+                                       config {
+                                               pins = "gpio31", "gpio32", "gpio33", "gpio34";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se14_spi_sleep {
+                                       linux,phandle = <0xa6>;
+                                       phandle = <0xa6>;
+
+                                       mux {
+                                               pins = "gpio31", "gpio32", "gpio33", "gpio34";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio31", "gpio32", "gpio33", "gpio34";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       qupv3_se15_i2c_pins {
+
+                               qupv3_se15_i2c_active {
+                                       linux,phandle = <0x98>;
+                                       phandle = <0x98>;
+
+                                       mux {
+                                               pins = "gpio81", "gpio82";
+                                               function = "qup15";
+                                       };
+
+                                       config {
+                                               pins = "gpio81", "gpio82";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se15_i2c_sleep {
+                                       linux,phandle = <0x99>;
+                                       phandle = <0x99>;
+
+                                       mux {
+                                               pins = "gpio81", "gpio82";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio81", "gpio82";
+                                               drive-strength = <0x2>;
+                                               bias-pull-up;
+                                       };
+                               };
+                       };
+
+                       qupv3_se15_spi_pins {
+
+                               qupv3_se15_spi_active {
+                                       linux,phandle = <0xa7>;
+                                       phandle = <0xa7>;
+
+                                       mux {
+                                               pins = "gpio81", "gpio82", "gpio83", "gpio84";
+                                               function = "qup15";
+                                       };
+
+                                       config {
+                                               pins = "gpio81", "gpio82", "gpio83", "gpio84";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               qupv3_se15_spi_sleep {
+                                       linux,phandle = <0xa8>;
+                                       phandle = <0xa8>;
+
+                                       mux {
+                                               pins = "gpio81", "gpio82", "gpio83", "gpio84";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio81", "gpio82", "gpio83", "gpio84";
+                                               drive-strength = <0x6>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       cci0_active {
+                               linux,phandle = <0x21e>;
+                               phandle = <0x21e>;
+
+                               mux {
+                                       pins = "gpio17", "gpio18";
+                                       function = "cci_i2c";
+                               };
+
+                               config {
+                                       pins = "gpio17", "gpio18";
+                                       bias-pull-up;
+                                       drive-strength = <0x2>;
+                               };
+                       };
+
+                       cci0_suspend {
+                               linux,phandle = <0x220>;
+                               phandle = <0x220>;
+
+                               mux {
+                                       pins = "gpio17", "gpio18";
+                                       function = "cci_i2c";
+                               };
+
+                               config {
+                                       pins = "gpio17", "gpio18";
+                                       bias-pull-down;
+                                       drive-strength = <0x2>;
+                               };
+                       };
+
+                       cci1_active {
+                               linux,phandle = <0x21f>;
+                               phandle = <0x21f>;
+
+                               mux {
+                                       pins = "gpio19", "gpio20";
+                                       function = "cci_i2c";
+                               };
+
+                               config {
+                                       pins = "gpio19", "gpio20";
+                                       bias-pull-up;
+                                       drive-strength = <0x2>;
+                               };
+                       };
+
+                       cci1_suspend {
+                               linux,phandle = <0x221>;
+                               phandle = <0x221>;
+
+                               mux {
+                                       pins = "gpio19", "gpio20";
+                                       function = "cci_i2c";
+                               };
+
+                               config {
+                                       pins = "gpio19", "gpio20";
+                                       bias-pull-down;
+                                       drive-strength = <0x2>;
+                               };
+                       };
+
+                       cam_sensor_fisheye_active {
+
+                               mux {
+                                       pins = "gpio76", "gpio75";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio76", "gpio75";
+                                       bias-disable;
+                                       drive-strength = <0x2>;
+                               };
+                       };
+
+                       cam_sensor_fisheye_suspend {
+
+                               mux {
+                                       pins = "gpio76", "gpio75";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio76", "gpio75";
+                                       bias-pull-down;
+                                       drive-strength = <0x2>;
+                                       output-low;
+                               };
+                       };
+
+                       cam_sensor_depth_active {
+
+                               mux {
+                                       pins = "gpio28", "gpio23", "gpio24";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio28", "gpio23", "gpio24";
+                                       bias-disable;
+                                       drive-strength = <0x2>;
+                               };
+                       };
+
+                       cam_sensor_depth_suspend {
+
+                               mux {
+                                       pins = "gpio28", "gpio23", "gpio24";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio28", "gpio23", "gpio24";
+                                       bias-pull-down;
+                                       drive-strength = <0x2>;
+                               };
+                       };
+
+                       max_rst_active {
+
+                               mux {
+                                       pins = "gpio31", "gpio77", "gpio78", "gpio32";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio31", "gpio77", "gpio78", "gpio32";
+                                       bias-disable;
+                                       drive-strength = <0x8>;
+                               };
+                       };
+
+                       max_rst_suspend {
+
+                               mux {
+                                       pins = "gpio31", "gpio77", "gpio78", "gpio32";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio31", "gpio77", "gpio78", "gpio32";
+                                       bias-pull-down;
+                                       drive-strength = <0x8>;
+                               };
+                       };
+
+                       max_6dof_active {
+
+                               mux {
+                                       pins = "gpio30", "gpio95", "gpio94";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio30", "gpio95", "gpio94";
+                                       bias-disable;
+                                       drive-strength = <0x8>;
+                               };
+                       };
+
+                       max_6dof_suspend {
+
+                               mux {
+                                       pins = "gpio30", "gpio95", "gpio94";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio30", "gpio95", "gpio94";
+                                       bias-pull-down;
+                                       drive-strength = <0x8>;
+                               };
+                       };
+
+                       cam_sensor_mclk0_active {
+                               linux,phandle = <0x226>;
+                               phandle = <0x226>;
+
+                               mux {
+                                       pins = "gpio13";
+                                       function = "cam_mclk";
+                               };
+
+                               config {
+                                       pins = "gpio13";
+                                       bias-disable;
+                                       drive-strength = <0x4>;
+                               };
+                       };
+
+                       cam_sensor_mclk0_suspend {
+                               linux,phandle = <0x228>;
+                               phandle = <0x228>;
+
+                               mux {
+                                       pins = "gpio13";
+                                       function = "cam_mclk";
+                               };
+
+                               config {
+                                       pins = "gpio13";
+                                       bias-pull-down;
+                                       drive-strength = <0x4>;
+                               };
+                       };
+
+                       cam_sensor_rear_active {
+                               linux,phandle = <0x227>;
+                               phandle = <0x227>;
+
+                               mux {
+                                       pins = "gpio119", "gpio40", "gpio12", "gpio11";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio119", "gpio40", "gpio12", "gpio11";
+                                       bias-disable;
+                                       drive-strength = <0x2>;
+                               };
+                       };
+
+                       cam_sensor_rear_suspend {
+                               linux,phandle = <0x229>;
+                               phandle = <0x229>;
+
+                               mux {
+                                       pins = "gpio119", "gpio40", "gpio12", "gpio11";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio119", "gpio40", "gpio12", "gpio11";
+                                       bias-pull-down;
+                                       drive-strength = <0x2>;
+                                       output-low;
+                               };
+                       };
+
+                       cam_sensor_mclk1_active {
+                               linux,phandle = <0x233>;
+                               phandle = <0x233>;
+
+                               mux {
+                                       pins = "gpio14";
+                                       function = "cam_mclk";
+                               };
+
+                               config {
+                                       pins = "gpio14";
+                                       bias-disable;
+                                       drive-strength = <0x4>;
+                               };
+                       };
+
+                       cam_sensor_mclk1_suspend {
+                               linux,phandle = <0x235>;
+                               phandle = <0x235>;
+
+                               mux {
+                                       pins = "gpio14";
+                                       function = "cam_mclk";
+                               };
+
+                               config {
+                                       pins = "gpio14";
+                                       bias-pull-down;
+                                       drive-strength = <0x4>;
+                                       output-low;
+                               };
+                       };
+
+                       cam_sensor_mclk3_active {
+                               linux,phandle = <0x23f>;
+                               phandle = <0x23f>;
+
+                               mux {
+                                       pins = "gpio16";
+                                       function = "cam_mclk";
+                               };
+
+                               config {
+                                       pins = "gpio16";
+                                       bias-disable;
+                                       drive-strength = <0x4>;
+                               };
+                       };
+
+                       cam_sensor_mclk3_suspend {
+                               linux,phandle = <0x240>;
+                               phandle = <0x240>;
+
+                               mux {
+                                       pins = "gpio16";
+                                       function = "cam_mclk";
+                               };
+
+                               config {
+                                       pins = "gpio16";
+                                       bias-pull-down;
+                                       drive-strength = <0x4>;
+                                       output-low;
+                               };
+                       };
+
+                       cam_sensor_front_active {
+                               linux,phandle = <0x22f>;
+                               phandle = <0x22f>;
+
+                               mux {
+                                       pins = "gpio104", "gpio80", "gpio9";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio104", "gpio80", "gpio9";
+                                       bias-disable;
+                                       drive-strength = <0x2>;
+                               };
+                       };
+
+                       cam_sensor_front_suspend {
+                               linux,phandle = <0x231>;
+                               phandle = <0x231>;
+
+                               mux {
+                                       pins = "gpio104", "gpio80", "gpio9";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio104", "gpio80", "gpio9";
+                                       bias-pull-down;
+                                       drive-strength = <0x2>;
+                                       output-low;
+                               };
+                       };
+
+                       cam_sensor_iris_active {
+
+                               mux {
+                                       pins = "gpio9", "gpio8";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio9", "gpio8";
+                                       bias-disable;
+                                       drive-strength = <0x2>;
+                               };
+                       };
+
+                       cam_sensor_iris_suspend {
+
+                               mux {
+                                       pins = "gpio9";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio9";
+                                       bias-pull-down;
+                                       drive-strength = <0x2>;
+                                       output-low;
+                                       bias-disable;
+                               };
+                       };
+
+                       cam_sensor_mclk2_active {
+                               linux,phandle = <0x22e>;
+                               phandle = <0x22e>;
+
+                               mux {
+                                       pins = "gpio15";
+                                       function = "cam_mclk";
+                               };
+
+                               config {
+                                       pins = "gpio15";
+                                       bias-disable;
+                                       drive-strength = <0x4>;
+                               };
+                       };
+
+                       cam_sensor_mclk2_suspend {
+                               linux,phandle = <0x230>;
+                               phandle = <0x230>;
+
+                               mux {
+                                       pins = "gpio15";
+                                       function = "cam_mclk";
+                               };
+
+                               config {
+                                       pins = "gpio15";
+                                       bias-pull-down;
+                                       drive-strength = <0x4>;
+                               };
+                       };
+
+                       cam_sensor_rear2_active {
+                               linux,phandle = <0x22a>;
+                               phandle = <0x22a>;
+
+                               mux {
+                                       pins = "gpio43", "gpio121", "gpio39", "gpio36";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio43", "gpio121", "gpio39", "gpio36";
+                                       bias-disable;
+                                       drive-strength = <0x2>;
+                               };
+                       };
+
+                       cam_sensor_rear2_suspend {
+                               linux,phandle = <0x22b>;
+                               phandle = <0x22b>;
+
+                               mux {
+                                       pins = "gpio43", "gpio121", "gpio39", "gpio36";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio43", "gpio121", "gpio39", "gpio36";
+                                       bias-pull-down;
+                                       drive-strength = <0x2>;
+                                       output-low;
+                               };
+                       };
+
+                       cam_sensor_rear_vana {
+
+                               mux {
+                                       pins = "gpio8";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio8";
+                                       bias-disable;
+                                       drive-strength = <0x2>;
+                               };
+                       };
+
+                       cam_res_mgr_active {
+
+                               mux {
+                                       pins = [00];
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = [00];
+                                       bias-disable;
+                                       drive-strength = <0x2>;
+                               };
+                       };
+
+                       cam_res_mgr_suspend {
+
+                               mux {
+                                       pins = [00];
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = [00];
+                                       bias-disable;
+                                       drive-strength = <0x2>;
+                                       output-low;
+                               };
+                       };
+
+                       trigout_a {
+                               linux,phandle = <0x1e7>;
+                               phandle = <0x1e7>;
+
+                               mux {
+                                       pins = "gpio90";
+                                       function = "qdss_cti";
+                               };
+
+                               config {
+                                       pins = "gpio90";
+                                       drive-strength = <0x2>;
+                                       bias-disable;
+                               };
+                       };
+
+                       tsif0_signals_active {
+                               linux,phandle = <0x17e>;
+                               phandle = <0x17e>;
+
+                               tsif1_clk {
+                                       pins = "gpio89";
+                                       function = "tsif1_clk";
+                               };
+
+                               tsif1_en {
+                                       pins = "gpio90";
+                                       function = "tsif1_en";
+                               };
+
+                               tsif1_data {
+                                       pins = "gpio91";
+                                       function = "tsif1_data";
+                               };
+
+                               signals_cfg {
+                                       pins = "gpio89", "gpio90", "gpio91";
+                                       drive_strength = <0x2>;
+                                       bias-pull-down;
+                               };
+                       };
+
+                       tsif0_sync_active {
+                               linux,phandle = <0x17f>;
+                               phandle = <0x17f>;
+
+                               tsif1_sync {
+                                       pins = "gpio12";
+                                       function = "tsif1_sync";
+                                       drive_strength = <0x2>;
+                                       bias-pull-down;
+                               };
+                       };
+
+                       tsif1_signals_active {
+                               linux,phandle = <0x180>;
+                               phandle = <0x180>;
+
+                               tsif2_clk {
+                                       pins = "gpio93";
+                                       function = "tsif2_clk";
+                               };
+
+                               tsif2_en {
+                                       pins = "gpio94";
+                                       function = "tsif2_en";
+                               };
+
+                               tsif2_data {
+                                       pins = "gpio95";
+                                       function = "tsif2_data";
+                               };
+
+                               signals_cfg {
+                                       pins = "gpio93", "gpio94", "gpio95";
+                                       drive_strength = <0x2>;
+                                       bias-pull-down;
+                               };
+                       };
+
+                       tsif1_sync_active {
+                               linux,phandle = <0x181>;
+                               phandle = <0x181>;
+
+                               tsif2_sync {
+                                       pins = "gpio96";
+                                       function = "tsif2_sync";
+                                       drive_strength = <0x2>;
+                                       bias-pull-down;
+                               };
+                       };
+
+                       ap2mdm {
+
+                               ap2mdm_active {
+
+                                       mux {
+                                               pins = "gpio21", "gpio23";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio21", "gpio23";
+                                               drive-strength = <0x10>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               ap2mdm_sleep {
+
+                                       mux {
+                                               pins = "gpio21", "gpio23";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio21", "gpio23";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       mdm2ap {
+
+                               mdm2ap_active {
+
+                                       mux {
+                                               pins = "gpio22", "gpio20";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio22", "gpio20";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               mdm2ap_sleep {
+
+                                       mux {
+                                               pins = "gpio22", "gpio20";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio22", "gpio20";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       lm3644 {
+
+                               lm3644_led_active {
+                                       linux,phandle = <0x86>;
+                                       phandle = <0x86>;
+
+                                       mux {
+                                               pins = "gpio93", "gpio96", "gpio135";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio93", "gpio96", "gpio135";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               lm3644_led_suspend {
+                                       linux,phandle = <0x89>;
+                                       phandle = <0x89>;
+
+                                       mux {
+                                               pins = "gpio93", "gpio96", "gpio135";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio93", "gpio96", "gpio135";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       cam_sensor_ir_active {
+                               linux,phandle = <0x234>;
+                               phandle = <0x234>;
+
+                               mux {
+                                       pins = "gpio25", "gpio44", "gpio22";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio25", "gpio44", "gpio22";
+                                       bias-disable;
+                                       drive-strength = <0x2>;
+                               };
+                       };
+
+                       cam_sensor_ir_suspend {
+                               linux,phandle = <0x236>;
+                               phandle = <0x236>;
+
+                               mux {
+                                       pins = "gpio25", "gpio44", "gpio22";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio25", "gpio44", "gpio22";
+                                       bias-pull-down;
+                                       drive-strength = <0x2>;
+                                       output-low;
+                               };
+                       };
+
+                       fp_mux {
+
+                               fp_active {
+
+                                       mux {
+                                               pins = "gpio79";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio79";
+                                               drive-strength = <0x8>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               fp_suspend {
+
+                                       mux {
+                                               pins = "gpio79";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio79";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                       };
+                               };
+                       };
+
+                       msm_gpio_37 {
+                               linux,phandle = <0x379>;
+                               phandle = <0x379>;
+
+                               mux {
+                                       pins = "gpio37";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio37";
+                                       drive-strength = <0x2>;
+                                       bias-disable;
+                                       output-low;
+                               };
+                       };
+
+                       msm_gpio_37_output_high {
+                               linux,phandle = <0x37a>;
+                               phandle = <0x37a>;
+
+                               mux {
+                                       pins = "gpio37";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio37";
+                                       drive-strength = <0x2>;
+                                       bias-disable;
+                                       output-high;
+                               };
+                       };
+
+                       msm_gpio_79 {
+
+                               mux {
+                                       pins = "gpio79";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio79";
+                                       drive-strength = <0x2>;
+                                       bias-pull-down;
+                               };
+                       };
+
+                       spk_id_no_pull {
+                               linux,phandle = <0x37d>;
+                               phandle = <0x37d>;
+
+                               mux {
+                                       pins = "gpio27";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio27";
+                                       drive-strength = <0x8>;
+                                       bias-disable;
+                                       input-enable;
+                               };
+                       };
+
+                       spk_id_pull_up {
+                               linux,phandle = <0x37c>;
+                               phandle = <0x37c>;
+
+                               mux {
+                                       pins = "gpio27";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio27";
+                                       drive-strength = <0x8>;
+                                       bias-pull-up;
+                                       input-enable;
+                               };
+                       };
+
+                       spk_id_pull_down {
+                               linux,phandle = <0x37b>;
+                               phandle = <0x37b>;
+
+                               mux {
+                                       pins = "gpio27";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio27";
+                                       drive-strength = <0x8>;
+                                       bias-pull-down;
+                                       input-enable;
+                               };
+                       };
+
+                       adc2_switch_gpio_ctrl {
+
+                               adc2_switch_idle {
+
+                                       mux {
+                                               pins = "gpio62";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio62";
+                                               drive-strength = <0x2>;
+                                               bias-pull-down;
+                                               output-low;
+                                       };
+                               };
+
+                               adc2_switch_active {
+
+                                       mux {
+                                               pins = "gpio62";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio62";
+                                               drive-strength = <0x2>;
+                                               bias-disable;
+                                               output-high;
+                                       };
+                               };
+                       };
+
+                       atest_usb13_active {
+                               linux,phandle = <0x33d>;
+                               phandle = <0x33d>;
+
+                               mux {
+                                       pins = "gpio8";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio8";
+                                       drive-strength = <0xc>;
+                                       output-high;
+                                       bias-pull-up;
+                               };
+                       };
+
+                       atest_usb13_suspend {
+                               linux,phandle = <0x33c>;
+                               phandle = <0x33c>;
+
+                               mux {
+                                       pins = "gpio8";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio8";
+                                       drive-strength = <0x2>;
+                                       output-low;
+                                       bias-pull-down;
+                               };
+                       };
+
+                       gps {
+
+                               gps_int_active {
+                                       linux,phandle = <0x66>;
+                                       phandle = <0x66>;
+
+                                       mux {
+                                               pins = "gpio129";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio129";
+                                               drive-strength = <0x2>;
+                                               input-enable;
+                                       };
+                               };
+
+                               gps_int_suspend {
+                                       linux,phandle = <0x6b>;
+                                       phandle = <0x6b>;
+
+                                       mux {
+                                               pins = "gpio129";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio129";
+                                               drive-strength = <0x2>;
+                                               input-enable;
+                                       };
+                               };
+
+                               gps_resp_active {
+                                       linux,phandle = <0x6a>;
+                                       phandle = <0x6a>;
+
+                                       mux {
+                                               pins = "gpio132";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio132";
+                                               drive-strength = <0x2>;
+                                               input-enable;
+                                               bias-disable;
+                                       };
+                               };
+
+                               gps_resp_suspend {
+                                       linux,phandle = <0x6d>;
+                                       phandle = <0x6d>;
+
+                                       mux {
+                                               pins = "gpio132";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio132";
+                                               drive-strength = <0x2>;
+                                               input-enable;
+                                               bias-disable;
+                                       };
+                               };
+
+                               gps_enable_active {
+                                       linux,phandle = <0x67>;
+                                       phandle = <0x67>;
+
+                                       mux {
+                                               pins = "gpio133", "gpio143";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio133", "gpio143";
+                                               drive-strength = <0x2>;
+                                               output-low;
+                                       };
+                               };
+
+                               gps_enable_suspend {
+                                       linux,phandle = <0x6c>;
+                                       phandle = <0x6c>;
+
+                                       mux {
+                                               pins = "gpio133", "gpio143";
+                                               function = "gpio";
+                                       };
+
+                                       config {
+                                               pins = "gpio133", "gpio143";
+                                               drive-strength = <0x2>;
+                                               output-low;
+                                       };
+                               };
+                       };
+               };
+
+               qcom,pcie@0x1c00000 {
+                       compatible = "qcom,pci-msm";
+                       cell-index = <0x0>;
+                       reg = <0x1c00000 0x2000 0x1c06000 0x1000 0x60000000 0xf1d 0x60000f20 0xa8 0x60100000 0x100000 0x60200000 0x100000 0x60300000 0xd00000>;
+                       reg-names = "parf", "phy", "dm_core", "elbi", "conf", "io", "bars";
+                       #address-cells = <0x3>;
+                       #size-cells = <0x2>;
+                       ranges = <0x1000000 0x0 0x60200000 0x60200000 0x0 0x100000 0x2000000 0x0 0x60300000 0x60300000 0x0 0xd00000>;
+                       interrupt-parent = <0xd9>;
+                       interrupts = <0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f 0x20 0x21 0x22 0x23 0x24 0x25>;
+                       #interrupt-cells = <0x1>;
+                       interrupt-map-mask = <0x0 0x0 0x0 0xffffffff>;
+                       interrupt-map = <0x0 0x0 0x0 0x0 0x1 0x0 0x8d 0x0 0x0 0x0 0x0 0x1 0x1 0x0 0x95 0x0 0x0 0x0 0x0 0x2 0x1 0x0 0x96 0x0 0x0 0x0 0x0 0x3 0x1 0x0 0x97 0x0 0x0 0x0 0x0 0x4 0x1 0x0 0x98 0x0 0x0 0x0 0x0 0x5 0x1 0x0 0x8c 0x0 0x0 0x0 0x0 0x6 0x1 0x0 0x2a0 0x0 0x0 0x0 0x0 0x7 0x1 0x0 0x2a1 0x0 0x0 0x0 0x0 0x8 0x1 0x0 0x2a2 0x0 0x0 0x0 0x0 0x9 0x1 0x0 0x2a3 0x0 0x0 0x0 0x0 0xa 0x1 0x0 0x2a4 0x0 0x0 0x0 0x0 0xb 0x1 0x0 0x2a5 0x0 0x0 0x0 0x0 0xc 0x1 0x0 0x2a6 0x0 0x0 0x0 0x0 0xd 0x1 0x0 0x2a7 0x0 0x0 0x0 0x0 0xe 0x1 0x0 0x2a8 0x0 0x0 0x0 0x0 0xf 0x1 0x0 0x2a9 0x0 0x0 0x0 0x0 0x10 0x1 0x0 0x2aa 0x0 0x0 0x0 0x0 0x11 0x1 0x0 0x2ab 0x0 0x0 0x0 0x0 0x12 0x1 0x0 0x2ac 0x0 0x0 0x0 0x0 0x13 0x1 0x0 0x2ad 0x0 0x0 0x0 0x0 0x14 0x1 0x0 0x2ae 0x0 0x0 0x0 0x0 0x15 0x1 0x0 0x2af 0x0 0x0 0x0 0x0 0x16 0x1 0x0 0x2b0 0x0 0x0 0x0 0x0 0x17 0x1 0x0 0x2b1 0x0 0x0 0x0 0x0 0x18 0x1 0x0 0x2b2 0x0 0x0 0x0 0x0 0x19 0x1 0x0 0x2b3 0x0 0x0 0x0 0x0 0x1a 0x1 0x0 0x2b4 0x0 0x0 0x0 0x0 0x1b 0x1 0x0 0x2b5 0x0 0x0 0x0 0x0 0x1c 0x1 0x0 0x2b6 0x0 0x0 0x0 0x0 0x1d 0x1 0x0 0x2b7 0x0 0x0 0x0 0x0 0x1e 0x1 0x0 0x2b8 0x0 0x0 0x0 0x0 0x1f 0x1 0x0 0x2b9 0x0 0x0 0x0 0x0 0x20 0x1 0x0 0x2ba 0x0 0x0 0x0 0x0 0x21 0x1 0x0 0x2bb 0x0 0x0 0x0 0x0 0x22 0x1 0x0 0x2bc 0x0 0x0 0x0 0x0 0x23 0x1 0x0 0x2bd 0x0 0x0 0x0 0x0 0x24 0x1 0x0 0x2be 0x0 0x0 0x0 0x0 0x25 0x1 0x0 0x2bf 0x0>;
+                       interrupt-names = "int_msi", "int_a", "int_b", "int_c", "int_d", "int_global_int", "msi_0", "msi_1", "msi_2", "msi_3", "msi_4", "msi_5", "msi_6", "msi_7", "msi_8", "msi_9", "msi_10", "msi_11", "msi_12", "msi_13", "msi_14", "msi_15", "msi_16", "msi_17", "msi_18", "msi_19", "msi_20", "msi_21", "msi_22", "msi_23", "msi_24", "msi_25", "msi_26", "msi_27", "msi_28", "msi_29", "msi_30", "msi_31";
+                       qcom,phy-sequence = <0x804 0x1 0x0 0x34 0x14 0x0 0x138 0x30 0x0 0x48 0x7 0x0 0x15c 0x6 0x0 0x90 0x1 0x0 0x88 0x20 0x0 0xf0 0x0 0x0 0xf8 0x1 0x0 0xf4 0xc9 0x0 0x11c 0xff 0x0 0x120 0x3f 0x0 0x164 0x1 0x0 0x154 0x0 0x0 0x148 0xa 0x0 0x5c 0x19 0x0 0x38 0x90 0x0 0xb0 0x82 0x0 0xc0 0x2 0x0 0xbc 0xea 0x0 0xb8 0xab 0x0 0xa0 0x0 0x0 0x9c 0xd 0x0 0x98 0x4 0x0 0x13c 0x0 0x0 0x60 0x6 0x0 0x68 0x16 0x0 0x70 0x36 0x0 0x184 0x1 0x0 0x138 0x33 0x0 0x3c 0x2 0x0 0x40 0x6 0x0 0x80 0x4 0x0 0xdc 0x0 0x0 0xd8 0x3f 0x0 0xc 0x9 0x0 0x10 0x1 0x0 0x1c 0x40 0x0 0x20 0x1 0x0 0x14 0x2 0x0 0x18 0x0 0x0 0x24 0x7e 0x0 0x28 0x15 0x0 0x244 0x2 0x0 0x2a4 0x12 0x0 0x260 0x10 0x0 0x28c 0x6 0x0 0x504 0x3 0x0 0x500 0x10 0x0 0x50c 0x14 0x0 0x4d4 0xe 0x0 0x4d8 0x4 0x0 0x4dc 0x1a 0x0 0x434 0x4b 0x0 0x414 0x4 0x0 0x40c 0x4 0x0 0x4f8 0x71 0x0 0x564 0x59 0x0 0x568 0x59 0x0 0x4fc 0x80 0x0 0x51c 0x40 0x0 0x444 0x71 0x0 0x43c 0x40 0x0 0x854 0x4 0x0 0x62c 0x52 0x0 0x654 0x10 0x0 0x65c 0x1a 0x0 0x660 0x6 0x0 0x8c8 0x83 0x0 0x8cc 0x9 0x0 0x8d0 0xa2 0x0 0x8d4 0x40 0x0 0x8c4 0x2 0x0 0x9ac 0x0 0x0 0x8a0 0x1 0x0 0x9e0 0x0 0x0 0x9dc 0x20 0x0 0x9a8 0x0 0x0 0x8a4 0x1 0x0 0x8a8 0x73 0x0 0x9d8 0xbb 0x0 0x9b0 0x3 0x0 0xa0c 0xd 0x0 0x86c 0x0 0x0 0x644 0x0 0x0 0x804 0x3 0x0 0x800 0x0 0x0 0x808 0x3 0x0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <0x2e5 0x2e6 0x2e7>;
+                       perst-gpio = <0x2e 0x23 0x0>;
+                       wake-gpio = <0x2e 0x25 0x0>;
+                       gdsc-vdd-supply = <0x2e8>;
+                       vreg-1.8-supply = <0x35>;
+                       vreg-0.9-supply = <0x36>;
+                       vreg-cx-supply = <0x1b>;
+                       qcom,vreg-1.8-voltage-level = <0x124f80 0x124f80 0x5dc0>;
+                       qcom,vreg-0.9-voltage-level = <0xd6d80 0xd6d80 0x5dc0>;
+                       qcom,vreg-cx-voltage-level = <0x10000 0x81 0x0>;
+                       qcom,l1ss-supported;
+                       qcom,aux-clk-sync;
+                       qcom,ep-latency = <0xa>;
+                       qcom,phy-status-offset = <0x974>;
+                       qcom,boot-option = <0x1>;
+                       linux,pci-domain = <0x0>;
+                       qcom,msi-gicm-addr = <0x17a00040>;
+                       qcom,msi-gicm-base = <0x2c0>;
+                       qcom,pcie-phy-ver = <0x30>;
+                       qcom,use-19p2mhz-aux-clk;
+                       qcom,smmu-sid-base = <0x1c10>;
+                       iommu-map = <0x0 0x29 0x1c10 0x1 0x100 0x29 0x1c11 0x1 0x200 0x29 0x1c12 0x1 0x300 0x29 0x1c13 0x1 0x400 0x29 0x1c14 0x1 0x500 0x29 0x1c15 0x1 0x600 0x29 0x1c16 0x1 0x700 0x29 0x1c17 0x1 0x800 0x29 0x1c18 0x1 0x900 0x29 0x1c19 0x1 0xa00 0x29 0x1c1a 0x1 0xb00 0x29 0x1c1b 0x1 0xc00 0x29 0x1c1c 0x1 0xd00 0x29 0x1c1d 0x1 0xe00 0x29 0x1c1e 0x1 0xf00 0x29 0x1c1f 0x1>;
+                       qcom,msm-bus,name = "pcie0";
+                       qcom,msm-bus,num-cases = <0x2>;
+                       qcom,msm-bus,num-paths = <0x1>;
+                       qcom,msm-bus,vectors-KBps = <0x2d 0x200 0x0 0x0 0x2d 0x200 0x1f4 0x320>;
+                       clocks = <0x22 0x36 0x21 0x0 0x22 0x31 0x22 0x33 0x22 0x35 0x22 0x37 0x22 0x34 0x22 0x38 0x22 0x6 0x22 0x42 0x22 0x41>;
+                       clock-names = "pcie_0_pipe_clk", "pcie_0_ref_clk_src", "pcie_0_aux_clk", "pcie_0_cfg_ahb_clk", "pcie_0_mstr_axi_clk", "pcie_0_slv_axi_clk", "pcie_0_ldo", "pcie_0_slv_q2a_axi_clk", "pcie_tbu_clk", "pcie_phy_refgen_clk", "pcie_phy_aux_clk";
+                       max-clock-frequency-hz = <0x0 0x0 0x124f800 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x5f5e100 0x0>;
+                       resets = <0x22 0x1 0x22 0x18>;
+                       reset-names = "pcie_0_core_reset", "pcie_0_phy_reset";
+                       status = "disabled";
+                       linux,phandle = <0xd9>;
+                       phandle = <0xd9>;
+               };
+
+               qcom,pcie@0x1c08000 {
+                       compatible = "qcom,pci-msm";
+                       cell-index = <0x1>;
+                       reg = <0x1c08000 0x2000 0x1c0a000 0x2000 0x40000000 0xf1d 0x40000f20 0xa8 0x40100000 0x100000 0x40200000 0x100000 0x40300000 0x1fd00000>;
+                       reg-names = "parf", "phy", "dm_core", "elbi", "conf", "io", "bars";
+                       #address-cells = <0x3>;
+                       #size-cells = <0x2>;
+                       ranges = <0x1000000 0x0 0x40200000 0x40200000 0x0 0x100000 0x2000000 0x0 0x40300000 0x40300000 0x0 0x1fd00000>;
+                       interrupt-parent = <0x2e9>;
+                       interrupts = <0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f 0x20 0x21 0x22 0x23 0x24 0x25>;
+                       #interrupt-cells = <0x1>;
+                       interrupt-map-mask = <0x0 0x0 0x0 0xffffffff>;
+                       interrupt-map = <0x0 0x0 0x0 0x0 0xaa 0x0 0x133 0x0 0x0 0x0 0x0 0x1 0xaa 0x0 0x1b2 0x0 0x0 0x0 0x0 0x2 0xaa 0x0 0x1b3 0x0 0x0 0x0 0x0 0x3 0xaa 0x0 0x1b6 0x0 0x0 0x0 0x0 0x4 0xaa 0x0 0x1b7 0x0 0x0 0x0 0x0 0x5 0xaa 0x0 0x132 0x0 0x0 0x0 0x0 0x6 0xaa 0x0 0x2c0 0x0 0x0 0x0 0x0 0x7 0xaa 0x0 0x2c1 0x0 0x0 0x0 0x0 0x8 0xaa 0x0 0x2c2 0x0 0x0 0x0 0x0 0x9 0xaa 0x0 0x2c3 0x0 0x0 0x0 0x0 0xa 0xaa 0x0 0x2c4 0x0 0x0 0x0 0x0 0xb 0xaa 0x0 0x2c5 0x0 0x0 0x0 0x0 0xc 0xaa 0x0 0x2c6 0x0 0x0 0x0 0x0 0xd 0xaa 0x0 0x2c7 0x0 0x0 0x0 0x0 0xe 0xaa 0x0 0x2c8 0x0 0x0 0x0 0x0 0xf 0xaa 0x0 0x2c9 0x0 0x0 0x0 0x0 0x10 0xaa 0x0 0x2ca 0x0 0x0 0x0 0x0 0x11 0xaa 0x0 0x2cb 0x0 0x0 0x0 0x0 0x12 0xaa 0x0 0x2cc 0x0 0x0 0x0 0x0 0x13 0xaa 0x0 0x2cd 0x0 0x0 0x0 0x0 0x14 0xaa 0x0 0x2ce 0x0 0x0 0x0 0x0 0x15 0xaa 0x0 0x2cf 0x0 0x0 0x0 0x0 0x16 0xaa 0x0 0x2d0 0x0 0x0 0x0 0x0 0x17 0xaa 0x0 0x2d1 0x0 0x0 0x0 0x0 0x18 0xaa 0x0 0x2d2 0x0 0x0 0x0 0x0 0x19 0xaa 0x0 0x2d3 0x0 0x0 0x0 0x0 0x1a 0xaa 0x0 0x2d4 0x0 0x0 0x0 0x0 0x1b 0xaa 0x0 0x2d5 0x0 0x0 0x0 0x0 0x1c 0xaa 0x0 0x2d6 0x0 0x0 0x0 0x0 0x1d 0xaa 0x0 0x2d7 0x0 0x0 0x0 0x0 0x1e 0xaa 0x0 0x2d8 0x0 0x0 0x0 0x0 0x1f 0xaa 0x0 0x2d9 0x0 0x0 0x0 0x0 0x20 0xaa 0x0 0x2da 0x0 0x0 0x0 0x0 0x21 0xaa 0x0 0x2db 0x0 0x0 0x0 0x0 0x22 0xaa 0x0 0x2dc 0x0 0x0 0x0 0x0 0x23 0xaa 0x0 0x2dd 0x0 0x0 0x0 0x0 0x24 0xaa 0x0 0x2de 0x0 0x0 0x0 0x0 0x25 0xaa 0x0 0x2df 0x0>;
+                       interrupt-names = "int_msi", "int_a", "int_b", "int_c", "int_d", "int_global_int", "msi_0", "msi_1", "msi_2", "msi_3", "msi_4", "msi_5", "msi_6", "msi_7", "msi_8", "msi_9", "msi_10", "msi_11", "msi_12", "msi_13", "msi_14", "msi_15", "msi_16", "msi_17", "msi_18", "msi_19", "msi_20", "msi_21", "msi_22", "msi_23", "msi_24", "msi_25", "msi_26", "msi_27", "msi_28", "msi_29", "msi_30", "msi_31";
+                       qcom,phy-sequence = <0x1804 0x3 0x0 0xdc 0x27 0x0 0x14 0x1 0x0 0x20 0x31 0x0 0x24 0x1 0x0 0x28 0xde 0x0 0x2c 0x7 0x0 0x34 0x4c 0x0 0x38 0x6 0x0 0x54 0x18 0x0 0x58 0xb0 0x0 0x6c 0x8c 0x0 0x70 0x20 0x0 0x78 0x14 0x0 0x7c 0x34 0x0 0xb4 0x6 0x0 0xb8 0x6 0x0 0xc0 0x16 0x0 0xc4 0x16 0x0 0xcc 0x36 0x0 0xd0 0x36 0x0 0xf0 0x5 0x0 0xf8 0x42 0x0 0x100 0x82 0x0 0x108 0x68 0x0 0x11c 0x55 0x0 0x120 0x55 0x0 0x124 0x3 0x0 0x128 0xab 0x0 0x12c 0xaa 0x0 0x130 0x2 0x0 0x150 0x3f 0x0 0x158 0x3f 0x0 0x178 0x10 0x0 0x1cc 0x4 0x0 0x1d0 0x30 0x0 0x1e0 0x4 0x0 0x1e8 0x73 0x0 0x1f0 0x1c 0x0 0x1fc 0x15 0x0 0x21c 0x4 0x0 0x224 0x1 0x0 0x228 0x22 0x0 0x22c 0x0 0x0 0x98 0x5 0x0 0x80c 0x0 0x0 0x818 0xd 0x0 0x860 0x1 0x0 0x864 0x3a 0x0 0x87c 0x2f 0x0 0x8c0 0x9 0x0 0x8c4 0x9 0x0 0x8c8 0x1a 0x0 0x8d0 0x1 0x0 0x8d4 0x7 0x0 0x8d8 0x31 0x0 0x8dc 0x31 0x0 0x8e0 0x3 0x0 0x8fc 0x2 0x0 0x900 0x1 0x0 0x908 0x12 0x0 0x914 0x25 0x0 0x918 0x0 0x0 0x91c 0x5 0x0 0x920 0x1 0x0 0x924 0x26 0x0 0x928 0x12 0x0 0x930 0x4 0x0 0x934 0x4 0x0 0x938 0x9 0x0 0x954 0x15 0x0 0x960 0x32 0x0 0x968 0x7f 0x0 0x96c 0x7 0x0 0x978 0x4 0x0 0x980 0x70 0x0 0x984 0x8b 0x0 0x988 0x8 0x0 0x98c 0x9 0x0 0x990 0x3 0x0 0x994 0x4 0x0 0x998 0x2 0x0 0x99c 0xc 0x0 0x9a4 0x2 0x0 0x9c0 0x5c 0x0 0x9c4 0x3e 0x0 0x9c8 0x3f 0x0 0xa30 0x1 0x0 0xa34 0xa0 0x0 0xa38 0x8 0x0 0xaa4 0x1 0x0 0xaac 0xc3 0x0 0xab0 0x0 0x0 0xab8 0x8c 0x0 0xac0 0x7f 0x0 0xac4 0x2a 0x0 0x810 0xc 0x0 0x814 0x0 0x0 0xacc 0x4 0x0 0x93c 0x20 0x0 0x100c 0x0 0x0 0x1018 0xd 0x0 0x1060 0x1 0x0 0x1064 0x3a 0x0 0x107c 0x2f 0x0 0x10c0 0x9 0x0 0x10c4 0x9 0x0 0x10c8 0x1a 0x0 0x10d0 0x1 0x0 0x10d4 0x7 0x0 0x10d8 0x31 0x0 0x10dc 0x31 0x0 0x10e0 0x3 0x0 0x10fc 0x2 0x0 0x1100 0x1 0x0 0x1108 0x12 0x0 0x1114 0x25 0x0 0x1118 0x0 0x0 0x111c 0x5 0x0 0x1120 0x1 0x0 0x1124 0x26 0x0 0x1128 0x12 0x0 0x1130 0x4 0x0 0x1134 0x4 0x0 0x1138 0x9 0x0 0x1154 0x15 0x0 0x1160 0x32 0x0 0x1168 0x7f 0x0 0x116c 0x7 0x0 0x1178 0x4 0x0 0x1180 0x70 0x0 0x1184 0x8b 0x0 0x1188 0x8 0x0 0x118c 0x9 0x0 0x1190 0x3 0x0 0x1194 0x4 0x0 0x1198 0x2 0x0 0x119c 0xc 0x0 0x11a4 0x2 0x0 0x11c0 0x5c 0x0 0x11c4 0x3e 0x0 0x11c8 0x3f 0x0 0x1230 0x1 0x0 0x1234 0xa0 0x0 0x1238 0x8 0x0 0x12a4 0x1 0x0 0x12ac 0xc3 0x0 0x12b0 0x0 0x0 0x12b8 0x8c 0x0 0x12c0 0x7f 0x0 0x12c4 0x2a 0x0 0x1010 0xc 0x0 0x1014 0xf 0x0 0x12cc 0x4 0x0 0x113c 0x20 0x0 0x195c 0x3f 0x0 0x1974 0x50 0x0 0x196c 0x9f 0x0 0x182c 0x19 0x0 0x1840 0x7 0x0 0x1854 0x17 0x0 0x1868 0x9 0x0 0x1800 0x0 0x0 0xaa8 0x1 0x0 0x12a8 0x1 0x0 0x1808 0x1 0x0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <0x2ea 0x2eb 0x2ec>;
+                       perst-gpio = <0x2e 0x66 0x0>;
+                       wake-gpio = <0x2e 0x68 0x0>;
+                       gdsc-vdd-supply = <0x2ed>;
+                       vreg-1.8-supply = <0x35>;
+                       vreg-0.9-supply = <0x36>;
+                       vreg-cx-supply = <0x1b>;
+                       qcom,vreg-1.8-voltage-level = <0x124f80 0x124f80 0x5dc0>;
+                       qcom,vreg-0.9-voltage-level = <0xd6d80 0xd6d80 0x5dc0>;
+                       qcom,vreg-cx-voltage-level = <0x10000 0x101 0x0>;
+                       qcom,l1ss-supported;
+                       qcom,aux-clk-sync;
+                       qcom,ep-latency = <0xa>;
+                       qcom,slv-addr-space-size = <0x20000000>;
+                       qcom,phy-status-offset = <0x1aac>;
+                       qcom,boot-option = <0x1>;
+                       linux,pci-domain = <0x1>;
+                       qcom,msi-gicm-addr = <0x17a00040>;
+                       qcom,msi-gicm-base = <0x2e0>;
+                       qcom,max-link-speed = <0x3>;
+                       qcom,use-19p2mhz-aux-clk;
+                       qcom,smmu-sid-base = <0x1c00>;
+                       iommu-map = <0x0 0x29 0x1c00 0x1 0x100 0x29 0x1c01 0x1 0x200 0x29 0x1c02 0x1 0x300 0x29 0x1c03 0x1 0x400 0x29 0x1c04 0x1 0x500 0x29 0x1c05 0x1 0x600 0x29 0x1c06 0x1 0x700 0x29 0x1c07 0x1 0x800 0x29 0x1c08 0x1 0x900 0x29 0x1c09 0x1 0xa00 0x29 0x1c0a 0x1 0xb00 0x29 0x1c0b 0x1 0xc00 0x29 0x1c0c 0x1 0xd00 0x29 0x1c0d 0x1 0xe00 0x29 0x1c0e 0x1 0xf00 0x29 0x1c0f 0x1>;
+                       qcom,msm-bus,name = "pcie1";
+                       qcom,msm-bus,num-cases = <0x2>;
+                       qcom,msm-bus,num-paths = <0x1>;
+                       qcom,msm-bus,vectors-KBps = <0x64 0x200 0x0 0x0 0x64 0x200 0x1f4 0x320>;
+                       clocks = <0x22 0x3e 0x21 0x0 0x22 0x39 0x22 0x3b 0x22 0x3d 0x22 0x3f 0x22 0x3c 0x22 0x40 0x22 0x6 0x22 0x42 0x22 0x41>;
+                       clock-names = "pcie_1_pipe_clk", "pcie_1_ref_clk_src", "pcie_1_aux_clk", "pcie_1_cfg_ahb_clk", "pcie_1_mstr_axi_clk", "pcie_1_slv_axi_clk", "pcie_1_ldo", "pcie_1_slv_q2a_axi_clk", "pcie_tbu_clk", "pcie_phy_refgen_clk", "pcie_phy_aux_clk";
+                       max-clock-frequency-hz = <0x0 0x0 0x124f800 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x5f5e100 0x0>;
+                       resets = <0x22 0x2 0x22 0x19>;
+                       reset-names = "pcie_1_core_reset", "pcie_1_phy_reset";
+                       status = "disabled";
+                       linux,phandle = <0x2e9>;
+                       phandle = <0x2e9>;
+               };
+
+               qcom,msm-pcm {
+                       compatible = "qcom,msm-pcm-dsp";
+                       qcom,msm-pcm-dsp-id = <0x0>;
+                       linux,phandle = <0x2ee>;
+                       phandle = <0x2ee>;
+               };
+
+               qcom,msm-pcm-routing {
+                       compatible = "qcom,msm-pcm-routing";
+                       linux,phandle = <0x2f8>;
+                       phandle = <0x2f8>;
+               };
+
+               qcom,msm-compr-dsp {
+                       compatible = "qcom,msm-compr-dsp";
+                       linux,phandle = <0x2f9>;
+                       phandle = <0x2f9>;
+               };
+
+               qcom,msm-pcm-low-latency {
+                       compatible = "qcom,msm-pcm-dsp";
+                       qcom,msm-pcm-dsp-id = <0x1>;
+                       qcom,msm-pcm-low-latency;
+                       qcom,latency-level = "regular";
+                       linux,phandle = <0x2ef>;
+                       phandle = <0x2ef>;
+               };
+
+               qcom,msm-ultra-low-latency {
+                       compatible = "qcom,msm-pcm-dsp";
+                       qcom,msm-pcm-dsp-id = <0x2>;
+                       qcom,msm-pcm-low-latency;
+                       qcom,latency-level = "ultra";
+                       linux,phandle = <0x2f0>;
+                       phandle = <0x2f0>;
+               };
+
+               qcom,msm-pcm-dsp-noirq {
+                       compatible = "qcom,msm-pcm-dsp-noirq";
+                       qcom,msm-pcm-low-latency;
+                       qcom,latency-level = "ultra";
+                       linux,phandle = <0x2fa>;
+                       phandle = <0x2fa>;
+               };
+
+               qcom,msm-compress-dsp {
+                       compatible = "qcom,msm-compress-dsp";
+                       linux,phandle = <0x2f4>;
+                       phandle = <0x2f4>;
+               };
+
+               qcom,msm-voip-dsp {
+                       compatible = "qcom,msm-voip-dsp";
+                       linux,phandle = <0x2f1>;
+                       phandle = <0x2f1>;
+               };
+
+               qcom,msm-pcm-voice {
+                       compatible = "qcom,msm-pcm-voice";
+                       qcom,destroy-cvd;
+                       linux,phandle = <0x2f2>;
+                       phandle = <0x2f2>;
+               };
+
+               qcom,msm-stub-codec {
+                       compatible = "qcom,msm-stub-codec";
+                       linux,phandle = <0x32a>;
+                       phandle = <0x32a>;
+               };
+
+               qcom,msm-dai-fe {
+                       compatible = "qcom,msm-dai-fe";
+               };
+
+               qcom,msm-pcm-afe {
+                       compatible = "qcom,msm-pcm-afe";
+                       linux,phandle = <0x2f6>;
+                       phandle = <0x2f6>;
+               };
+
+               qcom,msm-dai-q6-hdmi {
+                       compatible = "qcom,msm-dai-q6-hdmi";
+                       qcom,msm-dai-q6-dev-id = <0x8>;
+                       linux,phandle = <0x2fb>;
+                       phandle = <0x2fb>;
+               };
+
+               qcom,msm-dai-q6-dp {
+                       compatible = "qcom,msm-dai-q6-hdmi";
+                       qcom,msm-dai-q6-dev-id = <0x6020>;
+                       linux,phandle = <0x2fc>;
+                       phandle = <0x2fc>;
+               };
+
+               qcom,msm-pcm-loopback {
+                       compatible = "qcom,msm-pcm-loopback";
+                       linux,phandle = <0x2f3>;
+                       phandle = <0x2f3>;
+               };
+
+               qcom,msm-dai-mi2s {
+                       compatible = "qcom,msm-dai-mi2s";
+
+                       qcom,msm-dai-q6-mi2s-prim {
+                               compatible = "qcom,msm-dai-q6-mi2s";
+                               qcom,msm-dai-q6-mi2s-dev-id = <0x0>;
+                               qcom,msm-mi2s-rx-lines = <0x3>;
+                               qcom,msm-mi2s-tx-lines = <0x0>;
+                               linux,phandle = <0x2fd>;
+                               phandle = <0x2fd>;
+                       };
+
+                       qcom,msm-dai-q6-mi2s-sec {
+                               compatible = "qcom,msm-dai-q6-mi2s";
+                               qcom,msm-dai-q6-mi2s-dev-id = <0x1>;
+                               qcom,msm-mi2s-rx-lines = <0x1>;
+                               qcom,msm-mi2s-tx-lines = <0x0>;
+                               linux,phandle = <0x2fe>;
+                               phandle = <0x2fe>;
+                       };
+
+                       qcom,msm-dai-q6-mi2s-tert {
+                               compatible = "qcom,msm-dai-q6-mi2s";
+                               qcom,msm-dai-q6-mi2s-dev-id = <0x2>;
+                               qcom,msm-mi2s-rx-lines = <0x0>;
+                               qcom,msm-mi2s-tx-lines = <0x3>;
+                               linux,phandle = <0x2ff>;
+                               phandle = <0x2ff>;
+                       };
+
+                       qcom,msm-dai-q6-mi2s-quat {
+                               compatible = "qcom,msm-dai-q6-mi2s";
+                               qcom,msm-dai-q6-mi2s-dev-id = <0x3>;
+                               qcom,msm-mi2s-rx-lines = <0x1>;
+                               qcom,msm-mi2s-tx-lines = <0x2>;
+                               linux,phandle = <0x300>;
+                               phandle = <0x300>;
+                       };
+
+                       qcom,msm-dai-q6-mi2s-quin {
+                               compatible = "qcom,msm-dai-q6-mi2s";
+                               qcom,msm-dai-q6-mi2s-dev-id = <0x4>;
+                               qcom,msm-mi2s-rx-lines = <0x1>;
+                               qcom,msm-mi2s-tx-lines = <0x2>;
+                       };
+
+                       qcom,msm-dai-q6-mi2s-senary {
+                               compatible = "qcom,msm-dai-q6-mi2s";
+                               qcom,msm-dai-q6-mi2s-dev-id = <0x6>;
+                               qcom,msm-mi2s-rx-lines = <0x0>;
+                               qcom,msm-mi2s-tx-lines = <0x3>;
+                       };
+               };
+
+               qcom,msm-lsm-client {
+                       compatible = "qcom,msm-lsm-client";
+                       linux,phandle = <0x2f7>;
+                       phandle = <0x2f7>;
+               };
+
+               qcom,msm-dai-q6 {
+                       compatible = "qcom,msm-dai-q6";
+
+                       qcom,msm-dai-q6-sb-0-rx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x4000>;
+                               linux,phandle = <0x305>;
+                               phandle = <0x305>;
+                       };
+
+                       qcom,msm-dai-q6-sb-0-tx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x4001>;
+                               linux,phandle = <0x306>;
+                               phandle = <0x306>;
+                       };
+
+                       qcom,msm-dai-q6-sb-1-rx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x4002>;
+                               linux,phandle = <0x307>;
+                               phandle = <0x307>;
+                       };
+
+                       qcom,msm-dai-q6-sb-1-tx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x4003>;
+                               linux,phandle = <0x308>;
+                               phandle = <0x308>;
+                       };
+
+                       qcom,msm-dai-q6-sb-2-rx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x4004>;
+                               linux,phandle = <0x309>;
+                               phandle = <0x309>;
+                       };
+
+                       qcom,msm-dai-q6-sb-2-tx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x4005>;
+                               linux,phandle = <0x30a>;
+                               phandle = <0x30a>;
+                       };
+
+                       qcom,msm-dai-q6-sb-3-rx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x4006>;
+                               linux,phandle = <0x30b>;
+                               phandle = <0x30b>;
+                       };
+
+                       qcom,msm-dai-q6-sb-3-tx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x4007>;
+                               linux,phandle = <0x30c>;
+                               phandle = <0x30c>;
+                       };
+
+                       qcom,msm-dai-q6-sb-4-rx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x4008>;
+                               linux,phandle = <0x30d>;
+                               phandle = <0x30d>;
+                       };
+
+                       qcom,msm-dai-q6-sb-4-tx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x4009>;
+                               linux,phandle = <0x30e>;
+                               phandle = <0x30e>;
+                       };
+
+                       qcom,msm-dai-q6-sb-5-tx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x400b>;
+                               linux,phandle = <0x30f>;
+                               phandle = <0x30f>;
+                       };
+
+                       qcom,msm-dai-q6-sb-5-rx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x400a>;
+                               linux,phandle = <0x318>;
+                               phandle = <0x318>;
+                       };
+
+                       qcom,msm-dai-q6-sb-6-rx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x400c>;
+                               linux,phandle = <0x319>;
+                               phandle = <0x319>;
+                       };
+
+                       qcom,msm-dai-q6-sb-7-rx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x400e>;
+                               linux,phandle = <0x31a>;
+                               phandle = <0x31a>;
+                       };
+
+                       qcom,msm-dai-q6-sb-7-tx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x400f>;
+                               linux,phandle = <0x31b>;
+                               phandle = <0x31b>;
+                       };
+
+                       qcom,msm-dai-q6-sb-8-rx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x4010>;
+                       };
+
+                       qcom,msm-dai-q6-sb-8-tx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x4011>;
+                               linux,phandle = <0x31c>;
+                               phandle = <0x31c>;
+                       };
+
+                       qcom,msm-dai-q6-bt-sco-rx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x3000>;
+                       };
+
+                       qcom,msm-dai-q6-bt-sco-tx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x3001>;
+                       };
+
+                       qcom,msm-dai-q6-int-fm-rx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x3004>;
+                       };
+
+                       qcom,msm-dai-q6-int-fm-tx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x3005>;
+                       };
+
+                       qcom,msm-dai-q6-be-afe-pcm-rx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0xe0>;
+                               linux,phandle = <0x310>;
+                               phandle = <0x310>;
+                       };
+
+                       qcom,msm-dai-q6-be-afe-pcm-tx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0xe1>;
+                               linux,phandle = <0x311>;
+                               phandle = <0x311>;
+                       };
+
+                       qcom,msm-dai-q6-afe-proxy-rx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0xf1>;
+                               linux,phandle = <0x312>;
+                               phandle = <0x312>;
+                       };
+
+                       qcom,msm-dai-q6-afe-proxy-tx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0xf0>;
+                               linux,phandle = <0x313>;
+                               phandle = <0x313>;
+                       };
+
+                       qcom,msm-dai-q6-afe-loopback-tx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x6001>;
+                       };
+
+                       qcom,msm-dai-q6-incall-record-rx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x8003>;
+                               linux,phandle = <0x314>;
+                               phandle = <0x314>;
+                       };
+
+                       qcom,msm-dai-q6-incall-record-tx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x8004>;
+                               linux,phandle = <0x315>;
+                               phandle = <0x315>;
+                       };
+
+                       qcom,msm-dai-q6-incall-music-rx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x8005>;
+                               linux,phandle = <0x316>;
+                               phandle = <0x316>;
+                       };
+
+                       qcom,msm-dai-q6-incall-music-2-rx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x8002>;
+                               linux,phandle = <0x317>;
+                               phandle = <0x317>;
+                       };
+
+                       qcom,msm-dai-q6-usb-audio-rx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x7000>;
+                               linux,phandle = <0x31d>;
+                               phandle = <0x31d>;
+                       };
+
+                       qcom,msm-dai-q6-usb-audio-tx {
+                               compatible = "qcom,msm-dai-q6-dev";
+                               qcom,msm-dai-q6-dev-id = <0x7001>;
+                               linux,phandle = <0x31e>;
+                               phandle = <0x31e>;
+                       };
+               };
+
+               qcom,msm-pcm-hostless {
+                       compatible = "qcom,msm-pcm-hostless";
+                       linux,phandle = <0x2f5>;
+                       phandle = <0x2f5>;
+               };
+
+               qcom,msm-audio-apr {
+                       compatible = "qcom,msm-audio-apr";
+                       qcom,subsys-name = "apr_adsp";
+
+                       sound-tavil {
+                               compatible = "qcom,sdm845-asoc-snd-tavil";
+                               qcom,model = "sdm845-tavil-snd-card";
+                               qcom,ext-disp-audio-rx;
+                               qcom,wcn-btfm;
+                               qcom,mi2s-audio-intf;
+                               qcom,auxpcm-audio-intf;
+                               qcom,msm-mi2s-master = <0x1 0x1 0x1 0x1>;
+                               asoc-platform = <0x2ee 0x2ef 0x2f0 0x2f1 0x2f2 0x2f3 0x2f4 0x2f5 0x2f6 0x2f7 0x2f8 0x2f9 0x2fa>;
+                               asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1", "msm-pcm-dsp.2", "msm-voip-dsp", "msm-pcm-voice", "msm-pcm-loopback", "msm-compress-dsp", "msm-pcm-hostless", "msm-pcm-afe", "msm-lsm-client", "msm-pcm-routing", "msm-compr-dsp", "msm-pcm-dsp-noirq";
+                               asoc-cpu = <0x2fb 0x2fc 0x2fd 0x2fe 0x2ff 0x300 0x301 0x302 0x303 0x304 0x305 0x306 0x307 0x308 0x309 0x30a 0x30b 0x30c 0x30d 0x30e 0x30f 0x310 0x311 0x312 0x313 0x314 0x315 0x316 0x317 0x318 0x319 0x31a 0x31b 0x31c 0x31d 0x31e 0x31f 0x320 0x321 0x322 0x323 0x324 0x325 0x326 0x327>;
+                               asoc-cpu-names = "msm-dai-q6-hdmi.8", "msm-dai-q6-dp.24608", "msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1", "msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3", "msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2", "msm-dai-q6-auxpcm.3", "msm-dai-q6-auxpcm.4", "msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385", "msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387", "msm-dai-q6-dev.16388", "msm-dai-q6-dev.16389", "msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391", "msm-dai-q6-dev.16392", "msm-dai-q6-dev.16393", "msm-dai-q6-dev.16395", "msm-dai-q6-dev.224", "msm-dai-q6-dev.225", "msm-dai-q6-dev.241", "msm-dai-q6-dev.240", "msm-dai-q6-dev.32771", "msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773", "msm-dai-q6-dev.32770", "msm-dai-q6-dev.16394", "msm-dai-q6-dev.16396", "msm-dai-q6-dev.16398", "msm-dai-q6-dev.16399", "msm-dai-q6-dev.16401", "msm-dai-q6-dev.28672", "msm-dai-q6-dev.28673", "msm-dai-q6-tdm.36864", "msm-dai-q6-tdm.36865", "msm-dai-q6-tdm.36880", "msm-dai-q6-tdm.36881", "msm-dai-q6-tdm.36896", "msm-dai-q6-tdm.36897", "msm-dai-q6-tdm.36912", "msm-dai-q6-tdm.36913", "msm-dai-q6-tdm.36914";
+                               qcom,audio-routing = "AIF4 VI", "MCLK", "RX_BIAS", "MCLK", "MADINPUT", "MCLK", "hifi amp", "LINEOUT1", "hifi amp", "LINEOUT2", "AMIC2", "MIC BIAS2", "MIC BIAS2", "Headset Mic", "AMIC3", "MIC BIAS2", "MIC BIAS2", "ANCRight Headset Mic", "AMIC4", "MIC BIAS2", "MIC BIAS2", "ANCLeft Headset Mic", "AMIC5", "MIC BIAS3", "MIC BIAS3", "Handset Mic", "DMIC0", "MIC BIAS1", "MIC BIAS1", "Digital Mic0", "DMIC1", "MIC BIAS1", "MIC BIAS1", "Digital Mic1", "DMIC2", "MIC BIAS3", "MIC BIAS3", "Digital Mic2", "DMIC3", "MIC BIAS3", "MIC BIAS3", "Digital Mic3", "DMIC4", "MIC BIAS4", "MIC BIAS4", "Digital Mic4", "DMIC5", "MIC BIAS4", "MIC BIAS4", "Digital Mic5", "SpkrLeft IN", "SPK1 OUT", "SpkrRight IN", "SPK2 OUT";
+                               qcom,msm-mbhc-hphl-swh = <0x1>;
+                               qcom,msm-mbhc-gnd-swh = <0x1>;
+                               qcom,hph-en0-gpio = <0x328>;
+                               qcom,hph-en1-gpio = <0x329>;
+                               qcom,tavil-mclk-clk-freq = <0x927c00>;
+                               asoc-codec = <0x32a 0x32b>;
+                               asoc-codec-names = "msm-stub-codec.1", "msm-ext-disp-audio-codec-rx";
+                               qcom,usbc-analog-en1-gpio = <0x32c>;
+                               pinctrl-names = "aud_active", "aud_sleep";
+                               pinctrl-0 = <0x32d>;
+                               pinctrl-1 = <0x32e>;
+                               qcom,wsa-max-devs = <0x2>;
+                               qcom,wsa-devs = <0x32f 0x330 0x331 0x332>;
+                               qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight", "SpkrLeft", "SpkrRight";
+                       };
+               };
+
+               qcom,msm-pri-auxpcm {
+                       compatible = "qcom,msm-auxpcm-dev";
+                       qcom,msm-cpudai-auxpcm-mode = <0x0 0x0>;
+                       qcom,msm-cpudai-auxpcm-sync = <0x1 0x1>;
+                       qcom,msm-cpudai-auxpcm-frame = <0x5 0x4>;
+                       qcom,msm-cpudai-auxpcm-quant = <0x2 0x2>;
+                       qcom,msm-cpudai-auxpcm-num-slots = <0x1 0x1>;
+                       qcom,msm-cpudai-auxpcm-slot-mapping = <0x1 0x1>;
+                       qcom,msm-cpudai-auxpcm-data = <0x0 0x0>;
+                       qcom,msm-cpudai-auxpcm-pcm-clk-rate = <0x1f4000 0x1f4000>;
+                       qcom,msm-auxpcm-interface = "primary";
+                       qcom,msm-cpudai-afe-clk-ver = <0x2>;
+                       linux,phandle = <0x301>;
+                       phandle = <0x301>;
+               };
+
+               qcom,msm-sec-auxpcm {
+                       compatible = "qcom,msm-auxpcm-dev";
+                       qcom,msm-cpudai-auxpcm-mode = <0x0 0x0>;
+                       qcom,msm-cpudai-auxpcm-sync = <0x1 0x1>;
+                       qcom,msm-cpudai-auxpcm-frame = <0x5 0x4>;
+                       qcom,msm-cpudai-auxpcm-quant = <0x2 0x2>;
+                       qcom,msm-cpudai-auxpcm-num-slots = <0x1 0x1>;
+                       qcom,msm-cpudai-auxpcm-slot-mapping = <0x1 0x1>;
+                       qcom,msm-cpudai-auxpcm-data = <0x0 0x0>;
+                       qcom,msm-cpudai-auxpcm-pcm-clk-rate = <0x1f4000 0x1f4000>;
+                       qcom,msm-auxpcm-interface = "secondary";
+                       qcom,msm-cpudai-afe-clk-ver = <0x2>;
+                       linux,phandle = <0x302>;
+                       phandle = <0x302>;
+               };
+
+               qcom,msm-tert-auxpcm {
+                       compatible = "qcom,msm-auxpcm-dev";
+                       qcom,msm-cpudai-auxpcm-mode = <0x0 0x0>;
+                       qcom,msm-cpudai-auxpcm-sync = <0x1 0x1>;
+                       qcom,msm-cpudai-auxpcm-frame = <0x5 0x4>;
+                       qcom,msm-cpudai-auxpcm-quant = <0x2 0x2>;
+                       qcom,msm-cpudai-auxpcm-num-slots = <0x1 0x1>;
+                       qcom,msm-cpudai-auxpcm-slot-mapping = <0x1 0x1>;
+                       qcom,msm-cpudai-auxpcm-data = <0x0 0x0>;
+                       qcom,msm-cpudai-auxpcm-pcm-clk-rate = <0x1f4000 0x1f4000>;
+                       qcom,msm-auxpcm-interface = "tertiary";
+                       qcom,msm-cpudai-afe-clk-ver = <0x2>;
+                       linux,phandle = <0x303>;
+                       phandle = <0x303>;
+               };
+
+               qcom,msm-quat-auxpcm {
+                       compatible = "qcom,msm-auxpcm-dev";
+                       qcom,msm-cpudai-auxpcm-mode = <0x0 0x0>;
+                       qcom,msm-cpudai-auxpcm-sync = <0x1 0x1>;
+                       qcom,msm-cpudai-auxpcm-frame = <0x5 0x4>;
+                       qcom,msm-cpudai-auxpcm-quant = <0x2 0x2>;
+                       qcom,msm-cpudai-auxpcm-num-slots = <0x1 0x1>;
+                       qcom,msm-cpudai-auxpcm-slot-mapping = <0x1 0x1>;
+                       qcom,msm-cpudai-auxpcm-data = <0x0 0x0>;
+                       qcom,msm-cpudai-auxpcm-pcm-clk-rate = <0x1f4000 0x1f4000>;
+                       qcom,msm-auxpcm-interface = "quaternary";
+                       qcom,msm-cpudai-afe-clk-ver = <0x2>;
+                       linux,phandle = <0x304>;
+                       phandle = <0x304>;
+               };
+
+               qcom,msm-quin-auxpcm {
+                       compatible = "qcom,msm-auxpcm-dev";
+                       qcom,msm-cpudai-auxpcm-mode = <0x0 0x0>;
+                       qcom,msm-cpudai-auxpcm-sync = <0x1 0x1>;
+                       qcom,msm-cpudai-auxpcm-frame = <0x5 0x4>;
+                       qcom,msm-cpudai-auxpcm-quant = <0x2 0x2>;
+                       qcom,msm-cpudai-auxpcm-num-slots = <0x1 0x1>;
+                       qcom,msm-cpudai-auxpcm-slot-mapping = <0x1 0x1>;
+                       qcom,msm-cpudai-auxpcm-data = <0x0 0x0>;
+                       qcom,msm-cpudai-auxpcm-pcm-clk-rate = <0x1f4000 0x1f4000>;
+                       qcom,msm-auxpcm-interface = "quinary";
+                       qcom,msm-cpudai-afe-clk-ver = <0x2>;
+               };
+
+               qcom,msm-hdmi-dba-codec-rx {
+                       compatible = "qcom,msm-hdmi-dba-codec-rx";
+                       qcom,dba-bridge-chip = "adv7533";
+               };
+
+               qcom,msm-audio-ion {
+                       compatible = "qcom,msm-audio-ion";
+                       qcom,smmu-version = <0x2>;
+                       qcom,smmu-enabled;
+                       iommus = <0x29 0x1821 0x0>;
+                       qcom,smmu-sid-mask = <0x0 0xf>;
+               };
+
+               qcom,msm-adsp-loader {
+                       status = "ok";
+                       compatible = "qcom,adsp-loader";
+                       qcom,adsp-state = <0x0>;
+               };
+
+               qcom,msm-dai-tdm-pri-rx {
+                       compatible = "qcom,msm-dai-tdm";
+                       qcom,msm-cpudai-tdm-group-id = <0x9100>;
+                       qcom,msm-cpudai-tdm-group-num-ports = <0x1>;
+                       qcom,msm-cpudai-tdm-group-port-id = <0x9000>;
+                       qcom,msm-cpudai-tdm-clk-rate = <0x177000>;
+                       qcom,msm-cpudai-tdm-clk-internal = <0x1>;
+                       qcom,msm-cpudai-tdm-sync-mode = <0x1>;
+                       qcom,msm-cpudai-tdm-sync-src = <0x1>;
+                       qcom,msm-cpudai-tdm-data-out = <0x0>;
+                       qcom,msm-cpudai-tdm-invert-sync = <0x1>;
+                       qcom,msm-cpudai-tdm-data-delay = <0x1>;
+
+                       qcom,msm-dai-q6-tdm-pri-rx-0 {
+                               compatible = "qcom,msm-dai-q6-tdm";
+                               qcom,msm-cpudai-tdm-dev-id = <0x9000>;
+                               qcom,msm-cpudai-tdm-data-align = <0x0>;
+                               linux,phandle = <0x31f>;
+                               phandle = <0x31f>;
+                       };
+               };
+
+               qcom,msm-dai-tdm-pri-tx {
+                       compatible = "qcom,msm-dai-tdm";
+                       qcom,msm-cpudai-tdm-group-id = <0x9101>;
+                       qcom,msm-cpudai-tdm-group-num-ports = <0x1>;
+                       qcom,msm-cpudai-tdm-group-port-id = <0x9001>;
+                       qcom,msm-cpudai-tdm-clk-rate = <0x177000>;
+                       qcom,msm-cpudai-tdm-clk-internal = <0x1>;
+                       qcom,msm-cpudai-tdm-sync-mode = <0x1>;
+                       qcom,msm-cpudai-tdm-sync-src = <0x1>;
+                       qcom,msm-cpudai-tdm-data-out = <0x0>;
+                       qcom,msm-cpudai-tdm-invert-sync = <0x1>;
+                       qcom,msm-cpudai-tdm-data-delay = <0x1>;
+
+                       qcom,msm-dai-q6-tdm-pri-tx-0 {
+                               compatible = "qcom,msm-dai-q6-tdm";
+                               qcom,msm-cpudai-tdm-dev-id = <0x9001>;
+                               qcom,msm-cpudai-tdm-data-align = <0x0>;
+                               linux,phandle = <0x320>;
+                               phandle = <0x320>;
+                       };
+               };
+
+               qcom,msm-dai-tdm-sec-rx {
+                       compatible = "qcom,msm-dai-tdm";
+                       qcom,msm-cpudai-tdm-group-id = <0x9110>;
+                       qcom,msm-cpudai-tdm-group-num-ports = <0x1>;
+                       qcom,msm-cpudai-tdm-group-port-id = <0x9010>;
+                       qcom,msm-cpudai-tdm-clk-rate = <0x177000>;
+                       qcom,msm-cpudai-tdm-clk-internal = <0x1>;
+                       qcom,msm-cpudai-tdm-sync-mode = <0x1>;
+                       qcom,msm-cpudai-tdm-sync-src = <0x1>;
+                       qcom,msm-cpudai-tdm-data-out = <0x0>;
+                       qcom,msm-cpudai-tdm-invert-sync = <0x1>;
+                       qcom,msm-cpudai-tdm-data-delay = <0x1>;
+
+                       qcom,msm-dai-q6-tdm-sec-rx-0 {
+                               compatible = "qcom,msm-dai-q6-tdm";
+                               qcom,msm-cpudai-tdm-dev-id = <0x9010>;
+                               qcom,msm-cpudai-tdm-data-align = <0x0>;
+                               linux,phandle = <0x321>;
+                               phandle = <0x321>;
+                       };
+               };
+
+               qcom,msm-dai-tdm-sec-tx {
+                       compatible = "qcom,msm-dai-tdm";
+                       qcom,msm-cpudai-tdm-group-id = <0x9111>;
+                       qcom,msm-cpudai-tdm-group-num-ports = <0x1>;
+                       qcom,msm-cpudai-tdm-group-port-id = <0x9011>;
+                       qcom,msm-cpudai-tdm-clk-rate = <0x177000>;
+                       qcom,msm-cpudai-tdm-clk-internal = <0x1>;
+                       qcom,msm-cpudai-tdm-sync-mode = <0x1>;
+                       qcom,msm-cpudai-tdm-sync-src = <0x1>;
+                       qcom,msm-cpudai-tdm-data-out = <0x0>;
+                       qcom,msm-cpudai-tdm-invert-sync = <0x1>;
+                       qcom,msm-cpudai-tdm-data-delay = <0x1>;
+
+                       qcom,msm-dai-q6-tdm-sec-tx-0 {
+                               compatible = "qcom,msm-dai-q6-tdm";
+                               qcom,msm-cpudai-tdm-dev-id = <0x9011>;
+                               qcom,msm-cpudai-tdm-data-align = <0x0>;
+                               linux,phandle = <0x322>;
+                               phandle = <0x322>;
+                       };
+               };
+
+               qcom,msm-dai-tdm-tert-rx {
+                       compatible = "qcom,msm-dai-tdm";
+                       qcom,msm-cpudai-tdm-group-id = <0x9120>;
+                       qcom,msm-cpudai-tdm-group-num-ports = <0x1>;
+                       qcom,msm-cpudai-tdm-group-port-id = <0x9020>;
+                       qcom,msm-cpudai-tdm-clk-rate = <0x177000>;
+                       qcom,msm-cpudai-tdm-clk-internal = <0x1>;
+                       qcom,msm-cpudai-tdm-sync-mode = <0x1>;
+                       qcom,msm-cpudai-tdm-sync-src = <0x1>;
+                       qcom,msm-cpudai-tdm-data-out = <0x0>;
+                       qcom,msm-cpudai-tdm-invert-sync = <0x1>;
+                       qcom,msm-cpudai-tdm-data-delay = <0x1>;
+
+                       qcom,msm-dai-q6-tdm-tert-rx-0 {
+                               compatible = "qcom,msm-dai-q6-tdm";
+                               qcom,msm-cpudai-tdm-dev-id = <0x9020>;
+                               qcom,msm-cpudai-tdm-data-align = <0x0>;
+                               linux,phandle = <0x323>;
+                               phandle = <0x323>;
+                       };
+               };
+
+               qcom,msm-dai-tdm-tert-tx {
+                       compatible = "qcom,msm-dai-tdm";
+                       qcom,msm-cpudai-tdm-group-id = <0x9121>;
+                       qcom,msm-cpudai-tdm-group-num-ports = <0x1>;
+                       qcom,msm-cpudai-tdm-group-port-id = <0x9021>;
+                       qcom,msm-cpudai-tdm-clk-rate = <0x177000>;
+                       qcom,msm-cpudai-tdm-clk-internal = <0x1>;
+                       qcom,msm-cpudai-tdm-sync-mode = <0x1>;
+                       qcom,msm-cpudai-tdm-sync-src = <0x1>;
+                       qcom,msm-cpudai-tdm-data-out = <0x0>;
+                       qcom,msm-cpudai-tdm-invert-sync = <0x1>;
+                       qcom,msm-cpudai-tdm-data-delay = <0x1>;
+
+                       qcom,msm-dai-q6-tdm-tert-tx-0 {
+                               compatible = "qcom,msm-dai-q6-tdm";
+                               qcom,msm-cpudai-tdm-dev-id = <0x9021>;
+                               qcom,msm-cpudai-tdm-data-align = <0x0>;
+                               linux,phandle = <0x324>;
+                               phandle = <0x324>;
+                       };
+               };
+
+               qcom,msm-dai-tdm-quat-rx {
+                       compatible = "qcom,msm-dai-tdm";
+                       qcom,msm-cpudai-tdm-group-id = <0x9130>;
+                       qcom,msm-cpudai-tdm-group-num-ports = <0x2>;
+                       qcom,msm-cpudai-tdm-group-port-id = <0x9030 0x9032>;
+                       qcom,msm-cpudai-tdm-clk-rate = <0x177000>;
+                       qcom,msm-cpudai-tdm-clk-internal = <0x1>;
+                       qcom,msm-cpudai-tdm-sync-mode = <0x1>;
+                       qcom,msm-cpudai-tdm-sync-src = <0x1>;
+                       qcom,msm-cpudai-tdm-data-out = <0x0>;
+                       qcom,msm-cpudai-tdm-invert-sync = <0x1>;
+                       qcom,msm-cpudai-tdm-data-delay = <0x1>;
+
+                       qcom,msm-dai-q6-tdm-quat-rx-0 {
+                               compatible = "qcom,msm-dai-q6-tdm";
+                               qcom,msm-cpudai-tdm-dev-id = <0x9030>;
+                               qcom,msm-cpudai-tdm-data-align = <0x0>;
+                               linux,phandle = <0x325>;
+                               phandle = <0x325>;
+                       };
+
+                       qcom,msm-dai-q6-tdm-quat-rx-1 {
+                               compatible = "qcom,msm-dai-q6-tdm";
+                               qcom,msm-cpudai-tdm-dev-id = <0x9032>;
+                               qcom,msm-cpudai-tdm-data-align = <0x0>;
+                               linux,phandle = <0x327>;
+                               phandle = <0x327>;
+                       };
+               };
+
+               qcom,msm-dai-tdm-quat-tx {
+                       compatible = "qcom,msm-dai-tdm";
+                       qcom,msm-cpudai-tdm-group-id = <0x9131>;
+                       qcom,msm-cpudai-tdm-group-num-ports = <0x1>;
+                       qcom,msm-cpudai-tdm-group-port-id = <0x9031>;
+                       qcom,msm-cpudai-tdm-clk-rate = <0x177000>;
+                       qcom,msm-cpudai-tdm-clk-internal = <0x1>;
+                       qcom,msm-cpudai-tdm-sync-mode = <0x1>;
+                       qcom,msm-cpudai-tdm-sync-src = <0x1>;
+                       qcom,msm-cpudai-tdm-data-out = <0x0>;
+                       qcom,msm-cpudai-tdm-invert-sync = <0x1>;
+                       qcom,msm-cpudai-tdm-data-delay = <0x1>;
+
+                       qcom,msm-dai-q6-tdm-quat-tx-0 {
+                               compatible = "qcom,msm-dai-q6-tdm";
+                               qcom,msm-cpudai-tdm-dev-id = <0x9031>;
+                               qcom,msm-cpudai-tdm-data-align = <0x0>;
+                               linux,phandle = <0x326>;
+                               phandle = <0x326>;
+                       };
+               };
+
+               qcom,msm-dai-tdm-quin-rx {
+                       compatible = "qcom,msm-dai-tdm";
+                       qcom,msm-cpudai-tdm-group-id = <0x9140>;
+                       qcom,msm-cpudai-tdm-group-num-ports = <0x1>;
+                       qcom,msm-cpudai-tdm-group-port-id = <0x9040>;
+                       qcom,msm-cpudai-tdm-clk-rate = <0x177000>;
+                       qcom,msm-cpudai-tdm-clk-internal = <0x1>;
+                       qcom,msm-cpudai-tdm-sync-mode = <0x1>;
+                       qcom,msm-cpudai-tdm-sync-src = <0x1>;
+                       qcom,msm-cpudai-tdm-data-out = <0x0>;
+                       qcom,msm-cpudai-tdm-invert-sync = <0x1>;
+                       qcom,msm-cpudai-tdm-data-delay = <0x1>;
+
+                       qcom,msm-dai-q6-tdm-quin-rx-0 {
+                               compatible = "qcom,msm-dai-q6-tdm";
+                               qcom,msm-cpudai-tdm-dev-id = <0x9040>;
+                               qcom,msm-cpudai-tdm-data-align = <0x0>;
+                       };
+               };
+
+               qcom,msm-dai-tdm-quin-tx {
+                       compatible = "qcom,msm-dai-tdm";
+                       qcom,msm-cpudai-tdm-group-id = <0x9141>;
+                       qcom,msm-cpudai-tdm-group-num-ports = <0x1>;
+                       qcom,msm-cpudai-tdm-group-port-id = <0x9041>;
+                       qcom,msm-cpudai-tdm-clk-rate = <0x177000>;
+                       qcom,msm-cpudai-tdm-clk-internal = <0x1>;
+                       qcom,msm-cpudai-tdm-sync-mode = <0x1>;
+                       qcom,msm-cpudai-tdm-sync-src = <0x1>;
+                       qcom,msm-cpudai-tdm-data-out = <0x0>;
+                       qcom,msm-cpudai-tdm-invert-sync = <0x1>;
+                       qcom,msm-cpudai-tdm-data-delay = <0x1>;
+
+                       qcom,msm-dai-q6-tdm-quin-tx-0 {
+                               compatible = "qcom,msm-dai-q6-tdm";
+                               qcom,msm-cpudai-tdm-dev-id = <0x9041>;
+                               qcom,msm-cpudai-tdm-data-align = <0x0>;
+                       };
+               };
+
+               qcom,avtimer@170f7000 {
+                       compatible = "qcom,avtimer";
+                       reg = <0x170f700c 0x4 0x170f7010 0x4>;
+                       reg-names = "avtimer_lsb_addr", "avtimer_msb_addr";
+                       qcom,clk-div = <0xc0>;
+                       qcom,clk-mult = <0xa>;
+               };
+
+               qcom,kgsl-hyp {
+                       compatible = "qcom,pil-tz-generic";
+                       qcom,pas-id = <0xd>;
+                       qcom,firmware-name = "a630_zap";
+                       memory-region = <0x333>;
+               };
+
+               qcom,kgsl-busmon {
+                       label = "kgsl-busmon";
+                       compatible = "qcom,kgsl-busmon";
+               };
+
+               qcom,gpubw {
+                       compatible = "qcom,devbw";
+                       governor = "bw_vbif";
+                       qcom,src-dst-ports = <0x1a 0x200>;
+                       qcom,bw-tbl = <0x0 0x17d 0x23c 0x2fa 0x478 0x623 0x826 0xa25 0xb71 0xf27 0x134f 0x172b 0x1ae1>;
+                       linux,phandle = <0x334>;
+                       phandle = <0x334>;
+               };
+
+               qcom,kgsl-3d0@5000000 {
+                       label = "kgsl-3d0";
+                       compatible = "qcom,kgsl-3d0", "qcom,kgsl-3d";
+                       status = "ok";
+                       reg = <0x5000000 0x40000 0x5061000 0x800 0x509e000 0x1000>;
+                       reg-names = "kgsl_3d0_reg_memory", "kgsl_3d0_cx_dbgc_memory", "cx_misc";
+                       interrupts = <0x0 0x12c 0x0>;
+                       interrupt-names = "kgsl_3d0_irq";
+                       qcom,id = <0x0>;
+                       qcom,chipid = <0x6030001>;
+                       qcom,initial-pwrlevel = <0x6>;
+                       qcom,gpu-quirk-hfi-use-reg;
+                       qcom,gpu-quirk-secvid-set-once;
+                       qcom,idle-timeout = <0x50>;
+                       qcom,no-nap;
+                       qcom,highest-bank-bit = <0xf>;
+                       qcom,min-access-length = <0x20>;
+                       qcom,ubwc-mode = <0x2>;
+                       qcom,snapshot-size = <0x100000>;
+                       qcom,gpu-qdss-stm = <0x161c0000 0x40000>;
+                       qcom,tsens-name = "tsens_tz_sensor12";
+                       #cooling-cells = <0x2>;
+                       tzone-names = "gpu0-usr", "gpu1-usr";
+                       qcom,pm-qos-active-latency = <0x1cc>;
+                       clocks = <0x1c 0x3 0xde 0xa 0x22 0x1a 0x22 0x29 0xde 0x4 0xbe 0x10>;
+                       clock-names = "core_clk", "rbbmtimer_clk", "mem_clk", "mem_iface_clk", "gmu_clk", "l3_vote";
+                       qcom,isense-clk-on-level = <0x1>;
+                       qcom,gpubw-dev = <0x334>;
+                       qcom,bus-control;
+                       qcom,msm-bus,name = "grp3d";
+                       qcom,bus-width = <0x20>;
+                       qcom,msm-bus,num-cases = <0xd>;
+                       qcom,msm-bus,num-paths = <0x1>;
+                       qcom,msm-bus,vectors-KBps = <0x1a 0x200 0x0 0x0 0x1a 0x200 0x0 0x61a80 0x1a 0x200 0x0 0x927c0 0x1a 0x200 0x0 0xc3500 0x1a 0x200 0x0 0x124f80 0x1a 0x200 0x0 0x192580 0x1a 0x200 0x0 0x2162e0 0x1a 0x200 0x0 0x2990a0 0x1a 0x200 0x0 0x2ee000 0x1a 0x200 0x0 0x3e12a0 0x1a 0x200 0x0 0x4f1a00 0x1a 0x200 0x0 0x5ee8e0 0x1a 0x200 0x0 0x6e1b80>;
+                       regulator-names = "vddcx", "vdd";
+                       vddcx-supply = <0x205>;
+                       vdd-supply = <0x335>;
+                       cache-slice-names = "gpu", "gpuhtw";
+                       cache-slices = <0x34 0xc 0x34 0xb>;
+                       linux,phandle = <0xd5>;
+                       phandle = <0xd5>;
+
+                       qcom,gpu-coresights {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+                               compatible = "qcom,gpu-coresight";
+                               status = "disabled";
+
+                               qcom,gpu-coresight@0 {
+                                       reg = <0x0>;
+                                       coresight-name = "coresight-gfx";
+                                       coresight-atid = <0x32>;
+
+                                       port {
+
+                                               endpoint {
+                                                       remote-endpoint = <0x336>;
+                                                       linux,phandle = <0x1a9>;
+                                                       phandle = <0x1a9>;
+                                               };
+                                       };
+                               };
+
+                               qcom,gpu-coresight@1 {
+                                       reg = <0x1>;
+                                       coresight-name = "coresight-gfx-cx";
+                                       coresight-atid = <0x33>;
+
+                                       port {
+
+                                               endpoint {
+                                                       remote-endpoint = <0x337>;
+                                                       linux,phandle = <0x1aa>;
+                                                       phandle = <0x1aa>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       qcom,l3-pwrlevels {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+                               compatible = "qcom,l3-pwrlevels";
+
+                               qcom,l3-pwrlevel@0 {
+                                       reg = <0x0>;
+                                       qcom,l3-freq = <0x0>;
+                               };
+
+                               qcom,l3-pwrlevel@1 {
+                                       reg = <0x1>;
+                                       qcom,l3-freq = <0x3010b000>;
+                               };
+
+                               qcom,l3-pwrlevel@2 {
+                                       reg = <0x2>;
+                                       qcom,l3-freq = <0x4dd1e000>;
+                               };
+                       };
+
+                       qcom,gpu-mempools {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+                               compatible = "qcom,gpu-mempools";
+
+                               qcom,gpu-mempool@0 {
+                                       reg = <0x0>;
+                                       qcom,mempool-page-size = <0x1000>;
+                                       qcom,mempool-reserved = <0x800>;
+                                       qcom,mempool-allocate;
+                               };
+
+                               qcom,gpu-mempool@1 {
+                                       reg = <0x1>;
+                                       qcom,mempool-page-size = <0x2000>;
+                                       qcom,mempool-reserved = <0x400>;
+                                       qcom,mempool-allocate;
+                               };
+
+                               qcom,gpu-mempool@2 {
+                                       reg = <0x2>;
+                                       qcom,mempool-page-size = <0x10000>;
+                                       qcom,mempool-reserved = <0x100>;
+                               };
+
+                               qcom,gpu-mempool@3 {
+                                       reg = <0x3>;
+                                       qcom,mempool-page-size = <0x100000>;
+                                       qcom,mempool-reserved = <0x20>;
+                               };
+                       };
+
+                       qcom,gpu-pwrlevels {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+                               compatible = "qcom,gpu-pwrlevels";
+
+                               qcom,gpu-pwrlevel@0 {
+                                       reg = <0x0>;
+                                       qcom,gpu-freq = <0x2a51bd80>;
+                                       qcom,bus-freq = <0xc>;
+                                       qcom,bus-min = <0xc>;
+                                       qcom,bus-max = <0xc>;
+                               };
+
+                               qcom,gpu-pwrlevel@1 {
+                                       reg = <0x1>;
+                                       qcom,gpu-freq = <0x283baec0>;
+                                       qcom,bus-freq = <0xc>;
+                                       qcom,bus-min = <0xa>;
+                                       qcom,bus-max = <0xc>;
+                               };
+
+                               qcom,gpu-pwrlevel@2 {
+                                       reg = <0x2>;
+                                       qcom,gpu-freq = <0x23863d00>;
+                                       qcom,bus-freq = <0xa>;
+                                       qcom,bus-min = <0x9>;
+                                       qcom,bus-max = <0xc>;
+                               };
+
+                               qcom,gpu-pwrlevel@3 {
+                                       reg = <0x3>;
+                                       qcom,gpu-freq = <0x1efe9200>;
+                                       qcom,bus-freq = <0x9>;
+                                       qcom,bus-min = <0x8>;
+                                       qcom,bus-max = <0xb>;
+                               };
+
+                               qcom,gpu-pwrlevel@4 {
+                                       reg = <0x4>;
+                                       qcom,gpu-freq = <0x18ad2380>;
+                                       qcom,bus-freq = <0x8>;
+                                       qcom,bus-min = <0x7>;
+                                       qcom,bus-max = <0x9>;
+                               };
+
+                               qcom,gpu-pwrlevel@5 {
+                                       reg = <0x5>;
+                                       qcom,gpu-freq = <0x14628180>;
+                                       qcom,bus-freq = <0x6>;
+                                       qcom,bus-min = <0x5>;
+                                       qcom,bus-max = <0x7>;
+                               };
+
+                               qcom,gpu-pwrlevel@6 {
+                                       reg = <0x6>;
+                                       qcom,gpu-freq = <0xf518240>;
+                                       qcom,bus-freq = <0x4>;
+                                       qcom,bus-min = <0x3>;
+                                       qcom,bus-max = <0x5>;
+                               };
+
+                               qcom,gpu-pwrlevel@7 {
+                                       reg = <0x7>;
+                                       qcom,gpu-freq = <0x0>;
+                                       qcom,bus-freq = <0x0>;
+                                       qcom,bus-min = <0x0>;
+                                       qcom,bus-max = <0x0>;
+                               };
+                       };
+               };
+
+               qcom,kgsl-iommu {
+                       compatible = "qcom,kgsl-smmu-v2";
+                       reg = <0x5040000 0x10000>;
+                       qcom,protect = <0x40000 0xc000>;
+                       qcom,micro-mmu-control = <0x6000>;
+                       clocks = <0x22 0x26 0x22 0x1a 0x22 0x29>;
+                       clock-names = "iface_clk", "mem_clk", "mem_iface_clk";
+                       qcom,secure_align_mask = <0xfff>;
+                       qcom,retention;
+                       qcom,hyp_secure_alloc;
+
+                       gfx3d_user {
+                               compatible = "qcom,smmu-kgsl-cb";
+                               label = "gfx3d_user";
+                               iommus = <0x20d 0x0>;
+                               qcom,gpu-offset = <0x48000>;
+                       };
+
+                       gfx3d_secure {
+                               compatible = "qcom,smmu-kgsl-cb";
+                               iommus = <0x20d 0x2 0x20d 0x1>;
+                       };
+               };
+
+               qcom,gmu {
+                       label = "kgsl-gmu";
+                       compatible = "qcom,gpu-gmu";
+                       reg = <0x506a000 0x30000 0xb200000 0x300000>;
+                       reg-names = "kgsl_gmu_reg", "kgsl_gmu_pdc_reg";
+                       interrupts = <0x0 0x130 0x0 0x0 0x131 0x0>;
+                       interrupt-names = "kgsl_hfi_irq", "kgsl_gmu_irq";
+                       qcom,msm-bus,name = "cnoc";
+                       qcom,msm-bus,num-cases = <0x2>;
+                       qcom,msm-bus,num-paths = <0x1>;
+                       qcom,msm-bus,vectors-KBps = <0x1a 0x2734 0x0 0x0 0x1a 0x2734 0x0 0x64>;
+                       regulator-names = "vddcx", "vdd";
+                       vddcx-supply = <0x205>;
+                       vdd-supply = <0x335>;
+                       clocks = <0xde 0x4 0xde 0xa 0x22 0x1a 0x22 0x29>;
+                       clock-names = "gmu_clk", "cxo_clk", "axi_clk", "memnoc_clk";
+                       linux,phandle = <0xd4>;
+                       phandle = <0xd4>;
+
+                       qcom,gmu-pwrlevels {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+                               compatible = "qcom,gmu-pwrlevels";
+
+                               qcom,gmu-pwrlevel@0 {
+                                       reg = <0x0>;
+                                       qcom,gmu-freq = <0x0>;
+                               };
+
+                               qcom,gmu-pwrlevel@1 {
+                                       reg = <0x1>;
+                                       qcom,gmu-freq = <0xbebc200>;
+                               };
+
+                               qcom,gmu-pwrlevel@2 {
+                                       reg = <0x2>;
+                                       qcom,gmu-freq = <0x1dcd6500>;
+                               };
+                       };
+
+                       gmu_user {
+                               compatible = "qcom,smmu-gmu-user-cb";
+                               iommus = <0x20d 0x4>;
+                       };
+
+                       gmu_kernel {
+                               compatible = "qcom,smmu-gmu-kernel-cb";
+                               iommus = <0x20d 0x5>;
+                       };
+               };
+
+               ssusb@a600000 {
+                       compatible = "qcom,dwc-usb3-msm";
+                       reg = <0xa600000 0xf8c00 0x88ee000 0x400>;
+                       reg-names = "core_base", "ahb2phy_base";
+                       iommus = <0x29 0x740 0x0>;
+                       qcom,smmu-s1-bypass;
+                       #address-cells = <0x1>;
+                       #size-cells = <0x1>;
+                       ranges;
+                       interrupts = <0x0 0x1e9 0x0 0x0 0x82 0x0 0x0 0x1e6 0x0 0x0 0x1e8 0x0>;
+                       interrupt-names = "dp_hs_phy_irq", "pwr_event_irq", "ss_phy_irq", "dm_hs_phy_irq";
+                       USB3_GDSC-supply = <0x338>;
+                       qcom,usb-dbm = <0x339>;
+                       qcom,dwc-usb3-msm-tx-fifo-size = <0x5328>;
+                       qcom,num-gsi-evt-buffs = <0x3>;
+                       qcom,use-pdc-interrupts;
+                       qcom,pm-qos-latency = <0x2c>;
+                       extcon = <0x38 0x38 0x33a>;
+                       clocks = <0x22 0x95 0x22 0x12 0x22 0x9 0x22 0x97 0x22 0x99 0x22 0xa9 0x22 0x9f>;
+                       clock-names = "core_clk", "iface_clk", "bus_aggr_clk", "utmi_clk", "sleep_clk", "cfg_ahb_clk", "xo";
+                       qcom,core-clk-rate = <0x7f28155>;
+                       qcom,core-clk-rate-hs = <0x3f940ab>;
+                       resets = <0x22 0xf>;
+                       reset-names = "core_reset";
+                       qcom,msm-bus,name = "usb0";
+                       qcom,msm-bus,num-cases = <0x2>;
+                       qcom,msm-bus,num-paths = <0x3>;
+                       qcom,msm-bus,vectors-KBps = <0x3d 0x200 0x0 0x0 0x3d 0x2a4 0x0 0x0 0x1 0x247 0x0 0x0 0x3d 0x200 0x3a980 0xaae60 0x3d 0x2a4 0x0 0x960 0x1 0x247 0x0 0x9c40>;
+
+                       dwc3@a600000 {
+                               compatible = "snps,dwc3";
+                               reg = <0xa600000 0xcd00>;
+                               interrupts = <0x0 0x85 0x0>;
+                               usb-phy = <0xaf 0x33b>;
+                               tx-fifo-resize;
+                               linux,sysdev_is_parent;
+                               snps,disable-clk-gating;
+                               snps,has-lpm-erratum;
+                               snps,hird-threshold = [10];
+                               snps,usb3_lpm_capable;
+                               usb-core-id = <0x0>;
+                               maximum-speed = "high-speed";
+                       };
+
+                       qcom,usbbam@a704000 {
+                               compatible = "qcom,usb-bam-msm";
+                               reg = <0xa704000 0x17000>;
+                               interrupts = <0x0 0x84 0x0>;
+                               qcom,bam-type = <0x0>;
+                               qcom,usb-bam-fifo-baseaddr = <0x146bb000>;
+                               qcom,usb-bam-num-pipes = <0x8>;
+                               qcom,ignore-core-reset-ack;
+                               qcom,disable-clk-gating;
+                               qcom,usb-bam-override-threshold = <0x4001>;
+                               qcom,usb-bam-max-mbps-highspeed = <0x190>;
+                               qcom,usb-bam-max-mbps-superspeed = <0xe10>;
+                               qcom,reset-bam-on-connect;
+
+                               qcom,pipe0 {
+                                       label = "ssusb-qdss-in-0";
+                                       qcom,usb-bam-mem-type = <0x2>;
+                                       qcom,dir = <0x1>;
+                                       qcom,pipe-num = <0x0>;
+                                       qcom,peer-bam = <0x0>;
+                                       qcom,peer-bam-physical-address = <0x6064000>;
+                                       qcom,src-bam-pipe-index = <0x0>;
+                                       qcom,dst-bam-pipe-index = <0x0>;
+                                       qcom,data-fifo-offset = <0x0>;
+                                       qcom,data-fifo-size = <0x1800>;
+                                       qcom,descriptor-fifo-offset = <0x1800>;
+                                       qcom,descriptor-fifo-size = <0x800>;
+                               };
+                       };
+               };
+
+               qusb@88e2000 {
+                       compatible = "qcom,qusb2phy-v2";
+                       reg = <0x88e2000 0x400 0x7801e8 0x4 0x88e7014 0x4>;
+                       reg-names = "qusb_phy_base", "efuse_addr", "refgen_north_bg_reg_addr";
+                       qcom,efuse-bit-pos = <0x19>;
+                       qcom,efuse-num-bits = <0x3>;
+                       qcom,tune-efuse-correction = <0x0>;
+                       vdd-supply = <0x36>;
+                       vdda18-supply = <0x183>;
+                       vdda33-supply = <0xb0>;
+                       qcom,override-bias-ctrl2;
+                       qcom,vdd-voltage-level = <0x0 0xd6d80 0xd6d80>;
+                       qcom,qusb-phy-reg-offset = <0x240 0x1a0 0x210 0x230 0xa8 0x254 0x198 0x228 0x22c 0x27c 0x280 0x2a0>;
+                       qcom,qusb-phy-init-seq = <0x23 0x210 0x3 0x4 0x7c 0x18c 0x80 0x2c 0xa 0x184 0x19 0xb4 0x40 0x194 0x19 0x198 0x21 0x214 0x8 0x220 0x58 0x224 0x7 0x240 0x29 0x244 0xca 0x248 0x4 0x24c 0x3 0x250 0x0 0x23c 0x22 0x210>;
+                       phy_type = "utmi";
+                       clocks = <0x21 0x0 0x22 0xa9>;
+                       clock-names = "ref_clk_src", "cfg_ahb_clk";
+                       resets = <0x22 0x8>;
+                       reset-names = "phy_reset";
+                       pinctrl-names = "atest_usb13_suspend", "atest_usb13_active";
+                       pinctrl-0 = <0x33c>;
+                       pinctrl-1 = <0x33d>;
+                       mi,efuse-pll-bias;
+                       mi,efuse-pll-bias-seq = <0x1 0x23>;
+                       mi,efuse-pll-bias-host;
+                       mi,efuse-pll-bias-seq-host = <0x1 0x24 0x2 0x24 0x3 0x24 0x4 0x23 0x5 0x22 0x6 0x22 0x7 0x21>;
+                       linux,phandle = <0xaf>;
+                       phandle = <0xaf>;
+               };
+
+               ssphy@88e8000 {
+                       compatible = "qcom,usb-ssphy-qmp-dp-combo";
+                       reg = <0x88e8000 0x3000>;
+                       reg-names = "qmp_phy_base";
+                       vdd-supply = <0x36>;
+                       core-supply = <0x35>;
+                       qcom,vdd-voltage-level = <0x0 0xd6d80 0xd6d80>;
+                       qcom,vbus-valid-override;
+                       qcom,qmp-phy-init-seq = <0x1048 0x7 0x0 0x1080 0x14 0x0 0x1034 0x8 0x0 0x1138 0x30 0x0 0x103c 0x2 0x0 0x108c 0x8 0x0 0x115c 0x16 0x0 0x1164 0x1 0x0 0x113c 0x80 0x0 0x10b0 0x82 0x0 0x10b8 0xab 0x0 0x10bc 0xea 0x0 0x10c0 0x2 0x0 0x1060 0x6 0x0 0x1068 0x16 0x0 0x1070 0x36 0x0 0x10dc 0x0 0x0 0x10d8 0x3f 0x0 0x10f8 0x1 0x0 0x10f4 0xc9 0x0 0x1148 0xa 0x0 0x10a0 0x0 0x0 0x109c 0x34 0x0 0x1098 0x15 0x0 0x1090 0x4 0x0 0x1154 0x0 0x0 0x1094 0x0 0x0 0x10f0 0x0 0x0 0x1040 0xa 0x0 0x1010 0x1 0x0 0x101c 0x31 0x0 0x1020 0x1 0x0 0x1014 0x0 0x0 0x1018 0x0 0x0 0x1024 0x85 0x0 0x1028 0x7 0x0 0x1430 0xb 0x0 0x14d4 0xf 0x0 0x14d8 0x4e 0x0 0x14dc 0x18 0x0 0x14f8 0x77 0x0 0x14fc 0x80 0x0 0x1504 0x3 0x0 0x150c 0x16 0x0 0x1564 0x5 0x0 0x14c0 0x3 0x0 0x1830 0xb 0x0 0x18d4 0xf 0x0 0x18d8 0x4e 0x0 0x18dc 0x18 0x0 0x18f8 0x77 0x0 0x18fc 0x80 0x0 0x1904 0x3 0x0 0x190c 0x16 0x0 0x1964 0x5 0x0 0x18c0 0x3 0x0 0x1260 0x10 0x0 0x12a4 0x12 0x0 0x128c 0x16 0x0 0x1248 0x9 0x0 0x1244 0x6 0x0 0x1660 0x10 0x0 0x16a4 0x12 0x0 0x168c 0x16 0x0 0x1648 0x9 0x0 0x1644 0x6 0x0 0x1cc8 0x83 0x0 0x1ccc 0x9 0x0 0x1cd0 0xa2 0x0 0x1cd4 0x40 0x0 0x1cc4 0x2 0x0 0x1c80 0xd1 0x0 0x1c84 0x1f 0x0 0x1c88 0x47 0x0 0x1c64 0x1b 0x0 0x1434 0x75 0x0 0x1834 0x75 0x0 0x1dd8 0xba 0x0 0x1c0c 0x9f 0x0 0x1c10 0x9f 0x0 0x1c14 0xb7 0x0 0x1c18 0x4e 0x0 0x1c1c 0x65 0x0 0x1c20 0x6b 0x0 0x1c24 0x15 0x0 0x1c28 0xd 0x0 0x1c2c 0x15 0x0 0x1c30 0xd 0x0 0x1c34 0x15 0x0 0x1c38 0xd 0x0 0x1c3c 0x15 0x0 0x1c40 0x1d 0x0 0x1c44 0x15 0x0 0x1c48 0xd 0x0 0x1c4c 0x15 0x0 0x1c50 0xd 0x0 0x1e0c 0x21 0x0 0x1e10 0x60 0x0 0x1c5c 0x2 0x0 0x1ca0 0x4 0x0 0x1c8c 0x44 0x0 0x1c70 0xe7 0x0 0x1c74 0x3 0x0 0x1c78 0x40 0x0 0x1c7c 0x0 0x0 0x1cb8 0x75 0x0 0x1cb0 0x86 0x0 0x1cbc 0x13 0x0 0x1cac 0x4 0x0 0xffffffff 0xffffffff 0x0>;
+                       qcom,qmp-phy-reg-offset = <0x1d74 0x1cd8 0x1cdc 0x1c04 0x1c00 0x1c08 0x2a18 0x8 0x4 0x1c 0x0 0x10 0xc 0x1a0c>;
+                       clocks = <0x22 0xa0 0x22 0xa3 0x21 0x0 0x22 0x9f 0x22 0xa2 0x22 0xa9>;
+                       clock-names = "aux_clk", "pipe_clk", "ref_clk_src", "ref_clk", "com_aux_clk", "cfg_ahb_clk";
+                       resets = <0x22 0x13 0x22 0x11>;
+                       reset-names = "global_phy_reset", "phy_reset";
+                       extcon = <0x38>;
+                       linux,phandle = <0x33b>;
+                       phandle = <0x33b>;
+               };
+
+               dbm@a6f8000 {
+                       compatible = "qcom,usb-dbm-1p5";
+                       reg = <0xa6f8000 0x400>;
+                       qcom,reset-ep-after-lpm-resume;
+                       linux,phandle = <0x339>;
+                       phandle = <0x339>;
+               };
+
+               usb_audio_qmi_dev {
+                       compatible = "qcom,usb-audio-qmi-dev";
+                       iommus = <0x29 0x182c 0x0>;
+                       qcom,usb-audio-stream-id = <0xc>;
+                       qcom,usb-audio-intr-num = <0x2>;
+               };
+
+               usb_nop_phy {
+                       compatible = "usb-nop-xceiv";
+               };
+
+               ssusb@a800000 {
+                       compatible = "qcom,dwc-usb3-msm";
+                       reg = <0xa800000 0xf8c00 0x88ee000 0x400>;
+                       reg-names = "core_base", "ahb2phy_base";
+                       iommus = <0x29 0x760 0x0>;
+                       qcom,smmu-s1-bypass;
+                       #address-cells = <0x1>;
+                       #size-cells = <0x1>;
+                       ranges;
+                       interrupts = <0x0 0x1eb 0x0 0x0 0x87 0x0 0x0 0x1e7 0x0 0x0 0x1ea 0x0>;
+                       interrupt-names = "dp_hs_phy_irq", "pwr_event_irq", "ss_phy_irq", "dm_hs_phy_irq";
+                       USB3_GDSC-supply = <0x33e>;
+                       qcom,dwc-usb3-msm-tx-fifo-size = <0x5328>;
+                       qcom,use-pdc-interrupts;
+                       clocks = <0x22 0x9a 0x22 0x13 0x22 0xa 0x22 0x9c 0x22 0x9e 0x22 0xa9 0x22 0xa4>;
+                       clock-names = "core_clk", "iface_clk", "bus_aggr_clk", "utmi_clk", "sleep_clk", "cfg_ahb_clk", "xo";
+                       qcom,core-clk-rate = <0x7f28155>;
+                       qcom,core-clk-rate-hs = <0x3f940ab>;
+                       resets = <0x22 0x10>;
+                       reset-names = "core_reset";
+                       status = "disabled";
+                       qcom,msm-bus,name = "usb1";
+                       qcom,msm-bus,num-cases = <0x2>;
+                       qcom,msm-bus,num-paths = <0x2>;
+                       qcom,msm-bus,vectors-KBps = <0x65 0x200 0x0 0x0 0x1 0x2ef 0x0 0x0 0x65 0x200 0x3a980 0xaae60 0x1 0x2ef 0x0 0x9c40>;
+                       extcon = <0x33f>;
+
+                       dwc3@a800000 {
+                               compatible = "snps,dwc3";
+                               reg = <0xa800000 0xcd00>;
+                               interrupts = <0x0 0x8a 0x0>;
+                               usb-phy = <0x340 0x341>;
+                               tx-fifo-resize;
+                               linux,sysdev_is_parent;
+                               snps,disable-clk-gating;
+                               snps,has-lpm-erratum;
+                               snps,hird-threshold = [10];
+                               snps,usb3_lpm_capable;
+                               usb-core-id = <0x1>;
+                               dr_mode = "host";
+                               maximum-speed = "high-speed";
+                       };
+               };
+
+               qusb@88e3000 {
+                       compatible = "qcom,qusb2phy-v2";
+                       reg = <0x88e3000 0x400 0x88e7014 0x4>;
+                       reg-names = "qusb_phy_base", "refgen_north_bg_reg_addr";
+                       vdd-supply = <0x36>;
+                       vdda18-supply = <0x183>;
+                       vdda33-supply = <0xb0>;
+                       qcom,override-bias-ctrl2;
+                       qcom,vdd-voltage-level = <0x0 0xd6d80 0xd6d80>;
+                       qcom,qusb-phy-reg-offset = <0x240 0x1a0 0x210 0x230 0xa8 0x254 0x198 0x228 0x22c 0x27c 0x280 0x2a0>;
+                       qcom,qusb-phy-init-seq = <0x23 0x210 0x3 0x4 0x7c 0x18c 0x80 0x2c 0xa 0x184 0x19 0xb4 0x40 0x194 0x20 0x198 0x21 0x214 0x0 0x220 0x58 0x224 0x20 0x240 0x29 0x244 0xca 0x248 0x4 0x24c 0x3 0x250 0x0 0x23c 0x22 0x210>;
+                       phy_type = "utmi";
+                       clocks = <0x21 0x0 0x22 0xa9>;
+                       clock-names = "ref_clk_src", "cfg_ahb_clk";
+                       resets = <0x22 0x9>;
+                       reset-names = "phy_reset";
+                       status = "okay";
+                       linux,phandle = <0x340>;
+                       phandle = <0x340>;
+               };
+
+               ssphy@88eb000 {
+                       compatible = "qcom,usb-ssphy-qmp-v2";
+                       reg = <0x88eb000 0x1000 0x1fcbff0 0x4>;
+                       reg-names = "qmp_phy_base", "vls_clamp_reg";
+                       vdd-supply = <0x36>;
+                       core-supply = <0x35>;
+                       qcom,vdd-voltage-level = <0x0 0xd6d80 0xd6d80>;
+                       qcom,vbus-valid-override;
+                       qcom,qmp-phy-init-seq = <0x48 0x7 0x0 0x80 0x14 0x0 0x34 0x4 0x0 0x138 0x30 0x0 0x3c 0x2 0x0 0x8c 0x8 0x0 0x15c 0x6 0x0 0x164 0x1 0x0 0x13c 0x80 0x0 0xb0 0x82 0x0 0xb8 0xab 0x0 0xbc 0xea 0x0 0xc0 0x2 0x0 0x60 0x6 0x0 0x68 0x16 0x0 0x70 0x36 0x0 0xdc 0x0 0x0 0xd8 0x3f 0x0 0xf8 0x1 0x0 0xf4 0xc9 0x0 0x148 0xa 0x0 0xa0 0x0 0x0 0x9c 0x34 0x0 0x98 0x15 0x0 0x90 0x4 0x0 0x154 0x0 0x0 0x94 0x0 0x0 0xf0 0x0 0x0 0x40 0xa 0x0 0xd0 0x80 0x0 0x10 0x1 0x0 0x1c 0x31 0x0 0x20 0x1 0x0 0x14 0x0 0x0 0x18 0x0 0x0 0x24 0x85 0x0 0x28 0x7 0x0 0x4c0 0xc 0x0 0x564 0x50 0x0 0x430 0xb 0x0 0x4d4 0xe 0x0 0x4d8 0x4e 0x0 0x4dc 0x18 0x0 0x4f8 0x77 0x0 0x4fc 0x80 0x0 0x504 0x3 0x0 0x50c 0x1c 0x0 0x434 0x75 0x0 0x444 0x80 0x0 0x408 0xa 0x0 0x40c 0x6 0x0 0x500 0x0 0x0 0x260 0x10 0x0 0x2a4 0x12 0x0 0x28c 0xc6 0x0 0x248 0x6 0x0 0x244 0x6 0x0 0x8c8 0x83 0x0 0x8cc 0x9 0x0 0x8d0 0xa2 0x0 0x8d4 0x40 0x0 0x8c4 0x2 0x0 0x864 0x1b 0x0 0x80c 0x9f 0x0 0x810 0x9f 0x0 0x814 0xb5 0x0 0x818 0x4c 0x0 0x81c 0x64 0x0 0x820 0x6a 0x0 0x824 0x15 0x0 0x828 0xd 0x0 0x82c 0x15 0x0 0x830 0xd 0x0 0x834 0x15 0x0 0x838 0xd 0x0 0x83c 0x15 0x0 0x840 0xd 0x0 0x844 0x15 0x0 0x848 0xd 0x0 0x84c 0x15 0x0 0x850 0xd 0x0 0x85c 0x2 0x0 0x8a0 0x4 0x0 0x88c 0x44 0x0 0x880 0xd1 0x0 0x884 0x1f 0x0 0x888 0x47 0x0 0x870 0xe7 0x0 0x874 0x3 0x0 0x878 0x40 0x0 0x87c 0x0 0x0 0x9d8 0xba 0x0 0x8b8 0x75 0x0 0x8b0 0x86 0x0 0x8bc 0x13 0x0 0xa0c 0x21 0x0 0xa10 0x60 0x0 0xffffffff 0xffffffff 0x0>;
+                       qcom,qmp-phy-reg-offset = <0x974 0x8d8 0x8dc 0x804 0x800 0x808>;
+                       clocks = <0x22 0xa5 0x22 0xa8 0x21 0x0 0x22 0xa4 0x22 0xa9>;
+                       clock-names = "aux_clk", "pipe_clk", "ref_clk_src", "ref_clk", "cfg_ahb_clk";
+                       resets = <0x22 0x14 0x22 0x15>;
+                       reset-names = "phy_reset", "phy_phy_reset";
+                       status = "okay";
+                       linux,phandle = <0x341>;
+                       phandle = <0x341>;
+               };
+
+               qcom,csiphy@ac68000 {
+                       cell-index = <0x3>;
+                       compatible = "qcom,csiphy-v1.0", "qcom,csiphy";
+                       reg = <0xac68000 0x1000>;
+                       reg-names = "csiphy";
+                       reg-cam-base = <0x68000>;
+                       interrupts = <0x0 0x1c0 0x0>;
+                       interrupt-names = "csiphy";
+                       regulator-names = "gdscr", "refgen";
+                       gdscr-supply = <0x21d>;
+                       refgen-supply = <0x184>;
+                       csi-vdd-voltage = <0x124f80>;
+                       mipi-csi-vdd-supply = <0x36>;
+                       clocks = <0xdd 0x6 0xdd 0x55 0xdd 0x54 0xdd 0x9 0xdd 0xa 0xdd 0x16 0xdd 0x12 0xdd 0x11>;
+                       clock-names = "camnoc_axi_clk", "soc_ahb_clk", "slow_ahb_src_clk", "cpas_ahb_clk", "cphy_rx_clk_src", "csiphy3_clk", "csi3phytimer_clk_src", "csi3phytimer_clk";
+                       src-clock-name = "csi3phytimer_clk_src";
+                       clock-cntl-level = "turbo";
+                       clock-rates = <0x0 0x0 0x0 0x0 0x16e36000 0x0 0x100db355 0x0>;
+                       status = "ok";
+                       linux,phandle = <0xd3>;
+                       phandle = <0xd3>;
+               };
+
+               qcom,cam-lrme {
+                       compatible = "qcom,cam-lrme";
+                       arch-compat = "lrme";
+                       status = "ok";
+               };
+
+               qcom,lrme@ac6b000 {
+                       cell-index = <0x0>;
+                       compatible = "qcom,lrme";
+                       reg-names = "lrme";
+                       reg = <0xac6b000 0xa00>;
+                       reg-cam-base = <0x6b000>;
+                       interrupt-names = "lrme";
+                       interrupts = <0x0 0x1dc 0x0>;
+                       regulator-names = "camss";
+                       camss-supply = <0x21d>;
+                       clock-names = "camera_ahb", "camera_axi", "soc_ahb_clk", "cpas_ahb_clk", "camnoc_axi_clk", "lrme_clk_src", "lrme_clk";
+                       clocks = <0x22 0xc 0x22 0xd 0xdd 0x55 0xdd 0x9 0xdd 0x6 0xdd 0x41 0xdd 0x40>;
+                       clock-rates = <0x0 0x0 0x0 0x0 0x0 0xbebc200 0xbebc200 0x0 0x0 0x0 0x0 0x0 0x10089d40 0x10089d40 0x0 0x0 0x0 0x0 0x0 0x1312d000 0x1312d000 0x0 0x0 0x0 0x0 0x0 0x17d78400 0x17d78400>;
+                       clock-cntl-level = "lowsvs", "svs", "svs_l1", "turbo";
+                       src-clock-name = "lrme_clk_src";
+                       status = "ok";
+               };
+
+               qcom,memshare {
+                       compatible = "qcom,memshare";
+
+                       qcom,client_1 {
+                               compatible = "qcom,memshare-peripheral";
+                               qcom,peripheral-size = <0x0>;
+                               qcom,client-id = <0x0>;
+                               qcom,allocate-boot-time;
+                               label = "modem";
+                       };
+
+                       qcom,client_2 {
+                               compatible = "qcom,memshare-peripheral";
+                               qcom,peripheral-size = <0x0>;
+                               qcom,client-id = <0x2>;
+                               label = "modem";
+                       };
+
+                       qcom,client_3 {
+                               compatible = "qcom,memshare-peripheral";
+                               qcom,peripheral-size = <0x500000>;
+                               qcom,client-id = <0x1>;
+                               qcom,allocate-on-request;
+                               label = "modem";
+                       };
+               };
+
+               syscon@0x5091508 {
+                       compatible = "syscon";
+                       reg = <0x5091508 0x4>;
+                       linux,phandle = <0x1e>;
+                       phandle = <0x1e>;
+               };
+
+               syscon@0x5091008 {
+                       compatible = "syscon";
+                       reg = <0x5091008 0x4>;
+                       linux,phandle = <0x1f>;
+                       phandle = <0x1f>;
+               };
+
+               interrupt-controller@0xb220000 {
+                       compatible = "qcom,pdc-sdm845-v2";
+                       reg = <0xb220000 0x400>;
+                       #interrupt-cells = <0x3>;
+                       interrupt-parent = <0xaa>;
+                       interrupt-controller;
+                       linux,phandle = <0x1>;
+                       phandle = <0x1>;
+               };
+
+               dsi_panel_pwr_supply {
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       linux,phandle = <0x2d>;
+                       phandle = <0x2d>;
+
+                       qcom,panel-supply-entry@0 {
+                               reg = <0x0>;
+                               qcom,supply-name = "vddio";
+                               qcom,supply-min-voltage = <0x1b7740>;
+                               qcom,supply-max-voltage = <0x1b7740>;
+                               qcom,supply-enable-load = <0xf230>;
+                               qcom,supply-disable-load = <0x50>;
+                               qcom,supply-post-on-sleep = <0x14>;
+                       };
+
+                       qcom,panel-supply-entry@1 {
+                               reg = <0x1>;
+                               qcom,supply-name = "lab";
+                               qcom,supply-min-voltage = <0x4630c0>;
+                               qcom,supply-max-voltage = <0x5b8d80>;
+                               qcom,supply-enable-load = <0x186a0>;
+                               qcom,supply-disable-load = <0x64>;
+                       };
+
+                       qcom,panel-supply-entry@2 {
+                               reg = <0x2>;
+                               qcom,supply-name = "ibb";
+                               qcom,supply-min-voltage = <0x4630c0>;
+                               qcom,supply-max-voltage = <0x5b8d80>;
+                               qcom,supply-enable-load = <0x186a0>;
+                               qcom,supply-disable-load = <0x64>;
+                               qcom,supply-post-on-sleep = <0x14>;
+                       };
+               };
+
+               dsi_panel_pwr_supply_no_labibb {
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+
+                       qcom,panel-supply-entry@0 {
+                               reg = <0x0>;
+                               qcom,supply-name = "vddio";
+                               qcom,supply-min-voltage = <0x1b7740>;
+                               qcom,supply-max-voltage = <0x1b7740>;
+                               qcom,supply-enable-load = <0xf230>;
+                               qcom,supply-disable-load = <0x50>;
+                               qcom,supply-post-on-sleep = <0x14>;
+                       };
+               };
+
+               dsi_panel_pwr_supply_vdd_no_labibb {
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+
+                       qcom,panel-supply-entry@0 {
+                               reg = <0x0>;
+                               qcom,supply-name = "vddio";
+                               qcom,supply-min-voltage = <0x1b7740>;
+                               qcom,supply-max-voltage = <0x1b7740>;
+                               qcom,supply-enable-load = <0xf230>;
+                               qcom,supply-disable-load = <0x50>;
+                               qcom,supply-post-on-sleep = <0x14>;
+                       };
+
+                       qcom,panel-supply-entry@1 {
+                               reg = <0x1>;
+                               qcom,supply-name = "vdd";
+                               qcom,supply-min-voltage = <0x2dc6c0>;
+                               qcom,supply-max-voltage = <0x2dc6c0>;
+                               qcom,supply-enable-load = <0xd13a8>;
+                               qcom,supply-disable-load = <0x0>;
+                               qcom,supply-post-on-sleep = <0x0>;
+                       };
+               };
+
+               qcom,dsi-display@0 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_sharp_4k_dsc_video_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x2f 0x342>;
+                       qcom,dsi-phy = <0x343 0x344>;
+                       clocks = <0x345 0x6 0x345 0x9>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346 0x347>;
+                       pinctrl-1 = <0x348 0x349>;
+                       qcom,platform-te-gpio = <0x2e 0xa 0x0>;
+                       qcom,platform-reset-gpio = <0x2e 0x6 0x0>;
+                       qcom,panel-mode-gpio = <0x2e 0x34 0x0>;
+                       qcom,dsi-panel = <0x34a>;
+                       vddio-supply = <0x182>;
+                       lab-supply = <0x34b>;
+                       ibb-supply = <0x34c>;
+               };
+
+               qcom,dsi-display@1 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_sharp_4k_dsc_cmd_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x2f 0x342>;
+                       qcom,dsi-phy = <0x343 0x344>;
+                       clocks = <0x345 0x6 0x345 0x9>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346 0x347>;
+                       pinctrl-1 = <0x348 0x349>;
+                       qcom,platform-te-gpio = <0x2e 0xa 0x0>;
+                       qcom,platform-reset-gpio = <0x2e 0x6 0x0>;
+                       qcom,panel-mode-gpio = <0x2e 0x34 0x0>;
+                       qcom,dsi-panel = <0x34d>;
+                       vddio-supply = <0x182>;
+                       lab-supply = <0x34b>;
+                       ibb-supply = <0x34c>;
+               };
+
+               qcom,dsi-display@2 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_sharp_1080_cmd_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x2f>;
+                       qcom,dsi-phy = <0x343>;
+                       clocks = <0x345 0x6 0x345 0x9>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346 0x347>;
+                       pinctrl-1 = <0x348 0x349>;
+                       qcom,platform-te-gpio = <0x2e 0xa 0x0>;
+                       qcom,platform-reset-gpio = <0x2e 0x6 0x0>;
+                       qcom,panel-mode-gpio = <0x2e 0x34 0x0>;
+                       qcom,dsi-panel = <0x34e>;
+                       vddio-supply = <0x182>;
+                       lab-supply = <0x34b>;
+                       ibb-supply = <0x34c>;
+               };
+
+               qcom,dsi-display@3 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_dual_sharp_1080_120hz_cmd_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x2f 0x342>;
+                       qcom,dsi-phy = <0x343 0x344>;
+                       clocks = <0x345 0x6 0x345 0x9>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346 0x347>;
+                       pinctrl-1 = <0x348 0x349>;
+                       qcom,platform-te-gpio = <0x2e 0xa 0x0>;
+                       qcom,platform-reset-gpio = <0x2e 0x6 0x0>;
+                       qcom,panel-mode-gpio = <0x2e 0x34 0x0>;
+                       qcom,dsi-panel = <0x34f>;
+                       vddio-supply = <0x182>;
+                       lab-supply = <0x34b>;
+                       ibb-supply = <0x34c>;
+               };
+
+               qcom,dsi-display@4 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_dual_nt35597_truly_video_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x2f 0x342>;
+                       qcom,dsi-phy = <0x343 0x344>;
+                       clocks = <0x345 0x6 0x345 0x9>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346 0x347>;
+                       pinctrl-1 = <0x348 0x349>;
+                       qcom,platform-reset-gpio = <0x2e 0x6 0x0>;
+                       qcom,panel-mode-gpio = <0x2e 0x34 0x0>;
+                       qcom,dsi-panel = <0x350>;
+                       vddio-supply = <0x182>;
+                       lab-supply = <0x34b>;
+                       ibb-supply = <0x34c>;
+               };
+
+               qcom,dsi-display@5 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_dual_nt35597_truly_cmd_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x2f 0x342>;
+                       qcom,dsi-phy = <0x343 0x344>;
+                       clocks = <0x345 0x6 0x345 0x9>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346 0x347>;
+                       pinctrl-1 = <0x348 0x349>;
+                       qcom,platform-te-gpio = <0x2e 0xa 0x0>;
+                       qcom,platform-reset-gpio = <0x2e 0x6 0x0>;
+                       qcom,panel-mode-gpio = <0x2e 0x34 0x0>;
+                       qcom,dsi-panel = <0x351>;
+                       vddio-supply = <0x182>;
+                       lab-supply = <0x34b>;
+                       ibb-supply = <0x34c>;
+               };
+
+               qcom,dsi-display@6 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_nt35597_truly_dsc_cmd_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x342>;
+                       qcom,dsi-phy = <0x344>;
+                       clocks = <0x352 0x18 0x352 0x1b>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346 0x347>;
+                       pinctrl-1 = <0x348 0x349>;
+                       qcom,platform-te-gpio = <0x2e 0xa 0x0>;
+                       qcom,platform-reset-gpio = <0x2e 0x6 0x0>;
+                       qcom,panel-mode-gpio = <0x2e 0x34 0x0>;
+                       qcom,dsi-panel = <0x353>;
+                       vddio-supply = <0x182>;
+                       lab-supply = <0x34b>;
+                       ibb-supply = <0x34c>;
+               };
+
+               qcom,dsi-display@7 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_nt35597_truly_dsc_video_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x342>;
+                       qcom,dsi-phy = <0x344>;
+                       clocks = <0x352 0x18 0x352 0x1b>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346 0x347>;
+                       pinctrl-1 = <0x348 0x349>;
+                       qcom,platform-te-gpio = <0x2e 0xa 0x0>;
+                       qcom,platform-reset-gpio = <0x2e 0x6 0x0>;
+                       qcom,panel-mode-gpio = <0x2e 0x34 0x0>;
+                       qcom,dsi-panel = <0x354>;
+                       vddio-supply = <0x182>;
+                       lab-supply = <0x34b>;
+                       ibb-supply = <0x34c>;
+               };
+
+               qcom,dsi-display@8 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_sim_vid_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x2f>;
+                       qcom,dsi-phy = <0x343>;
+                       clocks = <0x345 0x6 0x345 0x9>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346 0x347>;
+                       pinctrl-1 = <0x348 0x349>;
+                       qcom,dsi-panel = <0x355>;
+               };
+
+               qcom,dsi-display@9 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_dual_sim_vid_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x2f 0x342>;
+                       qcom,dsi-phy = <0x343 0x344>;
+                       clocks = <0x345 0x6 0x345 0x9>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346 0x347>;
+                       pinctrl-1 = <0x348 0x349>;
+                       qcom,dsi-panel = <0x356>;
+               };
+
+               qcom,dsi-display@10 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_sim_cmd_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x2f>;
+                       qcom,dsi-phy = <0x343>;
+                       clocks = <0x345 0x6 0x345 0x9>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346 0x347>;
+                       pinctrl-1 = <0x348 0x349>;
+                       qcom,dsi-panel = <0x357>;
+               };
+
+               qcom,dsi-display@11 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_dual_sim_cmd_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x2f 0x342>;
+                       qcom,dsi-phy = <0x343 0x344>;
+                       clocks = <0x345 0x6 0x345 0x9>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346 0x347>;
+                       pinctrl-1 = <0x348 0x349>;
+                       qcom,dsi-panel = <0x358>;
+               };
+
+               qcom,dsi-display@12 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_sim_dsc_375_cmd_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x2f>;
+                       qcom,dsi-phy = <0x343>;
+                       clocks = <0x345 0x6 0x345 0x9>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346 0x347>;
+                       pinctrl-1 = <0x348 0x349>;
+                       qcom,dsi-panel = <0x359>;
+               };
+
+               qcom,dsi-display@13 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_dual_sim_dsc_375_cmd_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x2f 0x342>;
+                       qcom,dsi-phy = <0x343 0x344>;
+                       clocks = <0x345 0x6 0x345 0x9>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346 0x347>;
+                       pinctrl-1 = <0x348 0x349>;
+                       qcom,dsi-panel = <0x35a>;
+               };
+
+               qcom,dsi-display@14 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_dual_nt35597_video_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x2f 0x342>;
+                       qcom,dsi-phy = <0x343 0x344>;
+                       clocks = <0x345 0x6 0x345 0x9>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346 0x347>;
+                       pinctrl-1 = <0x348 0x349>;
+                       qcom,platform-reset-gpio = <0x2e 0x6 0x0>;
+                       qcom,panel-mode-gpio = <0x2e 0x34 0x0>;
+                       qcom,dsi-panel = <0x35b>;
+                       vddio-supply = <0x182>;
+                       lab-supply = <0x34b>;
+                       ibb-supply = <0x34c>;
+               };
+
+               qcom,dsi-display@15 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_dual_nt35597_cmd_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x2f 0x342>;
+                       qcom,dsi-phy = <0x343 0x344>;
+                       clocks = <0x345 0x6 0x345 0x9>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346 0x347>;
+                       pinctrl-1 = <0x348 0x349>;
+                       qcom,platform-te-gpio = <0x2e 0xa 0x0>;
+                       qcom,platform-reset-gpio = <0x2e 0x6 0x0>;
+                       qcom,panel-mode-gpio = <0x2e 0x34 0x0>;
+                       qcom,dsi-panel = <0x35c>;
+                       vddio-supply = <0x182>;
+                       lab-supply = <0x34b>;
+                       ibb-supply = <0x34c>;
+               };
+
+               qcom,dsi-display@16 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_jdi_fhd_r63452_cmd_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x2f>;
+                       qcom,dsi-phy = <0x343>;
+                       clocks = <0x345 0x6 0x345 0x9>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346 0x347>;
+                       pinctrl-1 = <0x348 0x349>;
+                       qcom,platform-te-gpio = <0x2e 0xa 0x0>;
+                       qcom,platform-reset-gpio = <0x2e 0x6 0x0>;
+                       qcom,panel-mode-gpio = <0x2e 0x34 0x0>;
+                       qcom,dsi-panel = <0x35d>;
+                       vddio-supply = <0x182>;
+                       lab-supply = <0x34b>;
+                       ibb-supply = <0x34c>;
+                       vddts-supply = <0x97>;
+               };
+
+               qcom,dsi-display@17 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_ss_ea8074_fhd_cmd_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x2f>;
+                       qcom,dsi-phy = <0x343>;
+                       clocks = <0x345 0x6 0x345 0x9>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346 0x347>;
+                       pinctrl-1 = <0x348 0x349>;
+                       qcom,platform-te-gpio = <0x2e 0xa 0x0>;
+                       qcom,platform-reset-gpio = <0x2e 0x6 0x0>;
+                       qcom,panel-mode-gpio = <0x2e 0x34 0x0>;
+                       qcom,dsi-panel = <0x35e>;
+                       vddio-supply = <0x182>;
+                       lab-supply = <0x34b>;
+                       ibb-supply = <0x34c>;
+                       oled-vdda-supply = <0x23b>;
+                       vci-supply = <0x35f>;
+               };
+
+               qcom,dsi-display@18 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_jdi_fhd_nt35596s_video_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x2f>;
+                       qcom,dsi-phy = <0x343>;
+                       clocks = <0x345 0x6 0x345 0x9>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346 0x347>;
+                       pinctrl-1 = <0x348 0x349>;
+                       qcom,platform-te-gpio = <0x2e 0xa 0x0>;
+                       qcom,platform-reset-gpio = <0x2e 0x6 0x0>;
+                       qcom,panel-mode-gpio = <0x2e 0x34 0x0>;
+                       qcom,dsi-panel = <0x360>;
+                       vddio-supply = <0x182>;
+                       lab-supply = <0x34b>;
+                       ibb-supply = <0x34c>;
+               };
+
+               qcom,dsi-display@19 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_gvo_rm69299_fhd_cmd_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x2f>;
+                       qcom,dsi-phy = <0x343>;
+                       clocks = <0x345 0x6 0x345 0x9>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346 0x347>;
+                       pinctrl-1 = <0x348 0x349>;
+                       qcom,platform-te-gpio = <0x2e 0xa 0x0>;
+                       qcom,platform-reset-gpio = <0x2e 0x6 0x0>;
+                       qcom,dsi-panel = <0x361>;
+                       vddio-supply = <0x182>;
+                       vci-supply = <0x35f>;
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       endpoint {
+                                       };
+                               };
+                       };
+               };
+
+               qcom,wb-display@0 {
+                       compatible = "qcom,wb-display";
+                       cell-index = <0x0>;
+                       label = "wb_display";
+                       linux,phandle = <0x2c>;
+                       phandle = <0x2c>;
+               };
+
+               qcom,msm-ext-disp {
+                       compatible = "qcom,msm-ext-disp";
+                       linux,phandle = <0x39>;
+                       phandle = <0x39>;
+
+                       qcom,msm-ext-disp-audio-codec-rx {
+                               compatible = "qcom,msm-ext-disp-audio-codec-rx";
+                               linux,phandle = <0x32b>;
+                               phandle = <0x32b>;
+                       };
+               };
+
+               msm_cdc_pinctrl@49 {
+                       compatible = "qcom,msm-cdc-pinctrl";
+                       pinctrl-names = "aud_active", "aud_sleep";
+                       pinctrl-0 = <0x362>;
+                       pinctrl-1 = <0x363>;
+                       linux,phandle = <0x32c>;
+                       phandle = <0x32c>;
+               };
+
+               wcd9xxx-irq {
+                       status = "ok";
+                       compatible = "qcom,wcd9xxx-irq";
+                       interrupt-controller;
+                       #interrupt-cells = <0x1>;
+                       interrupt-parent = <0x2e>;
+                       qcom,gpio-connect = <0x2e 0x36 0x0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <0x364>;
+                       linux,phandle = <0x10a>;
+                       phandle = <0x10a>;
+               };
+
+               audio_ext_clk_lnbb {
+                       status = "ok";
+                       compatible = "qcom,audio-ref-clk";
+                       clock-names = "osr_clk";
+                       clocks = <0x21 0x2>;
+                       qcom,node_has_rpm_clock;
+                       #clock-cells = <0x1>;
+                       linux,phandle = <0x10c>;
+                       phandle = <0x10c>;
+               };
+
+               msm_cdc_pinctrl@64 {
+                       compatible = "qcom,msm-cdc-pinctrl";
+                       qcom,cdc-rst-n-gpio = <0x2e 0x40 0x0>;
+                       pinctrl-names = "aud_active", "aud_sleep";
+                       pinctrl-0 = <0x365>;
+                       pinctrl-1 = <0x366>;
+                       linux,phandle = <0x10b>;
+                       phandle = <0x10b>;
+               };
+
+               qocm,wcd-dsp-glink {
+                       compatible = "qcom,wcd-dsp-glink";
+               };
+
+               qcom,wcd-dsp-mgr {
+                       compatible = "qcom,wcd-dsp-mgr";
+                       qcom,wdsp-components = <0x367 0x0 0x368 0x1 0x369 0x2>;
+                       qcom,img-filename = "cpe_9340";
+               };
+
+               qcom,mdss_dsi_jdi_fhd_r63452_cmd {
+                       qcom,mdss-dsi-panel-name = "jdi fhd cmd incell dsi panel";
+                       qcom,mdss-dsi-panel-id = <0x0>;
+                       qcom,mdss-dsi-panel-model = "JDI FHD R63452 CMD PANEL";
+                       qcom,mdss-dsi-panel-sleepwrmod = <0x0>;
+                       qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
+                       qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                       qcom,mdss-dsi-stream = <0x0>;
+                       qcom,mdss-dsi-bpp = <0x18>;
+                       qcom,mdss-dsi-underflow-color = <0xff>;
+                       qcom,mdss-dsi-border-color = <0x0>;
+                       qcom,mdss-dsi-traffic-mode = "burst_mode";
+                       qcom,mdss-dsi-bllp-eof-power-mode;
+                       qcom,mdss-dsi-bllp-power-mode;
+                       qcom,mdss-dsi-lp11-init;
+                       qcom,mdss-dsi-lane-0-state;
+                       qcom,mdss-dsi-lane-1-state;
+                       qcom,mdss-dsi-lane-2-state;
+                       qcom,mdss-dsi-lane-3-state;
+                       qcom,mdss-dsi-panel-timings = <0xe3503600 0xa9a33a50 0x3d030400>;
+                       qcom,mdss-dsi-t-clk-post = <0xd>;
+                       qcom,mdss-dsi-t-clk-pre = <0x2d>;
+                       qcom,mdss-dsi-bl-min-level = <0x1>;
+                       qcom,mdss-dsi-bl-max-level = <0xfff>;
+                       qcom,mdss-brightness-max-level = <0xfff>;
+                       qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                       qcom,mdss-dsi-mdp-trigger = "none";
+                       qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
+                       qcom,mdss-dsi-reset-sequence = <0x1 0xa 0x0 0x1 0x1 0xa>;
+                       qcom,mdss-pan-physical-width-dimension = <0x40>;
+                       qcom,mdss-pan-physical-height-dimension = <0x72>;
+                       qcom,mdss-dsi-te-pin-select = <0x1>;
+                       qcom,mdss-dsi-wr-mem-start = <0x2c>;
+                       qcom,mdss-dsi-wr-mem-continue = <0x3c>;
+                       qcom,mdss-dsi-te-dcs-command = <0x1>;
+                       qcom,mdss-dsi-te-check-enable;
+                       qcom,mdss-dsi-te-using-te-pin;
+                       qcom,mdss-dsi-tx-eot-append;
+                       qcom,mdss-panel-on-dimming-delay = <0x78>;
+                       qcom,mdss-night-brightness = <0x7 0x19 0x2b 0x3d>;
+                       linux,phandle = <0x35d>;
+                       phandle = <0x35d>;
+
+                       qcom,mdss-dsi-display-timings {
+
+                               timing@0 {
+                                       qcom,mdss-dsi-panel-width = <0x438>;
+                                       qcom,mdss-dsi-panel-height = <0x780>;
+                                       qcom,mdss-dsi-h-front-porch = <0x78>;
+                                       qcom,mdss-dsi-h-back-porch = <0x28>;
+                                       qcom,mdss-dsi-h-pulse-width = <0x10>;
+                                       qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                       qcom,mdss-dsi-v-back-porch = <0x4>;
+                                       qcom,mdss-dsi-v-front-porch = <0x4>;
+                                       qcom,mdss-dsi-v-pulse-width = <0x2>;
+                                       qcom,mdss-dsi-h-left-border = <0x0>;
+                                       qcom,mdss-dsi-h-right-border = <0x0>;
+                                       qcom,mdss-dsi-v-top-border = <0x0>;
+                                       qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                       qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                       qcom,mdss-dsi-on-command = <0x29000000 0x2b0 0x290000 0x2 0xd6012900 0x0 0xeec64dc 0xec3b5200 0xb0b1315 0x680bb529 0x0 0x2b003 0x39000000 0x235 0x390000 0x2 0x36003900 0x0 0x23a7739 0x0 0x52a00 0x43739 0x0 0x52b00 0x77f39 0x0 0x34400 0x390000 0x2 0x51ff3900 0x0 0x2532439 0x0 0x25500 0x39000000 0x25e 0x390000 0x2 0x84000501 0x1400 0x2290005 0x1000050 0x21100 0x29000000 0x2b0 0x4390000 0x2 0x84002900 0x0 0x2c81129 0x1000000 0x2b003>;
+                                       qcom,mdss-dsi-off-command = [29 00 00 00 00 00 02 b0 00 29 00 00 00 00 00 02 d6 01 29 00 00 00 00 00 0e ec 64 dc ec 3b 52 00 0b 0b 13 15 68 0b 95 29 00 00 00 00 00 02 b0 03 05 01 00 00 02 00 02 28 00 05 01 00 00 78 00 02 10 00];
+                                       qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                                       qcom,mdss-dsi-panel-phy-timings = <0x1a0406 0xa0a0506 0x5030400>;
+                                       qcom,display-topology = <0x1 0x0 0x1>;
+                                       qcom,default-topology-index = <0x0>;
+                               };
+                       };
+               };
+
+               qcom,mdss_dsi_ss_fhd_ea8074_cmd {
+                       qcom,mdss-dsi-panel-name = "ss fhd cmd dsi panel";
+                       qcom,mdss-dsi-panel-id = <0x0>;
+                       qcom,mdss-dsi-panel-model = "SS FHD EA8074 CMD PANEL";
+                       qcom,mdss-dsi-panel-sleepwrmod = <0x0>;
+                       qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
+                       qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                       qcom,mdss-dsi-stream = <0x0>;
+                       qcom,mdss-dsi-bpp = <0x18>;
+                       qcom,mdss-dsi-underflow-color = <0xff>;
+                       qcom,mdss-dsi-border-color = <0x0>;
+                       qcom,mdss-dsi-traffic-mode = "burst_mode";
+                       qcom,mdss-dsi-bllp-eof-power-mode;
+                       qcom,mdss-dsi-bllp-power-mode;
+                       qcom,mdss-dsi-lp11-init;
+                       qcom,mdss-dsi-lane-0-state;
+                       qcom,mdss-dsi-lane-1-state;
+                       qcom,mdss-dsi-lane-2-state;
+                       qcom,mdss-dsi-lane-3-state;
+                       qcom,mdss-dsi-t-clk-post = <0xe>;
+                       qcom,mdss-dsi-t-clk-pre = <0x31>;
+                       qcom,mdss-dsi-bl-min-level = <0x1>;
+                       qcom,mdss-dsi-bl-max-level = <0x3ff>;
+                       qcom,mdss-brightness-max-level = <0x3ff>;
+                       qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                       qcom,mdss-dsi-mdp-trigger = "none";
+                       qcom,mdss-dsi-bl-dcs-type-ss;
+                       qcom,mdss-dsi-reset-sequence = <0x1 0x1 0x0 0x1 0x1 0xa>;
+                       qcom,mdss-pan-physical-width-dimension = <0x44>;
+                       qcom,mdss-pan-physical-height-dimension = <0x89>;
+                       qcom,mdss-dsi-te-pin-select = <0x1>;
+                       qcom,mdss-dsi-wr-mem-start = <0x2c>;
+                       qcom,mdss-dsi-wr-mem-continue = <0x3c>;
+                       qcom,mdss-dsi-te-dcs-command = <0x1>;
+                       qcom,mdss-dsi-te-check-enable;
+                       qcom,mdss-dsi-te-using-te-pin;
+                       qcom,mdss-dsi-tx-eot-append;
+                       qcom,mdss-dsi-panel-hdr-enabled;
+                       qcom,mdss-dsi-panel-hdr-color-primaries = <0x38a4 0x3c8c 0x7d00 0x4268 0x3c8c 0x7530 0x1f40 0xbb8>;
+                       qcom,mdss-dsi-panel-peak-brightness = <0x419ce0>;
+                       qcom,mdss-dsi-panel-blackness-level = <0xc9e>;
+                       qcom,mdss-dsi-on-command-tuning;
+                       qcom,dispparam-enabled;
+                       linux,phandle = <0x35e>;
+                       phandle = <0x35e>;
+
+                       qcom,mdss-dsi-display-timings {
+
+                               timing@0 {
+                                       qcom,mdss-dsi-panel-width = <0x438>;
+                                       qcom,mdss-dsi-panel-height = <0x870>;
+                                       qcom,mdss-dsi-h-front-porch = <0x30>;
+                                       qcom,mdss-dsi-h-back-porch = <0x30>;
+                                       qcom,mdss-dsi-h-pulse-width = <0x10>;
+                                       qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                       qcom,mdss-dsi-v-back-porch = <0x1c>;
+                                       qcom,mdss-dsi-v-front-porch = <0x14>;
+                                       qcom,mdss-dsi-v-pulse-width = <0xc>;
+                                       qcom,mdss-dsi-h-left-border = <0x0>;
+                                       qcom,mdss-dsi-h-right-border = <0x0>;
+                                       qcom,mdss-dsi-v-top-border = <0x0>;
+                                       qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                       qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                       qcom,mdss-dsi-on-command = [05 01 00 00 0a 00 02 11 00 39 00 00 00 00 00 05 2b 00 00 08 6f 39 00 00 00 00 00 03 f0 5a 5a 39 00 00 00 00 00 02 b0 04 39 00 00 00 00 00 02 b2 00 39 00 00 00 00 00 02 f7 03 39 00 00 00 00 00 03 f0 a5 a5 39 00 00 00 00 00 02 35 00 39 00 00 00 00 00 03 51 00 00 39 00 00 00 00 00 02 53 25 39 01 00 00 6e 00 02 55 00 05 01 00 00 00 00 02 29 00];
+                                       qcom,mdss-dsi-off-command = [05 01 00 00 00 00 02 28 00 05 01 00 00 78 00 02 10 00];
+                                       qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-off-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-doze-hbm-command = [39 01 00 00 00 00 03 51 00 01 39 01 00 00 01 00 02 53 22];
+                                       qcom,mdss-dsi-doze-lbm-command = [39 01 00 00 00 00 03 51 00 01 39 01 00 00 01 00 02 53 23];
+                                       qcom,mdss-dsi-nolp-command = [39 01 00 00 00 00 02 53 25];
+                                       qcom,mdss-dsi-doze-hbm-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-doze-lbm-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-nolp-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-acl-off-command = [39 01 00 00 00 00 02 55 00];
+                                       qcom,mdss-dsi-dispparam-acl-off-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-acl-l1-command = [39 01 00 00 00 00 02 55 01];
+                                       qcom,mdss-dsi-dispparam-acl-l1-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-acl-l2-command = [39 01 00 00 00 00 02 55 02];
+                                       qcom,mdss-dsi-dispparam-acl-l2-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-acl-l3-command = [39 01 00 00 00 00 02 55 03];
+                                       qcom,mdss-dsi-dispparam-acl-l3-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-hbm-off-command = [39 01 00 00 00 00 02 53 25];
+                                       qcom,mdss-dsi-dispparam-hbm-off-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-hbm-on-command = [39 01 00 00 00 00 02 53 e0];
+                                       qcom,mdss-dsi-dispparam-hbm-on-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                                       qcom,mdss-dsi-panel-phy-timings = <0x200808 0x24230808 0x5030400>;
+                                       qcom,display-topology = <0x1 0x0 0x1>;
+                                       qcom,default-topology-index = <0x0>;
+                               };
+                       };
+               };
+
+               qcom,mdss_dsi_ss_notch_fhd_ea8074_cmd {
+                       qcom,mdss-dsi-panel-name = "ss notch fhd cmd dsi panel";
+                       qcom,mdss-dsi-panel-id = <0x0>;
+                       qcom,mdss-dsi-panel-model = "SS NOTCH FHD EA8074 CMD PANEL";
+                       qcom,mdss-dsi-panel-sleepwrmod = <0x0>;
+                       qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
+                       qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                       qcom,mdss-dsi-stream = <0x0>;
+                       qcom,mdss-dsi-bpp = <0x18>;
+                       qcom,mdss-dsi-underflow-color = <0xff>;
+                       qcom,mdss-dsi-border-color = <0x0>;
+                       qcom,mdss-dsi-traffic-mode = "burst_mode";
+                       qcom,mdss-dsi-bllp-eof-power-mode;
+                       qcom,mdss-dsi-bllp-power-mode;
+                       qcom,ulps-enabled;
+                       qcom,mdss-dsi-lp11-init;
+                       qcom,mdss-dsi-lane-0-state;
+                       qcom,mdss-dsi-lane-1-state;
+                       qcom,mdss-dsi-lane-2-state;
+                       qcom,mdss-dsi-lane-3-state;
+                       qcom,mdss-brightness-max-level = <0x3ff>;
+                       qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                       qcom,mdss-dsi-mdp-trigger = "none";
+                       qcom,mdss-dsi-bl-dcs-type-ss;
+                       qcom,mdss-dsi-reset-sequence = <0x1 0x1 0x0 0x1 0x1 0xa>;
+                       qcom,mdss-pan-physical-width-dimension = <0x44>;
+                       qcom,mdss-pan-physical-height-dimension = <0x8e>;
+                       qcom,mdss-dsi-te-pin-select = <0x1>;
+                       qcom,mdss-dsi-wr-mem-start = <0x2c>;
+                       qcom,mdss-dsi-wr-mem-continue = <0x3c>;
+                       qcom,mdss-dsi-te-dcs-command = <0x1>;
+                       qcom,mdss-dsi-te-check-enable;
+                       qcom,mdss-dsi-te-using-te-pin;
+                       qcom,mdss-dsi-tx-eot-append;
+                       qcom,mdss-dsi-panel-hdr-enabled;
+                       qcom,mdss-dsi-panel-hdr-color-primaries = <0x38a4 0x3c8c 0x7d00 0x4268 0x3c8c 0x7530 0x1f40 0xbb8>;
+                       qcom,mdss-dsi-panel-peak-brightness = <0x419ce0>;
+                       qcom,mdss-dsi-panel-blackness-level = <0xc9e>;
+                       qcom,dispparam-enabled;
+                       qcom,mdss-panel-on-dimming-delay = <0xc8>;
+                       qcom,mdss-dsi-panel-dc-threshold = <0x140>;
+                       qcom,mdss-dsi-t-clk-post = <0xe>;
+                       qcom,mdss-dsi-t-clk-pre = <0x34>;
+                       qcom,panel-supply-entries = <0x36a>;
+                       qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
+                       qcom,mdss-dsi-bl-min-level = <0x2>;
+                       qcom,mdss-dsi-bl-max-level = <0x3ff>;
+                       qcom,platform-reset-gpio = <0x2e 0x6 0x0>;
+                       qcom,platform-te-gpio = <0x2e 0xa 0x0>;
+                       qcom,esd-err-irq-gpio = <0x2e 0x34 0x2002>;
+                       linux,phandle = <0x36b>;
+                       phandle = <0x36b>;
+
+                       qcom,mdss-dsi-display-timings {
+
+                               timing@0 {
+                                       qcom,mdss-dsi-panel-width = <0x438>;
+                                       qcom,mdss-dsi-panel-height = <0x8c8>;
+                                       qcom,mdss-dsi-h-front-porch = <0x38>;
+                                       qcom,mdss-dsi-h-back-porch = <0x38>;
+                                       qcom,mdss-dsi-h-pulse-width = <0x12>;
+                                       qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                       qcom,mdss-dsi-v-back-porch = <0x18>;
+                                       qcom,mdss-dsi-v-front-porch = <0x1a>;
+                                       qcom,mdss-dsi-v-pulse-width = <0xc>;
+                                       qcom,mdss-dsi-h-left-border = <0x0>;
+                                       qcom,mdss-dsi-h-right-border = <0x0>;
+                                       qcom,mdss-dsi-v-top-border = <0x0>;
+                                       qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                       qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                       qcom,mdss-dsi-on-command = <0x5010000 0xa000211 0x390000 0x5 0x2b000008 0xc7390000 0x3 0xf05a5a39 0x0 0x8eff0 0x31003331 0x14353900 0x0 0x2b00139 0x0 0x2bb03 0x39000000 0x2b0 0x4f390000 0x2 0xcb003900 0x0 0x2b06b39 0x0 0x2cb00 0x39000000 0x2f7 0x3390000 0x2 0xb0053900 0x0 0x2b11039 0x0 0x2b002 0x39000000 0x5d5 0x2175414 0x39010000 0x3f0 0xa5a53900 0x0 0x2350039 0x0 0x35100 0x390000 0x2 0x53203901 0x6e00 0x2550005 0x1000000 0x22900>;
+                                       qcom,mdss-dsi-off-command = [05 01 00 00 11 00 02 28 00 39 00 00 00 00 00 03 f0 5a 5a 39 00 00 00 00 00 02 b0 49 39 00 00 00 00 00 02 cb ff 39 00 00 00 00 00 02 b0 4f 39 00 00 00 00 00 02 cb c8 39 00 00 00 00 00 02 f7 03 39 01 00 00 11 00 03 f0 a5 a5 05 01 00 00 78 00 02 10 00];
+                                       qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-off-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-doze-hbm-command = [39 00 00 00 00 00 03 f0 5a 5a 39 00 00 00 00 00 02 ef b0 39 00 00 00 00 00 02 b0 17 39 00 00 00 00 00 04 e3 00 00 00 39 01 00 00 01 00 02 53 22 39 01 00 00 00 00 03 f0 a5 a5];
+                                       qcom,mdss-dsi-doze-lbm-command = [39 00 00 00 00 00 03 f0 5a 5a 39 00 00 00 00 00 02 ef b0 39 00 00 00 00 00 02 b0 17 39 00 00 00 00 00 04 e3 00 00 00 39 01 00 00 01 00 02 53 23 39 01 00 00 00 00 03 f0 a5 a5];
+                                       qcom,mdss-dsi-nolp-command = [05 01 00 00 00 00 02 28 00 39 00 00 00 00 00 03 f0 5a 5a 39 00 00 00 00 00 02 b0 17 39 00 00 00 00 00 04 e3 86 80 01 39 00 00 00 00 00 02 53 20 39 01 00 00 00 00 03 f0 a5 a5 05 01 00 00 00 00 02 29 00];
+                                       qcom,mdss-dsi-doze-hbm-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-doze-lbm-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-nolp-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-acl-off-command = [39 01 00 00 00 00 02 55 00];
+                                       qcom,mdss-dsi-dispparam-acl-off-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-acl-l1-command = [39 01 00 00 00 00 02 55 01];
+                                       qcom,mdss-dsi-dispparam-acl-l1-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-acl-l2-command = [39 01 00 00 00 00 02 55 02];
+                                       qcom,mdss-dsi-dispparam-acl-l2-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-acl-l3-command = [39 01 00 00 00 00 02 55 03];
+                                       qcom,mdss-dsi-dispparam-acl-l3-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-hbm-off-command = [39 01 00 00 00 00 02 53 28];
+                                       qcom,mdss-dsi-dispparam-hbm-off-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-hbm-on-command = [39 01 00 00 00 00 02 53 e8];
+                                       qcom,mdss-dsi-dispparam-hbm-on-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-hbm-fod-off-command = [39 00 00 00 00 00 02 53 20 39 00 00 00 00 00 03 f0 5a 5a 39 00 00 00 00 00 03 b2 00 40 39 00 00 00 00 00 02 b0 04 39 00 00 00 00 00 02 b2 80 39 00 00 00 00 00 02 f7 03 39 01 00 00 00 00 03 f0 a5 a5];
+                                       qcom,mdss-dsi-dispparam-hbm-fod-off-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-hbm-fod-on-command = [39 01 00 00 00 00 02 53 20 39 00 00 00 00 00 03 f0 5a 5a 39 00 00 00 00 00 03 b2 00 10 39 00 00 00 00 00 02 b0 04 39 00 00 00 00 00 02 b2 00 39 00 00 00 00 00 02 f7 03 39 00 00 00 00 00 03 f0 a5 a5 39 01 00 00 00 00 02 53 e0];
+                                       qcom,mdss-dsi-dispparam-hbm-fod-on-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-hbm-fod2norm-command = [39 00 00 00 00 00 03 f0 5a 5a 39 00 00 00 00 00 03 b2 00 40 39 00 00 00 00 00 02 b0 04 39 00 00 00 00 00 02 b2 80 39 00 00 00 00 00 02 f7 03 39 01 00 00 00 00 03 f0 a5 a5];
+                                       qcom,mdss-dsi-dispparam-hbm-fod2norm-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-dimmingon-command = [39 01 00 00 01 00 02 53 28];
+                                       qcom,mdss-dsi-dispparam-dimmingon-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-dimmingoff-command = [39 01 00 00 01 00 02 53 20];
+                                       qcom,mdss-dsi-dispparam-dimmingoff-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-panel-jitter = <0x1 0x1>;
+                                       qcom,mdss-dsi-read-panel-id-command = [06 01 00 01 05 00 02 db 00];
+                                       qcom,mdss-dsi-read-panel-id-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-flash-test-on-command = <0x39000000 0x3f0 0x5a5a3900 0x0 0x35103ff 0x39000000 0x2b0 0xb390000 0x2 0xb2823900 0x0 0x2b01639 0x0 0x2b2d8 0x39000000 0x2f7 0x3390100 0x6e0003 0xf0a5a539 0x0 0x3f05a 0x5a390000 0x2 0xb0323900 0x0 0x2cb0139 0x0 0x2b040 0x39000000 0x2cb 0x3e390000 0x2 0xb04f3900 0x0 0x2cb0039 0x0 0x2b00b 0x39000000 0x2cb 0xc0390000 0x2 0xf7033901 0x0 0x3f0a5a5>;
+                                       qcom,mdss-dsi-dispparam-flash-test-on-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-flash-test-off-command = <0x39000000 0x3f0 0x5a5a3900 0x0 0x2b03239 0x0 0x2cb68 0x39000000 0x2b0 0x40390000 0x2 0xcb6e3900 0x0 0x2b04f39 0x0 0x2cb03 0x39000000 0x2b0 0xb390000 0x2 0xcbcb3900 0x0 0x2f70339 0x100006e 0x3f0a5 0xa5390000 0x3 0xf05a5a39 0x0 0x35103 0xff390000 0x2 0xb00b3900 0x0 0x2b20239 0x0 0x2b016 0x39000000 0x2b2 0x40390000 0x2 0xf7033901 0x0 0x3f0a5a5>;
+                                       qcom,mdss-dsi-dispparam-flash-test-off-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                                       qcom,mdss-dsi-dispparam-crc-off-command = [39 00 00 00 00 00 03 f0 5a 5a 39 00 00 00 00 00 03 e2 00 40 39 01 00 00 00 00 03 f0 a5 a5];
+                                       qcom,mdss-dsi-dispparam-crc-off-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-panel-phy-timings = <0x220809 0x25230909 0x6030400>;
+                                       qcom,display-topology = <0x1 0x0 0x1>;
+                                       qcom,default-topology-index = <0x0>;
+                               };
+                       };
+               };
+
+               qcom,mdss_dsi_jdi_fhd_nt35596s_video {
+                       qcom,mdss-dsi-panel-name = "jdi fhd video dsi panel";
+                       qcom,mdss-dsi-panel-id = <0x0>;
+                       qcom,mdss-dsi-panel-model = "JDI FHD NT35596S VIDEO PANEL";
+                       qcom,mdss-dsi-panel-type = "dsi_video_mode";
+                       qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                       qcom,mdss-dsi-stream = <0x0>;
+                       qcom,mdss-dsi-bpp = <0x18>;
+                       qcom,mdss-dsi-color-order = "rgb_swap_rgb";
+                       qcom,mdss-dsi-underflow-color = <0x0>;
+                       qcom,mdss-dsi-border-color = <0x0>;
+                       qcom,mdss-dsi-traffic-mode = "burst_mode";
+                       qcom,mdss-dsi-bllp-eof-power-mode;
+                       qcom,mdss-dsi-bllp-power-mode;
+                       qcom,mdss-dsi-lp11-init;
+                       qcom,mdss-dsi-lane-0-state;
+                       qcom,mdss-dsi-lane-1-state;
+                       qcom,mdss-dsi-lane-2-state;
+                       qcom,mdss-dsi-lane-3-state;
+                       qcom,mdss-dsi-bl-min-level = <0x1>;
+                       qcom,mdss-dsi-bl-max-level = <0xfff>;
+                       qcom,mdss-brightness-max-level = <0xfff>;
+                       qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                       qcom,mdss-dsi-mdp-trigger = "none";
+                       qcom,mdss-dsi-reset-sequence = <0x0 0xf 0x1 0xa>;
+                       qcom,mdss-pan-physical-width-dimension = <0x44>;
+                       qcom,mdss-pan-physical-height-dimension = <0x88>;
+                       qcom,cont-splash-enabled;
+                       qcom,mdss-dsi-tx-eot-append;
+                       qcom,mdss-panel-on-dimming-delay = <0x78>;
+                       qcom,esd-err-irq-gpio = <0x2e 0x34 0x2001>;
+                       qcom,mdss-dsi-min-refresh-rate = <0x37>;
+                       qcom,mdss-dsi-max-refresh-rate = <0x3c>;
+                       qcom,mdss-dsi-pan-enable-dynamic-fps;
+                       qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp";
+                       qcom,dispccbb-enabled;
+                       qcom,dispblnotify-enabled;
+                       qcom,dispparam-enabled;
+                       qcom,disp-paneloff-disablecabc-enabled;
+                       qcom,mdss-night-brightness = <0x7 0x19 0x2b 0x3d>;
+                       qcom,disp-panel-offon-mode-enabled;
+                       qcom,mdss-dsi-panel-hdr-enabled;
+                       qcom,mdss-dsi-panel-hdr-color-primaries = <0x38a4 0x3c8c 0x7d00 0x4268 0x3c8c 0x7530 0x1f40 0xbb8>;
+                       qcom,mdss-dsi-panel-peak-brightness = <0x401640>;
+                       qcom,mdss-dsi-panel-blackness-level = <0xc9e>;
+                       qcom,mdss-dsi-panel-xy-coordinate = <0xf 0x18>;
+                       qcom,mdss-dsi-panel-max-luminance = <0xf 0x20>;
+                       qcom,mdss-dsi-panel-max-luminance-valid = <0x1 0x1>;
+                       qcom,mdss-dsi-panel-bl-info = <0x198 0x1f4 0x17c 0x26c>;
+                       qcom,mdss-dsi-t-clk-post = <0xe>;
+                       qcom,mdss-dsi-t-clk-pre = <0x34>;
+                       linux,phandle = <0x360>;
+                       phandle = <0x360>;
+
+                       qcom,mdss-dsi-display-timings {
+
+                               timing@0 {
+                                       qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                       qcom,mdss-dsi-panel-width = <0x438>;
+                                       qcom,mdss-dsi-panel-height = <0x870>;
+                                       qcom,mdss-dsi-h-front-porch = <0x10>;
+                                       qcom,mdss-dsi-h-back-porch = <0x28>;
+                                       qcom,mdss-dsi-h-pulse-width = <0x1c>;
+                                       qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                       qcom,mdss-dsi-v-back-porch = <0x18>;
+                                       qcom,mdss-dsi-v-front-porch = <0x7>;
+                                       qcom,mdss-dsi-v-pulse-width = <0x4>;
+                                       qcom,mdss-dsi-h-left-border = <0x0>;
+                                       qcom,mdss-dsi-h-right-border = <0x0>;
+                                       qcom,mdss-dsi-v-top-border = <0x0>;
+                                       qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                       qcom,mdss-dsi-on-command = [15 01 00 00 00 00 02 ff 24 15 00 00 00 00 00 02 9d 34 15 00 00 00 00 00 02 fb 01 15 00 00 00 00 00 02 c4 25 15 00 00 00 00 00 02 d1 08 15 00 00 00 00 00 02 d2 84 15 01 00 00 00 00 02 ff 26 15 00 00 00 00 00 02 fb 01 15 00 00 00 00 00 02 03 1c 15 00 00 00 00 00 02 3b 08 15 00 00 00 00 00 02 6b 08 15 00 00 00 00 00 02 97 08 15 00 00 00 00 00 02 c5 08 15 00 00 00 00 00 02 fb 01 15 01 00 00 00 00 02 ff 23 15 00 00 00 00 00 02 fb 01 15 00 00 00 00 00 02 01 84 15 00 00 00 00 00 02 05 2d 15 00 00 00 00 00 02 06 00 15 00 00 00 00 00 02 32 00 15 00 00 00 00 00 02 13 ff 15 00 00 00 00 00 02 14 f8 15 00 00 00 00 00 02 15 ed 15 00 00 00 00 00 02 16 e5 15 00 00 00 00 00 02 09 01 15 00 00 00 00 00 02 0a 01 15 00 00 00 00 00 02 0b 01 15 00 00 00 00 00 02 0c 01 15 00 00 00 00 00 02 0d 01 15 00 00 00 00 00 02 0e 01 15 00 00 00 00 00 02 0f 01 15 00 00 00 00 00 02 10 01 15 00 00 00 00 00 02 11 01 15 00 00 00 00 00 02 12 01 15 00 00 00 00 00 02 17 ff 15 00 00 00 00 00 02 18 ee 15 00 00 00 00 00 02 19 dd 15 00 00 00 00 00 02 1a c7 15 00 00 00 00 00 02 1b af 15 00 00 00 00 00 02 1c 99 15 00 00 00 00 00 02 1d 99 15 00 00 00 00 00 02 1e 88 15 00 00 00 00 00 02 1f 77 15 00 00 00 00 00 02 20 66 15 00 00 00 00 00 02 33 00 15 00 00 00 00 00 02 21 ff 15 00 00 00 00 00 02 22 f8 15 00 00 00 00 00 02 23 ef 15 00 00 00 00 00 02 24 e7 15 00 00 00 00 00 02 25 de 15 00 00 00 00 00 02 26 d7 15 00 00 00 00 00 02 27 cd 15 00 00 00 00 00 02 28 c4 15 00 00 00 00 00 02 29 bc 15 00 00 00 00 00 02 2a b3 15 01 00 00 00 00 02 ff 22 15 00 00 00 00 00 02 00 0a 15 00 00 00 00 00 02 01 43 15 00 00 00 00 00 02 02 5b 15 00 00 00 00 00 02 03 6a 15 00 00 00 00 00 02 04 7a 15 00 00 00 00 00 02 05 82 15 00 00 00 00 00 02 06 85 15 00 00 00 00 00 02 07 80 15 00 00 00 00 00 02 08 7c 15 00 00 00 00 00 02 09 7c 15 00 00 00 00 00 02 0a 74 15 00 00 00 00 00 02 0b 71 15 00 00 00 00 00 02 0c 6e 15 00 00 00 00 00 02 0d 68 15 00 00 00 00 00 02 0e 65 15 01 00 00 00 00 02 0f 5c 15 00 00 00 00 00 02 10 32 15 00 00 00 00 00 02 11 18 15 00 00 00 00 00 02 12 00 15 00 00 00 00 00 02 13 00 15 00 00 00 00 00 02 1a 00 15 00 00 00 00 00 02 1b 00 15 00 00 00 00 00 02 1c 00 15 00 00 00 00 00 02 1d 00 15 00 00 00 00 00 02 1e 00 15 00 00 00 00 00 02 1f 00 15 00 00 00 00 00 02 20 00 15 00 00 00 00 00 02 21 00 15 00 00 00 00 00 02 22 00 15 00 00 00 00 00 02 23 00 15 00 00 00 00 00 02 24 00 15 01 00 00 00 00 02 25 00 15 00 00 00 00 00 02 26 00 15 00 00 00 00 00 02 27 00 15 00 00 00 00 00 02 28 00 15 00 00 00 00 00 02 29 00 15 00 00 00 00 00 02 2a 00 15 00 00 00 00 00 02 2b 00 15 00 00 00 00 00 02 2f 00 15 00 00 00 00 00 02 30 00 15 00 00 00 00 00 02 31 00 15 00 00 00 00 00 02 32 0c 15 00 00 00 00 00 02 33 0c 15 00 00 00 00 00 02 34 0c 15 00 00 00 00 00 02 35 0b 15 00 00 00 00 00 02 36 09 15 00 00 00 00 00 02 37 09 15 01 00 00 00 00 02 38 08 15 00 00 00 00 00 02 39 05 15 00 00 00 00 00 02 3a 03 15 00 00 00 00 00 02 3b 00 15 00 00 00 00 00 02 3f 00 15 00 00 00 00 00 02 40 00 15 00 00 00 00 00 02 41 00 15 00 00 00 00 00 02 42 00 15 00 00 00 00 00 02 43 00 15 00 00 00 00 00 02 44 00 15 00 00 00 00 00 02 45 00 15 00 00 00 00 00 02 46 00 15 00 00 00 00 00 02 47 00 15 00 00 00 00 00 02 48 00 15 00 00 00 00 00 02 49 03 15 00 00 00 00 00 02 4a 06 15 01 00 00 00 00 02 4b 07 15 00 00 00 00 00 02 4c 07 15 00 00 00 00 00 02 4d 00 15 00 00 00 00 00 02 4e 00 15 00 00 00 00 00 02 4f 00 15 00 00 00 00 00 02 50 00 15 00 00 00 00 00 02 51 00 15 00 00 00 00 00 02 52 00 15 00 00 00 00 00 02 53 01 15 00 00 00 00 00 02 54 01 15 00 00 00 00 00 02 55 89 15 00 00 00 00 00 02 56 00 15 00 00 00 00 00 02 58 00 15 00 00 00 00 00 02 68 00 15 00 00 00 00 00 02 84 ff 15 00 00 00 00 00 02 85 ff 15 01 00 00 00 00 02 86 03 15 00 00 00 00 00 02 87 00 15 00 00 00 00 00 02 88 00 15 00 00 00 00 00 02 a2 20 15 00 00 00 00 00 02 a9 01 15 00 00 00 00 00 02 aa 12 15 00 00 00 00 00 02 ab 13 15 00 00 00 00 00 02 ac 0a 15 00 00 00 00 00 02 ad 74 15 00 00 00 00 00 02 af 33 15 00 00 00 00 00 02 b0 03 15 00 00 00 00 00 02 b1 14 15 00 00 00 00 00 02 b2 42 15 00 00 00 00 00 02 b3 40 15 00 00 00 00 00 02 b4 a5 15 01 00 00 00 00 02 b6 44 15 00 00 00 00 00 02 b7 04 15 00 00 00 00 00 02 b8 14 15 00 00 00 00 00 02 b9 42 15 00 00 00 00 00 02 ba 40 15 00 00 00 00 00 02 bb a5 15 00 00 00 00 00 02 bd 44 15 00 00 00 00 00 02 be 04 15 00 00 00 00 00 02 bf 00 15 00 00 00 00 00 02 c0 75 15 00 00 00 00 00 02 c1 6a 15 00 00 00 00 00 02 c2 a5 15 00 00 00 00 00 02 c4 22 15 00 00 00 00 00 02 c5 02 15 00 00 00 00 00 02 c6 00 15 01 00 00 00 00 02 c7 95 15 00 00 00 00 00 02 c8 8a 15 00 00 00 00 00 02 c9 a5 15 00 00 00 00 00 02 cb 22 15 00 00 00 00 00 02 cc 02 15 00 00 00 00 00 02 cd 00 15 00 00 00 00 00 02 ce b5 15 00 00 00 00 00 02 cf aa 15 00 00 00 00 00 02 d0 a5 15 00 00 00 00 00 02 d2 22 15 00 00 00 00 00 02 d3 02 15 01 00 00 00 00 02 fb 01 15 01 00 00 00 00 02 ff 10 15 01 00 00 00 00 02 26 02 15 00 00 00 00 00 02 35 00 15 00 00 00 00 00 02 51 ff 15 00 00 00 00 00 02 53 24 15 00 00 00 00 00 02 55 00 15 01 00 00 00 00 02 b0 00 05 01 00 00 50 00 02 11 00 05 01 00 00 14 00 02 29 00];
+                                       qcom,mdss-dsi-off-command = [05 01 00 00 00 00 02 28 00 05 01 00 00 46 00 02 10 00];
+                                       qcom,mdss-dsi-displayoff-command = [05 01 00 00 20 00 02 28 00];
+                                       qcom,mdss-dsi-displayon-command = [05 01 00 00 14 00 02 29 00];
+                                       qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-displayoff-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-displayon-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-h-sync-pulse = <0x1>;
+                                       qcom,mdss-dsi-dispparam-cabcuion-command = [15 01 00 00 00 00 02 55 01];
+                                       qcom,mdss-dsi-dispparam-cabcuion-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-cabcstillon-command = [15 00 00 00 00 00 02 55 02];
+                                       qcom,mdss-dsi-dispparam-cabcstillon-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-cabcmovieon-command = [15 01 00 00 00 00 02 55 03];
+                                       qcom,mdss-dsi-dispparam-cabcmovieon-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-cabcoff-command = [39 01 00 00 01 00 02 55 00];
+                                       qcom,mdss-dsi-dispparam-skince-cabcuion-command = [15 01 00 00 00 00 02 55 81];
+                                       qcom,mdss-dsi-dispparam-skince-cabcuion-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-skince-cabcstillon-command = [15 00 00 00 00 00 02 55 82];
+                                       qcom,mdss-dsi-dispparam-skince-cabcstillon-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-skince-cabcmovieon-command = [15 01 00 00 00 00 02 55 83];
+                                       qcom,mdss-dsi-dispparam-skince-cabcmovieon-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-skince-cabcoff-command = [15 01 00 00 00 00 02 55 80];
+                                       qcom,mdss-dsi-dispparam-skince-cabcoff-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-cabcoff-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-dimmingon-command = [39 01 00 00 01 00 02 53 2c];
+                                       qcom,mdss-dsi-dispparam-dimmingon-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-idleon-command = [39 01 00 00 01 00 02 39 00];
+                                       qcom,mdss-dsi-dispparam-idleoff-command = [39 01 00 00 01 00 02 38 00];
+                                       qcom,mdss-dsi-dispparam-papermode2-command = [15 01 00 00 00 00 02 ff 10 15 01 00 00 10 00 02 26 01 15 01 00 00 00 00 02 ff 20 15 00 00 00 00 00 02 75 00 15 00 00 00 00 00 02 76 00 15 00 00 00 00 00 02 77 00 15 00 00 00 00 00 02 78 27 15 00 00 00 00 00 02 79 00 15 00 00 00 00 00 02 7a 67 15 00 00 00 00 00 02 7b 00 15 00 00 00 00 00 02 7c 94 15 00 00 00 00 00 02 7d 00 15 00 00 00 00 00 02 7e b8 15 00 00 00 00 00 02 7f 00 15 00 00 00 00 00 02 80 d4 15 00 00 00 00 00 02 81 00 15 00 00 00 00 00 02 82 ea 15 00 00 00 00 00 02 83 00 15 00 00 00 00 00 02 84 fc 15 00 00 00 00 00 02 85 01 15 00 00 00 00 00 02 86 0f 15 00 00 00 00 00 02 87 01 15 00 00 00 00 00 02 88 46 15 00 00 00 00 00 02 89 01 15 00 00 00 00 00 02 8a 70 15 00 00 00 00 00 02 8b 01 15 00 00 00 00 00 02 8c ad 15 00 00 00 00 00 02 8d 01 15 00 00 00 00 00 02 8e da 15 00 00 00 00 00 02 8f 02 15 00 00 00 00 00 02 90 1d 15 00 00 00 00 00 02 91 02 15 00 00 00 00 00 02 92 50 15 00 00 00 00 00 02 93 02 15 00 00 00 00 00 02 94 52 15 00 00 00 00 00 02 95 02 15 00 00 00 00 00 02 96 83 15 00 00 00 00 00 02 97 02 15 00 00 00 00 00 02 98 ba 15 00 00 00 00 00 02 99 02 15 00 00 00 00 00 02 9a de 15 00 00 00 00 00 02 9b 03 15 00 00 00 00 00 02 9c 12 15 00 00 00 00 00 02 9d 03 15 00 00 00 00 00 02 9e 2e 15 00 00 00 00 00 02 9f 03 15 00 00 00 00 00 02 a0 54 15 00 00 00 00 00 02 a2 03 15 00 00 00 00 00 02 a3 61 15 00 00 00 00 00 02 a4 03 15 00 00 00 00 00 02 a5 6f 15 00 00 00 00 00 02 a6 03 15 00 00 00 00 00 02 a7 7e 15 00 00 00 00 00 02 a9 03 15 00 00 00 00 00 02 aa 90 15 00 00 00 00 00 02 ab 03 15 00 00 00 00 00 02 ac a7 15 00 00 00 00 00 02 ad 03 15 00 00 00 00 00 02 ae c2 15 00 00 00 00 00 02 af 03 15 00 00 00 00 00 02 b0 d5 15 00 00 00 00 00 02 b1 03 15 01 00 00 00 00 02 b2 d8 15 00 00 00 00 00 02 b3 00 15 00 00 00 00 00 02 b4 00 15 00 00 00 00 00 02 b5 00 15 00 00 00 00 00 02 b6 27 15 00 00 00 00 00 02 b7 00 15 00 00 00 00 00 02 b8 67 15 00 00 00 00 00 02 b9 00 15 00 00 00 00 00 02 ba 94 15 00 00 00 00 00 02 bb 00 15 00 00 00 00 00 02 bc b8 15 00 00 00 00 00 02 bd 00 15 00 00 00 00 00 02 be d4 15 00 00 00 00 00 02 bf 00 15 00 00 00 00 00 02 c0 ea 15 00 00 00 00 00 02 c1 00 15 00 00 00 00 00 02 c2 fc 15 00 00 00 00 00 02 c3 01 15 00 00 00 00 00 02 c4 0f 15 00 00 00 00 00 02 c5 01 15 00 00 00 00 00 02 c6 46 15 00 00 00 00 00 02 c7 01 15 00 00 00 00 00 02 c8 70 15 00 00 00 00 00 02 c9 01 15 00 00 00 00 00 02 ca ad 15 00 00 00 00 00 02 cb 01 15 00 00 00 00 00 02 cc da 15 00 00 00 00 00 02 cd 02 15 00 00 00 00 00 02 ce 1d 15 00 00 00 00 00 02 cf 02 15 00 00 00 00 00 02 d0 50 15 00 00 00 00 00 02 d1 02 15 00 00 00 00 00 02 d2 52 15 00 00 00 00 00 02 d3 02 15 00 00 00 00 00 02 d4 83 15 00 00 00 00 00 02 d5 02 15 00 00 00 00 00 02 d6 ba 15 00 00 00 00 00 02 d7 02 15 00 00 00 00 00 02 d8 de 15 00 00 00 00 00 02 d9 03 15 00 00 00 00 00 02 da 12 15 00 00 00 00 00 02 db 03 15 00 00 00 00 00 02 dc 2e 15 00 00 00 00 00 02 dd 03 15 00 00 00 00 00 02 de 54 15 00 00 00 00 00 02 df 03 15 00 00 00 00 00 02 e0 61 15 00 00 00 00 00 02 e1 03 15 00 00 00 00 00 02 e2 6f 15 00 00 00 00 00 02 e3 03 15 00 00 00 00 00 02 e4 7e 15 00 00 00 00 00 02 e5 03 15 00 00 00 00 00 02 e6 90 15 00 00 00 00 00 02 e7 03 15 00 00 00 00 00 02 e8 a7 15 00 00 00 00 00 02 e9 03 15 00 00 00 00 00 02 ea c2 15 00 00 00 00 00 02 eb 03 15 00 00 00 00 00 02 ec d5 15 00 00 00 00 00 02 ed 03 15 00 00 00 00 00 02 ee d8 15 00 00 00 00 00 02 ef 00 15 00 00 00 00 00 02 f0 bc 15 00 00 00 00 00 02 f1 00 15 00 00 00 00 00 02 f2 cb 15 00 00 00 00 00 02 f3 00 15 00 00 00 00 00 02 f4 e4 15 00 00 00 00 00 02 f5 00 15 00 00 00 00 00 02 f6 f9 15 00 00 00 00 00 02 f7 01 15 00 00 00 00 00 02 f8 0b 15 00 00 00 00 00 02 f9 01 15 00 00 00 00 00 02 fa 1b 15 01 00 00 00 00 02 ff 21 15 00 00 00 00 00 02 00 01 15 00 00 00 00 00 02 01 2a 15 00 00 00 00 00 02 02 01 15 00 00 00 00 00 02 03 38 15 00 00 00 00 00 02 04 01 15 00 00 00 00 00 02 05 44 15 00 00 00 00 00 02 06 01 15 00 00 00 00 00 02 07 6e 15 00 00 00 00 00 02 08 01 15 00 00 00 00 00 02 09 8f 15 00 00 00 00 00 02 0a 01 15 00 00 00 00 00 02 0b c2 15 00 00 00 00 00 02 0c 01 15 00 00 00 00 00 02 0d e9 15 00 00 00 00 00 02 0e 02 15 00 00 00 00 00 02 0f 27 15 00 00 00 00 00 02 10 02 15 00 00 00 00 00 02 11 56 15 00 00 00 00 00 02 12 02 15 00 00 00 00 00 02 13 58 15 00 00 00 00 00 02 14 02 15 00 00 00 00 00 02 15 87 15 00 00 00 00 00 02 16 02 15 00 00 00 00 00 02 17 bd 15 00 00 00 00 00 02 18 02 15 00 00 00 00 00 02 19 e2 15 00 00 00 00 00 02 1a 03 15 00 00 00 00 00 02 1b 14 15 00 00 00 00 00 02 1c 03 15 00 00 00 00 00 02 1d 30 15 00 00 00 00 00 02 1e 03 15 00 00 00 00 00 02 1f 58 15 00 00 00 00 00 02 20 03 15 00 00 00 00 00 02 21 64 15 00 00 00 00 00 02 22 03 15 00 00 00 00 00 02 23 72 15 00 00 00 00 00 02 24 03 15 00 00 00 00 00 02 25 81 15 00 00 00 00 00 02 26 03 15 00 00 00 00 00 02 27 95 15 00 00 00 00 00 02 28 03 15 00 00 00 00 00 02 29 ad 15 00 00 00 00 00 02 2a 03 15 00 00 00 00 00 02 2b c6 15 00 00 00 00 00 02 2d 03 15 00 00 00 00 00 02 2f d6 15 00 00 00 00 00 02 30 03 15 01 00 00 00 00 02 31 d8 15 00 00 00 00 00 02 32 00 15 00 00 00 00 00 02 33 bc 15 00 00 00 00 00 02 34 00 15 00 00 00 00 00 02 35 cb 15 00 00 00 00 00 02 36 00 15 00 00 00 00 00 02 37 e4 15 00 00 00 00 00 02 38 00 15 00 00 00 00 00 02 39 f9 15 00 00 00 00 00 02 3a 01 15 00 00 00 00 00 02 3b 0b 15 00 00 00 00 00 02 3d 01 15 00 00 00 00 00 02 3f 1b 15 00 00 00 00 00 02 40 01 15 00 00 00 00 00 02 41 2a 15 00 00 00 00 00 02 42 01 15 00 00 00 00 00 02 43 38 15 00 00 00 00 00 02 44 01 15 00 00 00 00 00 02 45 44 15 00 00 00 00 00 02 46 01 15 00 00 00 00 00 02 47 6e 15 00 00 00 00 00 02 48 01 15 00 00 00 00 00 02 49 8f 15 00 00 00 00 00 02 4a 01 15 00 00 00 00 00 02 4b c2 15 00 00 00 00 00 02 4c 01 15 00 00 00 00 00 02 4d e9 15 00 00 00 00 00 02 4e 02 15 00 00 00 00 00 02 4f 27 15 00 00 00 00 00 02 50 02 15 00 00 00 00 00 02 51 56 15 00 00 00 00 00 02 52 02 15 00 00 00 00 00 02 53 58 15 00 00 00 00 00 02 54 02 15 00 00 00 00 00 02 55 87 15 00 00 00 00 00 02 56 02 15 00 00 00 00 00 02 58 bd 15 00 00 00 00 00 02 59 02 15 00 00 00 00 00 02 5a e2 15 00 00 00 00 00 02 5b 03 15 00 00 00 00 00 02 5c 14 15 00 00 00 00 00 02 5d 03 15 00 00 00 00 00 02 5e 30 15 00 00 00 00 00 02 5f 03 15 00 00 00 00 00 02 60 58 15 00 00 00 00 00 02 61 03 15 00 00 00 00 00 02 62 64 15 00 00 00 00 00 02 63 03 15 00 00 00 00 00 02 64 72 15 00 00 00 00 00 02 65 03 15 00 00 00 00 00 02 66 81 15 00 00 00 00 00 02 67 03 15 00 00 00 00 00 02 68 95 15 00 00 00 00 00 02 69 03 15 01 00 00 00 00 02 6a ad 15 00 00 00 00 00 02 6b 03 15 00 00 00 00 00 02 6c c6 15 00 00 00 00 00 02 6d 03 15 00 00 00 00 00 02 6e d6 15 00 00 00 00 00 02 6f 03 15 00 00 00 00 00 02 70 d8 15 00 00 00 00 00 02 71 01 15 00 00 00 00 00 02 72 7d 15 00 00 00 00 00 02 73 01 15 00 00 00 00 00 02 74 81 15 00 00 00 00 00 02 75 01 15 00 00 00 00 00 02 76 88 15 00 00 00 00 00 02 77 01 15 00 00 00 00 00 02 78 8f 15 00 00 00 00 00 02 79 01 15 00 00 00 00 00 02 7a 96 15 00 00 00 00 00 02 7b 01 15 00 00 00 00 00 02 7c 9d 15 00 00 00 00 00 02 7d 01 15 00 00 00 00 00 02 7e a3 15 00 00 00 00 00 02 7f 01 15 00 00 00 00 00 02 80 a8 15 00 00 00 00 00 02 81 01 15 00 00 00 00 00 02 82 ae 15 00 00 00 00 00 02 83 01 15 00 00 00 00 00 02 84 c3 15 00 00 00 00 00 02 85 01 15 00 00 00 00 00 02 86 d6 15 00 00 00 00 00 02 87 01 15 00 00 00 00 00 02 88 f5 15 00 00 00 00 00 02 89 02 15 00 00 00 00 00 02 8a 12 15 00 00 00 00 00 02 8b 02 15 00 00 00 00 00 02 8c 42 15 00 00 00 00 00 02 8d 02 15 00 00 00 00 00 02 8e 6b 15 00 00 00 00 00 02 8f 02 15 00 00 00 00 00 02 90 6c 15 00 00 00 00 00 02 91 02 15 00 00 00 00 00 02 92 98 15 00 00 00 00 00 02 93 02 15 00 00 00 00 00 02 94 cd 15 00 00 00 00 00 02 95 02 15 00 00 00 00 00 02 96 f2 15 00 00 00 00 00 02 97 03 15 00 00 00 00 00 02 98 20 15 00 00 00 00 00 02 99 03 15 00 00 00 00 00 02 9a 3c 15 00 00 00 00 00 02 9b 03 15 00 00 00 00 00 02 9c 61 15 00 00 00 00 00 02 9d 03 15 00 00 00 00 00 02 9e 6b 15 00 00 00 00 00 02 9f 03 15 00 00 00 00 00 02 a0 77 15 00 00 00 00 00 02 a2 03 15 00 00 00 00 00 02 a3 85 15 00 00 00 00 00 02 a4 03 15 00 00 00 00 00 02 a5 95 15 00 00 00 00 00 02 a6 03 15 00 00 00 00 00 02 a7 9f 15 00 00 00 00 00 02 a9 03 15 00 00 00 00 00 02 aa bf 15 00 00 00 00 00 02 ab 03 15 00 00 00 00 00 02 ac d6 15 00 00 00 00 00 02 ad 03 15 01 00 00 00 00 02 ae d8 15 00 00 00 00 00 02 af 01 15 00 00 00 00 00 02 b0 7d 15 00 00 00 00 00 02 b1 01 15 00 00 00 00 00 02 b2 81 15 00 00 00 00 00 02 b3 01 15 00 00 00 00 00 02 b4 88 15 00 00 00 00 00 02 b5 01 15 00 00 00 00 00 02 b6 8f 15 00 00 00 00 00 02 b7 01 15 00 00 00 00 00 02 b8 96 15 00 00 00 00 00 02 b9 01 15 00 00 00 00 00 02 ba 9d 15 00 00 00 00 00 02 bb 01 15 00 00 00 00 00 02 bc a3 15 00 00 00 00 00 02 bd 01 15 00 00 00 00 00 02 be a8 15 00 00 00 00 00 02 bf 01 15 00 00 00 00 00 02 c0 ae 15 00 00 00 00 00 02 c1 01 15 00 00 00 00 00 02 c2 c3 15 00 00 00 00 00 02 c3 01 15 00 00 00 00 00 02 c4 d6 15 00 00 00 00 00 02 c5 01 15 00 00 00 00 00 02 c6 f5 15 00 00 00 00 00 02 c7 02 15 00 00 00 00 00 02 c8 12 15 00 00 00 00 00 02 c9 02 15 00 00 00 00 00 02 ca 42 15 00 00 00 00 00 02 cb 02 15 00 00 00 00 00 02 cc 6b 15 00 00 00 00 00 02 cd 02 15 00 00 00 00 00 02 ce 6c 15 00 00 00 00 00 02 cf 02 15 00 00 00 00 00 02 d0 98 15 00 00 00 00 00 02 d1 02 15 00 00 00 00 00 02 d2 cd 15 00 00 00 00 00 02 d3 02 15 00 00 00 00 00 02 d4 f2 15 00 00 00 00 00 02 d5 03 15 00 00 00 00 00 02 d6 20 15 00 00 00 00 00 02 d7 03 15 00 00 00 00 00 02 d8 3c 15 00 00 00 00 00 02 d9 03 15 00 00 00 00 00 02 da 61 15 00 00 00 00 00 02 db 03 15 00 00 00 00 00 02 dc 6b 15 00 00 00 00 00 02 dd 03 15 00 00 00 00 00 02 de 77 15 00 00 00 00 00 02 df 03 15 00 00 00 00 00 02 e0 85 15 00 00 00 00 00 02 e1 03 15 00 00 00 00 00 02 e2 95 15 00 00 00 00 00 02 e3 03 15 00 00 00 00 00 02 e4 9f 15 00 00 00 00 00 02 e5 03 15 00 00 00 00 00 02 e6 bf 15 00 00 00 00 00 02 e7 03 15 00 00 00 00 00 02 e8 d6 15 00 00 00 00 00 02 e9 03 15 00 00 00 00 00 02 ea d8 15 01 00 00 00 00 02 ff 10];
+                                       qcom,mdss-dsi-dispparam-papermode2-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-default-command = [15 01 00 00 00 00 02 ff 10 15 01 00 00 10 00 02 26 02];
+                                       qcom,mdss-dsi-dispparam-default-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-normal1-command = [15 01 00 00 00 00 02 ff 10 15 01 00 00 10 00 02 26 01];
+                                       qcom,mdss-dsi-dispparam-normal1-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-normal2-command = [15 01 00 00 00 00 02 ff 10 15 01 00 00 10 00 02 26 02];
+                                       qcom,mdss-dsi-dispparam-normal2-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-read-brightness-command = [06 01 00 01 05 00 02 52 00];
+                                       qcom,mdss-dsi-read-brightness-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-xy-coordinate-command = [06 01 00 01 05 00 02 a1 00];
+                                       qcom,mdss-dsi-dispparam-xy-coordinate-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-max-luminance-command = [06 01 00 01 05 00 02 a1 00];
+                                       qcom,mdss-dsi-dispparam-max-luminance-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-max-luminance-valid-command = [06 01 00 01 05 00 02 db 00];
+                                       qcom,mdss-dsi-dispparam-max-luminance-valid-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-panel-phy-timings = <0x220808 0x24240808 0x5030400>;
+                                       qcom,display-topology = <0x1 0x0 0x1>;
+                                       qcom,default-topology-index = <0x0>;
+                               };
+                       };
+               };
+
+               qcom,mdss_dsi_gvo_fhd_rm69299_cmd {
+                       qcom,mdss-dsi-panel-name = "gvo fhd cmd dsi panel";
+                       qcom,mdss-dsi-panel-id = <0x0>;
+                       qcom,mdss-dsi-panel-model = "GVO FHD RM69299 CMD PANEL";
+                       qcom,mdss-dsi-panel-sleepwrmod = <0x0>;
+                       qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
+                       qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                       qcom,mdss-dsi-stream = <0x0>;
+                       qcom,mdss-dsi-bpp = <0x18>;
+                       qcom,mdss-dsi-underflow-color = <0xff>;
+                       qcom,mdss-dsi-border-color = <0x0>;
+                       qcom,mdss-dsi-traffic-mode = "burst_mode";
+                       qcom,mdss-dsi-bllp-eof-power-mode;
+                       qcom,mdss-dsi-bllp-power-mode;
+                       qcom,mdss-dsi-lp11-init;
+                       qcom,mdss-dsi-lane-0-state;
+                       qcom,mdss-dsi-lane-1-state;
+                       qcom,mdss-dsi-lane-2-state;
+                       qcom,mdss-dsi-lane-3-state;
+                       qcom,mdss-brightness-max-level = <0x3ff>;
+                       qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                       qcom,mdss-dsi-mdp-trigger = "none";
+                       qcom,mdss-dsi-bl-dcs-type-ss;
+                       qcom,mdss-dsi-reset-sequence = <0x1 0x1 0x0 0x1 0x1 0xa>;
+                       qcom,mdss-pan-physical-width-dimension = <0x44>;
+                       qcom,mdss-pan-physical-height-dimension = <0x89>;
+                       qcom,mdss-dsi-te-pin-select = <0x1>;
+                       qcom,mdss-dsi-wr-mem-start = <0x2c>;
+                       qcom,mdss-dsi-wr-mem-continue = <0x3c>;
+                       qcom,mdss-dsi-te-dcs-command = <0x1>;
+                       qcom,mdss-dsi-te-check-enable;
+                       qcom,mdss-dsi-te-using-te-pin;
+                       qcom,mdss-dsi-tx-eot-append;
+                       qcom,mdss-dsi-panel-hdr-enabled;
+                       qcom,mdss-dsi-panel-hdr-color-primaries = <0x38a4 0x3c8c 0x7d00 0x4268 0x3c8c 0x7530 0x1f40 0xbb8>;
+                       qcom,mdss-dsi-panel-peak-brightness = <0x419ce0>;
+                       qcom,mdss-dsi-panel-blackness-level = <0xc9e>;
+                       qcom,mdss-dsi-on-command-tuning;
+                       qcom,dispparam-enabled;
+                       qcom,mdss-dsi-t-clk-post = <0xe>;
+                       qcom,mdss-dsi-t-clk-pre = <0x34>;
+                       qcom,panel-supply-entries = <0x36a>;
+                       qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
+                       qcom,mdss-dsi-bl-min-level = <0x1>;
+                       qcom,mdss-dsi-bl-max-level = <0x3ff>;
+                       qcom,platform-reset-gpio = <0x2e 0x6 0x0>;
+                       qcom,platform-te-gpio = <0x2e 0xa 0x0>;
+                       linux,phandle = <0x361>;
+                       phandle = <0x361>;
+
+                       qcom,mdss-dsi-display-timings {
+
+                               timing@0 {
+                                       qcom,mdss-dsi-panel-width = <0x438>;
+                                       qcom,mdss-dsi-panel-height = <0x8c8>;
+                                       qcom,mdss-dsi-h-front-porch = <0x38>;
+                                       qcom,mdss-dsi-h-back-porch = <0x38>;
+                                       qcom,mdss-dsi-h-pulse-width = <0x12>;
+                                       qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                       qcom,mdss-dsi-v-back-porch = <0x18>;
+                                       qcom,mdss-dsi-v-front-porch = <0x1a>;
+                                       qcom,mdss-dsi-v-pulse-width = <0xc>;
+                                       qcom,mdss-dsi-h-left-border = <0x0>;
+                                       qcom,mdss-dsi-h-right-border = <0x0>;
+                                       qcom,mdss-dsi-v-top-border = <0x0>;
+                                       qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                       qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                       qcom,mdss-dsi-on-command = [15 01 00 00 0a 00 02 fe 00 39 00 00 00 00 00 03 51 00 00 39 00 00 00 00 00 02 35 00 05 01 00 00 78 00 02 11 00 05 01 00 00 00 00 02 29 00];
+                                       qcom,mdss-dsi-off-command = [05 01 00 00 00 00 02 28 00 05 01 00 00 78 00 02 10 00];
+                                       qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-off-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-doze-hbm-command = [39 01 00 00 00 00 03 51 00 01 39 01 00 00 01 00 02 53 22];
+                                       qcom,mdss-dsi-doze-lbm-command = [39 01 00 00 00 00 03 51 00 01 39 01 00 00 01 00 02 53 23];
+                                       qcom,mdss-dsi-nolp-command = [39 01 00 00 00 00 02 53 20];
+                                       qcom,mdss-dsi-doze-hbm-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-doze-lbm-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-nolp-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-acl-off-command = [39 01 00 00 00 00 02 55 00];
+                                       qcom,mdss-dsi-dispparam-acl-off-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-acl-l1-command = [39 01 00 00 00 00 02 55 01];
+                                       qcom,mdss-dsi-dispparam-acl-l1-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-acl-l2-command = [39 01 00 00 00 00 02 55 02];
+                                       qcom,mdss-dsi-dispparam-acl-l2-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-acl-l3-command = [39 01 00 00 00 00 02 55 03];
+                                       qcom,mdss-dsi-dispparam-acl-l3-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-hbm-off-command = [39 01 00 00 00 00 02 53 20];
+                                       qcom,mdss-dsi-dispparam-hbm-off-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-hbm-on-command = [39 01 00 00 00 00 02 53 e0];
+                                       qcom,mdss-dsi-dispparam-hbm-on-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                                       qcom,mdss-dsi-panel-phy-timings = <0x220809 0x25230909 0x6030400>;
+                                       qcom,display-topology = <0x1 0x0 0x1>;
+                                       qcom,default-topology-index = <0x0>;
+                               };
+                       };
+               };
+
+               qcom,mdss_dsi_tianma_fhd_rm69299_cmd {
+                       qcom,mdss-dsi-panel-name = "tianma fhd cmd dsi panel";
+                       qcom,mdss-dsi-panel-id = <0x0>;
+                       qcom,mdss-dsi-panel-model = "TIANMA FHD RM69299 CMD PANEL";
+                       qcom,mdss-dsi-panel-sleepwrmod = <0x0>;
+                       qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
+                       qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                       qcom,mdss-dsi-stream = <0x0>;
+                       qcom,mdss-dsi-bpp = <0x18>;
+                       qcom,mdss-dsi-underflow-color = <0xff>;
+                       qcom,mdss-dsi-border-color = <0x0>;
+                       qcom,mdss-dsi-traffic-mode = "burst_mode";
+                       qcom,mdss-dsi-bllp-eof-power-mode;
+                       qcom,mdss-dsi-bllp-power-mode;
+                       qcom,ulps-enabled;
+                       qcom,mdss-dsi-lp11-init;
+                       qcom,mdss-dsi-lane-0-state;
+                       qcom,mdss-dsi-lane-1-state;
+                       qcom,mdss-dsi-lane-2-state;
+                       qcom,mdss-dsi-lane-3-state;
+                       qcom,mdss-brightness-max-level = <0x3ff>;
+                       qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                       qcom,mdss-dsi-mdp-trigger = "none";
+                       qcom,mdss-dsi-bl-dcs-type-ss;
+                       qcom,mdss-dsi-reset-sequence = <0x1 0x1 0x0 0x1 0x1 0xa>;
+                       qcom,mdss-pan-physical-width-dimension = <0x44>;
+                       qcom,mdss-pan-physical-height-dimension = <0x89>;
+                       qcom,mdss-dsi-te-pin-select = <0x1>;
+                       qcom,mdss-dsi-wr-mem-start = <0x2c>;
+                       qcom,mdss-dsi-wr-mem-continue = <0x3c>;
+                       qcom,mdss-dsi-te-dcs-command = <0x1>;
+                       qcom,mdss-dsi-te-check-enable;
+                       qcom,mdss-dsi-te-using-te-pin;
+                       qcom,mdss-dsi-tx-eot-append;
+                       qcom,mdss-dsi-panel-hdr-enabled;
+                       qcom,mdss-dsi-panel-hdr-color-primaries = <0x38a4 0x3c8c 0x7d00 0x4268 0x3c8c 0x7530 0x1f40 0xbb8>;
+                       qcom,mdss-dsi-panel-peak-brightness = <0x419ce0>;
+                       qcom,mdss-dsi-panel-blackness-level = <0xc9e>;
+                       qcom,dispparam-enabled;
+                       qcom,mdss-dsi-t-clk-post = <0xe>;
+                       qcom,mdss-dsi-t-clk-pre = <0x34>;
+                       qcom,panel-supply-entries = <0x36a>;
+                       qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
+                       qcom,mdss-dsi-bl-min-level = <0x1>;
+                       qcom,mdss-dsi-bl-max-level = <0x3ff>;
+                       qcom,platform-reset-gpio = <0x2e 0x6 0x0>;
+                       qcom,platform-te-gpio = <0x2e 0xa 0x0>;
+                       linux,phandle = <0x370>;
+                       phandle = <0x370>;
+
+                       qcom,mdss-dsi-display-timings {
+
+                               timing@0 {
+                                       qcom,mdss-dsi-panel-width = <0x438>;
+                                       qcom,mdss-dsi-panel-height = <0x8c8>;
+                                       qcom,mdss-dsi-h-front-porch = <0x38>;
+                                       qcom,mdss-dsi-h-back-porch = <0x38>;
+                                       qcom,mdss-dsi-h-pulse-width = <0x12>;
+                                       qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                       qcom,mdss-dsi-v-back-porch = <0x18>;
+                                       qcom,mdss-dsi-v-front-porch = <0x1a>;
+                                       qcom,mdss-dsi-v-pulse-width = <0xc>;
+                                       qcom,mdss-dsi-h-left-border = <0x0>;
+                                       qcom,mdss-dsi-h-right-border = <0x0>;
+                                       qcom,mdss-dsi-v-top-border = <0x0>;
+                                       qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                       qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                       qcom,mdss-dsi-on-command = [39 00 00 00 00 00 03 51 00 00 39 00 00 00 00 00 02 35 00 05 01 00 00 78 00 02 11 00 05 01 00 00 00 00 02 29 00];
+                                       qcom,mdss-dsi-off-command = [05 01 00 00 00 00 02 28 00 05 01 00 00 78 00 02 10 00];
+                                       qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-off-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                                       qcom,mdss-dsi-panel-phy-timings = <0x220809 0x25230909 0x6030400>;
+                                       qcom,display-topology = <0x1 0x0 0x1>;
+                                       qcom,default-topology-index = <0x0>;
+                               };
+                       };
+               };
+
+               qcom,mdss_dsi_tianma_fhd_nt36672a_video {
+                       qcom,mdss-dsi-panel-name = "tianma fhd video dsi panel";
+                       qcom,mdss-dsi-panel-id = <0x0>;
+                       qcom,mdss-dsi-panel-model = "TIANMA FHD NT36672A VIDEO PANEL";
+                       qcom,mdss-dsi-panel-type = "dsi_video_mode";
+                       qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                       qcom,mdss-dsi-stream = <0x0>;
+                       qcom,mdss-dsi-bpp = <0x18>;
+                       qcom,mdss-dsi-color-order = "rgb_swap_rgb";
+                       qcom,mdss-dsi-underflow-color = <0x0>;
+                       qcom,mdss-dsi-border-color = <0x0>;
+                       qcom,mdss-dsi-traffic-mode = "burst_mode";
+                       qcom,mdss-dsi-bllp-eof-power-mode;
+                       qcom,mdss-dsi-bllp-power-mode;
+                       qcom,mdss-dsi-lp11-init;
+                       qcom,mdss-dsi-lane-0-state;
+                       qcom,mdss-dsi-lane-1-state;
+                       qcom,mdss-dsi-lane-2-state;
+                       qcom,mdss-dsi-lane-3-state;
+                       qcom,mdss-dsi-bl-min-level = <0x1>;
+                       qcom,mdss-dsi-bl-max-level = <0xfff>;
+                       qcom,mdss-brightness-max-level = <0xfff>;
+                       qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                       qcom,mdss-dsi-mdp-trigger = "none";
+                       qcom,mdss-dsi-reset-sequence = <0x0 0xa 0x1 0xa>;
+                       qcom,mdss-pan-physical-width-dimension = <0x44>;
+                       qcom,mdss-pan-physical-height-dimension = <0x88>;
+                       qcom,cont-splash-enabled;
+                       qcom,mdss-dsi-tx-eot-append;
+                       qcom,mdss-dsi-panel-hdr-enabled;
+                       qcom,mdss-dsi-panel-hdr-color-primaries = <0x38a4 0x3c8c 0x7d00 0x4268 0x3c8c 0x7530 0x1f40 0xbb8>;
+                       qcom,mdss-dsi-panel-peak-brightness = <0x401640>;
+                       qcom,mdss-dsi-panel-blackness-level = <0xc9e>;
+                       qcom,esd-err-irq-gpio = <0x2e 0xa 0x2001>;
+                       qcom,dispparam-enabled;
+                       qcom,mdss-panel-on-dimming-delay = <0x78>;
+                       qcom,mdss-dsi-t-clk-post = <0xe>;
+                       qcom,mdss-dsi-t-clk-pre = <0x33>;
+                       linux,phandle = <0x36c>;
+                       phandle = <0x36c>;
+
+                       qcom,mdss-dsi-display-timings {
+
+                               timing@0 {
+                                       qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                       qcom,mdss-dsi-panel-width = <0x438>;
+                                       qcom,mdss-dsi-panel-height = <0x8c6>;
+                                       qcom,mdss-dsi-h-front-porch = <0x28>;
+                                       qcom,mdss-dsi-h-back-porch = <0x2c>;
+                                       qcom,mdss-dsi-h-pulse-width = <0x14>;
+                                       qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                       qcom,mdss-dsi-v-back-porch = <0x8>;
+                                       qcom,mdss-dsi-v-front-porch = <0xf>;
+                                       qcom,mdss-dsi-v-pulse-width = <0x2>;
+                                       qcom,mdss-dsi-h-left-border = <0x0>;
+                                       qcom,mdss-dsi-h-right-border = <0x0>;
+                                       qcom,mdss-dsi-v-top-border = <0x0>;
+                                       qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                       qcom,mdss-dsi-on-command = <0x15010000 0x2ff 0x22150000 0x2 0x401500 0x0 0x201c015 0x0 0x20240 0x15000000 0x203 0x40150000 0x2 0x4401500 0x0 0x2054015 0x0 0x20640 0x15000000 0x207 0x40150000 0x2 0x8401500 0x0 0x2094015 0x0 0x20a40 0x15000000 0x20b 0x40150000 0x2 0xc401500 0x0 0x20d4015 0x0 0x20e40 0x15000000 0x20f 0x40150000 0x2 0x10401500 0x0 0x2115015 0x0 0x21260 0x15000000 0x213 0x70150000 0x2 0x14581500 0x0 0x2156815 0x0 0x21678 0x15010000 0x217 0x77150000 0x2 0x18391500 0x0 0x2192d15 0x0 0x21a2e 0x15000000 0x21b 0x32150000 0x2 0x1c371500 0x0 0x21d3a15 0x0 0x21e40 0x15000000 0x21f 0x40150000 0x2 0x20401500 0x0 0x2214015 0x0 0x22240 0x15000000 0x223 0x40150000 0x2 0x24401500 0x0 0x2254015 0x0 0x22640 0x15000000 0x227 0x40150000 0x2 0x28401500 0x0 0x22d0015 0x0 0x22f40 0x15000000 0x230 0x40150000 0x2 0x31401500 0x0 0x2324015 0x0 0x23340 0x15000000 0x234 0x40150100 0x2 0x35401500 0x0 0x2364015 0x0 0x23740 0x15000000 0x238 0x40150000 0x2 0x39401500 0x0 0x23a4015 0x0 0x23b40 0x15000000 0x23d 0x40150000 0x2 0x3f401500 0x0 0x2404015 0x0 0x24140 0x15000000 0x242 0x40150000 0x2 0x43401500 0x0 0x2444015 0x0 0x24540 0x15000000 0x246 0x40150000 0x2 0x47401500 0x0 0x2484015 0x0 0x24940 0x15000000 0x24a 0x40150000 0x2 0x4b401500 0x0 0x24c4015 0x0 0x24d40 0x15000000 0x24e 0x40150000 0x2 0x4f401501 0x0 0x2504015 0x0 0x25140 0x15000000 0x252 0x40150000 0x2 0x53011500 0x0 0x2540115 0x0 0x255fe 0x15000000 0x256 0x77150000 0x2 0x58cd1500 0x0 0x259d015 0x0 0x25ad0 0x15000000 0x25b 0x50150000 0x2 0x5c501500 0x0 0x25d5015 0x0 0x25e50 0x15000000 0x25f 0x50150000 0x2 0x60501500 0x0 0x2615015 0x0 0x26250 0x15000000 0x263 0x50150000 0x2 0x64501500 0x0 0x2655015 0x0 0x26650 0x15000000 0x267 0x50150000 0x2 0x68501500 0x0 0x2695015 0x1000000 0x26a50 0x15000000 0x26b 0x50150000 0x2 0x6c501500 0x0 0x26d5015 0x0 0x26e50 0x15000000 0x26f 0x50150000 0x2 0x70071500 0x0 0x2710015 0x0 0x27200 0x15000000 0x273 0x150000 0x2 0x74061500 0x0 0x2750c15 0x0 0x27603 0x15000000 0x277 0x9150000 0x2 0x780f1500 0x0 0x2796815 0x0 0x27a88 0x15000000 0x27c 0x80150000 0x2 0x7d801500 0x0 0x27e8015 0x0 0x27f00 0x15000000 0x280 0x150000 0x2 0x81001500 0x0 0x2830115 0x0 0x28400 0x15010000 0x285 0x80150000 0x2 0x86801500 0x0 0x2878015 0x0 0x28840 0x15000000 0x289 0x91150000 0x2 0x8a981500 0x0 0x28b8015 0x0 0x28c80 0x15000000 0x28d 0x80150000 0x2 0x8e801500 0x0 0x28f8015 0x0 0x29080 0x15000000 0x291 0x80150000 0x2 0x92801500 0x0 0x2938015 0x0 0x29480 0x15000000 0x295 0x80150000 0x2 0x96801500 0x0 0x2978015 0x0 0x29880 0x15000000 0x299 0x80150000 0x2 0x9a801500 0x0 0x29b8015 0x0 0x29c80 0x15000000 0x29d 0x80150100 0x2 0x9e801500 0x0 0x29f8015 0x0 0x2a08a 0x15000000 0x2a2 0x80150000 0x2 0xa6801500 0x0 0x2a78015 0x0 0x2a980 0x15000000 0x2aa 0x80150000 0x2 0xab801500 0x0 0x2ac8015 0x0 0x2ad80 0x15000000 0x2ae 0x80150000 0x2 0xaf801500 0x0 0x2b77615 0x0 0x2b876 0x15000000 0x2b9 0x5150000 0x2 0xba0d1500 0x0 0x2bb1415 0x0 0x2bc0f 0x15000000 0x2bd 0x18150000 0x2 0xbe1f1500 0x0 0x2bf0515 0x0 0x2c00d 0x15000000 0x2c1 0x14150000 0x2 0xc2031501 0x0 0x2c30715 0x0 0x2c40a 0x15000000 0x2c5 0xa0150000 0x2 0xc6551500 0x0 0x2c7ff15 0x0 0x2c839 0x15000000 0x2c9 0x44150000 0x2 0xca121500 0x0 0x2cd8015 0x0 0x2db80 0x15000000 0x2dc 0x80150000 0x2 0xdd801500 0x0 0x2e08015 0x0 0x2e180 0x15000000 0x2e2 0x80150000 0x2 0xe3801500 0x0 0x2e48015 0x0 0x2e540 0x15000000 0x2e6 0x40150000 0x2 0xe7401500 0x0 0x2e84015 0x0 0x2e940 0x15000000 0x2ea 0x40150000 0x2 0xeb401500 0x0 0x2ec4015 0x0 0x2ed40 0x15000000 0x2ee 0x40150000 0x2 0xef401500 0x0 0x2f04015 0x0 0x2f140 0x15000000 0x2f2 0x40150000 0x2 0xf3401500 0x0 0x2f44015 0x0 0x2f540 0x15000000 0x2f6 0x40150100 0x2 0xfb011501 0x0 0x2ff2315 0x0 0x2fb01 0x15000000 0x201 0x84150000 0x2 0x52d1500 0x0 0x2060015 0x0 0x21101 0x15000000 0x212 0x7b150000 0x2 0x156f1500 0x0 0x2160b15 0x0 0x2290a 0x15000000 0x230 0xff150000 0x2 0x31ff1500 0x0 0x232ff15 0x0 0x233ff 0x15000000 0x234 0xff150000 0x2 0x35ff1500 0x0 0x236ff15 0x0 0x237ff 0x15000000 0x238 0xfc150100 0x2 0x39f81500 0x0 0x23af415 0x0 0x23bf1 0x15000000 0x23d 0xee150000 0x2 0x3feb1500 0x0 0x240e815 0x0 0x241e5 0x15000000 0x22a 0x13150000 0x2 0x45ff1500 0x0 0x246ff15 0x0 0x247ff 0x15000000 0x248 0xff150000 0x2 0x49ff1500 0x0 0x24aff15 0x0 0x24bff 0x15000000 0x24c 0xff150000 0x2 0x4ded1500 0x0 0x24ed515 0x0 0x24fbf 0x15000000 0x250 0xa6150100 0x2 0x51961500 0x0 0x2528615 0x0 0x25376 0x15000000 0x254 0x66150000 0x2 0x2b0e1500 0x0 0x258ff15 0x0 0x259ff 0x15000000 0x25a 0xff150000 0x2 0x5bff1500 0x0 0x25cff15 0x0 0x25dff 0x15000000 0x25e 0xff150000 0x2 0x5fff1500 0x0 0x260f615 0x0 0x261ea 0x15000000 0x262 0xe1150000 0x2 0x63d81500 0x0 0x264ce15 0x0 0x265c3 0x15000000 0x266 0xba150100 0x2 0x67b31501 0x0 0x2ff2515 0x0 0x2fb01 0x15000000 0x205 0x4150100 0x2 0xff261500 0x0 0x2fb0115 0x0 0x21caf 0x15010000 0x2ff 0x10150000 0x2 0xfb011500 0x0 0x251ff15 0x0 0x25324 0x15000000 0x255 0x50100 0x2 0x29000501 0x4600 0x2110015 0x1000000 0x2ff24 0x15000000 0x2fb 0x1150000 0x2 0xc3011500 0x0 0x2c45415 0x1000000 0x2ff10>;
+                                       qcom,mdss-dsi-off-command = [15 01 00 00 00 00 02 ff 24 15 00 00 00 00 00 02 fb 01 15 00 00 00 00 00 02 c3 00 15 01 00 00 00 00 02 ff 10 05 01 00 00 00 00 02 28 00 05 01 00 00 3c 00 02 10 00];
+                                       qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-h-sync-pulse = <0x1>;
+                                       qcom,mdss-dsi-dispparam-cabcuion-command = [15 01 00 00 00 00 02 55 01];
+                                       qcom,mdss-dsi-dispparam-cabcuion-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-cabcstillon-command = [15 01 00 00 00 00 02 55 02];
+                                       qcom,mdss-dsi-dispparam-cabcstillon-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-cabcmovieon-command = [15 01 00 00 00 00 02 55 03];
+                                       qcom,mdss-dsi-dispparam-cabcmovieon-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-cabcoff-command = [39 01 00 00 01 00 02 55 00];
+                                       qcom,mdss-dsi-dispparam-cabcoff-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-dimmingon-command = [39 01 00 00 01 00 02 53 2c];
+                                       qcom,mdss-dsi-dispparam-dimmingon-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-skince-cabcuion-command = [15 01 00 00 00 00 02 55 81];
+                                       qcom,mdss-dsi-dispparam-skince-cabcuion-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-skince-cabcstillon-command = [15 01 00 00 00 00 02 55 82];
+                                       qcom,mdss-dsi-dispparam-skince-cabcstillon-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-skince-cabcmovieon-command = [15 01 00 00 00 00 02 55 83];
+                                       qcom,mdss-dsi-dispparam-skince-cabcmovieon-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-skince-cabcoff-command = [15 01 00 00 00 00 02 55 80];
+                                       qcom,mdss-dsi-dispparam-skince-cabcoff-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-panel-phy-timings = <0x210808 0x25220908 0x6030400>;
+                                       qcom,display-topology = <0x1 0x0 0x1>;
+                                       qcom,default-topology-index = <0x0>;
+                               };
+                       };
+               };
+
+               qcom,mdss_dsi_ebbg_fhd_ft8716_video {
+                       qcom,mdss-dsi-panel-name = "ebbg fhd video dsi panel";
+                       qcom,mdss-dsi-panel-id = <0x0>;
+                       qcom,mdss-dsi-panel-model = "EBBG FHD FT8716 VIDEO PANEL";
+                       qcom,mdss-dsi-panel-sleepwrmod = <0x0>;
+                       qcom,mdss-dsi-panel-type = "dsi_video_mode";
+                       qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                       qcom,mdss-dsi-stream = <0x0>;
+                       qcom,mdss-dsi-bpp = <0x18>;
+                       qcom,mdss-dsi-color-order = "rgb_swap_rgb";
+                       qcom,mdss-dsi-underflow-color = <0x0>;
+                       qcom,mdss-dsi-border-color = <0x0>;
+                       qcom,mdss-dsi-traffic-mode = "burst_mode";
+                       qcom,mdss-dsi-bllp-eof-power-mode;
+                       qcom,mdss-dsi-bllp-power-mode;
+                       qcom,mdss-dsi-lp11-init;
+                       qcom,mdss-dsi-lane-0-state;
+                       qcom,mdss-dsi-lane-1-state;
+                       qcom,mdss-dsi-lane-2-state;
+                       qcom,mdss-dsi-lane-3-state;
+                       qcom,mdss-dsi-bl-min-level = <0x1>;
+                       qcom,mdss-dsi-bl-max-level = <0xfff>;
+                       qcom,mdss-brightness-max-level = <0xfff>;
+                       qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                       qcom,mdss-dsi-mdp-trigger = "none";
+                       qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
+                       qcom,mdss-dsi-reset-sequence = <0x1 0x5 0x0 0x2 0x1 0x6>;
+                       qcom,mdss-pan-physical-width-dimension = <0x44>;
+                       qcom,mdss-pan-physical-height-dimension = <0x88>;
+                       qcom,cont-splash-enabled;
+                       qcom,mdss-dsi-tx-eot-append;
+                       qcom,mdss-panel-on-dimming-delay = <0x78>;
+                       qcom,dispccbb-enabled;
+                       qcom,dispblnotify-enabled;
+                       qcom,dispparam-enabled;
+                       qcom,mdss-night-brightness = <0x7 0x19 0x2b 0x3d>;
+                       qcom,disp-panel-offon-mode-enabled;
+                       qcom,mdss-dsi-panel-hdr-enabled;
+                       qcom,mdss-dsi-panel-hdr-color-primaries = <0x38a4 0x3c8c 0x7d00 0x4268 0x3c8c 0x7530 0x1f40 0xbb8>;
+                       qcom,mdss-dsi-panel-peak-brightness = <0x401640>;
+                       qcom,mdss-dsi-panel-blackness-level = <0xc9e>;
+                       qcom,mdss-dsi-panel-xy-coordinate = <0x4 0x3>;
+                       qcom,mdss-dsi-panel-max-luminance = <0x1 0x1>;
+                       qcom,mdss-dsi-panel-bl-info = <0x134 0x221 0x1a4 0x2bc>;
+                       qcom,esd-check-enabled;
+                       qcom,mdss-dsi-panel-status-check-mode = "reg_read";
+                       qcom,mdss-dsi-panel-status-command = <0x6010001 0x10a 0x6010001 0x10b 0x6010001 0x10c 0x6010001 0x10d 0x6010001 0x10f 0x6010001 0x11d 0x6010001 0x1ac>;
+                       qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
+                       qcom,mdss-dsi-panel-status-value = <0x9c 0x0 0x7 0x0 0xc0 0x2 0x0>;
+                       qcom,mdss-dsi-panel-status-read-length = <0x1 0x1 0x1 0x1 0x1 0x1 0x1>;
+                       qcom,mdss-panel-off-keep-reset;
+                       qcom,mdss-dsi-t-clk-post = <0xd>;
+                       qcom,mdss-dsi-t-clk-pre = <0x2f>;
+                       linux,phandle = <0x36d>;
+                       phandle = <0x36d>;
+
+                       qcom,mdss-dsi-display-timings {
+
+                               timing@0 {
+                                       qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                       qcom,mdss-dsi-panel-width = <0x438>;
+                                       qcom,mdss-dsi-panel-height = <0x870>;
+                                       qcom,mdss-dsi-h-front-porch = <0x1c>;
+                                       qcom,mdss-dsi-h-back-porch = <0x1c>;
+                                       qcom,mdss-dsi-h-pulse-width = <0x4>;
+                                       qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                       qcom,mdss-dsi-v-back-porch = <0x10>;
+                                       qcom,mdss-dsi-v-front-porch = <0xe>;
+                                       qcom,mdss-dsi-v-pulse-width = <0x2>;
+                                       qcom,mdss-dsi-h-left-border = <0x0>;
+                                       qcom,mdss-dsi-h-right-border = <0x0>;
+                                       qcom,mdss-dsi-v-top-border = <0x0>;
+                                       qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                       qcom,mdss-dsi-on-command = [15 00 00 00 00 00 02 00 00 29 00 00 00 00 00 04 ff 87 16 01 15 00 00 00 00 00 02 00 80 29 01 00 00 00 00 03 ff 87 16 15 00 00 00 00 00 02 00 81 29 01 00 00 00 00 0d f3 f8 e1 00 f8 e1 00 00 1c 00 00 1c 00 15 00 00 00 00 00 02 00 b3 15 00 00 00 00 00 02 ca 8c 15 00 00 00 00 00 02 00 80 15 00 00 00 00 00 02 a5 bf 15 00 00 00 00 00 02 00 a1 15 00 00 00 00 00 02 c0 0c 15 00 00 00 00 00 02 00 d1 15 00 00 00 00 00 02 c0 0c 15 00 00 00 00 00 02 00 88 29 01 00 00 00 00 05 c2 83 00 12 92 15 00 00 00 00 00 02 00 ca 15 00 00 00 00 00 02 cb 02 15 00 00 00 00 00 02 00 8a 15 00 00 00 00 00 02 cc 04 15 00 00 00 00 00 02 00 9a 15 00 00 00 00 00 02 cc 04 15 00 00 00 00 00 02 00 a9 15 00 00 00 00 00 02 cd 0b 15 00 00 00 00 00 02 00 89 15 01 00 00 00 00 02 cd 0b 15 00 00 00 00 00 02 00 80 29 00 00 00 00 00 0b ca 80 e5 ff 80 ff b2 ff 00 00 00 15 00 00 00 00 00 02 00 00 15 00 00 00 00 00 02 c6 10 15 00 00 00 00 00 02 00 00 29 00 00 00 00 00 13 c7 90 9a 8b 8b c9 9a 99 a9 a9 a9 ba 99 89 88 67 34 22 22 15 00 00 00 00 00 02 00 00 15 00 00 00 00 00 02 c6 11 15 00 00 00 00 00 02 00 00 29 00 00 00 00 00 13 c7 90 8a 9b 99 c8 9a 99 99 a9 99 ba 8a 89 88 67 45 33 22 15 00 00 00 00 00 02 00 00 15 00 00 00 00 00 02 c6 12 15 00 00 00 00 00 02 00 00 29 00 00 00 00 00 13 c7 90 99 9a 8a b9 a9 98 99 a9 99 b9 8a 88 88 78 45 33 33 15 00 00 00 00 00 02 00 00 15 00 00 00 00 00 02 c6 13 15 00 00 00 00 00 02 00 00 29 00 00 00 00 00 13 c7 80 9a 8a 8a b8 9a 98 99 99 99 a9 9a 88 88 78 56 34 33 15 00 00 00 00 00 02 00 00 15 00 00 00 00 00 02 c6 14 15 00 00 00 00 00 02 00 00 29 00 00 00 00 00 13 c7 80 8a 9a 89 b8 99 99 98 99 99 b8 8a 88 88 78 56 44 44 15 00 00 00 00 00 02 00 00 15 00 00 00 00 00 02 c6 15 15 00 00 00 00 00 02 00 00 29 00 00 00 00 00 13 c7 80 99 99 99 a8 99 89 89 99 89 a9 9a 88 88 88 57 44 44 15 00 00 00 00 00 02 00 00 15 00 00 00 00 00 02 c6 16 15 00 00 00 00 00 02 00 00 29 00 00 00 00 00 13 c7 80 99 99 98 98 8a 89 99 98 89 a9 99 88 88 88 67 55 44 15 00 00 00 00 00 02 00 00 15 00 00 00 00 00 02 c6 17 15 00 00 00 00 00 02 00 00 29 00 00 00 00 00 13 c7 80 89 99 89 a8 99 88 89 99 98 98 a9 88 88 88 67 55 55 15 00 00 00 00 00 02 00 00 15 00 00 00 00 00 02 c6 18 15 00 00 00 00 00 02 00 00 29 00 00 00 00 00 13 c7 80 98 99 98 98 89 89 98 98 89 98 99 89 88 88 78 55 55 15 00 00 00 00 00 02 00 00 15 00 00 00 00 00 02 c6 19 15 00 00 00 00 00 02 00 00 29 00 00 00 00 00 13 c7 80 98 89 89 98 89 89 88 99 88 a8 89 89 88 88 78 66 55 15 00 00 00 00 00 02 00 00 15 00 00 00 00 00 02 c6 1a 15 00 00 00 00 00 02 00 00 29 00 00 00 00 00 13 c7 80 88 99 88 98 89 89 88 89 98 98 98 89 88 88 78 66 66 15 00 00 00 00 00 02 00 00 15 00 00 00 00 00 02 c6 1b 15 00 00 00 00 00 02 00 00 29 00 00 00 00 00 13 c7 80 88 89 98 88 89 88 89 98 88 98 89 89 88 88 88 67 66 15 00 00 00 00 00 02 00 00 15 00 00 00 00 00 02 c6 1c 15 00 00 00 00 00 02 00 00 29 00 00 00 00 00 13 c7 80 88 98 88 98 98 88 88 98 88 98 98 88 88 88 88 77 67 15 00 00 00 00 00 02 00 00 15 00 00 00 00 00 02 c6 1d 15 00 00 00 00 00 02 00 00 29 00 00 00 00 00 13 c7 80 88 88 98 88 98 88 88 98 88 88 98 88 88 88 88 78 77 15 00 00 00 00 00 02 00 00 15 00 00 00 00 00 02 c6 1e 15 00 00 00 00 00 02 00 00 29 00 00 00 00 00 13 c7 80 88 88 88 88 89 88 88 88 98 97 88 88 88 88 88 88 78 15 00 00 00 00 00 02 00 00 15 00 00 00 00 00 02 c6 1f 15 00 00 00 00 00 02 00 00 29 00 00 00 00 00 13 c7 80 88 88 88 88 88 88 88 88 88 89 88 88 88 88 88 88 88 15 00 00 00 00 00 02 00 00 15 01 00 00 00 00 02 c6 00 15 00 00 00 00 00 02 00 a0 29 00 00 00 00 00 0d d6 0d 0a 07 04 08 10 11 0f 0e 15 13 0f 15 00 00 00 00 00 02 00 b0 29 00 00 00 00 00 0d d6 83 88 79 68 62 65 68 70 7f 8c 8d 92 15 00 00 00 00 00 02 00 c0 29 00 00 00 00 00 0d d6 6d 6b 6a 66 68 70 73 74 75 76 74 72 15 00 00 00 00 00 02 00 d0 29 01 00 00 00 00 0d d6 63 68 80 80 80 80 80 80 80 80 80 80 15 00 00 00 00 00 02 00 00 29 01 00 00 00 00 04 ff 00 00 00 15 00 00 00 00 00 02 00 80 29 01 00 00 00 00 03 ff 00 00 15 00 00 00 00 00 02 00 00 29 00 00 00 00 00 05 2a 00 00 04 37 15 00 00 00 00 00 02 00 00 29 01 00 00 00 00 05 2b 00 00 08 6f 15 00 00 00 00 00 02 91 80 15 00 00 00 00 00 02 00 00 29 01 00 00 00 00 04 ff 87 16 01 15 00 00 00 00 00 02 00 80 29 01 00 00 00 00 03 ff 87 16 15 00 00 00 00 00 02 00 81 29 00 00 00 00 00 0d f3 f8 e1 00 f8 e1 00 00 1e 00 00 1e 00 15 00 00 00 00 00 02 51 ff 15 00 00 00 00 00 02 53 24 15 00 00 00 00 00 02 55 00 05 01 00 00 5a 00 02 11 00 05 01 00 00 00 00 02 29 00];
+                                       qcom,mdss-dsi-off-command = [05 01 00 00 0a 00 02 28 00 05 01 00 00 5a 00 02 10 00 15 01 00 00 00 00 02 00 00 29 01 00 00 05 00 05 f7 5a a5 87 16];
+                                       qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-off-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-displayoff-command = [05 01 00 00 16 00 02 28 00];
+                                       qcom,mdss-dsi-displayon-command = [05 01 00 00 14 00 02 29 00];
+                                       qcom,mdss-dsi-displayoff-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-displayon-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-h-sync-pulse = <0x1>;
+                                       qcom,mdss-dsi-dispparam-cabcuion-command = [15 01 00 00 00 00 02 55 01 15 01 00 00 00 00 02 91 00];
+                                       qcom,mdss-dsi-dispparam-cabcuion-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-cabcstillon-command = [15 01 00 00 00 00 02 55 02 15 01 00 00 00 00 02 91 00];
+                                       qcom,mdss-dsi-dispparam-cabcstillon-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-cabcmovieon-command = [15 01 00 00 00 00 02 55 03 15 01 00 00 00 00 02 91 00];
+                                       qcom,mdss-dsi-dispparam-cabcmovieon-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-cabcoff-command = [15 01 00 00 00 00 02 55 00 15 01 00 00 00 00 02 91 00];
+                                       qcom,mdss-dsi-dispparam-cabcoff-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-skince-cabcuion-command = [15 01 00 00 00 00 02 55 01 15 01 00 00 00 00 02 91 80];
+                                       qcom,mdss-dsi-dispparam-skince-cabcuion-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-skince-cabcstillon-command = [15 00 00 00 00 00 02 55 02 15 01 00 00 00 00 02 91 80];
+                                       qcom,mdss-dsi-dispparam-skince-cabcstillon-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-skince-cabcmovieon-command = [15 01 00 00 00 00 02 55 03 15 01 00 00 00 00 02 91 80];
+                                       qcom,mdss-dsi-dispparam-skince-cabcmovieon-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-skince-cabcoff-command = [15 01 00 00 01 00 02 55 00 15 01 00 00 00 00 02 91 80];
+                                       qcom,mdss-dsi-dispparam-skince-cabcoff-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-dimmingon-command = [39 01 00 00 01 00 02 53 2c];
+                                       qcom,mdss-dsi-dispparam-dimmingon-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-idleon-command = [39 01 00 00 01 00 02 39 00];
+                                       qcom,mdss-dsi-dispparam-idleoff-command = [39 01 00 00 01 00 02 38 00];
+                                       qcom,mdss-dsi-dispparam-xy-coordinate-command = [06 01 00 01 05 00 02 a1 00];
+                                       qcom,mdss-dsi-dispparam-xy-coordinate-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-max-luminance-command = [06 01 00 01 05 00 02 dc 00];
+                                       qcom,mdss-dsi-dispparam-max-luminance-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-panel-phy-timings = <0x1e0808 0x24220808 0x5030400>;
+                                       qcom,display-topology = <0x1 0x0 0x1>;
+                                       qcom,default-topology-index = <0x0>;
+                               };
+                       };
+               };
+
+               qcom,mdss_dsi_ebbg_fhd_ft8719_video {
+                       qcom,mdss-dsi-panel-name = "ebbg fhd video dsi panel";
+                       qcom,mdss-dsi-panel-id = <0x0>;
+                       qcom,mdss-dsi-panel-model = "EBBG FHD FT8719 VIDEO PANEL";
+                       qcom,mdss-dsi-panel-type = "dsi_video_mode";
+                       qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                       qcom,mdss-dsi-stream = <0x0>;
+                       qcom,mdss-dsi-bpp = <0x18>;
+                       qcom,mdss-dsi-color-order = "rgb_swap_rgb";
+                       qcom,mdss-dsi-underflow-color = <0x0>;
+                       qcom,mdss-dsi-border-color = <0x0>;
+                       qcom,mdss-dsi-traffic-mode = "burst_mode";
+                       qcom,mdss-dsi-bllp-eof-power-mode;
+                       qcom,mdss-dsi-bllp-power-mode;
+                       qcom,mdss-dsi-lp11-init;
+                       qcom,mdss-dsi-lane-0-state;
+                       qcom,mdss-dsi-lane-1-state;
+                       qcom,mdss-dsi-lane-2-state;
+                       qcom,mdss-dsi-lane-3-state;
+                       qcom,mdss-dsi-bl-min-level = <0x1>;
+                       qcom,mdss-dsi-bl-max-level = <0xfff>;
+                       qcom,mdss-brightness-max-level = <0xfff>;
+                       qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                       qcom,mdss-dsi-mdp-trigger = "none";
+                       qcom,mdss-dsi-reset-sequence = <0x1 0x4 0x0 0x1 0x1 0xf>;
+                       qcom,mdss-pan-physical-width-dimension = <0x44>;
+                       qcom,mdss-pan-physical-height-dimension = <0x8d>;
+                       qcom,cont-splash-enabled;
+                       qcom,mdss-dsi-tx-eot-append;
+                       qcom,mdss-dsi-panel-hdr-enabled;
+                       qcom,mdss-dsi-panel-hdr-color-primaries = <0x38a4 0x3c8c 0x7d00 0x4268 0x3c8c 0x7530 0x1f40 0xbb8>;
+                       qcom,mdss-dsi-panel-peak-brightness = <0x401640>;
+                       qcom,mdss-dsi-panel-blackness-level = <0xc9e>;
+                       qcom,dispparam-enabled;
+                       qcom,mdss-panel-on-dimming-delay = <0x78>;
+                       qcom,mdss-dsi-t-clk-post = <0xe>;
+                       qcom,mdss-dsi-t-clk-pre = <0x41>;
+                       qcom,esd-check-enabled;
+                       qcom,mdss-dsi-panel-status-check-mode = "reg_read";
+                       qcom,mdss-dsi-panel-status-command = <0x6010001 0x10a 0x6010001 0x10b 0x6010001 0x10d>;
+                       qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
+                       qcom,mdss-dsi-panel-status-value = <0x9c 0x0 0x0>;
+                       qcom,mdss-dsi-panel-status-read-length = <0x1 0x1 0x1>;
+                       linux,phandle = <0x36e>;
+                       phandle = <0x36e>;
+
+                       qcom,mdss-dsi-display-timings {
+
+                               timing@0 {
+                                       qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                       qcom,mdss-dsi-panel-width = <0x438>;
+                                       qcom,mdss-dsi-panel-height = <0x8c6>;
+                                       qcom,mdss-dsi-h-front-porch = <0x1c>;
+                                       qcom,mdss-dsi-h-back-porch = <0x10>;
+                                       qcom,mdss-dsi-h-pulse-width = <0x4>;
+                                       qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                       qcom,mdss-dsi-v-back-porch = <0xc>;
+                                       qcom,mdss-dsi-v-front-porch = <0x78>;
+                                       qcom,mdss-dsi-v-pulse-width = <0x4>;
+                                       qcom,mdss-dsi-h-left-border = <0x0>;
+                                       qcom,mdss-dsi-h-right-border = <0x0>;
+                                       qcom,mdss-dsi-v-top-border = <0x0>;
+                                       qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                       qcom,mdss-dsi-on-command = [15 01 00 00 00 00 02 00 00 29 00 00 00 00 00 04 ff 87 19 01 15 00 00 00 00 00 02 00 80 29 01 00 00 00 00 03 ff 87 19 15 00 00 00 00 00 02 00 a0 29 00 00 00 00 00 04 ca 0f 0f 0f 15 00 00 00 00 00 02 00 80 29 00 00 00 00 00 0d ca be b5 ad a6 a0 9b 96 91 8d 8a 87 83 15 00 00 00 00 00 02 00 90 29 01 00 00 00 00 0a ca fe ff 66 f6 ff 66 fb ff 32 15 00 00 00 00 00 02 00 a0 29 00 00 00 00 00 0d d6 7a 79 74 8c 8c 92 97 9b 97 8f 80 77 15 00 00 00 00 00 02 00 b0 29 00 00 00 00 00 0d d6 7e 7d 81 7a 7a 7b 7c 81 84 85 80 82 15 00 00 00 00 00 02 00 c0 29 00 00 00 00 00 0d d6 7d 7d 78 8a 89 8f 97 97 8f 8c 80 7a 15 00 00 00 00 00 02 00 d0 29 01 00 00 00 00 0d d6 7e 7d 81 7c 79 7b 7c 80 84 85 80 82 15 00 00 00 00 00 02 00 e0 29 00 00 00 00 00 0d d6 7b 7b 7b 80 80 80 80 80 80 80 80 80 15 00 00 00 00 00 02 00 f0 29 00 00 00 00 00 0d d6 7e 7e 80 80 80 80 80 80 80 80 80 80 15 00 00 00 00 00 02 00 00 29 00 00 00 00 00 0d d7 80 80 80 80 80 80 80 80 80 80 80 80 15 00 00 00 00 00 02 00 10 29 01 00 00 00 00 0d d7 80 80 80 80 80 80 80 80 80 80 80 80 15 00 00 00 00 00 02 00 00 29 00 00 00 00 00 04 ff 00 00 00 15 00 00 00 00 00 02 00 80 29 01 00 00 00 00 03 ff 00 00 15 00 00 00 00 00 02 91 00 15 00 00 00 00 00 02 51 ff 15 00 00 00 00 00 02 53 24 15 00 00 00 00 00 02 55 00 05 01 00 00 5a 00 02 11 00 05 01 00 00 00 00 02 29 00];
+                                       qcom,mdss-dsi-off-command = [05 01 00 00 0a 00 02 28 00 05 01 00 00 5a 00 02 10 00];
+                                       qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-h-sync-pulse = <0x1>;
+                                       qcom,mdss-dsi-dispparam-cabcuion-command = [15 01 00 00 00 00 02 55 01 15 01 00 00 00 00 02 91 00];
+                                       qcom,mdss-dsi-dispparam-cabcuion-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-cabcstillon-command = [15 01 00 00 00 00 02 55 02 15 01 00 00 00 00 02 91 00];
+                                       qcom,mdss-dsi-dispparam-cabcstillon-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-cabcmovieon-command = [15 01 00 00 00 00 02 55 03 15 01 00 00 00 00 02 91 00];
+                                       qcom,mdss-dsi-dispparam-cabcmovieon-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-cabcoff-command = [15 01 00 00 01 00 02 55 00 15 01 00 00 00 00 02 91 00];
+                                       qcom,mdss-dsi-dispparam-cabcoff-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-dimmingon-command = [15 01 00 00 01 00 02 53 2c];
+                                       qcom,mdss-dsi-dispparam-dimmingon-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-ceon-command = [15 01 00 00 00 00 02 91 80];
+                                       qcom,mdss-dsi-dispparam-ceon-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-ceoff-command = [15 01 00 00 00 00 02 91 00];
+                                       qcom,mdss-dsi-dispparam-ceoff-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-skince-cabcuion-command = [15 01 00 00 00 00 02 55 01 15 01 00 00 00 00 02 91 80];
+                                       qcom,mdss-dsi-dispparam-skince-cabcuion-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-skince-cabcstillon-command = [15 01 00 00 00 00 02 55 02 15 01 00 00 00 00 02 91 80];
+                                       qcom,mdss-dsi-dispparam-skince-cabcstillon-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-skince-cabcmovieon-command = [15 01 00 00 00 00 02 55 03 15 01 00 00 00 00 02 91 80];
+                                       qcom,mdss-dsi-dispparam-skince-cabcmovieon-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-dispparam-skince-cabcoff-command = [15 01 00 00 01 00 02 55 00 15 01 00 00 00 00 02 91 80];
+                                       qcom,mdss-dsi-dispparam-skince-cabcoff-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-panel-phy-timings = <0x210808 0x25220908 0x6030400>;
+                                       qcom,display-topology = <0x1 0x0 0x1>;
+                                       qcom,default-topology-index = <0x0>;
+                               };
+                       };
+               };
+
+               qcom,mdss_dsi_samsung_fhd_ea8076_cmd {
+                       qcom,mdss-dsi-panel-name = "samsung ea8076 fhd cmd dsi panel";
+                       qcom,mdss-dsi-panel-id = <0x0>;
+                       qcom,mdss-dsi-panel-model = "SAMSUNG FHD EA8076 CMD PANEL";
+                       qcom,mdss-dsi-panel-sleepwrmod = <0x0>;
+                       qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
+                       qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                       qcom,mdss-dsi-stream = <0x0>;
+                       qcom,mdss-dsi-bpp = <0x18>;
+                       qcom,mdss-dsi-underflow-color = <0xff>;
+                       qcom,mdss-dsi-border-color = <0x0>;
+                       qcom,mdss-dsi-traffic-mode = "burst_mode";
+                       qcom,mdss-dsi-bllp-eof-power-mode;
+                       qcom,mdss-dsi-bllp-power-mode;
+                       qcom,ulps-enabled;
+                       qcom,mdss-dsi-lp11-init;
+                       qcom,mdss-dsi-lane-0-state;
+                       qcom,mdss-dsi-lane-1-state;
+                       qcom,mdss-dsi-lane-2-state;
+                       qcom,mdss-dsi-lane-3-state;
+                       qcom,mdss-brightness-max-level = <0x7ff>;
+                       qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                       qcom,mdss-dsi-mdp-trigger = "none";
+                       qcom,mdss-dsi-bl-dcs-type-ss;
+                       qcom,mdss-dsi-reset-sequence = <0x0 0x1 0x1 0xa>;
+                       qcom,mdss-pan-physical-width-dimension = <0x44>;
+                       qcom,mdss-pan-physical-height-dimension = <0x93>;
+                       qcom,mdss-dsi-te-pin-select = <0x1>;
+                       qcom,mdss-dsi-wr-mem-start = <0x2c>;
+                       qcom,mdss-dsi-wr-mem-continue = <0x3c>;
+                       qcom,mdss-dsi-te-dcs-command = <0x1>;
+                       qcom,mdss-dsi-te-check-enable;
+                       qcom,mdss-dsi-te-using-te-pin;
+                       qcom,mdss-dsi-tx-eot-append;
+                       qcom,mdss-dsi-panel-hdr-enabled;
+                       qcom,mdss-dsi-panel-hdr-color-primaries = <0x38a4 0x3c8c 0x7d00 0x4268 0x3c8c 0x7530 0x1f40 0xbb8>;
+                       qcom,mdss-dsi-panel-peak-brightness = <0x419ce0>;
+                       qcom,mdss-dsi-panel-blackness-level = <0xc9e>;
+                       qcom,dispparam-enabled;
+                       qcom,mdss-panel-on-dimming-delay = <0xc8>;
+                       qcom,disp-doze-backlight-threshold = <0x8>;
+                       qcom,bl-update-flag = "delay_until_first_frame";
+                       qcom,mdss-dsi-panel-dc-threshold = <0x262>;
+                       qcom,mdss-dsi-t-clk-post = <0xf>;
+                       qcom,mdss-dsi-t-clk-pre = <0x37>;
+                       qcom,esd-check-enabled;
+                       qcom,mdss-dsi-panel-status-check-mode = "reg_read";
+                       qcom,mdss-dsi-panel-status-command = <0x6010001 0x10a>;
+                       qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
+                       qcom,mdss-dsi-panel-status-value = <0x9c>;
+                       qcom,mdss-dsi-panel-status-read-length = <0x1>;
+                       linux,phandle = <0x36f>;
+                       phandle = <0x36f>;
+
+                       qcom,mdss-dsi-display-timings {
+
+                               timing@0 {
+                                       qcom,mdss-dsi-panel-width = <0x438>;
+                                       qcom,mdss-dsi-panel-height = <0x924>;
+                                       qcom,mdss-dsi-h-front-porch = <0x40>;
+                                       qcom,mdss-dsi-h-back-porch = <0x40>;
+                                       qcom,mdss-dsi-h-pulse-width = <0x14>;
+                                       qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                       qcom,mdss-dsi-v-back-porch = <0x40>;
+                                       qcom,mdss-dsi-v-front-porch = <0x40>;
+                                       qcom,mdss-dsi-v-pulse-width = <0x14>;
+                                       qcom,mdss-dsi-h-left-border = <0x0>;
+                                       qcom,mdss-dsi-h-right-border = <0x0>;
+                                       qcom,mdss-dsi-v-top-border = <0x0>;
+                                       qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                       qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                       qcom,mdss-dsi-panel-clockrate = <0x4190ab00>;
+                                       qcom,mdss-dsi-panel-jitter = <0x5 0x1>;
+                                       qcom,mdss-dsi-on-command = [05 01 00 00 0a 00 02 11 00 39 00 00 00 00 00 03 f0 5a 5a 39 00 00 00 00 00 02 35 00 39 00 00 00 00 00 03 b7 01 4b 39 01 00 00 00 00 03 f0 a5 a5 39 01 00 00 00 00 05 2b 00 00 09 23 39 00 00 00 00 00 03 f0 5a 5a 39 00 00 00 00 00 02 b0 07 39 00 00 00 00 00 03 d9 88 2e 39 01 00 00 00 00 03 f0 a5 a5 39 00 00 00 00 00 03 f0 5a 5a 39 00 00 00 00 00 03 fc 5a 5a 39 00 00 00 00 00 0c e9 11 55 a6 75 a3 b8 bb 2a 00 1a b8 39 00 00 00 00 00 03 f0 a5 a5 39 01 00 00 00 00 03 fc a5 a5 39 00 00 00 00 00 03 f0 5a 5a 39 00 00 00 00 00 02 b0 09 39 00 00 00 00 00 02 d8 00 39 01 00 00 00 00 03 f0 a5 a5 39 00 00 00 00 00 02 53 20 39 00 00 00 00 00 03 51 00 00 39 01 00 00 43 00 02 55 00 05 01 00 00 00 00 02 29 00];
+                                       qcom,mdss-dsi-off-command = <0x5010000 0x11000228 0x390000 0x3 0xf05a5a39 0x0 0x2b04f 0x39000000 0x2b9 0x58390100 0x110003 0xf0a5a505 0x1000078 0x21000>;
+                                       qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-off-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-doze-hbm-command = [39 00 00 00 00 00 03 f0 5a 5a 39 00 00 00 00 00 02 d4 8b 39 00 00 00 00 00 02 b0 a5 39 00 00 00 00 00 02 c7 00 39 00 00 00 00 00 02 b0 69 39 00 00 00 00 00 03 b9 08 8f 39 01 00 00 01 00 02 53 22 39 01 00 00 00 00 03 f0 a5 a5];
+                                       qcom,mdss-dsi-doze-lbm-command = [39 00 00 00 00 00 03 f0 5a 5a 39 00 00 00 00 00 02 d4 8b 39 00 00 00 00 00 02 b0 a5 39 00 00 00 00 00 02 c7 00 39 00 00 00 00 00 02 b0 69 39 00 00 00 00 00 03 b9 08 8f 39 01 00 00 00 00 02 53 23 39 01 00 00 00 00 03 f0 a5 a5];
+                                       qcom,mdss-dsi-nolp-command = [05 01 00 00 22 00 02 28 00 39 01 00 00 00 00 02 53 20 05 01 00 00 00 00 02 29 00];
+                                       qcom,mdss-dsi-doze-hbm-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-doze-lbm-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-nolp-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-acl-off-command = [39 01 00 00 00 00 02 55 00];
+                                       qcom,mdss-dsi-dispparam-acl-off-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-acl-l1-command = [39 01 00 00 00 00 02 55 01];
+                                       qcom,mdss-dsi-dispparam-acl-l1-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-acl-l2-command = [39 01 00 00 00 00 02 55 02];
+                                       qcom,mdss-dsi-dispparam-acl-l2-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-acl-l3-command = [39 01 00 00 00 00 02 55 03];
+                                       qcom,mdss-dsi-dispparam-acl-l3-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-hbm-off-command = [39 01 00 00 00 00 02 53 28];
+                                       qcom,mdss-dsi-dispparam-hbm-off-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-hbm-on-command = [39 01 00 00 00 00 02 53 e8];
+                                       qcom,mdss-dsi-dispparam-hbm-on-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-dimmingon-command = [39 01 00 00 01 00 02 53 28];
+                                       qcom,mdss-dsi-dispparam-dimmingon-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-dimmingoff-command = [39 01 00 00 01 00 02 53 20];
+                                       qcom,mdss-dsi-dispparam-dimmingoff-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-crc-srgb-on-command = [39 01 00 00 00 00 02 81 90 39 01 00 00 00 00 03 f0 5a 5a 39 01 00 00 00 00 02 b1 00 39 01 00 00 00 00 02 b0 01 39 01 00 00 00 00 16 b1 ae 0c 05 3f c6 14 05 07 aa 4a dd c8 c3 14 c0 e8 dc 19 ff f4 d9 39 01 00 00 00 00 02 b0 16 39 01 00 00 00 00 16 b1 bd 02 00 14 d1 00 04 07 aa 0c ec cb c8 0f dd d9 e4 05 ff ff ff 39 01 00 00 00 00 03 f0 a5 a5];
+                                       qcom,mdss-dsi-dispparam-crc-srgb-on-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-crc-dcip3-on-command = [39 01 00 00 00 00 02 81 91 39 01 00 00 00 00 03 f0 5a 5a 39 01 00 00 00 00 02 b1 00 39 01 00 00 00 00 02 b0 01 39 01 00 00 00 00 16 b1 ae 0c 05 3f c6 14 05 07 aa 4a dd c8 c3 14 c0 e8 dc 19 ff f4 d9 39 01 00 00 00 00 02 b0 16 39 01 00 00 00 00 16 b1 bd 02 00 14 d1 00 04 07 aa 0c ec cb c8 0f dd d9 e4 05 ff ff ff 39 01 00 00 00 00 03 f0 a5 a5];
+                                       qcom,mdss-dsi-dispparam-crc-dcip3-on-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-crc-off-command = [39 01 00 00 00 00 02 81 00 39 01 00 00 00 00 03 f0 5a 5a 39 01 00 00 00 00 02 b1 01 39 01 00 00 00 00 03 f0 a5 a5];
+                                       qcom,mdss-dsi-dispparam-crc-off-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-h-sync-pulse = <0x0>;
+                                       qcom,mdss-dsi-panel-phy-timings = <0x240a0a 0x2625090a 0x6020400>;
+                                       qcom,display-topology = <0x1 0x0 0x1>;
+                                       qcom,default-topology-index = <0x0>;
+                               };
+                       };
+               };
+
+               qcom,mdss_dsi_visionox_fhd_r66455_cmd {
+                       qcom,mdss-dsi-panel-name = "visionox r66455 fhd cmd dsi panel";
+                       qcom,mdss-dsi-panel-id = <0x0>;
+                       qcom,mdss-dsi-panel-model = "VISIONOX FHD R66455 CMD PANEL";
+                       qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
+                       qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                       qcom,mdss-dsi-stream = <0x0>;
+                       qcom,mdss-dsi-bpp = <0x18>;
+                       qcom,mdss-dsi-color-order = "rgb_swap_rgb";
+                       qcom,mdss-dsi-underflow-color = <0xff>;
+                       qcom,mdss-dsi-border-color = <0x0>;
+                       qcom,mdss-dsi-traffic-mode = "burst_mode";
+                       qcom,mdss-dsi-bllp-eof-power-mode;
+                       qcom,mdss-dsi-bllp-power-mode;
+                       qcom,mdss-dsi-lp11-init;
+                       qcom,mdss-dsi-lane-0-state;
+                       qcom,mdss-dsi-lane-1-state;
+                       qcom,mdss-dsi-lane-2-state;
+                       qcom,mdss-dsi-lane-3-state;
+                       qcom,mdss-brightness-remap;
+                       qcom,mdss-doze-brightness-variable;
+                       qcom,mdss-brightness-max-level = <0x7ff>;
+                       qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                       qcom,mdss-dsi-mdp-trigger = "none";
+                       qcom,mdss-dsi-reset-sequence = <0x0 0x2 0x1 0xa>;
+                       qcom,mdss-pan-physical-width-dimension = <0x44>;
+                       qcom,mdss-pan-physical-height-dimension = <0x93>;
+                       qcom,mdss-dsi-te-pin-select = <0x1>;
+                       qcom,mdss-dsi-wr-mem-start = <0x2c>;
+                       qcom,mdss-dsi-wr-mem-continue = <0x3c>;
+                       qcom,mdss-dsi-te-dcs-command = <0x1>;
+                       qcom,mdss-dsi-tx-eot-append;
+                       qcom,mdss-dsi-panel-hdr-enabled;
+                       qcom,mdss-dsi-panel-hdr-color-primaries = <0x38a4 0x3c8c 0x7d00 0x4268 0x3c8c 0x7530 0x1f40 0xbb8>;
+                       qcom,mdss-dsi-panel-peak-brightness = <0x419ce0>;
+                       qcom,mdss-dsi-panel-blackness-level = <0xc9e>;
+                       qcom,mdss-dsi-bl-dcs-type-ss;
+                       qcom,dispparam-enabled;
+                       qcom,mdss-panel-on-dimming-delay = <0x78>;
+                       qcom,disp-doze-backlight-threshold = <0x8>;
+                       qcom,bl-update-flag = "delay_until_first_frame";
+                       qcom,bl-update-delay = <0x1c>;
+                       qcom,mdss-dsi-t-clk-post = <0xe>;
+                       qcom,mdss-dsi-t-clk-pre = <0x36>;
+                       qcom,esd-check-enabled;
+                       qcom,mdss-dsi-panel-status-check-mode = "reg_read";
+                       qcom,mdss-dsi-panel-status-command = <0x6010000 0x10a 0x6010000 0x1f9>;
+                       qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
+                       qcom,mdss-dsi-panel-status-value = <0x1c 0x0>;
+                       qcom,mdss-dsi-panel-status-read-length = <0x1 0x1>;
+                       linux,phandle = <0x371>;
+                       phandle = <0x371>;
+
+                       qcom,mdss-dsi-display-timings {
+
+                               timing@0 {
+                                       qcom,mdss-dsi-panel-width = <0x438>;
+                                       qcom,mdss-dsi-panel-height = <0x924>;
+                                       qcom,mdss-dsi-h-back-porch = <0x28>;
+                                       qcom,mdss-dsi-h-front-porch = <0x60>;
+                                       qcom,mdss-dsi-h-pulse-width = <0x4>;
+                                       qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                       qcom,mdss-dsi-v-back-porch = <0x10>;
+                                       qcom,mdss-dsi-v-front-porch = <0x19>;
+                                       qcom,mdss-dsi-v-pulse-width = <0x3>;
+                                       qcom,mdss-dsi-h-left-border = <0x0>;
+                                       qcom,mdss-dsi-h-right-border = <0x0>;
+                                       qcom,mdss-dsi-v-top-border = <0x0>;
+                                       qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                       qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                       qcom,mdss-dsi-on-command = [39 01 00 00 00 00 02 b0 00 39 01 00 00 00 00 02 b3 00 39 01 00 00 00 00 02 fa 9f 39 01 00 00 00 00 0f c1 f0 61 00 00 00 00 00 20 02 00 00 00 00 81 39 01 00 00 00 00 05 2a 00 00 04 37 39 01 00 00 00 00 05 2b 00 00 09 23 39 01 00 00 00 00 02 b0 80 39 01 00 00 00 00 02 e4 fe 39 01 00 00 00 00 02 e6 00 39 01 00 00 00 00 03 51 01 00 39 01 00 00 00 00 02 35 00 39 01 00 00 00 00 02 b0 00 05 01 00 00 00 00 02 29 00 05 01 00 00 64 00 02 11 00];
+                                       qcom,mdss-dsi-off-command = [05 01 00 00 00 00 02 28 00 05 01 00 00 78 00 02 10 00];
+                                       qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-off-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-doze-hbm-command = [05 01 00 00 00 00 02 39 00 39 01 00 00 00 00 03 51 00 ff];
+                                       qcom,mdss-dsi-doze-lbm-command = [05 01 00 00 00 00 02 39 00 39 01 00 00 00 00 03 51 00 00];
+                                       qcom,mdss-dsi-nolp-command = [05 01 00 00 00 00 02 38 00];
+                                       qcom,mdss-dsi-doze-hbm-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-doze-lbm-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-nolp-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-acl-off-command = [39 01 00 00 00 00 02 55 00];
+                                       qcom,mdss-dsi-dispparam-acl-off-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-acl-l1-command = [39 01 00 00 00 00 02 55 03];
+                                       qcom,mdss-dsi-dispparam-acl-l1-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-acl-l2-command = [39 01 00 00 00 00 02 55 02];
+                                       qcom,mdss-dsi-dispparam-acl-l2-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-acl-l3-command = [39 01 00 00 00 00 02 55 01];
+                                       qcom,mdss-dsi-dispparam-acl-l3-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-hbm-off-command = [39 01 00 00 00 00 02 53 28];
+                                       qcom,mdss-dsi-dispparam-hbm-off-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-hbm-on-command = [39 01 00 00 00 00 02 53 e8];
+                                       qcom,mdss-dsi-dispparam-hbm-on-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-dispparam-dimmingon-command = [39 01 00 00 00 00 02 53 28];
+                                       qcom,mdss-dsi-dispparam-dimmingon-command-state = "dsi_lp_mode";
+                                       qcom,mdss-dsi-panel-phy-timings = <0x230909 0x26240909 0x6020400>;
+                                       qcom,display-topology = <0x1 0x0 0x1>;
+                                       qcom,default-topology-index = <0x0>;
+                               };
+                       };
+               };
+
+               qcom,mdss_dsi_visionox_fhd_r66455_vid {
+                       qcom,mdss-dsi-panel-name = "visionox r66455 fhd video dsi panel";
+                       qcom,mdss-dsi-panel-id = <0x0>;
+                       qcom,mdss-dsi-panel-model = "VISIONOX FHD R66455 VIDEO PANEL";
+                       qcom,mdss-dsi-panel-type = "dsi_video_mode";
+                       qcom,mdss-dsi-virtual-channel-id = <0x0>;
+                       qcom,mdss-dsi-stream = <0x0>;
+                       qcom,mdss-dsi-bpp = <0x18>;
+                       qcom,mdss-dsi-color-order = "rgb_swap_rgb";
+                       qcom,mdss-dsi-underflow-color = <0xff>;
+                       qcom,mdss-dsi-border-color = <0x0>;
+                       qcom,mdss-dsi-traffic-mode = "burst_mode";
+                       qcom,mdss-dsi-bllp-eof-power-mode;
+                       qcom,mdss-dsi-bllp-power-mode;
+                       qcom,mdss-dsi-lp11-init;
+                       qcom,mdss-dsi-lane-0-state;
+                       qcom,mdss-dsi-lane-1-state;
+                       qcom,mdss-dsi-lane-2-state;
+                       qcom,mdss-dsi-lane-3-state;
+                       qcom,mdss-dsi-bl-min-level = <0x1>;
+                       qcom,mdss-dsi-bl-max-level = <0xfff>;
+                       qcom,mdss-brightness-max-level = <0xfff>;
+                       qcom,mdss-dsi-dma-trigger = "trigger_sw";
+                       qcom,mdss-dsi-mdp-trigger = "none";
+                       qcom,mdss-dsi-reset-sequence = <0x0 0x2 0x1 0xa>;
+                       qcom,mdss-pan-physical-width-dimension = <0x44>;
+                       qcom,mdss-pan-physical-height-dimension = <0x93>;
+                       qcom,mdss-dsi-tx-eot-append;
+                       qcom,mdss-dsi-panel-hdr-enabled;
+                       qcom,mdss-dsi-panel-hdr-color-primaries = <0x38a4 0x3c8c 0x7d00 0x4268 0x3c8c 0x7530 0x1f40 0xbb8>;
+                       qcom,mdss-dsi-panel-peak-brightness = <0x419ce0>;
+                       qcom,mdss-dsi-panel-blackness-level = <0xc9e>;
+                       qcom,mdss-dsi-bl-dcs-type-ss;
+                       qcom,mdss-dsi-t-clk-post = <0xe>;
+                       qcom,mdss-dsi-t-clk-pre = <0x36>;
+                       linux,phandle = <0x372>;
+                       phandle = <0x372>;
+
+                       qcom,mdss-dsi-display-timings {
+
+                               timing@0 {
+                                       qcom,mdss-dsi-panel-width = <0x438>;
+                                       qcom,mdss-dsi-panel-height = <0x924>;
+                                       qcom,mdss-dsi-h-back-porch = <0x28>;
+                                       qcom,mdss-dsi-h-front-porch = <0x60>;
+                                       qcom,mdss-dsi-h-pulse-width = <0x4>;
+                                       qcom,mdss-dsi-h-sync-skew = <0x0>;
+                                       qcom,mdss-dsi-v-back-porch = <0x10>;
+                                       qcom,mdss-dsi-v-front-porch = <0x19>;
+                                       qcom,mdss-dsi-v-pulse-width = <0x3>;
+                                       qcom,mdss-dsi-h-left-border = <0x0>;
+                                       qcom,mdss-dsi-h-right-border = <0x0>;
+                                       qcom,mdss-dsi-v-top-border = <0x0>;
+                                       qcom,mdss-dsi-v-bottom-border = <0x0>;
+                                       qcom,mdss-dsi-panel-framerate = <0x3c>;
+                                       qcom,mdss-dsi-on-command = [39 01 00 00 00 00 02 e6 01 39 01 00 00 00 00 03 51 04 00 39 01 00 00 00 00 02 35 00 05 01 00 00 78 00 02 29 00 05 01 00 00 78 00 02 11 00];
+                                       qcom,mdss-dsi-off-command = [05 01 00 00 00 00 02 28 00 05 01 00 00 55 00 02 10 00];
+                                       qcom,mdss-dsi-on-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
+                                       qcom,mdss-dsi-panel-phy-timings = <0x230909 0x26240909 0x6020400>;
+                                       qcom,display-topology = <0x1 0x0 0x1>;
+                                       qcom,default-topology-index = <0x0>;
+                               };
+                       };
+               };
+
+               dsi_amoled_panel_pwr_supply {
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       linux,phandle = <0x36a>;
+                       phandle = <0x36a>;
+
+                       qcom,panel-supply-entry@0 {
+                               reg = <0x0>;
+                               qcom,supply-name = "vddio";
+                               qcom,supply-min-voltage = <0x1b7740>;
+                               qcom,supply-max-voltage = <0x1b7740>;
+                               qcom,supply-enable-load = <0xf230>;
+                               qcom,supply-disable-load = <0x50>;
+                       };
+
+                       qcom,panel-supply-entry@1 {
+                               reg = <0x1>;
+                               qcom,supply-name = "vci";
+                               qcom,supply-min-voltage = <0x2dc6c0>;
+                               qcom,supply-max-voltage = <0x2dc6c0>;
+                               qcom,supply-enable-load = <0xf230>;
+                               qcom,supply-disable-load = <0x50>;
+                               qcom,supply-post-on-sleep = <0xa>;
+                               qcom,supply-pre-off-sleep = <0xa>;
+                       };
+               };
+
+               dsi_amoled_samsung_ea8076_panel_pwr_supply {
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+
+                       qcom,panel-supply-entry@0 {
+                               reg = <0x0>;
+                               qcom,supply-name = "vddio";
+                               qcom,supply-min-voltage = <0x1cfde0>;
+                               qcom,supply-max-voltage = <0x1cfde0>;
+                               qcom,supply-enable-load = <0xf230>;
+                               qcom,supply-disable-load = <0x50>;
+                       };
+
+                       qcom,panel-supply-entry@1 {
+                               reg = <0x1>;
+                               qcom,supply-name = "vci";
+                               qcom,supply-min-voltage = <0x2dc6c0>;
+                               qcom,supply-max-voltage = <0x2dc6c0>;
+                               qcom,supply-enable-load = <0xf230>;
+                               qcom,supply-disable-load = <0x50>;
+                               qcom,supply-post-on-sleep = <0xa>;
+                               qcom,supply-pre-off-sleep = <0xa>;
+                       };
+               };
+
+               dsi_amoled_visionox_r66455_panel_pwr_supply {
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+
+                       qcom,panel-supply-entry@0 {
+                               reg = <0x0>;
+                               qcom,supply-name = "vddio";
+                               qcom,supply-min-voltage = <0x1cfde0>;
+                               qcom,supply-max-voltage = <0x1cfde0>;
+                               qcom,supply-enable-load = <0xf230>;
+                               qcom,supply-disable-load = <0x50>;
+                               qcom,supply-post-on-sleep = <0x1>;
+                       };
+
+                       qcom,panel-supply-entry@1 {
+                               reg = <0x1>;
+                               qcom,supply-name = "vci";
+                               qcom,supply-min-voltage = <0x2ab980>;
+                               qcom,supply-max-voltage = <0x2ab980>;
+                               qcom,supply-enable-load = <0xf230>;
+                               qcom,supply-disable-load = <0x50>;
+                               qcom,supply-post-on-sleep = <0xa>;
+                               qcom,supply-pre-off-sleep = <0xa>;
+                       };
+               };
+
+               dsi_nt35596s_panel_pwr_supply {
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+
+                       qcom,panel-supply-entry@0 {
+                               reg = <0x1>;
+                               qcom,supply-name = "vddio";
+                               qcom,supply-min-voltage = <0x1b7740>;
+                               qcom,supply-max-voltage = <0x1b7740>;
+                               qcom,supply-enable-load = <0xf230>;
+                               qcom,supply-disable-load = <0x50>;
+                               qcom,supply-pre-off-sleep = <0x5>;
+                       };
+
+                       qcom,panel-supply-entry@1 {
+                               reg = <0x2>;
+                               qcom,supply-name = "lab";
+                               qcom,supply-min-voltage = <0x4630c0>;
+                               qcom,supply-max-voltage = <0x5b8d80>;
+                               qcom,supply-enable-load = <0x186a0>;
+                               qcom,supply-disable-load = <0x64>;
+                       };
+
+                       qcom,panel-supply-entry@2 {
+                               reg = <0x3>;
+                               qcom,supply-name = "ibb";
+                               qcom,supply-min-voltage = <0x4630c0>;
+                               qcom,supply-max-voltage = <0x5b8d80>;
+                               qcom,supply-enable-load = <0x186a0>;
+                               qcom,supply-disable-load = <0x64>;
+                               qcom,supply-pre-off-sleep = <0x5>;
+                       };
+               };
+
+               dsi_nt36672a_panel_pwr_supply {
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+
+                       qcom,panel-supply-entry@0 {
+                               reg = <0x1>;
+                               qcom,supply-name = "vddio";
+                               qcom,supply-min-voltage = <0x1b7740>;
+                               qcom,supply-max-voltage = <0x1b7740>;
+                               qcom,supply-enable-load = <0xf230>;
+                               qcom,supply-disable-load = <0x50>;
+                               qcom,supply-post-on-sleep = <0x1>;
+                       };
+
+                       qcom,panel-supply-entry@1 {
+                               reg = <0x2>;
+                               qcom,supply-name = "lab";
+                               qcom,supply-min-voltage = <0x53ec60>;
+                               qcom,supply-max-voltage = <0x53ec60>;
+                               qcom,supply-enable-load = <0x186a0>;
+                               qcom,supply-disable-load = <0x64>;
+                       };
+
+                       qcom,panel-supply-entry@2 {
+                               reg = <0x3>;
+                               qcom,supply-name = "ibb";
+                               qcom,supply-min-voltage = <0x53ec60>;
+                               qcom,supply-max-voltage = <0x53ec60>;
+                               qcom,supply-enable-load = <0x186a0>;
+                               qcom,supply-disable-load = <0x64>;
+                       };
+               };
+
+               dsi_ft8719_panel_pwr_supply {
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+
+                       qcom,panel-supply-entry@0 {
+                               reg = <0x1>;
+                               qcom,supply-name = "vddio";
+                               qcom,supply-min-voltage = <0x1b7740>;
+                               qcom,supply-max-voltage = <0x1b7740>;
+                               qcom,supply-enable-load = <0xf230>;
+                               qcom,supply-disable-load = <0x50>;
+                               qcom,supply-post-on-sleep = <0x4>;
+                               qcom,supply-pre-off-sleep = <0x4>;
+                       };
+
+                       qcom,panel-supply-entry@1 {
+                               reg = <0x2>;
+                               qcom,supply-name = "lab";
+                               qcom,supply-min-voltage = <0x53ec60>;
+                               qcom,supply-max-voltage = <0x53ec60>;
+                               qcom,supply-enable-load = <0x186a0>;
+                               qcom,supply-disable-load = <0x64>;
+                               qcom,supply-post-on-sleep = <0x3>;
+                       };
+
+                       qcom,panel-supply-entry@2 {
+                               reg = <0x3>;
+                               qcom,supply-name = "ibb";
+                               qcom,supply-min-voltage = <0x53ec60>;
+                               qcom,supply-max-voltage = <0x3473bc0>;
+                               qcom,supply-enable-load = <0x186a0>;
+                               qcom,supply-disable-load = <0x64>;
+                               qcom,supply-pre-off-sleep = <0x4>;
+                       };
+               };
+
+               qcom,dsi-display@20 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_ss_ea8074_notch_fhd_cmd_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x2f>;
+                       qcom,dsi-phy = <0x343>;
+                       clocks = <0x345 0x6 0x345 0x9>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346 0x347>;
+                       pinctrl-1 = <0x348 0x349>;
+                       qcom,platform-te-gpio = <0x2e 0xa 0x0>;
+                       qcom,platform-reset-gpio = <0x2e 0x6 0x0>;
+                       qcom,dsi-panel = <0x36b>;
+                       vddio-supply = <0x182>;
+                       vci-supply = <0x35f>;
+                       qcom,dsi-display-active;
+               };
+
+               qcom,dsi-display@21 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_tianma_fhd_nt36672a_video_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x2f>;
+                       qcom,dsi-phy = <0x343>;
+                       clocks = <0x345 0x6 0x345 0x9>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346>;
+                       pinctrl-1 = <0x348>;
+                       qcom,dsi-panel = <0x36c>;
+                       vddio-supply = <0x182>;
+                       lab-supply = <0x34b>;
+                       ibb-supply = <0x34c>;
+               };
+
+               qcom,dsi-display@22 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_ebbg_fhd_ft8716_video_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x2f>;
+                       qcom,dsi-phy = <0x343>;
+                       clocks = <0x345 0x6 0x345 0x9>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346 0x347>;
+                       pinctrl-1 = <0x348 0x349>;
+                       qcom,platform-te-gpio = <0x2e 0xa 0x0>;
+                       qcom,platform-reset-gpio = <0x2e 0x6 0x0>;
+                       qcom,dsi-panel = <0x36d>;
+                       vddio-supply = <0x182>;
+                       lab-supply = <0x34b>;
+                       ibb-supply = <0x34c>;
+               };
+
+               qcom,dsi-display@23 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_ebbg_fhd_ft8719_video_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x2f>;
+                       qcom,dsi-phy = <0x343>;
+                       clocks = <0x345 0x6 0x345 0x9>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346>;
+                       pinctrl-1 = <0x348>;
+                       qcom,dsi-panel = <0x36e>;
+                       vddio-supply = <0x182>;
+                       lab-supply = <0x34b>;
+                       ibb-supply = <0x34c>;
+               };
+
+               qcom,dsi-display@24 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_samsung_fhd_ea8076_cmd_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x2f>;
+                       qcom,dsi-phy = <0x343>;
+                       clocks = <0x345 0x6 0x345 0x9>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346 0x347>;
+                       pinctrl-1 = <0x348 0x349>;
+                       qcom,platform-te-gpio = <0x2e 0xa 0x0>;
+                       qcom,platform-reset-gpio = <0x2e 0x6 0x0>;
+                       qcom,dsi-panel = <0x36f>;
+                       vddio-supply = <0x182>;
+                       vci-supply = <0x35f>;
+               };
+
+               qcom,dsi-display@25 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_tianma_rm69299_fhd_cmd_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x2f>;
+                       qcom,dsi-phy = <0x343>;
+                       clocks = <0x345 0x6 0x345 0x9>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346 0x347>;
+                       pinctrl-1 = <0x348 0x349>;
+                       qcom,platform-te-gpio = <0x2e 0xa 0x0>;
+                       qcom,platform-reset-gpio = <0x2e 0x6 0x0>;
+                       qcom,dsi-panel = <0x370>;
+                       vddio-supply = <0x182>;
+                       vci-supply = <0x35f>;
+               };
+
+               qcom,dsi-display@26 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_visionox_fhd_r66455_cmd_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x2f>;
+                       qcom,dsi-phy = <0x343>;
+                       clocks = <0x345 0x6 0x345 0x9>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346 0x347>;
+                       pinctrl-1 = <0x348 0x349>;
+                       qcom,platform-te-gpio = <0x2e 0xa 0x0>;
+                       qcom,platform-reset-gpio = <0x2e 0x6 0x0>;
+                       qcom,dsi-panel = <0x371>;
+                       vddio-supply = <0x182>;
+                       vci-supply = <0x35f>;
+               };
+
+               qcom,dsi-display@27 {
+                       compatible = "qcom,dsi-display";
+                       label = "dsi_visionox_fhd_r66455_vid_display";
+                       qcom,display-type = "primary";
+                       qcom,dsi-ctrl = <0x2f>;
+                       qcom,dsi-phy = <0x343>;
+                       clocks = <0x345 0x6 0x345 0x9>;
+                       clock-names = "mux_byte_clk", "mux_pixel_clk";
+                       pinctrl-names = "panel_active", "panel_suspend";
+                       pinctrl-0 = <0x346 0x347>;
+                       pinctrl-1 = <0x348 0x349>;
+                       qcom,platform-te-gpio = <0x2e 0xa 0x0>;
+                       qcom,platform-reset-gpio = <0x2e 0x6 0x0>;
+                       qcom,dsi-panel = <0x372>;
+                       vddio-supply = <0x182>;
+                       vci-supply = <0x35f>;
+               };
+
+               qcom,camera-flash@0 {
+                       cell-index = <0x0>;
+                       reg = <0x0 0x0>;
+                       compatible = "qcom,camera-flash";
+                       flash-source = <0x373 0x374>;
+                       torch-source = <0x375 0x376>;
+                       switch-source = <0x377>;
+                       status = "ok";
+                       linux,phandle = <0x237>;
+                       phandle = <0x237>;
+               };
+
+               qcom,camera-flash@1 {
+                       cell-index = <0x1>;
+                       reg = <0x1 0x0>;
+                       compatible = "qcom,camera-flash";
+                       flash-source = <0x373 0x374>;
+                       torch-source = <0x375 0x376>;
+                       switch-source = <0x377>;
+                       status = "ok";
+                       linux,phandle = <0x23c>;
+                       phandle = <0x23c>;
+               };
+
+               gpio-regulator@0 {
+                       compatible = "regulator-fixed";
+                       reg = <0x0 0x0>;
+                       regulator-name = "actuator_rear_regulator";
+                       regulator-min-microvolt = <0x2ab980>;
+                       regulator-max-microvolt = <0x2ab980>;
+                       regulator-enable-ramp-delay = <0x64>;
+                       enable-active-high;
+                       gpio = <0x2e 0x1a 0x0>;
+                       vin-supply = <0x22c>;
+                       linux,phandle = <0x222>;
+                       phandle = <0x222>;
+               };
+
+               gpio-regulator@1 {
+                       compatible = "regulator-fixed";
+                       reg = <0x1 0x0>;
+                       regulator-name = "actuator_rear_aux_regulator";
+                       regulator-min-microvolt = <0x2ab980>;
+                       regulator-max-microvolt = <0x2ab980>;
+                       regulator-enable-ramp-delay = <0x64>;
+                       enable-active-high;
+                       gpio = <0x2e 0x15 0x0>;
+                       vin-supply = <0x22c>;
+                       linux,phandle = <0x223>;
+                       phandle = <0x223>;
+               };
+
+               gpio-regulator@2 {
+                       compatible = "regulator-fixed";
+                       reg = <0x2 0x0>;
+                       regulator-name = "camera_vdig_ldo";
+                       regulator-min-microvolt = <0x149970>;
+                       regulator-max-microvolt = <0x149970>;
+                       regulator-enable-ramp-delay = <0x87>;
+                       enable-active-high;
+                       gpio = <0x2e 0x63 0x0>;
+                       linux,phandle = <0x22d>;
+                       phandle = <0x22d>;
+               };
+
+               gpio-regulator@3 {
+                       compatible = "regulator-fixed";
+                       reg = <0x3 0x0>;
+                       regulator-name = "camera_ir_ldo";
+                       regulator-min-microvolt = <0x16e360>;
+                       regulator-max-microvolt = <0x16e360>;
+                       regulator-enable-ramp-delay = <0xe9>;
+                       enable-active-high;
+                       gpio = <0x2e 0x63 0x0>;
+                       vin-supply = <0xe6>;
+                       linux,phandle = <0x232>;
+                       phandle = <0x232>;
+               };
+
+               gpio-regulator@4 {
+                       compatible = "regulator-fixed";
+                       reg = <0x4 0x0>;
+                       regulator-name = "camera_ois_regulator";
+                       regulator-min-microvolt = <0x2ab980>;
+                       regulator-max-microvolt = <0x2ab980>;
+                       regulator-enable-ramp-delay = <0x64>;
+                       enable-active-high;
+                       gpio = <0x2e 0x32 0x0>;
+                       vin-supply = <0x22c>;
+                       linux,phandle = <0x224>;
+                       phandle = <0x224>;
+               };
+
+               gpio-regulator@5 {
+                       compatible = "regulator-fixed";
+                       reg = <0x5 0x0>;
+                       regulator-name = "camera_viodd_ldo";
+                       regulator-min-microvolt = <0x2ab980>;
+                       regulator-max-microvolt = <0x2ab980>;
+                       regulator-enable-ramp-delay = <0x87>;
+                       enable-active-high;
+                       gpio = <0x2e 0x4b 0x0>;
+                       linux,phandle = <0x225>;
+                       phandle = <0x225>;
+               };
+
+               gpio_keys {
+                       compatible = "gpio-keys";
+                       label = "gpio-keys";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <0x378>;
+
+                       vol_up {
+                               label = "volume_up";
+                               gpios = <0x4d 0x6 0x1>;
+                               linux,input-type = <0x1>;
+                               linux,code = <0x73>;
+                               gpio-key,wakeup;
+                               debounce-interval = <0xf>;
+                               linux,can-disable;
+                       };
+
+                       hall_key {
+                               label = "hall_key";
+                               gpios = <0x2e 0x7c 0x1>;
+                               linux,input-type = <0x5>;
+                               linux,code = <0x0>;
+                               gpio-key,wakeup;
+                               debounce-interval = <0xf>;
+                       };
+               };
+
+               disp_vci_vreg {
+                       compatible = "regulator-fixed";
+                       regulator-name = "disp_vci_vreg";
+                       start-delay-us = <0xfa0>;
+                       enable-active-high;
+                       regulator-boot-on;
+                       gpio = <0x2e 0x23 0x0>;
+                       linux,phandle = <0x35f>;
+                       phandle = <0x35f>;
+               };
+
+               disp_vddio_vreg {
+                       compatible = "regulator-fixed";
+                       regulator-name = "disp_vddio_vreg";
+                       startup-delay-us = <0xfa0>;
+                       enable-active-high;
+                       regulator-boot-on;
+                       gpio = <0x2e 0x17 0x0>;
+                       linux,phandle = <0x96>;
+                       phandle = <0x96>;
+               };
+
+               fp_vdd_vreg {
+                       compatible = "regulator-fixed";
+                       regulator-name = "fp_vdd_vreg";
+                       startup-delay-us = <0xfa0>;
+                       enable-active-high;
+                       gpio = <0x2e 0x5e 0x0>;
+               };
+
+               fingerprint_fpc {
+                       status = "ok";
+                       compatible = "fpc,fpc1020";
+                       interrupt-parent = <0x2e>;
+                       interrupts = <0x4f 0x0>;
+                       fpc,gpio_irq = <0x2e 0x4f 0x0>;
+                       pinctrl-names = "fpc1020_reset_reset", "fpc1020_reset_active";
+                       pinctrl-0 = <0x379>;
+                       pinctrl-1 = <0x37a>;
+               };
+
+               fingerprint_goodix {
+                       compatible = "goodix,fingerprint";
+                       gooidx,gpio-reset = <0x2e 0x25 0x0>;
+                       goodix,gpio-irq = <0x2e 0x4f 0x0>;
+                       fp-gpio-pwr = <0x2e 0x5e 0x0>;
+                       status = "ok";
+               };
+
+               spk-id-pin@27 {
+                       compatible = "audio,speaker-id";
+                       audio,speaker-id-gpio = <0x2e 0x1b 0x0>;
+                       pinctrl-names = "pull_down", "pull_up", "no_pull";
+                       pinctrl-0 = <0x37b>;
+                       pinctrl-1 = <0x37c>;
+                       pinctrl-2 = <0x37d>;
+                       linux,phandle = <0x57>;
+                       phandle = <0x57>;
+               };
+
+               thermal-message {
+                       thermal,batt-array-size = "13";
+                       thermal,batt-level-screen-on = "0 2 4 6 8 9 10 11 12 13 14 14 16";
+                       thermal,batt-level-screen-off = "0 1 1 1 3 5 6 6 6 7 9 14 16";
+               };
+
+               xiaomi_touch {
+                       compatible = "xiaomi-touch";
+                       status = "ok";
+                       touch,name = "xiaomi-touch";
+               };
+       };
+
+       chosen {
+               bootargs = "rcupdate.rcu_expedited=1";
+       };
+
+       aliases {
+               ufshc1 = "/soc/ufshc@1d84000";
+               pci-domain0 = "/soc/qcom,pcie@0x1c00000";
+               pci-domain1 = "/soc/qcom,pcie@0x1c08000";
+               sdhc2 = "/soc/sdhci@8804000";
+               serial0 = "/soc/qcom,qup_uart@0xa84000";
+               spi0 = "/soc/spi@a80000";
+               i2c0 = "/soc/i2c@a88000";
+               i2c1 = "/soc/i2c@88c000";
+               hsuart0 = "/soc/qcom,qup_uart@0x898000";
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0x0 0x0 0x0 0x0>;
+       };
+
+       energy-costs {
+               compatible = "sched-energy";
+
+               core-cost0 {
+                       busy-cost-data = <0x493e0 0xc 0x62700 0x11 0x75300 0x15 0x8ca00 0x1b 0x9f600 0x1f 0xb6d00 0x25 0xc9900 0x2a 0xdc500 0x2f 0xef100 0x34 0x101d00 0x39 0x114900 0x3e 0x12c000 0x46 0x143700 0x4e 0x15ae00 0x59 0x172500 0x67 0x189c00 0x7a 0x19c800 0x8d 0x1af400 0xa0>;
+                       idle-cost-data = <0xa 0x8 0x6 0x4>;
+                       linux,phandle = <0x4>;
+                       phandle = <0x4>;
+               };
+
+               core-cost1 {
+                       busy-cost-data = <0x493e0 0xbd 0x62700 0x20b 0x75300 0x2fb 0x8ca00 0x41c 0x9f600 0x4f9 0xb6d00 0x600 0xc9900 0x6c8 0xdc500 0x786 0xef100 0x83c 0x101d00 0x8ec 0x114900 0x998 0x127500 0xa44 0x13a100 0xaf4 0x14cd00 0xbb0 0x164400 0xcb7 0x177000 0xdab 0x189c00 0xeca 0x19c800 0x1020 0x1af400 0x11b7 0x1c2000 0x139b 0x1d4c00 0x15cf 0x1e7800 0x1852 0x1fef00 0x1bd0 0x211b00 0x1ec4 0x224700 0x21b4 0x237300 0x2480 0x249f00 0x272e 0x25cb00 0x2a36 0x26f700 0x2f0d 0x286e00 0x3d46 0x29e500 0x63f2 0x2a3000 0x7530 0x2a7b00 0x88b8 0x2ac600 0x9c40 0x2b5c00 0xc350 0x2d1e00 0xea60>;
+                       idle-cost-data = <0x64 0x50 0x3c 0x28>;
+                       linux,phandle = <0xc>;
+                       phandle = <0xc>;
+               };
+
+               cluster-cost0 {
+                       busy-cost-data = <0x493e0 0x3 0x62700 0x4 0x75300 0x4 0x8ca00 0x4 0x9f600 0x5 0xb6d00 0x5 0xc9900 0x6 0xdc500 0x7 0xef100 0x7 0x101d00 0x8 0x114900 0x9 0x12c000 0x9 0x143700 0xa 0x15ae00 0xb 0x172500 0xc 0x189c00 0xd 0x19c800 0xf 0x1af400 0x11>;
+                       idle-cost-data = <0x4 0x3 0x2 0x1>;
+                       linux,phandle = <0x5>;
+                       phandle = <0x5>;
+               };
+
+               cluster-cost1 {
+                       busy-cost-data = <0x493e0 0x18 0x62700 0x18 0x75300 0x19 0x8ca00 0x19 0x9f600 0x1a 0xb6d00 0x1b 0xc9900 0x1c 0xdc500 0x1d 0xef100 0x1e 0x101d00 0x20 0x114900 0x22 0x127500 0x25 0x13a100 0x28 0x14cd00 0x2d 0x164400 0x32 0x177000 0x39 0x189c00 0x40 0x19c800 0x4a 0x1af400 0x54 0x1c2000 0x60 0x1d4c00 0x6a 0x1e7800 0x71 0x1fef00 0x78 0x211b00 0x7d 0x224700 0x7f 0x237300 0x82 0x249f00 0x87 0x25cb00 0x8c 0x26f700 0x91 0x286e00 0x96 0x29e500 0x9b 0x2a3000 0xa0 0x2a7b00 0xa5 0x2ac600 0xaa 0x2b5c00 0xb4 0x2d1e00 0xbe>;
+                       idle-cost-data = <0x4 0x3 0x2 0x1>;
+                       linux,phandle = <0xd>;
+                       phandle = <0xd>;
+               };
+       };
+
+       psci {
+               compatible = "arm,psci-1.0";
+               method = "smc";
+       };
+
+       vendor {
+               #address-cells = <0x1>;
+               #size-cells = <0x1>;
+               ranges = <0x0 0x0 0x0 0xffffffff>;
+               compatible = "simple-bus";
+
+               ext_5v_boost {
+                       status = "ok";
+                       compatible = "regulator-fixed";
+                       regulator-name = "ext_5v_boost";
+                       gpio = <0x37e 0xa 0x0>;
+                       enable-active-high;
+                       regulator-enable-ramp-delay = <0x640>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <0x37f>;
+               };
+
+               bt_wcn3990 {
+                       compatible = "qca,wcn3990";
+                       qca,bt-vdd-io-supply = <0x380>;
+                       qca,bt-vdd-xtal-supply = <0xdb>;
+                       qca,bt-vdd-core-supply = <0x149>;
+                       qca,bt-vdd-pa-supply = <0x14a>;
+                       qca,bt-vdd-ldo-supply = <0x14b>;
+                       qca,bt-vdd-io-voltage-level = <0x14a140 0x14a140>;
+                       qca,bt-vdd-xtal-voltage-level = <0x1f20c0 0x1f20c0>;
+                       qca,bt-vdd-core-voltage-level = <0x1b7740 0x1b7740>;
+                       qca,bt-vdd-pa-voltage-level = <0x13e5c0 0x13e5c0>;
+                       qca,bt-vdd-ldo-voltage-level = <0x328980 0x328980>;
+                       qca,bt-vdd-io-current-level = <0x1>;
+                       qca,bt-vdd-xtal-current-level = <0x1>;
+                       qca,bt-vdd-core-current-level = <0x1>;
+                       qca,bt-vdd-pa-current-level = <0x1>;
+                       qca,bt-vdd-ldo-current-level = <0x1>;
+               };
+
+               qcom,battery-data {
+                       qcom,batt-id-range-pct = <0xf>;
+                       linux,phandle = <0xb3>;
+                       phandle = <0xb3>;
+
+                       qcom,e1_coslight_3400mAh {
+                               qcom, = <0x18>;
+                               qcom,max-voltage-uv = <0x432380>;
+                               qcom,nom-batt-capacity-mah = <0xd48>;
+                               qcom,batt-id-kohm = <0x64>;
+                               qcom,battery-beta = <0xd6b>;
+                               qcom,fg-cc-cv-threshold-mv = <0x1126>;
+                               qcom,battery-type = "e1_coslight_3400mAh";
+                               qcom,fastchg-current-ma = <0xce4>;
+                               qcom,jeita-fcc-ranges = <0x0 0x32 0x50910 0x33 0x64 0xf1b30 0x65 0x96 0x192d50 0x97 0x1c2 0x325aa0 0x1c3 0x258 0x192d50>;
+                               qcom,jeita-fv-ranges = <0x0 0x32 0x432380 0x33 0x64 0x432380 0x65 0x96 0x432380 0x97 0x1c2 0x432380 0x1c3 0x258 0x3e8fa0>;
+                               qcom,dynamic-fv-ranges = <0x0 0x64 0x432380 0x65 0xc8 0x42d560 0xc9 0x12c 0x428740 0x12d 0x190 0x423920 0x191 0x1f4 0x423920>;
+                               qcom,checksum = <0xf35d>;
+                               qcom,gui-version = "PMI8998GUI - 2.0.0.58";
+                               qcom,fg-profile-data = <0xe41ecbfc 0xac03ef06 0xd71c1002 0x790def0a 0xd8178f23 0xd944d453 0x6b000000 0x11000000 0x13ab 0xddcd0100 0x22000800 0x7dda96e5 0x9b0513fb 0xdb158402 0xacecdd2b 0x2b060920 0x27001400 0xce1f8b05 0x730aaffc 0xbf1c0703 0xf2153412 0x8318d223 0xe94d2b5b 0x6b000000 0xe000000 0x83d5 0xbec2c7cb 0x19000000 0x97e396e5 0x680696f3 0xfff5ba03 0x74077f1b 0xb633ccff 0x7100000 0x60d6646 0x19004000 0xb3010afa 0xff000000 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0>;
+                       };
+
+                       qcom,e1_atl_3400mAh {
+                               qcom, = <0x18>;
+                               qcom,max-voltage-uv = <0x432380>;
+                               qcom,nom-batt-capacity-mah = <0xd48>;
+                               qcom,batt-id-kohm = <0x44>;
+                               qcom,battery-beta = <0xd34>;
+                               qcom,fg-cc-cv-threshold-mv = <0x1126>;
+                               qcom,battery-type = "e1_atl_3400mAh";
+                               qcom,fastchg-current-ma = <0xce4>;
+                               qcom,jeita-fcc-ranges = <0x0 0x32 0x50910 0x33 0x64 0xf1b30 0x65 0x96 0x192d50 0x97 0x1c2 0x325aa0 0x1c3 0x258 0x192d50>;
+                               qcom,jeita-fv-ranges = <0x0 0x32 0x432380 0x33 0x64 0x432380 0x65 0x96 0x432380 0x97 0x1c2 0x432380 0x1c3 0x258 0x3e8fa0>;
+                               qcom,dynamic-fv-ranges = <0x0 0x64 0x432380 0x65 0xc8 0x42d560 0xc9 0x12c 0x428740 0x12d 0x190 0x423920 0x191 0x1f4 0x423920>;
+                               qcom,checksum = <0xc3c7>;
+                               qcom,gui-version = "PMI8998GUI - 2.0.0.58";
+                               qcom,fg-profile-data = <0xf01e5806 0xcb03b7fd 0xd91c0302 0x9c0dc50a 0x2a184023 0x35454c53 0x6d000000 0x12000000 0x100 0xa2cd1aba 0x1f000800 0xb1e355ed 0x1a0655fa 0xce0caf0a 0x43fd6932 0x24060920 0x27001400 0xdd1f7405 0x8d0a3806 0xbb1c1303 0xea153d12 0x8418cf23 0xec4d275b 0x6b000000 0xe000000 0x79d5 0x34c38ccb 0x18000000 0x700055ed 0xc9069e00 0x6ff47802 0x5a06141b 0xa533ccff 0x7100000 0x120d6646 0x18004000 0xbf010afa 0xff000000 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0>;
+                       };
+               };
+
+               extcon_usb1 {
+                       compatible = "linux,extcon-usb-gpio";
+                       vbus-gpio = <0x37e 0x8 0x0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <0x381>;
+                       linux,phandle = <0x33f>;
+                       phandle = <0x33f>;
+               };
+       };
+
+       firmware {
+
+               android {
+                       compatible = "android,firmware";
+
+                       fstab {
+                               compatible = "android,fstab";
+
+                               system {
+                                       compatible = "android,system";
+                                       dev = "/dev/block/platform/soc/1d84000.ufshc/by-name/system";
+                                       type = "ext4";
+                                       mnt_flags = "ro,barrier=1,discard";
+                                       fsmgr_flags = "wait,verify";
+                                       status = "ok";
+                               };
+
+                               vendor {
+                                       compatible = "android,vendor";
+                                       dev = "/dev/block/platform/soc/1d84000.ufshc/by-name/vendor";
+                                       type = "ext4";
+                                       mnt_flags = "ro,barrier=1,discard";
+                                       fsmgr_flags = "wait,verify";
+                                       status = "ok";
+                               };
+                       };
+               };
+       };
+
+       reserved-memory {
+               #address-cells = <0x2>;
+               #size-cells = <0x2>;
+               ranges;
+
+               hyp_region@85700000 {
+                       no-map;
+                       reg = <0x0 0x85700000 0x0 0x600000>;
+               };
+
+               xbl_region@85e00000 {
+                       no-map;
+                       reg = <0x0 0x85d00000 0x0 0x200000>;
+               };
+
+               removed_region@85fc0000 {
+                       no-map;
+                       reg = <0x0 0x85fc0000 0x0 0x4940000>;
+               };
+
+               qseecom_region@0x8ab00000 {
+                       compatible = "shared-dma-pool";
+                       no-map;
+                       reg = <0x0 0x8ab00000 0x0 0x1400000>;
+                       linux,phandle = <0x20e>;
+                       phandle = <0x20e>;
+               };
+
+               camera_region@0x8bf00000 {
+                       compatible = "removed-dma-pool";
+                       no-map;
+                       reg = <0x0 0x8bf00000 0x0 0x500000>;
+                       linux,phandle = <0x243>;
+                       phandle = <0x243>;
+               };
+
+               ips_fw_region@0x8c400000 {
+                       compatible = "removed-dma-pool";
+                       no-map;
+                       reg = <0x0 0x8c400000 0x0 0x10000>;
+                       linux,phandle = <0x146>;
+                       phandle = <0x146>;
+               };
+
+               ipa_gsi_region@0x8c410000 {
+                       compatible = "removed-dma-pool";
+                       no-map;
+                       reg = <0x0 0x8c410000 0x0 0x5000>;
+               };
+
+               gpu_region@0x8c415000 {
+                       compatible = "removed-dma-pool";
+                       no-map;
+                       reg = <0x0 0x8c415000 0x0 0x2000>;
+                       linux,phandle = <0x333>;
+                       phandle = <0x333>;
+               };
+
+               adsp_region@0x8c500000 {
+                       compatible = "removed-dma-pool";
+                       no-map;
+                       reg = <0x0 0x8c500000 0x0 0x1e00000>;
+                       linux,phandle = <0x102>;
+                       phandle = <0x102>;
+               };
+
+               wlan_fw_region@0x8e300000 {
+                       compatible = "removed-dma-pool";
+                       no-map;
+                       reg = <0x0 0x8e300000 0x0 0x100000>;
+               };
+
+               modem_region@0x8e400000 {
+                       compatible = "removed-dma-pool";
+                       no-map;
+                       reg = <0x0 0x8e400000 0x0 0x7800000>;
+                       linux,phandle = <0xfe>;
+                       phandle = <0xfe>;
+               };
+
+               video_region@0x95c00000 {
+                       compatible = "removed-dma-pool";
+                       no-map;
+                       reg = <0x0 0x95c00000 0x0 0x500000>;
+                       linux,phandle = <0x11f>;
+                       phandle = <0x11f>;
+               };
+
+               cdsp_region@0x96100000 {
+                       compatible = "removed-dma-pool";
+                       no-map;
+                       reg = <0x0 0x96100000 0x0 0x800000>;
+                       linux,phandle = <0x11a>;
+                       phandle = <0x11a>;
+               };
+
+               mba_region@0x96900000 {
+                       compatible = "removed-dma-pool";
+                       no-map;
+                       reg = <0x0 0x96900000 0x0 0x200000>;
+                       linux,phandle = <0x101>;
+                       phandle = <0x101>;
+               };
+
+               slpi_region@0x96b00000 {
+                       compatible = "removed-dma-pool";
+                       no-map;
+                       reg = <0x0 0x96b00000 0x0 0x1400000>;
+                       linux,phandle = <0x107>;
+                       phandle = <0x107>;
+               };
+
+               pil_spss_region@0x97f00000 {
+                       compatible = "removed-dma-pool";
+                       no-map;
+                       reg = <0x0 0x97f00000 0x0 0x100000>;
+                       linux,phandle = <0x119>;
+                       phandle = <0x119>;
+               };
+
+               adsp_region {
+                       compatible = "shared-dma-pool";
+                       alloc-ranges = <0x0 0x0 0x0 0xffffffff>;
+                       reusable;
+                       alignment = <0x0 0x400000>;
+                       size = <0x0 0x1000000>;
+                       linux,phandle = <0x11d>;
+                       phandle = <0x11d>;
+               };
+
+               qseecom_ta_region {
+                       compatible = "shared-dma-pool";
+                       alloc-ranges = <0x0 0x0 0x0 0xffffffff>;
+                       reusable;
+                       alignment = <0x0 0x400000>;
+                       size = <0x0 0x1000000>;
+                       linux,phandle = <0x20f>;
+                       phandle = <0x20f>;
+               };
+
+               secure_sp_region {
+                       compatible = "shared-dma-pool";
+                       alloc-ranges = <0x0 0x0 0x0 0xffffffff>;
+                       reusable;
+                       alignment = <0x0 0x400000>;
+                       size = <0x0 0x800000>;
+                       linux,phandle = <0x210>;
+                       phandle = <0x210>;
+               };
+
+               cont_splash_region@9d400000 {
+                       reg = <0x0 0x9d400000 0x0 0x2400000>;
+                       label = "cont_splash_region";
+               };
+
+               secure_display_region {
+                       compatible = "shared-dma-pool";
+                       alloc-ranges = <0x0 0x0 0x0 0xffffffff>;
+                       reusable;
+                       alignment = <0x0 0x400000>;
+                       size = <0x0 0x5c00000>;
+                       linux,phandle = <0x211>;
+                       phandle = <0x211>;
+               };
+
+               mem_dump_region {
+                       compatible = "shared-dma-pool";
+                       reusable;
+                       size = <0x0 0x2400000>;
+                       linux,phandle = <0x17d>;
+                       phandle = <0x17d>;
+               };
+
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       alloc-ranges = <0x0 0x0 0x0 0xffffffff>;
+                       reusable;
+                       alignment = <0x0 0x400000>;
+                       size = <0x0 0x2000000>;
+                       linux,cma-default;
+               };
+
+               ramdump_fb_region@af000000 {
+                       compatible = "removed-dma-pool";
+                       no-map;
+                       reg = <0x0 0xaf000000 0x0 0x1000000>;
+               };
+       };
+
+       regulator-pm8998-s4 {
+               compatible = "qcom,stub-regulator";
+               regulator-name = "pm8998_s4";
+               qcom,hpm-min-load = <0x186a0>;
+               regulator-min-microvolt = <0x1b7740>;
+               regulator-max-microvolt = <0x1b7740>;
+               linux,phandle = <0xe6>;
+               phandle = <0xe6>;
+       };
+};
diff --git a/firstrun.sh b/firstrun.sh
new file mode 100644 (file)
index 0000000..3b74743
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/bash
+# based on the instructions from edk2-platform
+# do this first:
+# https://github.com/tianocore/tianocore.github.io/wiki/Using-EDK-II-with-Native-GCC#Install_required_software_from_apt
+set -e
+. firstrun_common.sh
+make -C ../edk2/BaseTools
+
diff --git a/firstrun_common.sh b/firstrun_common.sh
new file mode 100644 (file)
index 0000000..09a5b06
--- /dev/null
@@ -0,0 +1,3 @@
+export PACKAGES_PATH=$PWD/../edk2:$PWD/../edk2-platforms:$PWD
+export WORKSPACE=$PWD/workspace
+. ../edk2/edksetup.sh
diff --git a/ramdisk b/ramdisk
new file mode 100644 (file)
index 0000000..f0f877c
--- /dev/null
+++ b/ramdisk
@@ -0,0 +1 @@
+fake
\ No newline at end of file
diff --git a/sdm845Pkg/AcpiTables/AcpiSsdtRootPci.asl b/sdm845Pkg/AcpiTables/AcpiSsdtRootPci.asl
new file mode 100644 (file)
index 0000000..1ae3cfb
--- /dev/null
@@ -0,0 +1,219 @@
+/** @file
+  Differentiated System Description Table Fields (SSDT)
+
+  Copyright (c) 2014-2015, ARM Ltd. All rights reserved.<BR>
+    This program and the accompanying materials
+  are licensed and made available under the terms and conditions of the BSD License
+  which accompanies this distribution.  The full text of the license may be found at
+  http://opensource.org/licenses/bsd-license.php
+
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+#include "ArmPlatform.h"
+
+/*
+  See ACPI 6.1 Section 6.2.13
+
+  There are two ways that _PRT can be used. ...
+
+  In the first model, a PCI Link device is used to provide additional
+  configuration information such as whether the interrupt is Level or
+  Edge triggered, it is active High or Low, Shared or Exclusive, etc.
+
+  In the second model, the PCI interrupts are hardwired to specific
+  interrupt inputs on the interrupt controller and are not
+  configurable. In this case, the Source field in _PRT does not
+  reference a device, but instead contains the value zero, and the
+  Source Index field contains the global system interrupt to which the
+  PCI interrupt is hardwired.
+
+  We use the first model with link indirection to set the correct
+  interrupt type as PCI defaults (Level Triggered, Active Low) are not
+  compatible with GICv2.
+*/
+#define LNK_DEVICE(Unique_Id, Link_Name, irq)                                                  \
+       Device(Link_Name) {                                                                     \
+           Name(_HID, EISAID("PNP0C0F"))                                                       \
+           Name(_UID, Unique_Id)                                                               \
+           Name(_PRS, ResourceTemplate() {                                                     \
+               Interrupt(ResourceProducer, Level, ActiveHigh, Exclusive) { irq }               \
+           })                                                                                  \
+           Method (_CRS, 0) { Return (_PRS) }                                                  \
+           Method (_SRS, 1) { }                                                                \
+           Method (_DIS) { }                                                                   \
+       }
+
+#define PRT_ENTRY(Address, Pin, Link)                                                            \
+        Package (4) {                                                                             \
+            Address,    /* uses the same format as _ADR */                                        \
+            Pin,        /* The PCI pin number of the device (0-INTA, 1-INTB, 2-INTC, 3-INTD). */  \
+            Link,       /* Interrupt allocated via Link device. */                               \
+            Zero        /* global system interrupt number (no used) */                           \
+          }
+
+/*
+  See Reference [1] 6.1.1
+  "High word–Device #, Low word–Function #. (for example, device 3, function 2 is
+   0x00030002). To refer to all the functions on a device #, use a function number of FFFF)."
+*/
+#define ROOT_PRT_ENTRY(Pin, Link)   PRT_ENTRY(0x0000FFFF, Pin, Link)
+                                                    // Device 0 for Bridge.
+
+
+DefinitionBlock("SsdtPci.aml", "SSDT", 1, "ARMLTD", "ARM-JUNO", EFI_ACPI_ARM_OEM_REVISION) {
+  Scope(_SB) {
+       //
+       // PCI Root Complex
+       //
+       LNK_DEVICE(1, LNKA, 168)
+       LNK_DEVICE(2, LNKB, 169)
+       LNK_DEVICE(3, LNKC, 170)
+       LNK_DEVICE(4, LNKD, 171)
+
+       Device(PCI0)
+    {
+               Name(_HID, EISAID("PNP0A08")) // PCI Express Root Bridge
+               Name(_CID, EISAID("PNP0A03")) // Compatible PCI Root Bridge
+               Name(_SEG, Zero) // PCI Segment Group number
+               Name(_BBN, Zero) // PCI Base Bus Number
+               Name(_CCA, 1)    // Initially mark the PCI coherent (for JunoR1)
+
+        // Root Complex 0
+        Device (RP0) {
+            Name(_ADR, 0xF0000000)    // Dev 0, Func 0
+        }
+
+               // PCI Routing Table
+               Name(_PRT, Package() {
+                       ROOT_PRT_ENTRY(0, LNKA),   // INTA
+                       ROOT_PRT_ENTRY(1, LNKB),   // INTB
+                       ROOT_PRT_ENTRY(2, LNKC),   // INTC
+                       ROOT_PRT_ENTRY(3, LNKD),   // INTD
+               })
+        // Root complex resources
+               Method (_CRS, 0, Serialized) {
+                       Name (RBUF, ResourceTemplate () {
+                               WordBusNumber ( // Bus numbers assigned to this root
+                                       ResourceProducer,
+                                       MinFixed, MaxFixed, PosDecode,
+                                       0,   // AddressGranularity
+                                       0,   // AddressMinimum - Minimum Bus Number
+                                       255, // AddressMaximum - Maximum Bus Number
+                                       0,   // AddressTranslation - Set to 0
+                                       256  // RangeLength - Number of Busses
+                               )
+
+                               DWordMemory ( // 32-bit BAR Windows
+                                       ResourceProducer, PosDecode,
+                                       MinFixed, MaxFixed,
+                                       Cacheable, ReadWrite,
+                                       0x00000000,                                                     // Granularity
+                                       0x50000000,                                                     // Min Base Address
+                                       0x57FFFFFF,                                                     // Max Base Address
+                                       0x00000000,                                                     // Translate
+                                       0x08000000                                                              // Length
+                               )
+
+                               QWordMemory ( // 64-bit BAR Windows
+                                       ResourceProducer, PosDecode,
+                                       MinFixed, MaxFixed,
+                                       Cacheable, ReadWrite,
+                                       0x00000000,                                                     // Granularity
+                                       0x4000000000,                                                   // Min Base Address
+                                       0x40FFFFFFFF,                                                   // Max Base Address
+                                       0x00000000,                                                     // Translate
+                                       0x100000000                                                             // Length
+                               )
+
+                               DWordIo ( // IO window
+                                       ResourceProducer,
+                                       MinFixed,
+                                       MaxFixed,
+                                       PosDecode,
+                                       EntireRange,
+                                       0x00000000,                                                     // Granularity
+                                       0x00000000,                                                     // Min Base Address
+                                       0x007fffff,                                                     // Max Base Address
+                                       0x5f800000,                                                     // Translate
+                                       0x00800000,                                                     // Length
+                                       ,,,TypeTranslation
+                               )
+                       }) // Name(RBUF)
+
+                       Return (RBUF)
+               } // Method(_CRS)
+
+               //
+               // OS Control Handoff
+               //
+               Name(SUPP, Zero) // PCI _OSC Support Field value
+               Name(CTRL, Zero) // PCI _OSC Control Field value
+
+               /*
+         See [1] 6.2.10, [2] 4.5
+               */
+               Method(_OSC,4) {
+                       // Check for proper UUID
+                       If(LEqual(Arg0,ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
+                               // Create DWord-adressable fields from the Capabilities Buffer
+                               CreateDWordField(Arg3,0,CDW1)
+                               CreateDWordField(Arg3,4,CDW2)
+                               CreateDWordField(Arg3,8,CDW3)
+
+                               // Save Capabilities DWord2 & 3
+                               Store(CDW2,SUPP)
+                               Store(CDW3,CTRL)
+
+                               // Only allow native hot plug control if OS supports:
+                               // * ASPM
+                               // * Clock PM
+                               // * MSI/MSI-X
+                               If(LNotEqual(And(SUPP, 0x16), 0x16)) {
+                                       And(CTRL,0x1E,CTRL) // Mask bit 0 (and undefined bits)
+                               }
+
+                               // Always allow native PME, AER (no dependencies)
+
+                               // Never allow SHPC (no SHPC controller in this system)
+                               And(CTRL,0x1D,CTRL)
+
+#if 0
+                               If(LNot(And(CDW1,1))) {         // Query flag clear?
+                                       // Disable GPEs for features granted native control.
+                                       If(And(CTRL,0x01)) {    // Hot plug control granted?
+                                               Store(0,HPCE)           // clear the hot plug SCI enable bit
+                                               Store(1,HPCS)           // clear the hot plug SCI status bit
+                                       }
+                                       If(And(CTRL,0x04)) {    // PME control granted?
+                                               Store(0,PMCE)           // clear the PME SCI enable bit
+                                               Store(1,PMCS)           // clear the PME SCI status bit
+                                       }
+                                       If(And(CTRL,0x10)) {    // OS restoring PCIe cap structure?
+                                               // Set status to not restore PCIe cap structure
+                                               // upon resume from S3
+                                               Store(1,S3CR)
+                                       }
+                               }
+#endif
+
+                               If(LNotEqual(Arg1,One)) {       // Unknown revision
+                                       Or(CDW1,0x08,CDW1)
+                               }
+
+                               If(LNotEqual(CDW3,CTRL)) {      // Capabilities bits were masked
+                                       Or(CDW1,0x10,CDW1)
+                               }
+                               // Update DWORD3 in the buffer
+                               Store(CTRL,CDW3)
+                               Return(Arg3)
+                       } Else {
+                               Or(CDW1,4,CDW1) // Unrecognized UUID
+                               Return(Arg3)
+                       }
+               } // End _OSC
+    } // PCI0
+  }
+}
diff --git a/sdm845Pkg/AcpiTables/AcpiTables.inf b/sdm845Pkg/AcpiTables/AcpiTables.inf
new file mode 100644 (file)
index 0000000..a30e4b6
--- /dev/null
@@ -0,0 +1,65 @@
+## @file
+#
+#  ACPI table data and ASL sources required to boot the platform.
+#
+#  Copyright (c) 2014-2017, ARM Ltd. All rights reserved.
+#
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at
+#  http://opensource.org/licenses/bsd-license.php
+#
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+##
+
+[Defines]
+  INF_VERSION                    = 0x00010005
+  BASE_NAME                      = sdm845AcpiTables
+  FILE_GUID                      = 7E374E25-8E01-4FEE-87F2-390C23C606CD # Must be this
+  MODULE_TYPE                    = USER_DEFINED
+  VERSION_STRING                 = 1.0
+
+[Sources]
+  Dsdt.asl
+  Dbg2.aslc
+  #Spcr.aslc
+  Fadt.aslc
+  Gtdt.aslc
+  Madt.aslc
+  #AcpiSsdtRootPci.asl          # Juno R1 specific
+
+[Packages]
+  ArmPkg/ArmPkg.dec
+  ArmPlatformPkg/ArmPlatformPkg.dec
+  EmbeddedPkg/EmbeddedPkg.dec
+  MdePkg/MdePkg.dec
+  MdeModulePkg/MdeModulePkg.dec
+  sdm845Pkg/sdm845Pkg.dec
+
+[FixedPcd]
+  gArmPlatformTokenSpaceGuid.PcdCoreCount
+  gArmTokenSpaceGuid.PcdGicDistributorBase
+  gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase
+  gArmTokenSpaceGuid.PcdGicRedistributorsBase
+
+  gArmTokenSpaceGuid.PcdArmArchTimerSecIntrNum
+  gArmTokenSpaceGuid.PcdArmArchTimerIntrNum
+  gArmTokenSpaceGuid.PcdArmArchTimerHypIntrNum
+  gArmTokenSpaceGuid.PcdArmArchTimerVirtIntrNum
+
+  gArmTokenSpaceGuid.PcdGenericWatchdogControlBase
+  gArmTokenSpaceGuid.PcdGenericWatchdogRefreshBase
+
+  #
+  # PL011 UART Settings for Serial Port Console Redirection
+  #
+  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase
+  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate
+  gArmPlatformTokenSpaceGuid.PL011UartClkInHz
+  gArmPlatformTokenSpaceGuid.PL011UartInterrupt
+
+  gArmPlatformTokenSpaceGuid.PcdSerialDbgRegisterBase
+
+  gArmPlatformTokenSpaceGuid.PcdWatchdogCount
diff --git a/sdm845Pkg/AcpiTables/Dbg2.aslc b/sdm845Pkg/AcpiTables/Dbg2.aslc
new file mode 100644 (file)
index 0000000..fcddfa0
--- /dev/null
@@ -0,0 +1,94 @@
+/** @file
+*  DBG2 Table
+*
+*  Copyright (c) 2012-2016, ARM Limited. All rights reserved.
+*
+*  This program and the accompanying materials
+*  are licensed and made available under the terms and conditions of the BSD License
+*  which accompanies this distribution.  The full text of the license may be found at
+*  http://opensource.org/licenses/bsd-license.php
+*
+*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+*
+**/
+
+#include "ArmPlatform.h"
+#include <Library/AcpiLib.h>
+#include <Library/ArmLib.h>
+#include <Library/PcdLib.h>
+#include <IndustryStandard/Acpi.h>
+#include <IndustryStandard/DebugPort2Table.h>
+
+#pragma pack(1)
+
+#define DBG2_NUM_DEBUG_PORTS                       0
+#define DBG2_NUMBER_OF_GENERIC_ADDRESS_REGISTERS   1
+#define DBG2_NAMESPACESTRING_FIELD_SIZE            8
+#define PL011_UART_LENGTH                          0x1000
+
+#define NAME_STR_UART1     {'C', 'O', 'M', '1', '\0', '\0', '\0', '\0'}
+
+typedef struct {
+  EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT Dbg2Device;
+  EFI_ACPI_5_1_GENERIC_ADDRESS_STRUCTURE        BaseAddressRegister;
+  UINT32                                        AddressSize;
+  UINT8                                         NameSpaceString[DBG2_NAMESPACESTRING_FIELD_SIZE];
+} DBG2_DEBUG_DEVICE_INFORMATION;
+
+typedef struct {
+  EFI_ACPI_DEBUG_PORT_2_DESCRIPTION_TABLE       Description;
+  DBG2_DEBUG_DEVICE_INFORMATION                 Dbg2DeviceInfo[DBG2_NUM_DEBUG_PORTS];
+} DBG2_TABLE;
+
+
+#define DBG2_DEBUG_PORT_DDI(NumReg, SubType, UartBase, UartAddrLen, UartNameStr) {                                    \
+    {                                                                                                                 \
+      EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT_REVISION,         /* UINT8     Revision */                        \
+      sizeof (DBG2_DEBUG_DEVICE_INFORMATION),                         /* UINT16    Length */                          \
+      NumReg,                                                         /* UINT8     NumberofGenericAddressRegisters */ \
+      DBG2_NAMESPACESTRING_FIELD_SIZE,                                /* UINT16    NameSpaceStringLength */           \
+      OFFSET_OF (DBG2_DEBUG_DEVICE_INFORMATION, NameSpaceString),     /* UINT16    NameSpaceStringOffset */           \
+      0,                                                              /* UINT16    OemDataLength */                   \
+      0,                                                              /* UINT16    OemDataOffset */                   \
+      EFI_ACPI_DBG2_PORT_TYPE_SERIAL,                                 /* UINT16    Port Type */                       \
+      SubType,                                                        /* UINT16    Port Subtype */                    \
+      {EFI_ACPI_RESERVED_BYTE, EFI_ACPI_RESERVED_BYTE},               /* UINT8     Reserved[2] */                     \
+      OFFSET_OF (DBG2_DEBUG_DEVICE_INFORMATION, BaseAddressRegister), /* UINT16    BaseAddressRegister Offset */      \
+      OFFSET_OF (DBG2_DEBUG_DEVICE_INFORMATION, AddressSize)          /* UINT16    AddressSize Offset */              \
+    },                                                                                                                \
+    ARM_GAS32 (UartBase),                            /* EFI_ACPI_5_1_GENERIC_ADDRESS_STRUCTURE BaseAddressRegister */ \
+    UartAddrLen,                                     /* UINT32  AddressSize */                                        \
+    UartNameStr                                      /* UINT8   NameSpaceString[MAX_DBG2_NAME_LEN] */                 \
+  }
+
+
+STATIC DBG2_TABLE Dbg2 = {
+  {
+    ARM_ACPI_HEADER (EFI_ACPI_5_1_DEBUG_PORT_2_TABLE_SIGNATURE,
+                       DBG2_TABLE,
+                       EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT_REVISION),
+    OFFSET_OF (DBG2_TABLE, Dbg2DeviceInfo),
+    DBG2_NUM_DEBUG_PORTS                                              /* UINT32  NumberDbgDeviceInfo */
+  },
+  {
+#if 0
+    /*
+     * Kernel Debug Port
+     */
+    DBG2_DEBUG_PORT_DDI (DBG2_NUMBER_OF_GENERIC_ADDRESS_REGISTERS,
+                          EFI_ACPI_DBG2_PORT_SUBTYPE_SERIAL_ARM_PL011_UART,
+                          FixedPcdGet64 (PcdSerialDbgRegisterBase),
+                          PL011_UART_LENGTH,
+                          NAME_STR_UART1),
+#endif
+  }
+};
+
+#pragma pack()
+
+//
+// Reference the table being generated to prevent the optimizer from removing
+// the data structure from the executable
+//
+VOID* CONST ReferenceAcpiTable = &Dbg2;
diff --git a/sdm845Pkg/AcpiTables/Dsdt.asl b/sdm845Pkg/AcpiTables/Dsdt.asl
new file mode 100644 (file)
index 0000000..97db11c
--- /dev/null
@@ -0,0 +1,400 @@
+/** @file
+  Differentiated System Description Table Fields (DSDT)
+
+  Copyright (c) 2014-2018, ARM Ltd. All rights reserved.<BR>
+    This program and the accompanying materials
+  are licensed and made available under the terms and conditions of the BSD License
+  which accompanies this distribution.  The full text of the license may be found at
+  http://opensource.org/licenses/bsd-license.php
+
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+#include "ArmPlatform.h"
+
+DefinitionBlock("DsdtTable.aml", "DSDT", 1, "ARMLTD", "ARM-JUNO", EFI_ACPI_ARM_OEM_REVISION) {
+  Scope(_SB) {
+    //
+    // A57x2-A53x4 Processor declaration
+    //
+    Method (_OSC, 4, Serialized)  { // _OSC: Operating System Capabilities
+      CreateDWordField (Arg3, 0x00, STS0)
+      CreateDWordField (Arg3, 0x04, CAP0)
+#if 0
+      If ((Arg0 == ToUUID ("0811b06e-4a27-44f9-8d60-3cbbc22e7b48") /* Platform-wide Capabilities */)) {
+        If (!(Arg1 == One)) {
+          STS0 &= ~0x1F
+          STS0 |= 0x0A
+        } Else {
+          If ((CAP0 & 0x100)) {
+            CAP0 &= ~0x100 /* No support for OS Initiated LPI */
+            STS0 &= ~0x1F
+            STS0 |= 0x12
+          }
+        }
+      } Else {
+        STS0 &= ~0x1F
+        STS0 |= 0x06
+      }
+#endif // platformwide
+      Return (Arg3)
+    }
+    Device (CLU0) { // Cluster0 state
+      Name(_HID, "ACPI0010")
+      Name(_UID, 1)
+#if 0
+      Name (_LPI, Package() {
+        0, // Version
+        0, // Level Index
+        1, // Count
+        Package() { // Power Gating state for Cluster
+          2500, // Min residency (uS)
+          1150, // Wake latency (uS)
+          1, // Flags
+          1, // Arch Context Flags
+          100, //Residency Counter Frequency
+          0, // No Parent State
+          0x01000000, // Integer Entry method
+          ResourceTemplate() { // Null Residency Counter
+            Register (SystemMemory, 0, 0, 0, 0)
+          },
+          ResourceTemplate() { // Null Usage Counter
+            Register (SystemMemory, 0, 0, 0, 0)
+          },
+          "CluPwrDn"
+        },
+      })
+      Name(PLPI, Package() {
+        0, // Version
+        0, // Level Index
+        2, // Count
+        Package() { // WFI for CPU
+          1, // Min residency (uS)
+          1, // Wake latency (uS)
+          1, // Flags
+          0, // Arch Context Flags
+          100, //Residency Counter Frequency
+          0, // No parent state
+          ResourceTemplate () {
+            // Register Entry method
+            Register (FFixedHW,
+              0x20,               // Bit Width
+              0x00,               // Bit Offset
+              0xFFFFFFFF,         // Address
+              0x03,               // Access Size
+              )
+          },
+          ResourceTemplate() { // Null Residency Counter
+            Register (SystemMemory, 0, 0, 0, 0)
+          },
+          ResourceTemplate() { // Null Usage Counter
+            Register (SystemMemory, 0, 0, 0, 0)
+          },
+          "WFI",
+        },
+        Package() { // Power Gating state for CPU
+          150, // Min residency (uS)
+          350, // Wake latency (uS)
+          1, // Flags
+          1, // Arch Context Flags
+          100, //Residency Counter Frequency
+          1, // Parent node can be in any state
+          ResourceTemplate () {
+            // Register Entry method
+            Register (FFixedHW,
+              0x20,               // Bit Width
+              0x00,               // Bit Offset
+              0x00010000,         // Address
+              0x03,               // Access Size
+              )
+          },
+          ResourceTemplate() { // Null Residency Counter
+            Register (SystemMemory, 0, 0, 0, 0)
+          },
+          ResourceTemplate() { // Null Usage Counter
+            Register (SystemMemory, 0, 0, 0, 0)
+          },
+          "CorePwrDn"
+        },
+      })
+#endif // power
+      Device(CPU0) { // A57-0: Cluster 0, Cpu 0
+        Name(_HID, "ACPI0007")
+        Name(_UID, 0)
+#if 0
+        Method (_LPI, 0, NotSerialized) {
+          return(PLPI)
+        }
+#endif
+      }
+#if 0
+      Device(CPU1) { // A57-1: Cluster 0, Cpu 1
+        Name(_HID, "ACPI0007")
+        Name(_UID, 5)
+        Method (_LPI, 0, NotSerialized) {
+          return(PLPI)
+        }
+      }
+#endif // cpu 0
+    }
+#if 0
+    Device (CLU1) { // Cluster1 state
+      Name(_HID, "ACPI0010")
+      Name(_UID, 2)
+      Name (_LPI, Package() {
+        0, // Version
+        0, // Level Index
+        1, // Count
+        Package() { // Power Gating state for Cluster
+          2500, // Min residency (uS)
+          1150, // Wake latency (uS)
+          1, // Flags
+          1, // Arch Context Flags
+          100, //Residency Counter Frequency
+          0, // No Parent State
+          0x01000000, // Integer Entry method
+          ResourceTemplate() { // Null Residency Counter
+            Register (SystemMemory, 0, 0, 0, 0)
+          },
+          ResourceTemplate() { // Null Usage Counter
+            Register (SystemMemory, 0, 0, 0, 0)
+          },
+          "CluPwrDn"
+        },
+      })
+      Name(PLPI, Package() {
+        0, // Version
+        0, // Level Index
+        2, // Count
+        Package() { // WFI for CPU
+          1, // Min residency (uS)
+          1, // Wake latency (uS)
+          1, // Flags
+          0, // Arch Context Flags
+          100, //Residency Counter Frequency
+          0, // No parent state
+          ResourceTemplate () {
+            // Register Entry method
+            Register (FFixedHW,
+              0x20,               // Bit Width
+              0x00,               // Bit Offset
+              0xFFFFFFFF,         // Address
+              0x03,               // Access Size
+              )
+          },
+          ResourceTemplate() { // Null Residency Counter
+            Register (SystemMemory, 0, 0, 0, 0)
+          },
+          ResourceTemplate() { // Null Usage Counter
+            Register (SystemMemory, 0, 0, 0, 0)
+          },
+          "WFI",
+        },
+        Package() { // Power Gating state for CPU
+          150, // Min residency (uS)
+          350, // Wake latency (uS)
+          1, // Flags
+          1, // Arch Context Flags
+          100, //Residency Counter Frequency
+          1, // Parent node can be in any state
+          ResourceTemplate () {
+            // Register Entry method
+            Register (FFixedHW,
+              0x20,               // Bit Width
+              0x00,               // Bit Offset
+              0x00010000,         // Address
+              0x03,               // Access Size
+              )
+          },
+          ResourceTemplate() { // Null Residency Counter
+            Register (SystemMemory, 0, 0, 0, 0)
+          },
+          ResourceTemplate() { // Null Usage Counter
+            Register (SystemMemory, 0, 0, 0, 0)
+          },
+          "CorePwrDn"
+        },
+      })
+      Device(CPU2) { // A53-0: Cluster 1, Cpu 0
+        Name(_HID, "ACPI0007")
+        Name(_UID, 0)
+        Method (_LPI, 0, NotSerialized) {
+          return(PLPI)
+        }
+      }
+      Device(CPU3) { // A53-1: Cluster 1, Cpu 1
+        Name(_HID, "ACPI0007")
+        Name(_UID, 1)
+        Method (_LPI, 0, NotSerialized) {
+          return(PLPI)
+        }
+      }
+      Device(CPU4) { // A53-2: Cluster 1, Cpu 2
+        Name(_HID, "ACPI0007")
+        Name(_UID, 2)
+        Method (_LPI, 0, NotSerialized) {
+          return(PLPI)
+        }
+      }
+      Device(CPU5) { // A53-3: Cluster 1, Cpu 3
+        Name(_HID, "ACPI0007")
+        Name(_UID, 3)
+        Method (_LPI, 0, NotSerialized) {
+          return(PLPI)
+        }
+      }
+    }
+#endif // cluster 1
+
+#if 0
+    //
+    // Keyboard and Mouse
+    //
+    Device(KMI0) {
+      Name(_HID, "ARMH0501")
+      Name(_CID, "PL050_KBD")
+      Name(_CRS, ResourceTemplate() {
+              Memory32Fixed(ReadWrite, 0x1C060008, 0x4)
+              Memory32Fixed(ReadWrite, 0x1C060000, 0x4)
+              Memory32Fixed(ReadOnly, 0x1C060004, 0x4)
+              Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 197 }
+      })
+    }
+
+    //
+    // LAN9118 Ethernet
+    //
+    Device(ETH0) {
+      Name(_HID, "ARMH9118")
+      Name(_UID, Zero)
+      Name(_CRS, ResourceTemplate() {
+              Memory32Fixed(ReadWrite, 0x18000000, 0x1000)
+              Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 192 }
+      })
+      Name(_DSD, Package() {
+                   ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+                       Package() {
+                               Package(2) {"phy-mode", "mii"},
+                               Package(2) {"reg-io-width", 4 },
+                               Package(2) {"smsc,irq-active-high",1},
+                               Package(2) {"smsc,irq-push-pull",1}
+                      }
+      }) // _DSD()
+    }
+
+    // UART PL011
+    Device(COM0) {
+      Name(_HID, "ARMH0011")
+      Name(_CID, "PL011")
+      Name(_UID, Zero)
+      Name(_CRS, ResourceTemplate() {
+        Memory32Fixed(ReadWrite, 0x7FF80000, 0x1000)
+        Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 115 }
+      })
+    }
+
+    //
+    // USB EHCI Host Controller
+    //
+    Device(USB0){
+        Name(_HID, "ARMH0D20")
+        Name(_CID, "PNP0D20")
+        Name(_UID, 2)
+        Name(_CCA, 0) //EHCI on this platform is not coherent!
+
+        Method(_CRS, 0x0, Serialized){
+            Name(RBUF, ResourceTemplate(){
+                Memory32Fixed(ReadWrite, 0x7FFC0000, 0x10000)
+                Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) {149}  // INT ID=149 GIC IRQ ID=117 for Juno SoC USB EHCI Controller
+            })
+            Return(RBUF)
+        }
+
+        //
+        // Root Hub
+        //
+        Device(RHUB){
+            Name(_ADR, 0x00000000)  // Address of Root Hub should be 0 as per ACPI 5.0 spec
+
+            //
+            // Ports connected to Root Hub
+            //
+            Device(HUB1){
+                Name(_ADR, 0x00000001)
+                Name(_UPC, Package(){
+                    0x00,       // Port is NOT connectable
+                    0xFF,       // Don't care
+                    0x00000000, // Reserved 0 must be zero
+                    0x00000000  // Reserved 1 must be zero
+                })
+
+                Device(PRT1){
+                    Name(_ADR, 0x00000001)
+                    Name(_UPC, Package(){
+                        0xFF,        // Port is connectable
+                        0x00,        // Port connector is A
+                        0x00000000,
+                        0x00000000
+                    })
+                    Name(_PLD, Package(){
+                        Buffer(0x10){
+                            0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                            0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+                        }
+                    })
+                } // USB0_RHUB_HUB1_PRT1
+                Device(PRT2){
+                    Name(_ADR, 0x00000002)
+                    Name(_UPC, Package(){
+                        0xFF,        // Port is connectable
+                        0x00,        // Port connector is A
+                        0x00000000,
+                        0x00000000
+                    })
+                    Name(_PLD, Package(){
+                        Buffer(0x10){
+                            0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                            0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+                        }
+                    })
+                } // USB0_RHUB_HUB1_PRT2
+
+                Device(PRT3){
+                    Name(_ADR, 0x00000003)
+                    Name(_UPC, Package(){
+                        0xFF,        // Port is connectable
+                        0x00,        // Port connector is A
+                        0x00000000,
+                        0x00000000
+                    })
+                    Name(_PLD, Package(){
+                        Buffer(0x10){
+                            0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                            0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+                        }
+                    })
+                } // USB0_RHUB_HUB1_PRT3
+
+                Device(PRT4){
+                    Name(_ADR, 0x00000004)
+                    Name(_UPC, Package(){
+                        0xFF,        // Port is connectable
+                        0x00,        // Port connector is A
+                        0x00000000,
+                        0x00000000
+                    })
+                    Name(_PLD, Package(){
+                        Buffer(0x10){
+                            0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                            0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+                        }
+                    })
+                } // USB0_RHUB_HUB1_PRT4
+            } // USB0_RHUB_HUB1
+        } // USB0_RHUB
+    } // USB0
+#endif
+  } // Scope(_SB)
+}
diff --git a/sdm845Pkg/AcpiTables/Fadt.aslc b/sdm845Pkg/AcpiTables/Fadt.aslc
new file mode 100644 (file)
index 0000000..5ae03b7
--- /dev/null
@@ -0,0 +1,99 @@
+/** @file
+*  Fixed ACPI Description Table (FADT)
+*
+*  Copyright (c) 2012 - 2016, ARM Limited. All rights reserved.
+*
+*  This program and the accompanying materials
+*  are licensed and made available under the terms and conditions of the BSD License
+*  which accompanies this distribution.  The full text of the license may be found at
+*  http://opensource.org/licenses/bsd-license.php
+*
+*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+*
+**/
+
+#include "ArmPlatform.h"
+#include <Library/AcpiLib.h>
+#include <IndustryStandard/Acpi.h>
+
+#ifdef ARM_JUNO_ACPI_5_0
+EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE Fadt = {
+  ARM_ACPI_HEADER (
+    EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE,
+    EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE,
+    EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION
+  ),
+#else
+EFI_ACPI_5_1_FIXED_ACPI_DESCRIPTION_TABLE Fadt = {
+  ARM_ACPI_HEADER (
+    EFI_ACPI_5_1_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE,
+    EFI_ACPI_5_1_FIXED_ACPI_DESCRIPTION_TABLE,
+    EFI_ACPI_5_1_FIXED_ACPI_DESCRIPTION_TABLE_REVISION
+  ),
+#endif
+  0,                                                                        // UINT32     FirmwareCtrl
+  0,                                                                        // UINT32     Dsdt
+  EFI_ACPI_RESERVED_BYTE,                                                   // UINT8      Reserved0
+  EFI_ACPI_5_0_PM_PROFILE_UNSPECIFIED,                                      // UINT8      PreferredPmProfile
+  0,                                                                        // UINT16     SciInt
+  0,                                                                        // UINT32     SmiCmd
+  0,                                                                        // UINT8      AcpiEnable
+  0,                                                                        // UINT8      AcpiDisable
+  0,                                                                        // UINT8      S4BiosReq
+  0,                                                                        // UINT8      PstateCnt
+  0,                                                                        // UINT32     Pm1aEvtBlk
+  0,                                                                        // UINT32     Pm1bEvtBlk
+  0,                                                                        // UINT32     Pm1aCntBlk
+  0,                                                                        // UINT32     Pm1bCntBlk
+  0,                                                                        // UINT32     Pm2CntBlk
+  0,                                                                        // UINT32     PmTmrBlk
+  0,                                                                        // UINT32     Gpe0Blk
+  0,                                                                        // UINT32     Gpe1Blk
+  0,                                                                        // UINT8      Pm1EvtLen
+  0,                                                                        // UINT8      Pm1CntLen
+  0,                                                                        // UINT8      Pm2CntLen
+  0,                                                                        // UINT8      PmTmrLen
+  0,                                                                        // UINT8      Gpe0BlkLen
+  0,                                                                        // UINT8      Gpe1BlkLen
+  0,                                                                        // UINT8      Gpe1Base
+  0,                                                                        // UINT8      CstCnt
+  0,                                                                        // UINT16     PLvl2Lat
+  0,                                                                        // UINT16     PLvl3Lat
+  0,                                                                        // UINT16     FlushSize
+  0,                                                                        // UINT16     FlushStride
+  0,                                                                        // UINT8      DutyOffset
+  0,                                                                        // UINT8      DutyWidth
+  0,                                                                        // UINT8      DayAlrm
+  0,                                                                        // UINT8      MonAlrm
+  0,                                                                        // UINT8      Century
+  0,                                                                        // UINT16     IaPcBootArch
+  0,                                                                        // UINT8      Reserved1
+  EFI_ACPI_5_0_HW_REDUCED_ACPI | EFI_ACPI_5_0_LOW_POWER_S0_IDLE_CAPABLE,    // UINT32     Flags
+  NULL_GAS,                                                                 // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE  ResetReg
+  0,                                                                        // UINT8      ResetValue
+#ifdef ARM_JUNO_ACPI_5_0
+  {EFI_ACPI_RESERVED_BYTE,EFI_ACPI_RESERVED_BYTE,EFI_ACPI_RESERVED_BYTE},   // UINT8      Reserved2[3]
+#else
+  EFI_ACPI_5_1_ARM_PSCI_COMPLIANT,                                          // UINT16     ArmBootArchFlags
+  EFI_ACPI_5_1_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION,                 // UINT8      MinorRevision
+#endif
+  0,                                                                        // UINT64     XFirmwareCtrl
+  0,                                                                        // UINT64     XDsdt
+  NULL_GAS,                                                                 // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE  XPm1aEvtBlk
+  NULL_GAS,                                                                 // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE  XPm1bEvtBlk
+  NULL_GAS,                                                                 // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE  XPm1aCntBlk
+  NULL_GAS,                                                                 // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE  XPm1bCntBlk
+  NULL_GAS,                                                                 // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE  XPm2CntBlk
+  NULL_GAS,                                                                 // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE  XPmTmrBlk
+  NULL_GAS,                                                                 // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE  XGpe0Blk
+  NULL_GAS,                                                                 // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE  XGpe1Blk
+  NULL_GAS,                                                                 // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE  SleepControlReg
+  NULL_GAS                                                                  // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE  SleepStatusReg
+};
+
+//
+// Reference the table being generated to prevent the optimizer from removing the
+// data structure from the executable
+//
+VOID* CONST ReferenceAcpiTable = &Fadt;
diff --git a/sdm845Pkg/AcpiTables/Gtdt.aslc b/sdm845Pkg/AcpiTables/Gtdt.aslc
new file mode 100644 (file)
index 0000000..d0a79f9
--- /dev/null
@@ -0,0 +1,120 @@
+/** @file
+*  Generic Timer Description Table (GTDT)
+*
+*  Copyright (c) 2012 - 2017, ARM Limited. All rights reserved.
+*
+*  This program and the accompanying materials
+*  are licensed and made available under the terms and conditions of the BSD License
+*  which accompanies this distribution.  The full text of the license may be found at
+*  http://opensource.org/licenses/bsd-license.php
+*
+*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+*
+**/
+
+#include "ArmPlatform.h"
+#include <Library/AcpiLib.h>
+#include <Library/PcdLib.h>
+#include <IndustryStandard/Acpi.h>
+
+#define GTDT_GLOBAL_FLAGS_MAPPED      EFI_ACPI_5_0_GTDT_GLOBAL_FLAG_MEMORY_MAPPED_BLOCK_PRESENT
+#define GTDT_GLOBAL_FLAGS_NOT_MAPPED  0
+#define GTDT_GLOBAL_FLAGS_EDGE        EFI_ACPI_5_0_GTDT_GLOBAL_FLAG_INTERRUPT_MODE
+#define GTDT_GLOBAL_FLAGS_LEVEL       0
+
+// Note: We could have a build flag that switches between memory mapped/non-memory mapped timer
+#ifdef SYSTEM_TIMER_BASE_ADDRESS
+  #define GTDT_GLOBAL_FLAGS             (GTDT_GLOBAL_FLAGS_MAPPED | GTDT_GLOBAL_FLAGS_LEVEL)
+#else
+  #define GTDT_GLOBAL_FLAGS             (GTDT_GLOBAL_FLAGS_NOT_MAPPED | GTDT_GLOBAL_FLAGS_LEVEL)
+  #define SYSTEM_TIMER_BASE_ADDRESS     0xFFFFFFFFFFFFFFFF
+#endif
+
+#define GTDT_TIMER_EDGE_TRIGGERED   EFI_ACPI_5_0_GTDT_TIMER_FLAG_TIMER_INTERRUPT_MODE
+#define GTDT_TIMER_LEVEL_TRIGGERED  0
+#define GTDT_TIMER_ACTIVE_LOW       EFI_ACPI_5_0_GTDT_TIMER_FLAG_TIMER_INTERRUPT_POLARITY
+#define GTDT_TIMER_ACTIVE_HIGH      0
+
+#define GTDT_GTIMER_FLAGS           (GTDT_TIMER_ACTIVE_LOW | GTDT_TIMER_LEVEL_TRIGGERED)
+
+#define JUNO_WATCHDOG_COUNT         FixedPcdGet32 (PcdWatchdogCount)
+
+
+#ifdef ARM_JUNO_ACPI_5_0
+  EFI_ACPI_5_0_GENERIC_TIMER_DESCRIPTION_TABLE Gtdt = {
+    ARM_ACPI_HEADER(
+      EFI_ACPI_5_0_GENERIC_TIMER_DESCRIPTION_TABLE_SIGNATURE,
+      EFI_ACPI_5_0_GENERIC_TIMER_DESCRIPTION_TABLE,
+      EFI_ACPI_5_0_GENERIC_TIMER_DESCRIPTION_TABLE_REVISION
+    ),
+    SYSTEM_TIMER_BASE_ADDRESS,                    // UINT64  PhysicalAddress
+    GTDT_GLOBAL_FLAGS,                            // UINT32  GlobalFlags
+    FixedPcdGet32 (PcdArmArchTimerSecIntrNum),    // UINT32  SecurePL1TimerGSIV
+    GTDT_GTIMER_FLAGS,                            // UINT32  SecurePL1TimerFlags
+    FixedPcdGet32 (PcdArmArchTimerIntrNum),       // UINT32  NonSecurePL1TimerGSIV
+    GTDT_GTIMER_FLAGS,                            // UINT32  NonSecurePL1TimerFlags
+    FixedPcdGet32 (PcdArmArchTimerVirtIntrNum),   // UINT32  VirtualTimerGSIV
+    GTDT_GTIMER_FLAGS,                            // UINT32  VirtualTimerFlags
+    FixedPcdGet32 (PcdArmArchTimerHypIntrNum),    // UINT32  NonSecurePL2TimerGSIV
+    GTDT_GTIMER_FLAGS                             // UINT32  NonSecurePL2TimerFlags
+  };
+#else
+  #pragma pack (1)
+
+  typedef struct {
+    EFI_ACPI_5_1_GENERIC_TIMER_DESCRIPTION_TABLE          Gtdt;
+#if (JUNO_WATCHDOG_COUNT != 0)
+    EFI_ACPI_5_1_GTDT_SBSA_GENERIC_WATCHDOG_STRUCTURE     Watchdogs[JUNO_WATCHDOG_COUNT];
+#endif
+  } GENERIC_TIMER_DESCRIPTION_TABLE;
+
+  #pragma pack ()
+
+  GENERIC_TIMER_DESCRIPTION_TABLE Gtdt = {
+    {
+      ARM_ACPI_HEADER(
+        EFI_ACPI_5_1_GENERIC_TIMER_DESCRIPTION_TABLE_SIGNATURE,
+        GENERIC_TIMER_DESCRIPTION_TABLE,
+        EFI_ACPI_5_1_GENERIC_TIMER_DESCRIPTION_TABLE_REVISION
+      ),
+      SYSTEM_TIMER_BASE_ADDRESS,                    // UINT64  PhysicalAddress
+      0,                                            // UINT32  Reserved
+      FixedPcdGet32 (PcdArmArchTimerSecIntrNum),    // UINT32  SecurePL1TimerGSIV
+      GTDT_GTIMER_FLAGS,                            // UINT32  SecurePL1TimerFlags
+      FixedPcdGet32 (PcdArmArchTimerIntrNum),       // UINT32  NonSecurePL1TimerGSIV
+      GTDT_GTIMER_FLAGS,                            // UINT32  NonSecurePL1TimerFlags
+      FixedPcdGet32 (PcdArmArchTimerVirtIntrNum),   // UINT32  VirtualTimerGSIV
+      GTDT_GTIMER_FLAGS,                            // UINT32  VirtualTimerFlags
+      FixedPcdGet32 (PcdArmArchTimerHypIntrNum),    // UINT32  NonSecurePL2TimerGSIV
+      GTDT_GTIMER_FLAGS,                            // UINT32  NonSecurePL2TimerFlags
+      0xFFFFFFFFFFFFFFFF,                           // UINT64  CntReadBasePhysicalAddress
+      JUNO_WATCHDOG_COUNT,                          // UINT32  PlatformTimerCount
+#if (JUNO_WATCHDOG_COUNT != 0)
+      sizeof (EFI_ACPI_5_1_GENERIC_TIMER_DESCRIPTION_TABLE) // UINT32 PlatfromTimerOffset
+#else
+      0
+#endif
+    },
+#if (JUNO_WATCHDOG_COUNT != 0)
+    {
+      EFI_ACPI_5_1_SBSA_GENERIC_WATCHDOG_STRUCTURE_INIT(
+          FixedPcdGet64 (PcdGenericWatchdogRefreshBase),
+          FixedPcdGet64 (PcdGenericWatchdogControlBase),
+          93,
+          0),
+      EFI_ACPI_5_1_SBSA_GENERIC_WATCHDOG_STRUCTURE_INIT(
+          FixedPcdGet64 (PcdGenericWatchdogRefreshBase),
+          FixedPcdGet64 (PcdGenericWatchdogControlBase),
+          94,
+          EFI_ACPI_5_1_GTDT_SBSA_GENERIC_WATCHDOG_FLAG_SECURE_TIMER)
+    }
+#endif
+  };
+#endif
+
+//
+// Reference the table being generated to prevent the optimizer from removing the
+// data structure from the executable
+//
+VOID* CONST ReferenceAcpiTable = &Gtdt;
diff --git a/sdm845Pkg/AcpiTables/Madt.aslc b/sdm845Pkg/AcpiTables/Madt.aslc
new file mode 100644 (file)
index 0000000..fcbc53a
--- /dev/null
@@ -0,0 +1,147 @@
+/** @file
+*  Multiple APIC Description Table (MADT)
+*
+*  Copyright (c) 2012 - 2016, ARM Limited. All rights reserved.
+*
+*  This program and the accompanying materials
+*  are licensed and made available under the terms and conditions of the BSD License
+*  which accompanies this distribution.  The full text of the license may be found at
+*  http://opensource.org/licenses/bsd-license.php
+*
+*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+*
+**/
+
+#include "ArmPlatform.h"
+#include <Library/AcpiLib.h>
+#include <Library/ArmLib.h>
+#include <Library/PcdLib.h>
+#include <IndustryStandard/Acpi.h>
+
+//
+// Multiple APIC Description Table
+//
+#ifdef ARM_JUNO_ACPI_5_0
+  #pragma pack (1)
+
+  typedef struct {
+    EFI_ACPI_5_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER   Header;
+    EFI_ACPI_5_0_GIC_STRUCTURE                            GicInterfaces[FixedPcdGet32 (PcdCoreCount)];
+    EFI_ACPI_5_0_GIC_DISTRIBUTOR_STRUCTURE                GicDistributor;
+  } EFI_ACPI_5_0_MULTIPLE_APIC_DESCRIPTION_TABLE;
+
+  #pragma pack ()
+
+  EFI_ACPI_5_0_MULTIPLE_APIC_DESCRIPTION_TABLE Madt = {
+    {
+      ARM_ACPI_HEADER (
+        EFI_ACPI_5_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE,
+        EFI_ACPI_5_0_MULTIPLE_APIC_DESCRIPTION_TABLE,
+        EFI_ACPI_5_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION
+      ),
+      //
+      // MADT specific fields
+      //
+      0, // LocalApicAddress
+      0, // Flags
+    },
+    {
+      // Format: EFI_ACPI_5_0_GIC_STRUCTURE_INIT(GicId, AcpiCpuId, Flags, PmuIrq, GicBase)
+      // Note: The GIC Structure of the primary CPU must be the first entry (see note in 5.2.12.14 GIC Structure of
+      //       ACPI v5.0).
+      //       On Juno we can change the primary CPU changing the SCC register. It is not currently supported in the
+      //       Trusted Firmware. When supported, we will need to code to dynamically change the ordering.
+      //       For now we leave CPU2 (A53-0) at the first position.
+      //       The cores from a same cluster are kept together. It is not an ACPI requirement but in case the OSPM uses
+      //       the ACPI ARM Parking protocol, it might want to wake up the cores in the order of this table.
+      EFI_ACPI_5_0_GIC_STRUCTURE_INIT(2, 0, EFI_ACPI_5_0_GIC_ENABLED, 50, FixedPcdGet64 (PcdGicInterruptInterfaceBase)), // A53-0
+      EFI_ACPI_5_0_GIC_STRUCTURE_INIT(3, 1, EFI_ACPI_5_0_GIC_ENABLED, 54, FixedPcdGet64 (PcdGicInterruptInterfaceBase)), // A53-1
+      EFI_ACPI_5_0_GIC_STRUCTURE_INIT(4, 2, EFI_ACPI_5_0_GIC_ENABLED, 58, FixedPcdGet64 (PcdGicInterruptInterfaceBase)), // A53-2
+      EFI_ACPI_5_0_GIC_STRUCTURE_INIT(5, 3, EFI_ACPI_5_0_GIC_ENABLED, 62, FixedPcdGet64 (PcdGicInterruptInterfaceBase)), // A53-3
+      EFI_ACPI_5_0_GIC_STRUCTURE_INIT(0, 4, EFI_ACPI_5_0_GIC_ENABLED, 34, FixedPcdGet64 (PcdGicInterruptInterfaceBase)), // A57-0
+      EFI_ACPI_5_0_GIC_STRUCTURE_INIT(1, 5, EFI_ACPI_5_0_GIC_ENABLED, 38, FixedPcdGet64 (PcdGicInterruptInterfaceBase))  // A57-1
+    },
+    EFI_ACPI_5_0_GIC_DISTRIBUTOR_INIT(0, FixedPcdGet64 (PcdGicDistributorBase), 0)
+  };
+#else
+  #pragma pack (1)
+
+  typedef struct {
+    EFI_ACPI_5_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER   Header;
+    EFI_ACPI_5_1_GIC_STRUCTURE                            GicInterfaces[FixedPcdGet32 (PcdCoreCount)];
+    EFI_ACPI_5_1_GIC_DISTRIBUTOR_STRUCTURE                GicDistributor;
+#if 0
+    EFI_ACPI_6_0_GIC_MSI_FRAME_STRUCTURE                  MsiFrame;
+#endif
+    EFI_ACPI_6_1_GICR_STRUCTURE                           Gicr;
+  } MULTIPLE_APIC_DESCRIPTION_TABLE;
+
+  #pragma pack ()
+
+  MULTIPLE_APIC_DESCRIPTION_TABLE Madt = {
+    {
+      ARM_ACPI_HEADER (
+        EFI_ACPI_5_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE,
+        MULTIPLE_APIC_DESCRIPTION_TABLE,
+        EFI_ACPI_5_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION
+      ),
+      //
+      // MADT specific fields
+      //
+      0, // LocalApicAddress
+      0, // Flags
+    },
+    {
+      // Format: EFI_ACPI_5_1_GICC_STRUCTURE_INIT(GicId, AcpiCpuUid, MpIdr, Flags, PmuIrq, GicBase, GicVBase, GicHBase,
+      //                                          GsivId, GicRBase)
+      // Note: The GIC Structure of the primary CPU must be the first entry (see note in 5.2.12.14 GICC Structure of
+      //       ACPI v5.1).
+      //       On Juno we can change the primary CPU changing the SCC register. It is not currently supported in the
+      //       Trusted Firmware. When supported, we will need to code to dynamically change the ordering.
+      //       For now we leave CPU2 (A53-0) at the first position.
+      //       The cores from a same cluster are kept together. It is not an ACPI requirement but in case the OSPM uses
+      //       the ACPI ARM Parking protocol, it might want to wake up the cores in the order of this table.
+      EFI_ACPI_5_1_GICC_STRUCTURE_INIT( // A53-0
+          0, 0, GET_MPID(0, 0), EFI_ACPI_5_0_GIC_ENABLED, 23, FixedPcdGet64 (PcdGicInterruptInterfaceBase),
+          0 /* GicVBase */, 0 /*GicHBase */, 25, 0 /* GicRBase */),
+#if 0
+      EFI_ACPI_5_1_GICC_STRUCTURE_INIT( // A53-1
+          3, 1, GET_MPID(1, 1),  EFI_ACPI_5_0_GIC_ENABLED, 54, FixedPcdGet64 (PcdGicInterruptInterfaceBase),
+          0x2C06F000, 0x2C04F000, 25, 0 /* GicRBase */),
+      EFI_ACPI_5_1_GICC_STRUCTURE_INIT( // A53-2
+          4, 2, GET_MPID(1, 2),  EFI_ACPI_5_0_GIC_ENABLED, 58, FixedPcdGet64 (PcdGicInterruptInterfaceBase),
+          0x2C06F000, 0x2C04F000, 25, 0 /* GicRBase */),
+      EFI_ACPI_5_1_GICC_STRUCTURE_INIT( // A53-3
+          5, 3, GET_MPID(1, 3),  EFI_ACPI_5_0_GIC_ENABLED, 62, FixedPcdGet64 (PcdGicInterruptInterfaceBase),
+          0x2C06F000, 0x2C04F000, 25, 0 /* GicRBase */),
+      EFI_ACPI_5_1_GICC_STRUCTURE_INIT( // A57-0
+          0, 4, GET_MPID(0, 0),  EFI_ACPI_5_0_GIC_ENABLED, 34, FixedPcdGet64 (PcdGicInterruptInterfaceBase),
+          0x2C06F000, 0x2C04F000, 25, 0 /* GicRBase */),
+      EFI_ACPI_5_1_GICC_STRUCTURE_INIT( // A57-1
+          1, 5, GET_MPID(0, 1),  EFI_ACPI_5_0_GIC_ENABLED, 38, FixedPcdGet64 (PcdGicInterruptInterfaceBase),
+          0x2C06F000, 0x2C04F000, 25, 0 /* GicRBase */),
+#endif
+    },
+    // Format: EFI_ACPI_6_0_GIC_DISTRIBUTOR_INIT(GicDistHwId, GicDistBase, GicDistVector, GicVersion)
+    EFI_ACPI_6_0_GIC_DISTRIBUTOR_INIT(0, FixedPcdGet64 (PcdGicDistributorBase), 0, 3),
+    // Format: EFI_ACPI_6_0_GIC_MSI_FRAME_INIT(GicMsiFrameId, PhysicalBaseAddress, Flags, SPICount, SPIBase)
+#if 0
+    EFI_ACPI_6_0_GIC_MSI_FRAME_INIT(0, ARM_JUNO_GIV2M_MSI_BASE, 0, ARM_JUNO_GIV2M_MSI_SPI_COUNT, ARM_JUNO_GIV2M_MSI_SPI_BASE)
+#endif
+    /* GIC Redistributor */
+    {
+      EFI_ACPI_6_1_GICR,                         // UINT8 Type
+      sizeof(EFI_ACPI_6_1_GICR_STRUCTURE),       // UINT8 Length
+      EFI_ACPI_RESERVED_WORD,                    // UINT16 Reserved
+      FixedPcdGet64 (PcdGicRedistributorsBase),  // UINT64 DiscoveryRangeBaseAddress
+      0x00100000,                                // UINT32 DiscoveryRangeLength
+    }
+  };
+#endif
+
+//
+// Reference the table being generated to prevent the optimizer from removing the
+// data structure from the executable
+//
+VOID* CONST ReferenceAcpiTable = &Madt;
diff --git a/sdm845Pkg/AcpiTables/Spcr.aslc b/sdm845Pkg/AcpiTables/Spcr.aslc
new file mode 100644 (file)
index 0000000..8607ad5
--- /dev/null
@@ -0,0 +1,99 @@
+/** @file
+* SPCR Table
+*
+* Copyright (c) 2014 - 2016, ARM Limited. All rights reserved.
+*
+* This program and the accompanying materials are licensed and made available
+* under the terms and conditions of the BSD License which accompanies this
+* distribution.  The full text of the license may be found at
+* http://opensource.org/licenses/bsd-license.php
+*
+* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+*
+**/
+
+#include "ArmPlatform.h"
+#include <Library/AcpiLib.h>
+#include <Library/ArmLib.h>
+#include <Library/PcdLib.h>
+#include <IndustryStandard/Acpi.h>
+#include <IndustryStandard/SerialPortConsoleRedirectionTable.h>
+
+/**
+ * References:
+ * Serial Port Console Redirection Table Specification Version 1.03 - August 10, 2015
+ **/
+
+
+///
+/// SPCR Flow Control
+///
+#define SPCR_FLOW_CONTROL_NONE           0
+
+
+STATIC EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE Spcr = {
+  ARM_ACPI_HEADER (EFI_ACPI_5_1_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE,
+                     EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE,
+                     EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_REVISION),
+  // UINT8                                   InterfaceType;
+  EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_ARM_PL011_UART,
+  // UINT8                                   Reserved1[3];
+  {
+    EFI_ACPI_RESERVED_BYTE,
+    EFI_ACPI_RESERVED_BYTE,
+    EFI_ACPI_RESERVED_BYTE
+  },
+  // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE  BaseAddress;
+  ARM_GAS32 (FixedPcdGet64 (PcdSerialRegisterBase)),
+  // UINT8                                   InterruptType;
+  EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_GIC,
+  // UINT8                                   Irq;
+  0,                                         // Not used on ARM
+  // UINT32                                  GlobalSystemInterrupt;
+  FixedPcdGet32 (PL011UartInterrupt),
+  // UINT8                                   BaudRate;
+#if (FixedPcdGet64 (PcdUartDefaultBaudRate) == 9600)
+  EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_9600,
+#elif (FixedPcdGet64 (PcdUartDefaultBaudRate) == 19200)
+  EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_19200,
+#elif (FixedPcdGet64 (PcdUartDefaultBaudRate) == 57600)
+  EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_57600,
+#elif (FixedPcdGet64 (PcdUartDefaultBaudRate) == 115200)
+  EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_115200,
+#else
+#error Unsupported SPCR Baud Rate
+#endif
+  // UINT8                                   Parity;
+  EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_PARITY_NO_PARITY,
+  // UINT8                                   StopBits;
+  EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_STOP_BITS_1,
+  // UINT8                                   FlowControl;
+  SPCR_FLOW_CONTROL_NONE,
+  // UINT8                                   TerminalType;
+  EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_ANSI,
+  // UINT8                                   Reserved2;
+  EFI_ACPI_RESERVED_BYTE,
+  // UINT16                                  PciDeviceId;
+  0xFFFF,
+  // UINT16                                  PciVendorId;
+  0xFFFF,
+  // UINT8                                   PciBusNumber;
+  0x00,
+  // UINT8                                   PciDeviceNumber;
+  0x00,
+  // UINT8                                   PciFunctionNumber;
+  0x00,
+  // UINT32                                  PciFlags;
+  0x00000000,
+  // UINT8                                   PciSegment;
+  0x00,
+  // UINT32                                  Reserved3;
+  EFI_ACPI_RESERVED_DWORD
+};
+
+//
+// Reference the table being generated to prevent the optimizer from removing the
+// data structure from the executable
+//
+VOID* CONST ReferenceAcpiTable = &Spcr;
diff --git a/sdm845Pkg/AcpiTables/minimal/APIC.aml b/sdm845Pkg/AcpiTables/minimal/APIC.aml
new file mode 100644 (file)
index 0000000..f9aeff1
Binary files /dev/null and b/sdm845Pkg/AcpiTables/minimal/APIC.aml differ
diff --git a/sdm845Pkg/AcpiTables/minimal/DBG2.aml b/sdm845Pkg/AcpiTables/minimal/DBG2.aml
new file mode 100644 (file)
index 0000000..5e770be
Binary files /dev/null and b/sdm845Pkg/AcpiTables/minimal/DBG2.aml differ
diff --git a/sdm845Pkg/AcpiTables/minimal/DSDT.aml b/sdm845Pkg/AcpiTables/minimal/DSDT.aml
new file mode 100644 (file)
index 0000000..87fae0d
Binary files /dev/null and b/sdm845Pkg/AcpiTables/minimal/DSDT.aml differ
diff --git a/sdm845Pkg/AcpiTables/minimal/FACP.aml b/sdm845Pkg/AcpiTables/minimal/FACP.aml
new file mode 100644 (file)
index 0000000..443ddc7
Binary files /dev/null and b/sdm845Pkg/AcpiTables/minimal/FACP.aml differ
diff --git a/sdm845Pkg/AcpiTables/minimal/GTDT.aml b/sdm845Pkg/AcpiTables/minimal/GTDT.aml
new file mode 100644 (file)
index 0000000..83bafa2
Binary files /dev/null and b/sdm845Pkg/AcpiTables/minimal/GTDT.aml differ
diff --git a/sdm845Pkg/AcpiTables/test/CSRT.aml b/sdm845Pkg/AcpiTables/test/CSRT.aml
new file mode 100644 (file)
index 0000000..bc94c12
Binary files /dev/null and b/sdm845Pkg/AcpiTables/test/CSRT.aml differ
diff --git a/sdm845Pkg/AcpiTables/test/DBG2.aml b/sdm845Pkg/AcpiTables/test/DBG2.aml
new file mode 100644 (file)
index 0000000..c372b0b
Binary files /dev/null and b/sdm845Pkg/AcpiTables/test/DBG2.aml differ
diff --git a/sdm845Pkg/AcpiTables/test/DSDT.aml b/sdm845Pkg/AcpiTables/test/DSDT.aml
new file mode 100644 (file)
index 0000000..e16a4dc
Binary files /dev/null and b/sdm845Pkg/AcpiTables/test/DSDT.aml differ
diff --git a/sdm845Pkg/AcpiTables/test/FACS.aml b/sdm845Pkg/AcpiTables/test/FACS.aml
new file mode 100644 (file)
index 0000000..12ad840
Binary files /dev/null and b/sdm845Pkg/AcpiTables/test/FACS.aml differ
diff --git a/sdm845Pkg/AcpiTables/test/FADT.aml b/sdm845Pkg/AcpiTables/test/FADT.aml
new file mode 100644 (file)
index 0000000..25cc405
Binary files /dev/null and b/sdm845Pkg/AcpiTables/test/FADT.aml differ
diff --git a/sdm845Pkg/AcpiTables/test/GTDT.aml b/sdm845Pkg/AcpiTables/test/GTDT.aml
new file mode 100644 (file)
index 0000000..74bb514
Binary files /dev/null and b/sdm845Pkg/AcpiTables/test/GTDT.aml differ
diff --git a/sdm845Pkg/AcpiTables/test/IORT.aml b/sdm845Pkg/AcpiTables/test/IORT.aml
new file mode 100644 (file)
index 0000000..b067a7a
Binary files /dev/null and b/sdm845Pkg/AcpiTables/test/IORT.aml differ
diff --git a/sdm845Pkg/AcpiTables/test/MADT.aml b/sdm845Pkg/AcpiTables/test/MADT.aml
new file mode 100644 (file)
index 0000000..e45d543
Binary files /dev/null and b/sdm845Pkg/AcpiTables/test/MADT.aml differ
diff --git a/sdm845Pkg/AcpiTables/test/MCFG.aml b/sdm845Pkg/AcpiTables/test/MCFG.aml
new file mode 100644 (file)
index 0000000..352e779
Binary files /dev/null and b/sdm845Pkg/AcpiTables/test/MCFG.aml differ
diff --git a/sdm845Pkg/AcpiTables/test/PPTT.aml b/sdm845Pkg/AcpiTables/test/PPTT.aml
new file mode 100644 (file)
index 0000000..3837249
Binary files /dev/null and b/sdm845Pkg/AcpiTables/test/PPTT.aml differ
diff --git a/sdm845Pkg/AcpiTables/test/TPM2.aml b/sdm845Pkg/AcpiTables/test/TPM2.aml
new file mode 100644 (file)
index 0000000..156f1ea
Binary files /dev/null and b/sdm845Pkg/AcpiTables/test/TPM2.aml differ
diff --git a/sdm845Pkg/Binary/.gitignore b/sdm845Pkg/Binary/.gitignore
new file mode 100644 (file)
index 0000000..1615017
--- /dev/null
@@ -0,0 +1 @@
+*.efi
diff --git a/sdm845Pkg/Binary/ASN1X509Dxe/file.obj b/sdm845Pkg/Binary/ASN1X509Dxe/file.obj
new file mode 100644 (file)
index 0000000..65116a5
Binary files /dev/null and b/sdm845Pkg/Binary/ASN1X509Dxe/file.obj differ
diff --git a/sdm845Pkg/Binary/ASN1X509Dxe/section1.ui b/sdm845Pkg/Binary/ASN1X509Dxe/section1.ui
new file mode 100644 (file)
index 0000000..822ca1e
Binary files /dev/null and b/sdm845Pkg/Binary/ASN1X509Dxe/section1.ui differ
diff --git a/sdm845Pkg/Binary/AdcDxe/AdcDxe.depex b/sdm845Pkg/Binary/AdcDxe/AdcDxe.depex
new file mode 100644 (file)
index 0000000..743af29
--- /dev/null
@@ -0,0 +1 @@
+\ 2B¹7®\7fE\91\96Ùf\9fÓG£\ 2k0_ú}ôÄJ¤}\88/\82\ 4ì0\ 3\b
\ No newline at end of file
diff --git a/sdm845Pkg/Binary/AdcDxe/file.obj b/sdm845Pkg/Binary/AdcDxe/file.obj
new file mode 100644 (file)
index 0000000..c6cb9eb
Binary files /dev/null and b/sdm845Pkg/Binary/AdcDxe/file.obj differ
diff --git a/sdm845Pkg/Binary/AdcDxe/section2.ui b/sdm845Pkg/Binary/AdcDxe/section2.ui
new file mode 100644 (file)
index 0000000..d243f8d
Binary files /dev/null and b/sdm845Pkg/Binary/AdcDxe/section2.ui differ
diff --git a/sdm845Pkg/Binary/ButtonsDxe/ButtonsDxe.depex b/sdm845Pkg/Binary/ButtonsDxe/ButtonsDxe.depex
new file mode 100644 (file)
index 0000000..f943d35
Binary files /dev/null and b/sdm845Pkg/Binary/ButtonsDxe/ButtonsDxe.depex differ
diff --git a/sdm845Pkg/Binary/ButtonsDxe/file.obj b/sdm845Pkg/Binary/ButtonsDxe/file.obj
new file mode 100644 (file)
index 0000000..469a62f
Binary files /dev/null and b/sdm845Pkg/Binary/ButtonsDxe/file.obj differ
diff --git a/sdm845Pkg/Binary/ButtonsDxe/section2.ui b/sdm845Pkg/Binary/ButtonsDxe/section2.ui
new file mode 100644 (file)
index 0000000..4623261
Binary files /dev/null and b/sdm845Pkg/Binary/ButtonsDxe/section2.ui differ
diff --git a/sdm845Pkg/Binary/ChipInfo/ChipInfo.depex b/sdm845Pkg/Binary/ChipInfo/ChipInfo.depex
new file mode 100644 (file)
index 0000000..26bd57d
--- /dev/null
@@ -0,0 +1 @@
+\ 2B¹7®\7fE\91\96Ùf\9fÓG£\ 2|Þa\9e'\99(O\9f=2\a\ 5Ø\18\ 1\ 3\b
\ No newline at end of file
diff --git a/sdm845Pkg/Binary/ChipInfo/file.obj b/sdm845Pkg/Binary/ChipInfo/file.obj
new file mode 100644 (file)
index 0000000..ecad5ac
Binary files /dev/null and b/sdm845Pkg/Binary/ChipInfo/file.obj differ
diff --git a/sdm845Pkg/Binary/ChipInfo/section2.ui b/sdm845Pkg/Binary/ChipInfo/section2.ui
new file mode 100644 (file)
index 0000000..69bbde7
Binary files /dev/null and b/sdm845Pkg/Binary/ChipInfo/section2.ui differ
diff --git a/sdm845Pkg/Binary/ClockDxe/ClockDxe.depex b/sdm845Pkg/Binary/ClockDxe/ClockDxe.depex
new file mode 100644 (file)
index 0000000..14cd96a
--- /dev/null
@@ -0,0 +1 @@
+\ 2B¹7®\7fE\91\96Ùf\9fÓG£\ 2i\ 4\f\97zH¤µ(Û{EÎñ\ 3\b
\ No newline at end of file
diff --git a/sdm845Pkg/Binary/ClockDxe/file.obj b/sdm845Pkg/Binary/ClockDxe/file.obj
new file mode 100644 (file)
index 0000000..0c64017
Binary files /dev/null and b/sdm845Pkg/Binary/ClockDxe/file.obj differ
diff --git a/sdm845Pkg/Binary/ClockDxe/section2.ui b/sdm845Pkg/Binary/ClockDxe/section2.ui
new file mode 100644 (file)
index 0000000..71d8bb8
Binary files /dev/null and b/sdm845Pkg/Binary/ClockDxe/section2.ui differ
diff --git a/sdm845Pkg/Binary/DALSys/DALSys.depex b/sdm845Pkg/Binary/DALSys/DALSys.depex
new file mode 100644 (file)
index 0000000..098cfdc
--- /dev/null
@@ -0,0 +1 @@
+\ 2ÐÇåô9ÒËGªÍ\7ffïv28\b
\ No newline at end of file
diff --git a/sdm845Pkg/Binary/DALTLMM/.depex b/sdm845Pkg/Binary/DALTLMM/.depex
new file mode 100644 (file)
index 0000000..d24065d
--- /dev/null
@@ -0,0 +1 @@
+\ 2B¹7®\7fE\91\96Ùf\9fÓG£\b
\ No newline at end of file
diff --git a/sdm845Pkg/Binary/DALTLMM/DALTLMM.depex b/sdm845Pkg/Binary/DALTLMM/DALTLMM.depex
new file mode 100644 (file)
index 0000000..d24065d
--- /dev/null
@@ -0,0 +1 @@
+\ 2B¹7®\7fE\91\96Ùf\9fÓG£\b
\ No newline at end of file
diff --git a/sdm845Pkg/Binary/DALTLMM/file.obj b/sdm845Pkg/Binary/DALTLMM/file.obj
new file mode 100644 (file)
index 0000000..5826c74
Binary files /dev/null and b/sdm845Pkg/Binary/DALTLMM/file.obj differ
diff --git a/sdm845Pkg/Binary/DALTLMM/section2.ui b/sdm845Pkg/Binary/DALTLMM/section2.ui
new file mode 100644 (file)
index 0000000..2af4613
Binary files /dev/null and b/sdm845Pkg/Binary/DALTLMM/section2.ui differ
diff --git a/sdm845Pkg/Binary/EmuVariableRuntimeDxe/EmuVariableRuntimeDxe.depex b/sdm845Pkg/Binary/EmuVariableRuntimeDxe/EmuVariableRuntimeDxe.depex
new file mode 100644 (file)
index 0000000..2a47cc2
--- /dev/null
@@ -0,0 +1 @@
+\ 6\b
\ No newline at end of file
diff --git a/sdm845Pkg/Binary/EmuVariableRuntimeDxe/file.obj b/sdm845Pkg/Binary/EmuVariableRuntimeDxe/file.obj
new file mode 100644 (file)
index 0000000..2730942
Binary files /dev/null and b/sdm845Pkg/Binary/EmuVariableRuntimeDxe/file.obj differ
diff --git a/sdm845Pkg/Binary/EmuVariableRuntimeDxe/section2.ui b/sdm845Pkg/Binary/EmuVariableRuntimeDxe/section2.ui
new file mode 100644 (file)
index 0000000..259c22c
Binary files /dev/null and b/sdm845Pkg/Binary/EmuVariableRuntimeDxe/section2.ui differ
diff --git a/sdm845Pkg/Binary/EnvDxe/EnvDxe.depex b/sdm845Pkg/Binary/EnvDxe/EnvDxe.depex
new file mode 100644 (file)
index 0000000..2a47cc2
--- /dev/null
@@ -0,0 +1 @@
+\ 6\b
\ No newline at end of file
diff --git a/sdm845Pkg/Binary/GlinkDxe/GlinkDxe.depex b/sdm845Pkg/Binary/GlinkDxe/GlinkDxe.depex
new file mode 100644 (file)
index 0000000..2a47cc2
--- /dev/null
@@ -0,0 +1 @@
+\ 6\b
\ No newline at end of file
diff --git a/sdm845Pkg/Binary/HWIODxeDriver/HWIODxeDriver.depex b/sdm845Pkg/Binary/HWIODxeDriver/HWIODxeDriver.depex
new file mode 100644 (file)
index 0000000..d24065d
--- /dev/null
@@ -0,0 +1 @@
+\ 2B¹7®\7fE\91\96Ùf\9fÓG£\b
\ No newline at end of file
diff --git a/sdm845Pkg/Binary/HWIODxeDriver/HWIODxeDriver.ui b/sdm845Pkg/Binary/HWIODxeDriver/HWIODxeDriver.ui
new file mode 100644 (file)
index 0000000..127cef5
Binary files /dev/null and b/sdm845Pkg/Binary/HWIODxeDriver/HWIODxeDriver.ui differ
diff --git a/sdm845Pkg/Binary/HWIODxeDriver/file.obj b/sdm845Pkg/Binary/HWIODxeDriver/file.obj
new file mode 100644 (file)
index 0000000..3f1e6cb
Binary files /dev/null and b/sdm845Pkg/Binary/HWIODxeDriver/file.obj differ
diff --git a/sdm845Pkg/Binary/HWIODxeDriver/section2.ui b/sdm845Pkg/Binary/HWIODxeDriver/section2.ui
new file mode 100644 (file)
index 0000000..127cef5
Binary files /dev/null and b/sdm845Pkg/Binary/HWIODxeDriver/section2.ui differ
diff --git a/sdm845Pkg/Binary/HashDxe/file.obj b/sdm845Pkg/Binary/HashDxe/file.obj
new file mode 100644 (file)
index 0000000..3d9dcad
Binary files /dev/null and b/sdm845Pkg/Binary/HashDxe/file.obj differ
diff --git a/sdm845Pkg/Binary/HashDxe/section1.ui b/sdm845Pkg/Binary/HashDxe/section1.ui
new file mode 100644 (file)
index 0000000..7765538
Binary files /dev/null and b/sdm845Pkg/Binary/HashDxe/section1.ui differ
diff --git a/sdm845Pkg/Binary/I2C/I2C.depex b/sdm845Pkg/Binary/I2C/I2C.depex
new file mode 100644 (file)
index 0000000..11fe8cc
Binary files /dev/null and b/sdm845Pkg/Binary/I2C/I2C.depex differ
diff --git a/sdm845Pkg/Binary/NpaDxe/NpaDxe.depex b/sdm845Pkg/Binary/NpaDxe/NpaDxe.depex
new file mode 100644 (file)
index 0000000..2a47cc2
--- /dev/null
@@ -0,0 +1 @@
+\ 6\b
\ No newline at end of file
diff --git a/sdm845Pkg/Binary/PlatformInfoDxeDriver/PlatformInfoDxeDriver.depex b/sdm845Pkg/Binary/PlatformInfoDxeDriver/PlatformInfoDxeDriver.depex
new file mode 100644 (file)
index 0000000..d24065d
--- /dev/null
@@ -0,0 +1 @@
+\ 2B¹7®\7fE\91\96Ùf\9fÓG£\b
\ No newline at end of file
diff --git a/sdm845Pkg/Binary/PlatformInfoDxeDriver/file.obj b/sdm845Pkg/Binary/PlatformInfoDxeDriver/file.obj
new file mode 100644 (file)
index 0000000..6eea733
Binary files /dev/null and b/sdm845Pkg/Binary/PlatformInfoDxeDriver/file.obj differ
diff --git a/sdm845Pkg/Binary/PlatformInfoDxeDriver/section2.ui b/sdm845Pkg/Binary/PlatformInfoDxeDriver/section2.ui
new file mode 100644 (file)
index 0000000..6ad3771
Binary files /dev/null and b/sdm845Pkg/Binary/PlatformInfoDxeDriver/section2.ui differ
diff --git a/sdm845Pkg/Binary/PmicDxe/PmicDxe.depex b/sdm845Pkg/Binary/PmicDxe/PmicDxe.depex
new file mode 100644 (file)
index 0000000..743af29
--- /dev/null
@@ -0,0 +1 @@
+\ 2B¹7®\7fE\91\96Ùf\9fÓG£\ 2k0_ú}ôÄJ¤}\88/\82\ 4ì0\ 3\b
\ No newline at end of file
diff --git a/sdm845Pkg/Binary/PmicDxe/PmicDxe.ui b/sdm845Pkg/Binary/PmicDxe/PmicDxe.ui
new file mode 100644 (file)
index 0000000..2274bca
Binary files /dev/null and b/sdm845Pkg/Binary/PmicDxe/PmicDxe.ui differ
diff --git a/sdm845Pkg/Binary/PmicDxe/file.obj b/sdm845Pkg/Binary/PmicDxe/file.obj
new file mode 100644 (file)
index 0000000..b0b1c1a
Binary files /dev/null and b/sdm845Pkg/Binary/PmicDxe/file.obj differ
diff --git a/sdm845Pkg/Binary/PmicDxe/section2.ui b/sdm845Pkg/Binary/PmicDxe/section2.ui
new file mode 100644 (file)
index 0000000..2274bca
Binary files /dev/null and b/sdm845Pkg/Binary/PmicDxe/section2.ui differ
diff --git a/sdm845Pkg/Binary/QcomChargerDxeLA/QcomChargerDxeLA.depex b/sdm845Pkg/Binary/QcomChargerDxeLA/QcomChargerDxeLA.depex
new file mode 100644 (file)
index 0000000..2a47cc2
--- /dev/null
@@ -0,0 +1 @@
+\ 6\b
\ No newline at end of file
diff --git a/sdm845Pkg/Binary/QcomChargerDxeLA/file.obj b/sdm845Pkg/Binary/QcomChargerDxeLA/file.obj
new file mode 100644 (file)
index 0000000..54ae508
Binary files /dev/null and b/sdm845Pkg/Binary/QcomChargerDxeLA/file.obj differ
diff --git a/sdm845Pkg/Binary/QcomChargerDxeLA/section2.ui b/sdm845Pkg/Binary/QcomChargerDxeLA/section2.ui
new file mode 100644 (file)
index 0000000..9ecd741
Binary files /dev/null and b/sdm845Pkg/Binary/QcomChargerDxeLA/section2.ui differ
diff --git a/sdm845Pkg/Binary/QdssDxe/QdssDxe.depex b/sdm845Pkg/Binary/QdssDxe/QdssDxe.depex
new file mode 100644 (file)
index 0000000..2a47cc2
--- /dev/null
@@ -0,0 +1 @@
+\ 6\b
\ No newline at end of file
diff --git a/sdm845Pkg/Binary/README b/sdm845Pkg/Binary/README
new file mode 100644 (file)
index 0000000..fdc8d4a
--- /dev/null
@@ -0,0 +1 @@
+Binary files removed due to legal concerns
\ No newline at end of file
diff --git a/sdm845Pkg/Binary/RealTimeClock/RealTimeClock.depex b/sdm845Pkg/Binary/RealTimeClock/RealTimeClock.depex
new file mode 100644 (file)
index 0000000..2a47cc2
--- /dev/null
@@ -0,0 +1 @@
+\ 6\b
\ No newline at end of file
diff --git a/sdm845Pkg/Binary/SPI/SPI.depex b/sdm845Pkg/Binary/SPI/SPI.depex
new file mode 100644 (file)
index 0000000..11fe8cc
Binary files /dev/null and b/sdm845Pkg/Binary/SPI/SPI.depex differ
diff --git a/sdm845Pkg/Binary/SPMI/SPMI.depex b/sdm845Pkg/Binary/SPMI/SPMI.depex
new file mode 100644 (file)
index 0000000..2a47cc2
--- /dev/null
@@ -0,0 +1 @@
+\ 6\b
\ No newline at end of file
diff --git a/sdm845Pkg/Binary/SPMI/file.obj b/sdm845Pkg/Binary/SPMI/file.obj
new file mode 100644 (file)
index 0000000..9d224c4
Binary files /dev/null and b/sdm845Pkg/Binary/SPMI/file.obj differ
diff --git a/sdm845Pkg/Binary/SPMI/section2.ui b/sdm845Pkg/Binary/SPMI/section2.ui
new file mode 100644 (file)
index 0000000..d5034f1
Binary files /dev/null and b/sdm845Pkg/Binary/SPMI/section2.ui differ
diff --git a/sdm845Pkg/Binary/SdccDxe/SdccDxe.depex b/sdm845Pkg/Binary/SdccDxe/SdccDxe.depex
new file mode 100644 (file)
index 0000000..265ee7c
Binary files /dev/null and b/sdm845Pkg/Binary/SdccDxe/SdccDxe.depex differ
diff --git a/sdm845Pkg/Binary/SdccDxe/file.obj b/sdm845Pkg/Binary/SdccDxe/file.obj
new file mode 100644 (file)
index 0000000..0693310
Binary files /dev/null and b/sdm845Pkg/Binary/SdccDxe/file.obj differ
diff --git a/sdm845Pkg/Binary/SdccDxe/section2.ui b/sdm845Pkg/Binary/SdccDxe/section2.ui
new file mode 100644 (file)
index 0000000..2df97bc
Binary files /dev/null and b/sdm845Pkg/Binary/SdccDxe/section2.ui differ
diff --git a/sdm845Pkg/Binary/SecRSADxe/file.obj b/sdm845Pkg/Binary/SecRSADxe/file.obj
new file mode 100644 (file)
index 0000000..fb192fd
Binary files /dev/null and b/sdm845Pkg/Binary/SecRSADxe/file.obj differ
diff --git a/sdm845Pkg/Binary/SecRSADxe/section1.ui b/sdm845Pkg/Binary/SecRSADxe/section1.ui
new file mode 100644 (file)
index 0000000..0649161
Binary files /dev/null and b/sdm845Pkg/Binary/SecRSADxe/section1.ui differ
diff --git a/sdm845Pkg/Binary/SmemDxe/SmemDxe.depex b/sdm845Pkg/Binary/SmemDxe/SmemDxe.depex
new file mode 100644 (file)
index 0000000..2a47cc2
--- /dev/null
@@ -0,0 +1 @@
+\ 6\b
\ No newline at end of file
diff --git a/sdm845Pkg/Binary/SmemDxe/file.obj b/sdm845Pkg/Binary/SmemDxe/file.obj
new file mode 100644 (file)
index 0000000..7452738
Binary files /dev/null and b/sdm845Pkg/Binary/SmemDxe/file.obj differ
diff --git a/sdm845Pkg/Binary/SmemDxe/section2.ui b/sdm845Pkg/Binary/SmemDxe/section2.ui
new file mode 100644 (file)
index 0000000..647d11c
Binary files /dev/null and b/sdm845Pkg/Binary/SmemDxe/section2.ui differ
diff --git a/sdm845Pkg/Binary/UFSDxe/UFSDxe.depex b/sdm845Pkg/Binary/UFSDxe/UFSDxe.depex
new file mode 100644 (file)
index 0000000..098cfdc
--- /dev/null
@@ -0,0 +1 @@
+\ 2ÐÇåô9ÒËGªÍ\7ffïv28\b
\ No newline at end of file
diff --git a/sdm845Pkg/Binary/UFSDxe/file.obj b/sdm845Pkg/Binary/UFSDxe/file.obj
new file mode 100644 (file)
index 0000000..f535961
Binary files /dev/null and b/sdm845Pkg/Binary/UFSDxe/file.obj differ
diff --git a/sdm845Pkg/Binary/UFSDxe/section2.ui b/sdm845Pkg/Binary/UFSDxe/section2.ui
new file mode 100644 (file)
index 0000000..ba781d6
Binary files /dev/null and b/sdm845Pkg/Binary/UFSDxe/section2.ui differ
diff --git a/sdm845Pkg/Binary/ULogDxe/ULogDxe.depex b/sdm845Pkg/Binary/ULogDxe/ULogDxe.depex
new file mode 100644 (file)
index 0000000..2a47cc2
--- /dev/null
@@ -0,0 +1 @@
+\ 6\b
\ No newline at end of file
diff --git a/sdm845Pkg/Binary/UsbConfigDxe/UsbConfigDxe.depex b/sdm845Pkg/Binary/UsbConfigDxe/UsbConfigDxe.depex
new file mode 100644 (file)
index 0000000..8f72e31
--- /dev/null
@@ -0,0 +1 @@
+\ 2i\ 4\f\97zH¤µ(Û{EÎñ\ 2ÐÇåô9ÒËGªÍ\7ffïv28\ 2E\z\15²!ÅCº|\82/î_å\99\ 2\8e\b\97ëßÏÆI¾KÙ\ 6¥²\ e\86\ 3\ 3\ 3\b
\ No newline at end of file
diff --git a/sdm845Pkg/Binary/UsbConfigDxe/file.obj b/sdm845Pkg/Binary/UsbConfigDxe/file.obj
new file mode 100644 (file)
index 0000000..f59a76b
Binary files /dev/null and b/sdm845Pkg/Binary/UsbConfigDxe/file.obj differ
diff --git a/sdm845Pkg/Binary/UsbConfigDxe/section2.ui b/sdm845Pkg/Binary/UsbConfigDxe/section2.ui
new file mode 100644 (file)
index 0000000..2deab73
Binary files /dev/null and b/sdm845Pkg/Binary/UsbConfigDxe/section2.ui differ
diff --git a/sdm845Pkg/Binary/UsbDeviceDxe/UsbDeviceDxe.depex b/sdm845Pkg/Binary/UsbDeviceDxe/UsbDeviceDxe.depex
new file mode 100644 (file)
index 0000000..2a47cc2
--- /dev/null
@@ -0,0 +1 @@
+\ 6\b
\ No newline at end of file
diff --git a/sdm845Pkg/Binary/UsbDeviceDxe/file.obj b/sdm845Pkg/Binary/UsbDeviceDxe/file.obj
new file mode 100644 (file)
index 0000000..20707a2
Binary files /dev/null and b/sdm845Pkg/Binary/UsbDeviceDxe/file.obj differ
diff --git a/sdm845Pkg/Binary/UsbDeviceDxe/section2.ui b/sdm845Pkg/Binary/UsbDeviceDxe/section2.ui
new file mode 100644 (file)
index 0000000..c3019f3
Binary files /dev/null and b/sdm845Pkg/Binary/UsbDeviceDxe/section2.ui differ
diff --git a/sdm845Pkg/Binary/UsbMsdDxe/UsbMsdDxe.depex b/sdm845Pkg/Binary/UsbMsdDxe/UsbMsdDxe.depex
new file mode 100644 (file)
index 0000000..2a47cc2
--- /dev/null
@@ -0,0 +1 @@
+\ 6\b
\ No newline at end of file
diff --git a/sdm845Pkg/Binary/UsbMsdDxe/file.obj b/sdm845Pkg/Binary/UsbMsdDxe/file.obj
new file mode 100644 (file)
index 0000000..96684fe
Binary files /dev/null and b/sdm845Pkg/Binary/UsbMsdDxe/file.obj differ
diff --git a/sdm845Pkg/Binary/UsbMsdDxe/section2.ui b/sdm845Pkg/Binary/UsbMsdDxe/section2.ui
new file mode 100644 (file)
index 0000000..738502f
Binary files /dev/null and b/sdm845Pkg/Binary/UsbMsdDxe/section2.ui differ
diff --git a/sdm845Pkg/Binary/UsbPwrCtrlDxe/UsbPwrCtrlDxe.depex b/sdm845Pkg/Binary/UsbPwrCtrlDxe/UsbPwrCtrlDxe.depex
new file mode 100644 (file)
index 0000000..2a47cc2
--- /dev/null
@@ -0,0 +1 @@
+\ 6\b
\ No newline at end of file
diff --git a/sdm845Pkg/Binary/UsbPwrCtrlDxe/file.obj b/sdm845Pkg/Binary/UsbPwrCtrlDxe/file.obj
new file mode 100644 (file)
index 0000000..8b025aa
Binary files /dev/null and b/sdm845Pkg/Binary/UsbPwrCtrlDxe/file.obj differ
diff --git a/sdm845Pkg/Binary/UsbPwrCtrlDxe/section2.ui b/sdm845Pkg/Binary/UsbPwrCtrlDxe/section2.ui
new file mode 100644 (file)
index 0000000..274be69
Binary files /dev/null and b/sdm845Pkg/Binary/UsbPwrCtrlDxe/section2.ui differ
diff --git a/sdm845Pkg/Binary/UsbfnDwc3Dxe/UsbfnDwc3Dxe.depex b/sdm845Pkg/Binary/UsbfnDwc3Dxe/UsbfnDwc3Dxe.depex
new file mode 100644 (file)
index 0000000..43d06b2
Binary files /dev/null and b/sdm845Pkg/Binary/UsbfnDwc3Dxe/UsbfnDwc3Dxe.depex differ
diff --git a/sdm845Pkg/Binary/UsbfnDwc3Dxe/file.obj b/sdm845Pkg/Binary/UsbfnDwc3Dxe/file.obj
new file mode 100644 (file)
index 0000000..0c1a682
Binary files /dev/null and b/sdm845Pkg/Binary/UsbfnDwc3Dxe/file.obj differ
diff --git a/sdm845Pkg/Binary/UsbfnDwc3Dxe/section2.ui b/sdm845Pkg/Binary/UsbfnDwc3Dxe/section2.ui
new file mode 100644 (file)
index 0000000..c4a3ead
Binary files /dev/null and b/sdm845Pkg/Binary/UsbfnDwc3Dxe/section2.ui differ
diff --git a/sdm845Pkg/CommonDsc.dsc.inc b/sdm845Pkg/CommonDsc.dsc.inc
new file mode 100644 (file)
index 0000000..7d39577
--- /dev/null
@@ -0,0 +1,327 @@
+#
+#  Copyright (c) 2011-2012, ARM Limited. All rights reserved.
+#  Copyright (c) 2016, Hisilicon Limited. All rights reserved.
+#  Copyright (c) 2016, Linaro Limited. All rights reserved.
+#
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at
+#  http://opensource.org/licenses/bsd-license.php
+#
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+#
+
+[LibraryClasses.common]
+!if $(TARGET) == RELEASE
+  DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
+!else
+  DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
+!endif
+  DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
+
+  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
+  BmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.inf
+  SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf
+  SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf
+  PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
+  PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
+  PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
+  PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
+  IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
+  UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
+  CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf
+
+  UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
+  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
+  UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
+  DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
+  UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
+  DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
+  UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
+  UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
+  HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
+  UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
+
+  UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
+  OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
+  #
+  # Allow dynamic PCDs
+  #
+  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
+
+  BaseMemoryLib|MdePkg/Library/BaseMemoryLibOptDxe/BaseMemoryLibOptDxe.inf
+
+  # ARM Architectural Libraries
+  CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf
+  DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLib.inf
+  CpuExceptionHandlerLib|ArmPkg/Library/ArmExceptionLib/ArmExceptionLib.inf
+  ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf
+  ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf
+  ArmGicArchLib|ArmPkg/Library/ArmGicArchLib/ArmGicArchLib.inf
+  ArmPlatformStackLib|ArmPlatformPkg/Library/ArmPlatformStackLib/ArmPlatformStackLib.inf
+  ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
+  ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
+
+  ResetSystemLib|ArmPkg/Library/ArmSmcPsciResetSystemLib/ArmSmcPsciResetSystemLib.inf
+
+  # ARM PL011 UART Driver
+  PL011UartClockLib|ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.inf
+  PL011UartLib|ArmPlatformPkg/Library/PL011UartLib/PL011UartLib.inf
+
+  TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
+
+  UefiDevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
+  #
+  # Uncomment (and comment out the next line) For RealView Debugger. The Standard IO window
+  # in the debugger will show load and unload commands for symbols. You can cut and paste this
+  # into the command window to load symbols. We should be able to use a script to do this, but
+  # the version of RVD I have does not support scripts accessing system memory.
+  #
+  #PeCoffExtraActionLib|ArmPkg/Library/RvdPeCoffExtraActionLib/RvdPeCoffExtraActionLib.inf
+  #PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
+  PeCoffExtraActionLib|ArmPkg/Library/DebugPeCoffExtraActionLib/DebugPeCoffExtraActionLib.inf
+
+  DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
+  DebugAgentTimerLib|EmbeddedPkg/Library/DebugAgentTimerLibNull/DebugAgentTimerLibNull.inf
+
+  SemihostLib|ArmPkg/Library/SemihostLib/SemihostLib.inf
+
+  TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
+  AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf
+
+  # BDS Libraries
+  FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf
+  UefiDevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
+
+  VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf
+
+  ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
+  LzmaDecompressLib|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
+
+  NonDiscoverableDeviceRegistrationLib|MdeModulePkg/Library/NonDiscoverableDeviceRegistrationLib/NonDiscoverableDeviceRegistrationLib.inf
+
+  FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
+  ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
+  SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
+
+  CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.inf
+  OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf
+  IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf
+  BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
+  FmpAuthenticationLib|SecurityPkg/Library/FmpAuthenticationLibPkcs7/FmpAuthenticationLibPkcs7.inf
+  EdkiiSystemCapsuleLib|SignedCapsulePkg/Library/EdkiiSystemCapsuleLib/EdkiiSystemCapsuleLib.inf
+  IniParsingLib|SignedCapsulePkg/Library/IniParsingLib/IniParsingLib.inf
+
+  #
+  # It is not possible to prevent the ARM compiler for generic intrinsic functions.
+  # This library provides the instrinsic functions generate by a given compiler.
+  # And NULL mean link this library into all ARM images.
+  #
+  NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
+
+  # Add support for GCC stack protector
+  NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf
+
+[LibraryClasses.common.SEC]
+  ArmGicArchLib|ArmPkg/Library/ArmGicArchSecLib/ArmGicArchSecLib.inf
+  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
+  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
+
+[LibraryClasses.common.PEI_CORE]
+  HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
+  PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
+  MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
+  PeiCoreEntryPoint|MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf
+  PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf
+  ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
+  OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
+  PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
+  UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
+  ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf
+
+  PeiServicesTablePointerLib|ArmPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
+  PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
+  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
+
+[LibraryClasses.common.PEIM]
+  HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
+  PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
+  MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
+  PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf
+  PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf
+  ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
+  OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
+  PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
+  PeiResourcePublicationLib|MdePkg/Library/PeiResourcePublicationLib/PeiResourcePublicationLib.inf
+  UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
+  ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf
+
+  PeiServicesTablePointerLib|ArmPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
+
+  ## Fixed compile error after upgrade to 14.10
+  PlatformPeiLib|ArmPlatformPkg/PlatformPei/PlatformPeiLib.inf
+  PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
+  ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuPeiLib.inf
+  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
+
+[LibraryClasses.common.DXE_CORE]
+  HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
+  MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf
+  DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf
+  ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
+  ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
+  UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
+  DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
+  PerformanceLib|MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf
+
+[LibraryClasses.common.DXE_DRIVER]
+  ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
+  DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
+  SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
+  PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
+  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
+
+[LibraryClasses.common.UEFI_APPLICATION]
+  UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiTianoCustomDecompressLib.inf
+  PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
+  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
+  HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
+
+[LibraryClasses.common.UEFI_DRIVER,LibraryClasses.common.UEFI_APPLICATION]
+  DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
+  ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
+  UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf
+
+[LibraryClasses.common.UEFI_DRIVER]
+  ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
+  UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiTianoCustomDecompressLib.inf
+  ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
+  PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
+  DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
+  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
+
+[LibraryClasses.common.DXE_RUNTIME_DRIVER]
+  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
+  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
+  ReportStatusCodeLib|MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/RuntimeDxeReportStatusCodeLib.inf
+  CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibFmp/DxeRuntimeCapsuleLib.inf
+!ifndef CONFIG_NO_DEBUGLIB
+  DebugLib|MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
+!endif
+!if $(TARGET) != RELEASE
+  DebugLib|MdePkg/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLibSerialPort.inf
+!endif
+
+[LibraryClasses.AARCH64]
+  ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.inf
+
+[BuildOptions]
+  RVCT:RELEASE_*_*_CC_FLAGS  = -DMDEPKG_NDEBUG
+  GCC:RELEASE_*_*_CC_FLAGS  = -DMDEPKG_NDEBUG
+
+[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
+  GCC:*_*_ARM_DLINK_FLAGS = -z common-page-size=0x1000
+  GCC:*_*_AARCH64_DLINK_FLAGS = -z common-page-size=0x10000
+
+################################################################################
+#
+# Pcd Section - list of all EDK II PCD Entries defined by this Platform
+#
+################################################################################
+
+[PcdsFeatureFlag.common]
+  gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|TRUE
+  gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnosticsDisable|TRUE
+  gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|TRUE
+  gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable|TRUE
+
+  # Use the Vector Table location in CpuDxe. We will not copy the Vector Table at PcdCpuVectorBaseAddress
+  gArmTokenSpaceGuid.PcdRelocateVectorTable|FALSE
+
+  gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|TRUE
+
+  gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
+
+  gEfiMdeModulePkgTokenSpaceGuid.PcdInstallAcpiSdtProtocol|TRUE
+
+  gArmTokenSpaceGuid.PcdArmGicV3WithV2Legacy|FALSE
+
+[PcdsFixedAtBuild.common]
+  #
+  # IO is mapped to memory space, so we use the same size of
+  # PcdPrePiCpuMemorySize
+  #
+  gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|44
+  gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000
+  gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000
+  gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000
+  gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000
+  gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0xAF
+  gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask|1
+  gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0
+  gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320
+  gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|4
+
+  # DEBUG_ASSERT_ENABLED       0x01
+  # DEBUG_PRINT_ENABLED        0x02
+  # DEBUG_CODE_ENABLED         0x04
+  # CLEAR_MEMORY_ENABLED       0x08
+  # ASSERT_BREAKPOINT_ENABLED  0x10
+  # ASSERT_DEADLOOP_ENABLED    0x20
+!if $(TARGET) == RELEASE
+  gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x0e
+!else
+  gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x0f
+!endif
+
+  #  DEBUG_INIT      0x00000001  // Initialization
+  #  DEBUG_WARN      0x00000002  // Warnings
+  #  DEBUG_LOAD      0x00000004  // Load events
+  #  DEBUG_FS        0x00000008  // EFI File system
+  #  DEBUG_POOL      0x00000010  // Alloc & Free's
+  #  DEBUG_PAGE      0x00000020  // Alloc & Free's
+  #  DEBUG_INFO      0x00000040  // Verbose
+  #  DEBUG_DISPATCH  0x00000080  // PEI/DXE Dispatchers
+  #  DEBUG_VARIABLE  0x00000100  // Variable
+  #  DEBUG_BM        0x00000400  // Boot Manager
+  #  DEBUG_BLKIO     0x00001000  // BlkIo Driver
+  #  DEBUG_NET       0x00004000  // SNI Driver
+  #  DEBUG_UNDI      0x00010000  // UNDI Driver
+  #  DEBUG_LOADFILE  0x00020000  // UNDI Driver
+  #  DEBUG_EVENT     0x00080000  // Event messages
+  #  DEBUG_ERROR     0x80000000  // Error
+
+  gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000000
+  gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x06
+
+  #
+  # Optional feature to help prevent EFI memory map fragments
+  # Turned on and off via: PcdPrePiProduceMemoryTypeInformationHob
+  # Values are in EFI Pages (4K). DXE Core will make sure that
+  # at least this much of each type of memory can be allocated
+  # from a single memory range. This way you only end up with
+  # maximum of two fragements for each type in the memory map
+  # (the memory used, and the free memory that was prereserved
+  # but not used).
+  #
+  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory|0
+  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS|0
+  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType|0
+  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|50
+  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|20
+  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|400
+  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData|20000
+  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|20
+  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0
+
+  # Set timer interrupt to be triggerred in 1ms to avoid missing
+  # serial terminal input characters.
+  gEmbeddedTokenSpaceGuid.PcdTimerPeriod|10000
+  gArmTokenSpaceGuid.PcdVFPEnabled|1
+  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultReceiveFifoDepth|32
+
+[PcdsDynamicHii.common.DEFAULT]
+  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|L"Timeout"|gEfiGlobalVariableGuid|0x0|0 # Variable: L"Timeout"
+
diff --git a/sdm845Pkg/CommonDsc.dsc.inc_debug b/sdm845Pkg/CommonDsc.dsc.inc_debug
new file mode 100644 (file)
index 0000000..4b4b58d
--- /dev/null
@@ -0,0 +1,327 @@
+#
+#  Copyright (c) 2011-2012, ARM Limited. All rights reserved.
+#  Copyright (c) 2016, Hisilicon Limited. All rights reserved.
+#  Copyright (c) 2016, Linaro Limited. All rights reserved.
+#
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at
+#  http://opensource.org/licenses/bsd-license.php
+#
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+#
+
+[LibraryClasses.common]
+!if $(TARGET) == RELEASE
+  DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
+!else
+  DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
+!endif
+  DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
+
+  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
+  BmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.inf
+  SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf
+  SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf
+  PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
+  PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
+  PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
+  PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
+  IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
+  UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
+  CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf
+
+  UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
+  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
+  UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
+  DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
+  UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
+  DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
+  UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
+  UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
+  HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
+  UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
+
+  UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
+  OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
+  #
+  # Allow dynamic PCDs
+  #
+  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
+
+  BaseMemoryLib|MdePkg/Library/BaseMemoryLibOptDxe/BaseMemoryLibOptDxe.inf
+
+  # ARM Architectural Libraries
+  CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf
+  DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLib.inf
+  CpuExceptionHandlerLib|ArmPkg/Library/ArmExceptionLib/ArmExceptionLib.inf
+  ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf
+  ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf
+  ArmGicArchLib|ArmPkg/Library/ArmGicArchLib/ArmGicArchLib.inf
+  ArmPlatformStackLib|ArmPlatformPkg/Library/ArmPlatformStackLib/ArmPlatformStackLib.inf
+  ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
+  ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
+
+  ResetSystemLib|ArmPkg/Library/ArmSmcPsciResetSystemLib/ArmSmcPsciResetSystemLib.inf
+
+  # ARM PL011 UART Driver
+  PL011UartClockLib|ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.inf
+  PL011UartLib|ArmPlatformPkg/Library/PL011UartLib/PL011UartLib.inf
+
+  TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
+
+  UefiDevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
+  #
+  # Uncomment (and comment out the next line) For RealView Debugger. The Standard IO window
+  # in the debugger will show load and unload commands for symbols. You can cut and paste this
+  # into the command window to load symbols. We should be able to use a script to do this, but
+  # the version of RVD I have does not support scripts accessing system memory.
+  #
+  #PeCoffExtraActionLib|ArmPkg/Library/RvdPeCoffExtraActionLib/RvdPeCoffExtraActionLib.inf
+  #PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
+  PeCoffExtraActionLib|ArmPkg/Library/DebugPeCoffExtraActionLib/DebugPeCoffExtraActionLib.inf
+
+  DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
+  DebugAgentTimerLib|EmbeddedPkg/Library/DebugAgentTimerLibNull/DebugAgentTimerLibNull.inf
+
+  SemihostLib|ArmPkg/Library/SemihostLib/SemihostLib.inf
+
+  TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
+  AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf
+
+  # BDS Libraries
+  FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf
+  UefiDevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
+
+  VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf
+
+  ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
+  LzmaDecompressLib|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
+
+  NonDiscoverableDeviceRegistrationLib|MdeModulePkg/Library/NonDiscoverableDeviceRegistrationLib/NonDiscoverableDeviceRegistrationLib.inf
+
+  FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
+  ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
+  SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
+
+  CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.inf
+  OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf
+  IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf
+  BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
+  FmpAuthenticationLib|SecurityPkg/Library/FmpAuthenticationLibPkcs7/FmpAuthenticationLibPkcs7.inf
+  EdkiiSystemCapsuleLib|SignedCapsulePkg/Library/EdkiiSystemCapsuleLib/EdkiiSystemCapsuleLib.inf
+  IniParsingLib|SignedCapsulePkg/Library/IniParsingLib/IniParsingLib.inf
+
+  #
+  # It is not possible to prevent the ARM compiler for generic intrinsic functions.
+  # This library provides the instrinsic functions generate by a given compiler.
+  # And NULL mean link this library into all ARM images.
+  #
+  NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
+
+  # Add support for GCC stack protector
+  NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf
+
+[LibraryClasses.common.SEC]
+  ArmGicArchLib|ArmPkg/Library/ArmGicArchSecLib/ArmGicArchSecLib.inf
+  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
+  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
+
+[LibraryClasses.common.PEI_CORE]
+  HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
+  PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
+  MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
+  PeiCoreEntryPoint|MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf
+  PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf
+  ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
+  OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
+  PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
+  UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
+  ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf
+
+  PeiServicesTablePointerLib|ArmPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
+  PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
+  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
+
+[LibraryClasses.common.PEIM]
+  HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
+  PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
+  MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
+  PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf
+  PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf
+  ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
+  OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
+  PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
+  PeiResourcePublicationLib|MdePkg/Library/PeiResourcePublicationLib/PeiResourcePublicationLib.inf
+  UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
+  ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf
+
+  PeiServicesTablePointerLib|ArmPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
+
+  ## Fixed compile error after upgrade to 14.10
+  PlatformPeiLib|ArmPlatformPkg/PlatformPei/PlatformPeiLib.inf
+  PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
+  ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuPeiLib.inf
+  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
+
+[LibraryClasses.common.DXE_CORE]
+  HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
+  MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf
+  DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf
+  ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
+  ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
+  UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
+  DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
+  PerformanceLib|MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf
+
+[LibraryClasses.common.DXE_DRIVER]
+  ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
+  DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
+  SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
+  PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
+  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
+
+[LibraryClasses.common.UEFI_APPLICATION]
+  UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiTianoCustomDecompressLib.inf
+  PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
+  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
+  HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
+
+[LibraryClasses.common.UEFI_DRIVER,LibraryClasses.common.UEFI_APPLICATION]
+  DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
+  ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
+  UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf
+
+[LibraryClasses.common.UEFI_DRIVER]
+  ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
+  UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiTianoCustomDecompressLib.inf
+  ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
+  PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
+  DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
+  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
+
+[LibraryClasses.common.DXE_RUNTIME_DRIVER]
+  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
+  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
+  ReportStatusCodeLib|MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/RuntimeDxeReportStatusCodeLib.inf
+  CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibFmp/DxeRuntimeCapsuleLib.inf
+!ifndef CONFIG_NO_DEBUGLIB
+  DebugLib|MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
+!endif
+!if $(TARGET) != RELEASE
+  DebugLib|MdePkg/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLibSerialPort.inf
+!endif
+
+[LibraryClasses.AARCH64]
+  ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.inf
+
+[BuildOptions]
+  RVCT:RELEASE_*_*_CC_FLAGS  = -DMDEPKG_NDEBUG
+  GCC:RELEASE_*_*_CC_FLAGS  = -DMDEPKG_NDEBUG
+
+[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
+  GCC:*_*_ARM_DLINK_FLAGS = -z common-page-size=0x1000
+  GCC:*_*_AARCH64_DLINK_FLAGS = -z common-page-size=0x10000
+
+################################################################################
+#
+# Pcd Section - list of all EDK II PCD Entries defined by this Platform
+#
+################################################################################
+
+[PcdsFeatureFlag.common]
+  gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|TRUE
+  gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnosticsDisable|TRUE
+  gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|TRUE
+  gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable|TRUE
+
+  # Use the Vector Table location in CpuDxe. We will not copy the Vector Table at PcdCpuVectorBaseAddress
+  gArmTokenSpaceGuid.PcdRelocateVectorTable|FALSE
+
+  gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|TRUE
+
+  gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
+
+  gEfiMdeModulePkgTokenSpaceGuid.PcdInstallAcpiSdtProtocol|TRUE
+
+  gArmTokenSpaceGuid.PcdArmGicV3WithV2Legacy|FALSE
+
+[PcdsFixedAtBuild.common]
+  #
+  # IO is mapped to memory space, so we use the same size of
+  # PcdPrePiCpuMemorySize
+  #
+  gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|44
+  gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000
+  gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000
+  gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000
+  gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000
+  gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0xAF
+  gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask|1
+  gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0
+  gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320
+  gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|4
+
+  # DEBUG_ASSERT_ENABLED       0x01
+  # DEBUG_PRINT_ENABLED        0x02
+  # DEBUG_CODE_ENABLED         0x04
+  # CLEAR_MEMORY_ENABLED       0x08
+  # ASSERT_BREAKPOINT_ENABLED  0x10
+  # ASSERT_DEADLOOP_ENABLED    0x20
+!if $(TARGET) == RELEASE
+  gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x0e
+!else
+  gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x0f
+!endif
+
+  #  DEBUG_INIT      0x00000001  // Initialization
+  #  DEBUG_WARN      0x00000002  // Warnings
+  #  DEBUG_LOAD      0x00000004  // Load events
+  #  DEBUG_FS        0x00000008  // EFI File system
+  #  DEBUG_POOL      0x00000010  // Alloc & Free's
+  #  DEBUG_PAGE      0x00000020  // Alloc & Free's
+  #  DEBUG_INFO      0x00000040  // Verbose
+  #  DEBUG_DISPATCH  0x00000080  // PEI/DXE Dispatchers
+  #  DEBUG_VARIABLE  0x00000100  // Variable
+  #  DEBUG_BM        0x00000400  // Boot Manager
+  #  DEBUG_BLKIO     0x00001000  // BlkIo Driver
+  #  DEBUG_NET       0x00004000  // SNI Driver
+  #  DEBUG_UNDI      0x00010000  // UNDI Driver
+  #  DEBUG_LOADFILE  0x00020000  // UNDI Driver
+  #  DEBUG_EVENT     0x00080000  // Event messages
+  #  DEBUG_ERROR     0x80000000  // Error
+
+  gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000046
+  gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x06
+
+  #
+  # Optional feature to help prevent EFI memory map fragments
+  # Turned on and off via: PcdPrePiProduceMemoryTypeInformationHob
+  # Values are in EFI Pages (4K). DXE Core will make sure that
+  # at least this much of each type of memory can be allocated
+  # from a single memory range. This way you only end up with
+  # maximum of two fragements for each type in the memory map
+  # (the memory used, and the free memory that was prereserved
+  # but not used).
+  #
+  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory|0
+  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS|0
+  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType|0
+  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|50
+  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|20
+  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|400
+  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData|20000
+  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|20
+  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0
+
+  # Set timer interrupt to be triggerred in 1ms to avoid missing
+  # serial terminal input characters.
+  gEmbeddedTokenSpaceGuid.PcdTimerPeriod|10000
+  gArmTokenSpaceGuid.PcdVFPEnabled|1
+  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultReceiveFifoDepth|32
+
+[PcdsDynamicHii.common.DEFAULT]
+  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|L"Timeout"|gEfiGlobalVariableGuid|0x0|0 # Variable: L"Timeout"
+
diff --git a/sdm845Pkg/CommonFdf.fdf.inc b/sdm845Pkg/CommonFdf.fdf.inc
new file mode 100644 (file)
index 0000000..294733e
--- /dev/null
@@ -0,0 +1,148 @@
+#/** @file
+#
+#    Copyright (c) 2016, Hisilicon Limited. All rights reserved.
+#    Copyright (c) 2016, Linaro Limited. All rights reserved.
+#
+#    This program and the accompanying materials
+#    are licensed and made available under the terms and conditions of the BSD License
+#    which accompanies this distribution. The full text of the license may be found at
+#    http://opensource.org/licenses/bsd-license.php
+#
+#    THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#    WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+#**/
+
+
+################################################################################
+#
+# Rules are use with the [FV] section's module INF type to define
+# how an FFS file is created for a given INF file. The following Rule are the default
+# rules for the different module type. User can add the customized rules to define the
+# content of the FFS file.
+#
+################################################################################
+
+
+############################################################################
+# Example of a DXE_DRIVER FFS file with a Checksum encapsulation section   #
+############################################################################
+#
+#[Rule.Common.DXE_DRIVER]
+#  FILE DRIVER = $(NAMED_GUID) {
+#    DXE_DEPEX    DXE_DEPEX               Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
+#    COMPRESS PI_STD {
+#      GUIDED {
+#        PE32     PE32                    $(INF_OUTPUT)/$(MODULE_NAME).efi
+#        UI       STRING="$(MODULE_NAME)" Optional
+#        VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
+#      }
+#    }
+#  }
+#
+############################################################################
+
+[Rule.Common.SEC]
+  FILE SEC = $(NAMED_GUID) RELOCS_STRIPPED {
+    TE  TE Align = 4K                  $(INF_OUTPUT)/$(MODULE_NAME).efi
+  }
+
+[Rule.Common.PEI_CORE]
+  FILE PEI_CORE = $(NAMED_GUID) {
+    TE     TE Align = Auto             $(INF_OUTPUT)/$(MODULE_NAME).efi
+    UI     STRING ="$(MODULE_NAME)" Optional
+  }
+
+[Rule.Common.PEIM]
+  FILE PEIM = $(NAMED_GUID) {
+     PEI_DEPEX PEI_DEPEX Optional       $(INF_OUTPUT)/$(MODULE_NAME).depex
+     TE       TE Align = Auto           $(INF_OUTPUT)/$(MODULE_NAME).efi
+     UI       STRING="$(MODULE_NAME)" Optional
+  }
+
+[Rule.Common.PEIM.BINARY]
+  FILE PEIM = $(NAMED_GUID) {
+     PEI_DEPEX PEI_DEPEX Optional       $(INF_OUTPUT)/$(MODULE_NAME).depex
+     TE       TE Align = Auto           |.efi
+     UI       STRING="$(MODULE_NAME)" Optional
+  }
+
+[Rule.Common.PEIM.TIANOCOMPRESSED]
+  FILE PEIM = $(NAMED_GUID) DEBUG_MYTOOLS_IA32 {
+    PEI_DEPEX PEI_DEPEX Optional        $(INF_OUTPUT)/$(MODULE_NAME).depex
+    GUIDED A31280AD-481E-41B6-95E8-127F4C984779 PROCESSING_REQUIRED = TRUE {
+      PE32      PE32                    $(INF_OUTPUT)/$(MODULE_NAME).efi
+      UI        STRING="$(MODULE_NAME)" Optional
+    }
+  }
+
+[Rule.Common.PEIM.FMP_IMAGE_DESC]
+  FILE PEIM = $(NAMED_GUID) {
+     RAW BIN                  |.acpi
+     PEI_DEPEX PEI_DEPEX Optional        $(INF_OUTPUT)/$(MODULE_NAME).depex
+     PE32      PE32      Align=4K        $(INF_OUTPUT)/$(MODULE_NAME).efi
+     UI        STRING="$(MODULE_NAME)"   Optional
+     VERSION   STRING="$(INF_VERSION)"   Optional BUILD_NUM=$(BUILD_NUMBER)
+  }
+
+[Rule.Common.DXE_CORE]
+  FILE DXE_CORE = $(NAMED_GUID) {
+    PE32     PE32                       $(INF_OUTPUT)/$(MODULE_NAME).efi
+    UI       STRING="$(MODULE_NAME)" Optional
+  }
+
+[Rule.Common.UEFI_DRIVER]
+  FILE DRIVER = $(NAMED_GUID) {
+    DXE_DEPEX    DXE_DEPEX              Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
+    PE32         PE32                   $(INF_OUTPUT)/$(MODULE_NAME).efi
+    UI           STRING="$(MODULE_NAME)" Optional
+  }
+
+[Rule.Common.DXE_DRIVER]
+  FILE DRIVER = $(NAMED_GUID) {
+    DXE_DEPEX    DXE_DEPEX              Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
+    PE32         PE32                   $(INF_OUTPUT)/$(MODULE_NAME).efi
+    UI           STRING="$(MODULE_NAME)" Optional
+  }
+
+[Rule.Common.DXE_DRIVER.BINARY]
+  FILE DRIVER = $(NAMED_GUID) {
+    DXE_DEPEX DXE_DEPEX Optional      |.depex
+    PE32      PE32                    |.efi
+    UI        STRING="$(MODULE_NAME)" Optional
+  }
+
+[Rule.Common.DXE_RUNTIME_DRIVER]
+  FILE DRIVER = $(NAMED_GUID) {
+    DXE_DEPEX    DXE_DEPEX              Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
+    PE32         PE32                   $(INF_OUTPUT)/$(MODULE_NAME).efi
+    UI           STRING="$(MODULE_NAME)" Optional
+  }
+
+[Rule.Common.UEFI_APPLICATION]
+  FILE APPLICATION = $(NAMED_GUID) {
+    UI     STRING ="$(MODULE_NAME)" Optional
+    PE32   PE32                         $(INF_OUTPUT)/$(MODULE_NAME).efi
+  }
+
+[Rule.Common.UEFI_DRIVER.BINARY]
+  FILE DRIVER = $(NAMED_GUID) {
+    DXE_DEPEX DXE_DEPEX Optional      |.depex
+    PE32      PE32                    |.efi
+    UI        STRING="$(MODULE_NAME)" Optional
+    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
+  }
+
+[Rule.Common.UEFI_APPLICATION.BINARY]
+  FILE APPLICATION = $(NAMED_GUID) {
+    PE32      PE32                    |.efi
+    UI        STRING="$(MODULE_NAME)" Optional
+    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
+  }
+
+[Rule.Common.USER_DEFINED.ACPITABLE]
+  FILE FREEFORM = $(NAMED_GUID) {
+    RAW ACPI               |.acpi
+    RAW ASL                |.aml
+  }
+
diff --git a/sdm845Pkg/Drivers/GenericKeypadDeviceDxe/GenericKeypadDevice.c b/sdm845Pkg/Drivers/GenericKeypadDeviceDxe/GenericKeypadDevice.c
new file mode 100644 (file)
index 0000000..3e85364
--- /dev/null
@@ -0,0 +1,56 @@
+#include <PiDxe.h>
+#include <Protocol/KeypadDevice.h>
+#include <Library/DebugLib.h>
+#include <Library/KeypadDeviceImplLib.h>
+#include <Library/UefiBootServicesTableLib.h>
+
+typedef struct {
+  VENDOR_DEVICE_PATH  Keypad;
+  EFI_DEVICE_PATH     End;
+} KEYPAD_DEVICE_PATH;
+
+KEYPAD_DEVICE_PATH mInternalDevicePath = {
+  {
+    {
+      HARDWARE_DEVICE_PATH,
+      HW_VENDOR_DP,
+      {
+        (UINT8)(sizeof(VENDOR_DEVICE_PATH)),
+        (UINT8)((sizeof(VENDOR_DEVICE_PATH)) >> 8),
+      },
+    },
+    EFI_CALLER_ID_GUID,
+  },
+  {
+    END_DEVICE_PATH_TYPE,
+    END_ENTIRE_DEVICE_PATH_SUBTYPE,
+    { sizeof (EFI_DEVICE_PATH_PROTOCOL), 0 }
+  }
+};
+
+STATIC KEYPAD_DEVICE_PROTOCOL mInternalKeypadDevice = {
+  KeypadDeviceImplReset,
+  KeypadDeviceImplGetKeys,
+};
+
+EFI_STATUS
+EFIAPI
+KeypadDeviceDxeInitialize (
+  IN EFI_HANDLE         ImageHandle,
+  IN EFI_SYSTEM_TABLE   *SystemTable
+  )
+{
+  EFI_STATUS Status;
+
+  Status = gBS->InstallMultipleProtocolInterfaces(
+                  &ImageHandle,
+                  &gEFIDroidKeypadDeviceProtocolGuid,      
+                  &mInternalKeypadDevice,
+                  &gEfiDevicePathProtocolGuid,         
+                  &mInternalDevicePath,
+                  NULL
+                  );
+  ASSERT_EFI_ERROR(Status);
+
+  return Status;
+}
diff --git a/sdm845Pkg/Drivers/GenericKeypadDeviceDxe/GenericKeypadDeviceDxe.inf b/sdm845Pkg/Drivers/GenericKeypadDeviceDxe/GenericKeypadDeviceDxe.inf
new file mode 100644 (file)
index 0000000..13a1861
--- /dev/null
@@ -0,0 +1,29 @@
+[Defines]
+  INF_VERSION                    = 0x00010005
+  BASE_NAME                      = GenericKeypadDeviceDxe
+  FILE_GUID                      = 39A24CF8-411E-48EB-8BEA-3ED07327F400
+  MODULE_TYPE                    = DXE_DRIVER
+  VERSION_STRING                 = 1.0
+
+  ENTRY_POINT                    = KeypadDeviceDxeInitialize
+
+[Sources.common]
+  GenericKeypadDevice.c
+
+[Packages]
+  MdePkg/MdePkg.dec
+  ArmPkg/ArmPkg.dec
+  EmbeddedPkg/EmbeddedPkg.dec
+  Lumia930Pkg/Lumia930Pkg.dec
+
+[LibraryClasses]
+  UefiDriverEntryPoint
+  MemoryAllocationLib
+  KeypadDeviceImplLib
+
+[Protocols]
+  gEFIDroidKeypadDeviceProtocolGuid
+  gEfiDevicePathProtocolGuid
+
+[Depex]
+  TRUE
diff --git a/sdm845Pkg/Drivers/KeypadDxe/ComponentName.c b/sdm845Pkg/Drivers/KeypadDxe/ComponentName.c
new file mode 100644 (file)
index 0000000..e0301f1
--- /dev/null
@@ -0,0 +1,352 @@
+/** @file
+  Routines related Component Name protocol.
+
+Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
+This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution.  The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+#include "Keypad.h"
+
+//
+// EFI Component Name Functions
+//
+/**
+  Retrieves a Unicode string that is the user readable name of the driver.
+
+  This function retrieves the user readable name of a driver in the form of a
+  Unicode string. If the driver specified by This has a user readable name in
+  the language specified by Language, then a pointer to the driver name is
+  returned in DriverName, and EFI_SUCCESS is returned. If the driver specified
+  by This does not support the language specified by Language,
+  then EFI_UNSUPPORTED is returned.
+
+  @param  This[in]              A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or
+                                EFI_COMPONENT_NAME_PROTOCOL instance.
+
+  @param  Language[in]          A pointer to a Null-terminated ASCII string
+                                array indicating the language. This is the
+                                language of the driver name that the caller is
+                                requesting, and it must match one of the
+                                languages specified in SupportedLanguages. The
+                                number of languages supported by a driver is up
+                                to the driver writer. Language is specified
+                                in RFC 4646 or ISO 639-2 language code format.
+
+  @param  DriverName[out]       A pointer to the Unicode string to return.
+                                This Unicode string is the name of the
+                                driver specified by This in the language
+                                specified by Language.
+
+  @retval EFI_SUCCESS           The Unicode string for the Driver specified by
+                                This and the language specified by Language was
+                                returned in DriverName.
+
+  @retval EFI_INVALID_PARAMETER Language is NULL.
+
+  @retval EFI_INVALID_PARAMETER DriverName is NULL.
+
+  @retval EFI_UNSUPPORTED       The driver specified by This does not support
+                                the language specified by Language.
+
+**/
+EFI_STATUS
+EFIAPI
+KeypadComponentNameGetDriverName (
+  IN  EFI_COMPONENT_NAME_PROTOCOL  *This,
+  IN  CHAR8                        *Language,
+  OUT CHAR16                       **DriverName
+  );
+
+
+/**
+  Retrieves a Unicode string that is the user readable name of the controller
+  that is being managed by a driver.
+
+  This function retrieves the user readable name of the controller specified by
+  ControllerHandle and ChildHandle in the form of a Unicode string. If the
+  driver specified by This has a user readable name in the language specified by
+  Language, then a pointer to the controller name is returned in ControllerName,
+  and EFI_SUCCESS is returned.  If the driver specified by This is not currently
+  managing the controller specified by ControllerHandle and ChildHandle,
+  then EFI_UNSUPPORTED is returned.  If the driver specified by This does not
+  support the language specified by Language, then EFI_UNSUPPORTED is returned.
+
+  @param  This[in]              A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or
+                                EFI_COMPONENT_NAME_PROTOCOL instance.
+
+  @param  ControllerHandle[in]  The handle of a controller that the driver
+                                specified by This is managing.  This handle
+                                specifies the controller whose name is to be
+                                returned.
+
+  @param  ChildHandle[in]       The handle of the child controller to retrieve
+                                the name of.  This is an optional parameter that
+                                may be NULL.  It will be NULL for device
+                                drivers.  It will also be NULL for a bus drivers
+                                that wish to retrieve the name of the bus
+                                controller.  It will not be NULL for a bus
+                                driver that wishes to retrieve the name of a
+                                child controller.
+
+  @param  Language[in]          A pointer to a Null-terminated ASCII string
+                                array indicating the language.  This is the
+                                language of the driver name that the caller is
+                                requesting, and it must match one of the
+                                languages specified in SupportedLanguages. The
+                                number of languages supported by a driver is up
+                                to the driver writer. Language is specified in
+                                RFC 4646 or ISO 639-2 language code format.
+
+  @param  ControllerName[out]   A pointer to the Unicode string to return.
+                                This Unicode string is the name of the
+                                controller specified by ControllerHandle and
+                                ChildHandle in the language specified by
+                                Language from the point of view of the driver
+                                specified by This.
+
+  @retval EFI_SUCCESS           The Unicode string for the user readable name in
+                                the language specified by Language for the
+                                driver specified by This was returned in
+                                DriverName.
+
+  @retval EFI_INVALID_PARAMETER ControllerHandle is NULL.
+
+  @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid
+                                EFI_HANDLE.
+
+  @retval EFI_INVALID_PARAMETER Language is NULL.
+
+  @retval EFI_INVALID_PARAMETER ControllerName is NULL.
+
+  @retval EFI_UNSUPPORTED       The driver specified by This is not currently
+                                managing the controller specified by
+                                ControllerHandle and ChildHandle.
+
+  @retval EFI_UNSUPPORTED       The driver specified by This does not support
+                                the language specified by Language.
+
+**/
+EFI_STATUS
+EFIAPI
+KeypadComponentNameGetControllerName (
+  IN  EFI_COMPONENT_NAME_PROTOCOL                     *This,
+  IN  EFI_HANDLE                                      ControllerHandle,
+  IN  EFI_HANDLE                                      ChildHandle        OPTIONAL,
+  IN  CHAR8                                           *Language,
+  OUT CHAR16                                          **ControllerName
+  );
+
+
+//
+// EFI Component Name Protocol
+//
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL  gKeypadComponentName = {
+  KeypadComponentNameGetDriverName,
+  KeypadComponentNameGetControllerName,
+  "eng"
+};
+
+//
+// EFI Component Name 2 Protocol
+//
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gKeypadComponentName2 = {
+  (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) KeypadComponentNameGetDriverName,
+  (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) KeypadComponentNameGetControllerName,
+  "en"
+};
+
+
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mKeypadDriverNameTable[] = {
+  {
+    "eng;en",
+    L"Keypad Driver"
+  },
+  {
+    NULL,
+    NULL
+  }
+};
+
+/**
+  Retrieves a Unicode string that is the user readable name of the driver.
+
+  This function retrieves the user readable name of a driver in the form of a
+  Unicode string. If the driver specified by This has a user readable name in
+  the language specified by Language, then a pointer to the driver name is
+  returned in DriverName, and EFI_SUCCESS is returned. If the driver specified
+  by This does not support the language specified by Language,
+  then EFI_UNSUPPORTED is returned.
+
+  @param  This[in]              A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or
+                                EFI_COMPONENT_NAME_PROTOCOL instance.
+
+  @param  Language[in]          A pointer to a Null-terminated ASCII string
+                                array indicating the language. This is the
+                                language of the driver name that the caller is
+                                requesting, and it must match one of the
+                                languages specified in SupportedLanguages. The
+                                number of languages supported by a driver is up
+                                to the driver writer. Language is specified
+                                in RFC 4646 or ISO 639-2 language code format.
+
+  @param  DriverName[out]       A pointer to the Unicode string to return.
+                                This Unicode string is the name of the
+                                driver specified by This in the language
+                                specified by Language.
+
+  @retval EFI_SUCCESS           The Unicode string for the Driver specified by
+                                This and the language specified by Language was
+                                returned in DriverName.
+
+  @retval EFI_INVALID_PARAMETER Language is NULL.
+
+  @retval EFI_INVALID_PARAMETER DriverName is NULL.
+
+  @retval EFI_UNSUPPORTED       The driver specified by This does not support
+                                the language specified by Language.
+
+**/
+EFI_STATUS
+EFIAPI
+KeypadComponentNameGetDriverName (
+  IN  EFI_COMPONENT_NAME_PROTOCOL  *This,
+  IN  CHAR8                        *Language,
+  OUT CHAR16                       **DriverName
+  )
+{
+  return LookupUnicodeString2 (
+           Language,
+           This->SupportedLanguages,
+           mKeypadDriverNameTable,
+           DriverName,
+           (BOOLEAN)(This == &gKeypadComponentName)
+           );
+}
+
+/**
+  Retrieves a Unicode string that is the user readable name of the controller
+  that is being managed by a driver.
+
+  This function retrieves the user readable name of the controller specified by
+  ControllerHandle and ChildHandle in the form of a Unicode string. If the
+  driver specified by This has a user readable name in the language specified by
+  Language, then a pointer to the controller name is returned in ControllerName,
+  and EFI_SUCCESS is returned.  If the driver specified by This is not currently
+  managing the controller specified by ControllerHandle and ChildHandle,
+  then EFI_UNSUPPORTED is returned.  If the driver specified by This does not
+  support the language specified by Language, then EFI_UNSUPPORTED is returned.
+
+  @param  This[in]              A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or
+                                EFI_COMPONENT_NAME_PROTOCOL instance.
+
+  @param  ControllerHandle[in]  The handle of a controller that the driver
+                                specified by This is managing.  This handle
+                                specifies the controller whose name is to be
+                                returned.
+
+  @param  ChildHandle[in]       The handle of the child controller to retrieve
+                                the name of.  This is an optional parameter that
+                                may be NULL.  It will be NULL for device
+                                drivers.  It will also be NULL for a bus drivers
+                                that wish to retrieve the name of the bus
+                                controller.  It will not be NULL for a bus
+                                driver that wishes to retrieve the name of a
+                                child controller.
+
+  @param  Language[in]          A pointer to a Null-terminated ASCII string
+                                array indicating the language.  This is the
+                                language of the driver name that the caller is
+                                requesting, and it must match one of the
+                                languages specified in SupportedLanguages. The
+                                number of languages supported by a driver is up
+                                to the driver writer. Language is specified in
+                                RFC 4646 or ISO 639-2 language code format.
+
+  @param  ControllerName[out]   A pointer to the Unicode string to return.
+                                This Unicode string is the name of the
+                                controller specified by ControllerHandle and
+                                ChildHandle in the language specified by
+                                Language from the point of view of the driver
+                                specified by This.
+
+  @retval EFI_SUCCESS           The Unicode string for the user readable name in
+                                the language specified by Language for the
+                                driver specified by This was returned in
+                                DriverName.
+
+  @retval EFI_INVALID_PARAMETER ControllerHandle is NULL.
+
+  @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid
+                                EFI_HANDLE.
+
+  @retval EFI_INVALID_PARAMETER Language is NULL.
+
+  @retval EFI_INVALID_PARAMETER ControllerName is NULL.
+
+  @retval EFI_UNSUPPORTED       The driver specified by This is not currently
+                                managing the controller specified by
+                                ControllerHandle and ChildHandle.
+
+  @retval EFI_UNSUPPORTED       The driver specified by This does not support
+                                the language specified by Language.
+
+**/
+EFI_STATUS
+EFIAPI
+KeypadComponentNameGetControllerName (
+  IN  EFI_COMPONENT_NAME_PROTOCOL                     *This,
+  IN  EFI_HANDLE                                      ControllerHandle,
+  IN  EFI_HANDLE                                      ChildHandle        OPTIONAL,
+  IN  CHAR8                                           *Language,
+  OUT CHAR16                                          **ControllerName
+  )
+{
+  EFI_STATUS                                  Status;
+  EFI_SIMPLE_TEXT_INPUT_PROTOCOL              *ConIn;
+  KEYPAD_CONSOLE_IN_DEV                       *ConsoleIn;
+  //
+  // This is a device driver, so ChildHandle must be NULL.
+  //
+  if (ChildHandle != NULL) {
+    return EFI_UNSUPPORTED;
+  }
+
+  //
+  // Check Controller's handle
+  //
+  Status = EfiTestManagedDevice (ControllerHandle, gKeypadControllerDriver.DriverBindingHandle, &gEFIDroidKeypadDeviceProtocolGuid);
+  if (EFI_ERROR (Status)) {
+    return Status;
+  }
+  //
+  // Get the device context
+  //
+  Status = gBS->OpenProtocol (
+                  ControllerHandle,
+                  &gEfiSimpleTextInProtocolGuid,
+                  (VOID **) &ConIn,
+                  gKeypadControllerDriver.DriverBindingHandle,
+                  ControllerHandle,
+                  EFI_OPEN_PROTOCOL_GET_PROTOCOL
+                  );
+  if (EFI_ERROR (Status)) {
+    return Status;
+  }
+
+  ConsoleIn = KEYPAD_CONSOLE_IN_DEV_FROM_THIS (ConIn);
+
+  return LookupUnicodeString2 (
+           Language,
+           This->SupportedLanguages,
+           ConsoleIn->ControllerNameTable,
+           ControllerName,
+           (BOOLEAN)(This == &gKeypadComponentName)
+           );
+}
diff --git a/sdm845Pkg/Drivers/KeypadDxe/Keypad.c b/sdm845Pkg/Drivers/KeypadDxe/Keypad.c
new file mode 100644 (file)
index 0000000..c681205
--- /dev/null
@@ -0,0 +1,583 @@
+/** @file
+
+  Keypad driver. Routines that interacts with callers,
+  conforming to EFI driver model
+
+Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
+This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution.  The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+#include "Keypad.h"
+#include <Configuration/BootDevices.h>
+
+//
+// Function prototypes
+//
+/**
+  Test controller is a keypad Controller.
+
+  @param This                 Pointer of EFI_DRIVER_BINDING_PROTOCOL
+  @param Controller           driver's controller
+  @param RemainingDevicePath  children device path
+
+  @retval EFI_UNSUPPORTED controller is not floppy disk
+  @retval EFI_SUCCESS     controller is floppy disk
+**/
+EFI_STATUS
+EFIAPI
+KeypadControllerDriverSupported (
+  IN EFI_DRIVER_BINDING_PROTOCOL    *This,
+  IN EFI_HANDLE                     Controller,
+  IN EFI_DEVICE_PATH_PROTOCOL       *RemainingDevicePath
+  );
+
+/**
+  Create KEYPAD_CONSOLE_IN_DEV instance on controller.
+
+  @param This         Pointer of EFI_DRIVER_BINDING_PROTOCOL
+  @param Controller   driver controller handle
+  @param RemainingDevicePath Children's device path
+
+  @retval whether success to create floppy control instance.
+**/
+EFI_STATUS
+EFIAPI
+KeypadControllerDriverStart (
+  IN EFI_DRIVER_BINDING_PROTOCOL    *This,
+  IN EFI_HANDLE                     Controller,
+  IN EFI_DEVICE_PATH_PROTOCOL       *RemainingDevicePath
+  );
+
+/**
+  Stop this driver on ControllerHandle. Support stopping any child handles
+  created by this driver.
+
+  @param  This              Protocol instance pointer.
+  @param  ControllerHandle  Handle of device to stop driver on
+  @param  NumberOfChildren  Number of Handles in ChildHandleBuffer. If number of
+                            children is zero stop the entire bus driver.
+  @param  ChildHandleBuffer List of Child Handles to Stop.
+
+  @retval EFI_SUCCESS       This driver is removed ControllerHandle
+  @retval other             This driver was not removed from this device
+
+**/
+EFI_STATUS
+EFIAPI
+KeypadControllerDriverStop (
+  IN  EFI_DRIVER_BINDING_PROTOCOL    *This,
+  IN  EFI_HANDLE                     Controller,
+  IN  UINTN                          NumberOfChildren,
+  IN  EFI_HANDLE                     *ChildHandleBuffer
+  );
+
+/**
+  Free the waiting key notify list.
+
+  @param ListHead  Pointer to list head
+
+  @retval EFI_INVALID_PARAMETER  ListHead is NULL
+  @retval EFI_SUCCESS            Sucess to free NotifyList
+**/
+EFI_STATUS
+KbdFreeNotifyList (
+  IN OUT LIST_ENTRY           *ListHead
+  );
+
+//
+// DriverBinding Protocol Instance
+//
+EFI_DRIVER_BINDING_PROTOCOL gKeypadControllerDriver = {
+  KeypadControllerDriverSupported,
+  KeypadControllerDriverStart,
+  KeypadControllerDriverStop,
+  0xa,
+  NULL,
+  NULL
+};
+
+/**
+  Test controller is a keypad Controller.
+
+  @param This                 Pointer of EFI_DRIVER_BINDING_PROTOCOL
+  @param Controller           driver's controller
+  @param RemainingDevicePath  children device path
+
+  @retval EFI_UNSUPPORTED controller is not floppy disk
+  @retval EFI_SUCCESS     controller is floppy disk
+**/
+EFI_STATUS
+EFIAPI
+KeypadControllerDriverSupported (
+  IN EFI_DRIVER_BINDING_PROTOCOL    *This,
+  IN EFI_HANDLE                     Controller,
+  IN EFI_DEVICE_PATH_PROTOCOL       *RemainingDevicePath
+  )
+{
+  EFI_STATUS                                 Status;
+  KEYPAD_DEVICE_PROTOCOL                     *KeypadDevice;
+
+  //
+  // Open the IO Abstraction(s) needed to perform the supported test
+  //
+  Status = gBS->OpenProtocol (
+                  Controller,
+                  &gEFIDroidKeypadDeviceProtocolGuid,
+                  (VOID **) &KeypadDevice,
+                  This->DriverBindingHandle,
+                  Controller,
+                  EFI_OPEN_PROTOCOL_BY_DRIVER
+                  );
+  if (EFI_ERROR (Status)) {
+    return Status;
+  }
+
+  //
+  // Close the I/O Abstraction(s) used to perform the supported test
+  //
+  gBS->CloseProtocol (
+         Controller,
+         &gEFIDroidKeypadDeviceProtocolGuid,
+         This->DriverBindingHandle,
+         Controller
+         );
+
+  return Status;
+}
+
+
+STATIC
+VOID
+EFIAPI
+KeypadReturnApiPushEfikeyBufTail (
+  KEYPAD_RETURN_API  *This,
+  EFI_KEY_DATA       *KeyData
+  )
+{
+  KEYPAD_CONSOLE_IN_DEV          *ConsoleIn;
+  LIST_ENTRY                     *Link;
+  KEYPAD_CONSOLE_IN_EX_NOTIFY    *CurrentNotify;
+
+  ConsoleIn = KEYPAD_CONSOLE_IN_DEV_FROM_KEYPAD_RETURN_API (This);
+
+  //
+  // If the key can not be converted then just return.
+  //
+  if (KeyData->Key.ScanCode == SCAN_NULL && KeyData->Key.UnicodeChar == CHAR_NULL) {
+    if (!ConsoleIn->IsSupportPartialKey) {
+      return;
+    }
+  }
+
+  //
+  // Signal KeyNotify process event if this key pressed matches any key registered.
+  //
+  for (Link = GetFirstNode (&ConsoleIn->NotifyList); !IsNull (&ConsoleIn->NotifyList, Link); Link = GetNextNode (&ConsoleIn->NotifyList, Link)) {
+    CurrentNotify = CR (
+                      Link,
+                      KEYPAD_CONSOLE_IN_EX_NOTIFY,
+                      NotifyEntry,
+                      KEYPAD_CONSOLE_IN_EX_NOTIFY_SIGNATURE
+                      );
+    if (IsKeyRegistered (&CurrentNotify->KeyData, KeyData)) {
+      //
+      // The key notification function needs to run at TPL_CALLBACK
+      // while current TPL is TPL_NOTIFY. It will be invoked in
+      // KeyNotifyProcessHandler() which runs at TPL_CALLBACK.
+      //
+      PushEfikeyBufTail (&ConsoleIn->EfiKeyQueueForNotify, KeyData);
+      gBS->SignalEvent (ConsoleIn->KeyNotifyProcessEvent);
+    }
+  }
+
+  PushEfikeyBufTail (&ConsoleIn->EfiKeyQueue, KeyData);
+}
+
+/**
+  Create KEYPAD_CONSOLE_IN_DEV instance on controller.
+
+  @param This         Pointer of EFI_DRIVER_BINDING_PROTOCOL
+  @param Controller   driver controller handle
+  @param RemainingDevicePath Children's device path
+
+  @retval whether success to create floppy control instance.
+**/
+EFI_STATUS
+EFIAPI
+KeypadControllerDriverStart (
+  IN EFI_DRIVER_BINDING_PROTOCOL    *This,
+  IN EFI_HANDLE                     Controller,
+  IN EFI_DEVICE_PATH_PROTOCOL       *RemainingDevicePath
+  )
+{
+  EFI_STATUS                                Status;
+  KEYPAD_DEVICE_PROTOCOL                    *KeypadDevice;
+  KEYPAD_CONSOLE_IN_DEV                     *ConsoleIn;
+
+  //
+  // Get the ISA I/O Protocol on Controller's handle
+  //
+  Status = gBS->OpenProtocol (
+                  Controller,
+                  &gEFIDroidKeypadDeviceProtocolGuid,
+                  (VOID **) &KeypadDevice,
+                  This->DriverBindingHandle,
+                  Controller,
+                  EFI_OPEN_PROTOCOL_BY_DRIVER
+                  );
+  if (EFI_ERROR (Status)) {
+    return Status;
+  }
+  //
+  // Allocate private data
+  //
+  ConsoleIn = AllocateZeroPool (sizeof (KEYPAD_CONSOLE_IN_DEV));
+  if (ConsoleIn == NULL) {
+    Status      = EFI_OUT_OF_RESOURCES;
+    goto ErrorExit;
+  }
+  //
+  // Setup the device instance
+  //
+  ConsoleIn->Signature              = KEYPAD_CONSOLE_IN_DEV_SIGNATURE;
+  ConsoleIn->Handle                 = Controller;
+  (ConsoleIn->ConIn).Reset          = KeypadEfiReset;
+  (ConsoleIn->ConIn).ReadKeyStroke  = KeypadReadKeyStroke;
+  ConsoleIn->KeypadDevice           = KeypadDevice;
+  ConsoleIn->KeypadReturnApi.PushEfikeyBufTail = KeypadReturnApiPushEfikeyBufTail;
+  ConsoleIn->Last                   = (UINT64)-1;
+
+  ConsoleIn->ConInEx.Reset               = KeypadEfiResetEx;
+  ConsoleIn->ConInEx.ReadKeyStrokeEx     = KeypadReadKeyStrokeEx;
+  ConsoleIn->ConInEx.SetState            = KeypadSetState;
+  ConsoleIn->ConInEx.RegisterKeyNotify   = KeypadRegisterKeyNotify;
+  ConsoleIn->ConInEx.UnregisterKeyNotify = KeypadUnregisterKeyNotify;
+
+  InitializeListHead (&ConsoleIn->NotifyList);
+
+  //
+  // Fix for random hangs in System waiting for the Key if no KBC is present in BIOS.
+  // When KBC decode (IO port 0x60/0x64 decode) is not enabled,
+  // KeypadRead will read back as 0xFF and return status is EFI_SUCCESS.
+  // So instead we read status register to detect after read if KBC decode is enabled.
+  //
+
+  //
+  // Setup the WaitForKey event
+  //
+  Status = gBS->CreateEvent (
+                  EVT_NOTIFY_WAIT,
+                  TPL_NOTIFY,
+                  KeypadWaitForKey,
+                  ConsoleIn,
+                  &((ConsoleIn->ConIn).WaitForKey)
+                  );
+  if (EFI_ERROR (Status)) {
+    Status      = EFI_OUT_OF_RESOURCES;
+    goto ErrorExit;
+  }
+  //
+  // Setup the WaitForKeyEx event
+  //
+  Status = gBS->CreateEvent (
+                  EVT_NOTIFY_WAIT,
+                  TPL_NOTIFY,
+                  KeypadWaitForKeyEx,
+                  ConsoleIn,
+                  &(ConsoleIn->ConInEx.WaitForKeyEx)
+                  );
+  if (EFI_ERROR (Status)) {
+    Status      = EFI_OUT_OF_RESOURCES;
+    goto ErrorExit;
+  }
+  // Setup a periodic timer, used for reading keystrokes at a fixed interval
+  //
+  Status = gBS->CreateEvent (
+                  EVT_TIMER | EVT_NOTIFY_SIGNAL,
+                  TPL_NOTIFY,
+                  KeypadTimerHandler,
+                  ConsoleIn,
+                  &ConsoleIn->TimerEvent
+                  );
+  if (EFI_ERROR (Status)) {
+    Status      = EFI_OUT_OF_RESOURCES;
+    goto ErrorExit;
+  }
+
+  Status = gBS->SetTimer (
+                  ConsoleIn->TimerEvent,
+                  TimerPeriodic,
+                  KEYPAD_TIMER_INTERVAL
+                  );
+  if (EFI_ERROR (Status)) {
+    Status      = EFI_OUT_OF_RESOURCES;
+    goto ErrorExit;
+  }
+
+  Status = gBS->CreateEvent (
+                  EVT_NOTIFY_SIGNAL,
+                  TPL_CALLBACK,
+                  KeyNotifyProcessHandler,
+                  ConsoleIn,
+                  &ConsoleIn->KeyNotifyProcessEvent
+                  );
+  if (EFI_ERROR (Status)) {
+    Status      = EFI_OUT_OF_RESOURCES;
+    goto ErrorExit;
+  }
+
+  //
+  // Reset the keypad device
+  //
+  Status = ConsoleIn->ConInEx.Reset (&ConsoleIn->ConInEx, FALSE);
+  if (EFI_ERROR (Status)) {
+    Status      = EFI_DEVICE_ERROR;
+    goto ErrorExit;
+  }
+
+  ConsoleIn->ControllerNameTable = NULL;
+  AddUnicodeString2 (
+    "eng",
+    gKeypadComponentName.SupportedLanguages,
+    &ConsoleIn->ControllerNameTable,
+    L"Keypad Device",
+    TRUE
+    );
+  AddUnicodeString2 (
+    "en",
+    gKeypadComponentName2.SupportedLanguages,
+    &ConsoleIn->ControllerNameTable,
+    L"Keypad Device",
+    FALSE
+    );
+
+
+  //
+  // Install protocol interfaces for the keypad device.
+  //
+  Status = gBS->InstallMultipleProtocolInterfaces (
+                  &Controller,
+                  &gEfiSimpleTextInProtocolGuid,
+                  &ConsoleIn->ConIn,
+                  &gEfiSimpleTextInputExProtocolGuid,
+                  &ConsoleIn->ConInEx,
+                  NULL
+                  );
+  if (EFI_ERROR (Status)) {
+    goto ErrorExit;
+  }
+
+  return Status;
+
+ErrorExit:
+  if ((ConsoleIn != NULL) && (ConsoleIn->ConIn.WaitForKey != NULL)) {
+    gBS->CloseEvent (ConsoleIn->ConIn.WaitForKey);
+  }
+
+  if ((ConsoleIn != NULL) && (ConsoleIn->TimerEvent != NULL)) {
+    gBS->CloseEvent (ConsoleIn->TimerEvent);
+  }
+  if ((ConsoleIn != NULL) && (ConsoleIn->ConInEx.WaitForKeyEx != NULL)) {
+    gBS->CloseEvent (ConsoleIn->ConInEx.WaitForKeyEx);
+  }
+  if ((ConsoleIn != NULL) && (ConsoleIn->KeyNotifyProcessEvent != NULL)) {
+    gBS->CloseEvent (ConsoleIn->KeyNotifyProcessEvent);
+  }
+  KbdFreeNotifyList (&ConsoleIn->NotifyList);
+  if ((ConsoleIn != NULL) && (ConsoleIn->ControllerNameTable != NULL)) {
+    FreeUnicodeStringTable (ConsoleIn->ControllerNameTable);
+  }
+
+  if (ConsoleIn != NULL) {
+    gBS->FreePool (ConsoleIn);
+  }
+
+  gBS->CloseProtocol (
+         Controller,
+         &gEFIDroidKeypadDeviceProtocolGuid,
+         This->DriverBindingHandle,
+         Controller
+         );
+
+  return Status;
+}
+
+/**
+  Stop this driver on ControllerHandle. Support stopping any child handles
+  created by this driver.
+
+  @param  This              Protocol instance pointer.
+  @param  ControllerHandle  Handle of device to stop driver on
+  @param  NumberOfChildren  Number of Handles in ChildHandleBuffer. If number of
+                            children is zero stop the entire bus driver.
+  @param  ChildHandleBuffer List of Child Handles to Stop.
+
+  @retval EFI_SUCCESS       This driver is removed ControllerHandle
+  @retval other             This driver was not removed from this device
+
+**/
+EFI_STATUS
+EFIAPI
+KeypadControllerDriverStop (
+  IN  EFI_DRIVER_BINDING_PROTOCOL    *This,
+  IN  EFI_HANDLE                     Controller,
+  IN  UINTN                          NumberOfChildren,
+  IN  EFI_HANDLE                     *ChildHandleBuffer
+  )
+{
+  EFI_STATUS                     Status;
+  EFI_SIMPLE_TEXT_INPUT_PROTOCOL *ConIn;
+  KEYPAD_CONSOLE_IN_DEV          *ConsoleIn;
+
+  //
+  // Disable Keypad
+  //
+  Status = gBS->OpenProtocol (
+                  Controller,
+                  &gEfiSimpleTextInProtocolGuid,
+                  (VOID **) &ConIn,
+                  This->DriverBindingHandle,
+                  Controller,
+                  EFI_OPEN_PROTOCOL_GET_PROTOCOL
+                  );
+  if (EFI_ERROR (Status)) {
+    return Status;
+  }
+  Status = gBS->OpenProtocol (
+                  Controller,
+                  &gEfiSimpleTextInputExProtocolGuid,
+                  NULL,
+                  This->DriverBindingHandle,
+                  Controller,
+                  EFI_OPEN_PROTOCOL_TEST_PROTOCOL
+                  );
+  if (EFI_ERROR (Status)) {
+    return Status;
+  }
+
+  ConsoleIn = KEYPAD_CONSOLE_IN_DEV_FROM_THIS (ConIn);
+
+  if (ConsoleIn->TimerEvent != NULL) {
+    gBS->CloseEvent (ConsoleIn->TimerEvent);
+    ConsoleIn->TimerEvent = NULL;
+  }
+
+  //
+  // Uninstall the SimpleTextIn and SimpleTextInEx protocols
+  //
+  Status = gBS->UninstallMultipleProtocolInterfaces (
+                  Controller,
+                  &gEfiSimpleTextInProtocolGuid,
+                  &ConsoleIn->ConIn,
+                  &gEfiSimpleTextInputExProtocolGuid,
+                  &ConsoleIn->ConInEx,
+                  NULL
+                  );
+  if (EFI_ERROR (Status)) {
+    return Status;
+  }
+
+  gBS->CloseProtocol (
+         Controller,
+         &gEFIDroidKeypadDeviceProtocolGuid,
+         This->DriverBindingHandle,
+         Controller
+         );
+
+  //
+  // Free other resources
+  //
+  if ((ConsoleIn->ConIn).WaitForKey != NULL) {
+    gBS->CloseEvent ((ConsoleIn->ConIn).WaitForKey);
+    (ConsoleIn->ConIn).WaitForKey = NULL;
+  }
+  if (ConsoleIn->ConInEx.WaitForKeyEx != NULL) {
+    gBS->CloseEvent (ConsoleIn->ConInEx.WaitForKeyEx);
+    ConsoleIn->ConInEx.WaitForKeyEx = NULL;
+  }
+  if (ConsoleIn->KeyNotifyProcessEvent != NULL) {
+    gBS->CloseEvent (ConsoleIn->KeyNotifyProcessEvent);
+    ConsoleIn->KeyNotifyProcessEvent = NULL;
+  }
+  KbdFreeNotifyList (&ConsoleIn->NotifyList);
+  FreeUnicodeStringTable (ConsoleIn->ControllerNameTable);
+  gBS->FreePool (ConsoleIn);
+
+  return EFI_SUCCESS;
+}
+
+/**
+  Free the waiting key notify list.
+
+  @param ListHead  Pointer to list head
+
+  @retval EFI_INVALID_PARAMETER  ListHead is NULL
+  @retval EFI_SUCCESS            Sucess to free NotifyList
+**/
+EFI_STATUS
+KbdFreeNotifyList (
+  IN OUT LIST_ENTRY           *ListHead
+  )
+{
+  KEYPAD_CONSOLE_IN_EX_NOTIFY *NotifyNode;
+
+  if (ListHead == NULL) {
+    return EFI_INVALID_PARAMETER;
+  }
+  while (!IsListEmpty (ListHead)) {
+    NotifyNode = CR (
+                   ListHead->ForwardLink,
+                   KEYPAD_CONSOLE_IN_EX_NOTIFY,
+                   NotifyEntry,
+                   KEYPAD_CONSOLE_IN_EX_NOTIFY_SIGNATURE
+                   );
+    RemoveEntryList (ListHead->ForwardLink);
+    gBS->FreePool (NotifyNode);
+  }
+
+  return EFI_SUCCESS;
+}
+
+/**
+  The module Entry Point for module Keypad.
+
+  @param[in] ImageHandle    The firmware allocated handle for the EFI image.
+  @param[in] SystemTable    A pointer to the EFI System Table.
+
+  @retval EFI_SUCCESS       The entry point is executed successfully.
+  @retval other             Some error occurs when executing this entry point.
+
+**/
+EFI_STATUS
+EFIAPI
+InitializeKeypad(
+  IN EFI_HANDLE           ImageHandle,
+  IN EFI_SYSTEM_TABLE     *SystemTable
+  )
+{
+  EFI_STATUS              Status;
+
+  //
+  // Install driver model protocol(s).
+  //
+  Status = EfiLibInstallDriverBindingComponentName2 (
+             ImageHandle,
+             SystemTable,
+             &gKeypadControllerDriver,
+             ImageHandle,
+             &gKeypadComponentName,
+             &gKeypadComponentName2
+             );
+  ASSERT_EFI_ERROR (Status);
+
+
+  return Status;
+}
+
diff --git a/sdm845Pkg/Drivers/KeypadDxe/Keypad.h b/sdm845Pkg/Drivers/KeypadDxe/Keypad.h
new file mode 100644 (file)
index 0000000..3fe6a52
--- /dev/null
@@ -0,0 +1,402 @@
+/** @file
+  Keypad driver header file
+
+Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
+This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution.  The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+#ifndef _KEYPAD_H_
+#define _KEYPAD_H_
+
+#include <Uefi.h>
+
+#include <Protocol/SimpleTextIn.h>
+#include <Protocol/SimpleTextInEx.h>
+#include <Protocol/KeypadDevice.h>
+
+#include <Library/IoLib.h>
+#include <Library/UefiDriverEntryPoint.h>
+#include <Library/UefiLib.h>
+#include <Library/UefiBootServicesTableLib.h>
+#include <Library/DebugLib.h>
+#include <Library/UefiRuntimeServicesTableLib.h>
+#include <Library/MemoryAllocationLib.h>
+#include <Library/BaseLib.h>
+#include <Library/BaseMemoryLib.h>
+#include <Library/TimerLib.h>
+#include <Library/PcdLib.h>
+
+//
+// Global Variables
+//
+extern EFI_DRIVER_BINDING_PROTOCOL   gKeypadControllerDriver;
+extern EFI_COMPONENT_NAME_PROTOCOL   gKeypadComponentName;
+extern EFI_COMPONENT_NAME2_PROTOCOL  gKeypadComponentName2;
+
+//
+// Driver Private Data
+//
+#define KEYPAD_CONSOLE_IN_DEV_SIGNATURE       SIGNATURE_32 ('k', 'k', 'e', 'y')
+#define KEYPAD_CONSOLE_IN_EX_NOTIFY_SIGNATURE SIGNATURE_32 ('k', 'c', 'e', 'n')
+
+typedef struct _KEYPAD_CONSOLE_IN_EX_NOTIFY {
+  UINTN                               Signature;
+  EFI_KEY_DATA                        KeyData;
+  EFI_KEY_NOTIFY_FUNCTION             KeyNotificationFn;
+  LIST_ENTRY                          NotifyEntry;
+} KEYPAD_CONSOLE_IN_EX_NOTIFY;
+
+#define KEYPAD_EFI_KEY_MAX_COUNT    256
+typedef struct {
+  EFI_KEY_DATA                        Buffer[KEYPAD_EFI_KEY_MAX_COUNT];
+  UINTN                               Head;
+  UINTN                               Tail;
+} EFI_KEY_QUEUE;
+
+typedef struct {
+  UINTN                               Signature;
+
+  EFI_HANDLE                          Handle;
+  EFI_SIMPLE_TEXT_INPUT_PROTOCOL      ConIn;
+  EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL   ConInEx;
+
+  EFI_EVENT                           TimerEvent;
+
+  KEYPAD_DEVICE_PROTOCOL             *KeypadDevice;
+  KEYPAD_RETURN_API                  KeypadReturnApi;
+
+  // counter value of the last poll
+  UINT64                              Last;
+
+  BOOLEAN                             LeftCtrl;
+  BOOLEAN                             RightCtrl;
+  BOOLEAN                             LeftAlt;
+  BOOLEAN                             RightAlt;
+  BOOLEAN                             LeftShift;
+  BOOLEAN                             RightShift;
+  BOOLEAN                             LeftLogo;
+  BOOLEAN                             RightLogo;
+  BOOLEAN                             Menu;
+  BOOLEAN                             SysReq;
+
+  BOOLEAN                             CapsLock;
+  BOOLEAN                             NumLock;
+  BOOLEAN                             ScrollLock;
+
+  BOOLEAN                             IsSupportPartialKey;
+  //
+  // Queue storing key scancodes
+  //
+  EFI_KEY_QUEUE                       EfiKeyQueue;
+  EFI_KEY_QUEUE                       EfiKeyQueueForNotify;
+
+  //
+  // Error state
+  //
+  BOOLEAN                             KeypadErr;
+
+  EFI_UNICODE_STRING_TABLE            *ControllerNameTable;
+
+  //
+  // Notification Function List
+  //
+  LIST_ENTRY                          NotifyList;
+  EFI_EVENT                           KeyNotifyProcessEvent;
+} KEYPAD_CONSOLE_IN_DEV;
+
+#define KEYPAD_CONSOLE_IN_DEV_FROM_KEYPAD_RETURN_API(a)  CR (a, KEYPAD_CONSOLE_IN_DEV, KeypadReturnApi, KEYPAD_CONSOLE_IN_DEV_SIGNATURE)
+#define KEYPAD_CONSOLE_IN_DEV_FROM_THIS(a)  CR (a, KEYPAD_CONSOLE_IN_DEV, ConIn, KEYPAD_CONSOLE_IN_DEV_SIGNATURE)
+#define TEXT_INPUT_EX_KEYPAD_CONSOLE_IN_DEV_FROM_THIS(a) \
+  CR (a, \
+      KEYPAD_CONSOLE_IN_DEV, \
+      ConInEx, \
+      KEYPAD_CONSOLE_IN_DEV_SIGNATURE \
+      )
+
+#define TABLE_END 0x0
+
+#define KEYPAD_TIMER_INTERVAL         200000  // 0.02s
+
+//
+// Driver entry point
+//
+/**
+  The user Entry Point for module KeypadDxe. The user code starts with this function.
+
+  @param[in] ImageHandle    The firmware allocated handle for the EFI image.
+  @param[in] SystemTable    A pointer to the EFI System Table.
+
+  @retval EFI_SUCCESS       The entry point is executed successfully.
+  @retval other             Some error occurs when executing this entry point.
+
+**/
+EFI_STATUS
+EFIAPI
+InstallKeypadDriver (
+  IN EFI_HANDLE           ImageHandle,
+  IN EFI_SYSTEM_TABLE     *SystemTable
+  );
+
+//
+// Other functions that are used among .c files
+//
+
+/**
+  Process key notify.
+
+  @param  Event                 Indicates the event that invoke this function.
+  @param  Context               Indicates the calling context.
+**/
+VOID
+EFIAPI
+KeyNotifyProcessHandler (
+  IN  EFI_EVENT                 Event,
+  IN  VOID                      *Context
+  );
+
+/**
+  Perform 8042 controller and keypad Initialization.
+  If ExtendedVerification is TRUE, do additional test for
+  the keypad interface
+
+  @param ConsoleIn - KEYPAD_CONSOLE_IN_DEV instance pointer
+  @param ExtendedVerification - indicates a thorough initialization
+
+  @retval EFI_DEVICE_ERROR Fail to init keypad
+  @retval EFI_SUCCESS      Success to init keypad
+**/
+EFI_STATUS
+InitKeypad (
+  IN OUT KEYPAD_CONSOLE_IN_DEV *ConsoleIn,
+  IN BOOLEAN                     ExtendedVerification
+  );
+
+/**
+  Timer event handler: read a series of scancodes from 8042
+  and put them into memory scancode buffer.
+  it read as much scancodes to either fill
+  the memory buffer or empty the keypad buffer.
+  It is registered as running under TPL_NOTIFY
+
+  @param Event - The timer event
+  @param Context - A KEYPAD_CONSOLE_IN_DEV pointer
+
+**/
+VOID
+EFIAPI
+KeypadTimerHandler (
+  IN EFI_EVENT    Event,
+  IN VOID         *Context
+  );
+
+/**
+  logic reset keypad
+  Implement SIMPLE_TEXT_IN.Reset()
+  Perform 8042 controller and keypad initialization
+
+  @param This    Pointer to instance of EFI_SIMPLE_TEXT_INPUT_PROTOCOL
+  @param ExtendedVerification Indicate that the driver may perform a more
+                              exhaustive verification operation of the device during
+                              reset, now this par is ignored in this driver
+
+**/
+EFI_STATUS
+EFIAPI
+KeypadEfiReset (
+  IN  EFI_SIMPLE_TEXT_INPUT_PROTOCOL  *This,
+  IN  BOOLEAN                         ExtendedVerification
+  );
+
+/**
+  Implement SIMPLE_TEXT_IN.ReadKeyStroke().
+  Retrieve key values for driver user.
+
+  @param This    Pointer to instance of EFI_SIMPLE_TEXT_INPUT_PROTOCOL
+  @param Key     The output buffer for key value
+
+  @retval EFI_SUCCESS success to read key stroke
+**/
+EFI_STATUS
+EFIAPI
+KeypadReadKeyStroke (
+  IN  EFI_SIMPLE_TEXT_INPUT_PROTOCOL  *This,
+  OUT EFI_INPUT_KEY                   *Key
+  );
+
+/**
+  Event notification function for SIMPLE_TEXT_IN.WaitForKey event
+  Signal the event if there is key available
+
+  @param Event    the event object
+  @param Context  waitting context
+
+**/
+VOID
+EFIAPI
+KeypadWaitForKey (
+  IN  EFI_EVENT               Event,
+  IN  VOID                    *Context
+  );
+
+/**
+  Event notification function for SIMPLE_TEXT_INPUT_EX_PROTOCOL.WaitForKeyEx event
+  Signal the event if there is key available
+
+  @param Event    event object
+  @param Context  waiting context
+
+**/
+VOID
+EFIAPI
+KeypadWaitForKeyEx (
+  IN  EFI_EVENT               Event,
+  IN  VOID                    *Context
+  );
+
+//
+// Simple Text Input Ex protocol function prototypes
+//
+
+/**
+  Reset the input device and optionaly run diagnostics
+
+  @param This                 - Protocol instance pointer.
+  @param ExtendedVerification - Driver may perform diagnostics on reset.
+
+  @retval EFI_SUCCESS           - The device was reset.
+  @retval EFI_DEVICE_ERROR      - The device is not functioning properly and could
+                                  not be reset.
+
+**/
+EFI_STATUS
+EFIAPI
+KeypadEfiResetEx (
+  IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL  *This,
+  IN BOOLEAN                            ExtendedVerification
+  );
+
+/**
+    Reads the next keystroke from the input device. The WaitForKey Event can
+    be used to test for existance of a keystroke via WaitForEvent () call.
+
+
+    @param This       - Protocol instance pointer.
+    @param KeyData    - A pointer to a buffer that is filled in with the keystroke
+                 state data for the key that was pressed.
+
+    @retval EFI_SUCCESS           - The keystroke information was returned.
+    @retval EFI_NOT_READY         - There was no keystroke data availiable.
+    @retval EFI_DEVICE_ERROR      - The keystroke information was not returned due to
+                            hardware errors.
+    @retval EFI_INVALID_PARAMETER - KeyData is NULL.
+
+**/
+EFI_STATUS
+EFIAPI
+KeypadReadKeyStrokeEx (
+  IN  EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
+  OUT EFI_KEY_DATA                      *KeyData
+  );
+
+/**
+  Set certain state for the input device.
+
+  @param This              - Protocol instance pointer.
+  @param KeyToggleState    - A pointer to the EFI_KEY_TOGGLE_STATE to set the
+                        state for the input device.
+
+  @retval EFI_SUCCESS           - The device state was set successfully.
+  @retval EFI_DEVICE_ERROR      - The device is not functioning correctly and could
+                            not have the setting adjusted.
+  @retval EFI_UNSUPPORTED       - The device does not have the ability to set its state.
+  @retval EFI_INVALID_PARAMETER - KeyToggleState is NULL.
+
+**/
+EFI_STATUS
+EFIAPI
+KeypadSetState (
+  IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL  *This,
+  IN EFI_KEY_TOGGLE_STATE               *KeyToggleState
+  );
+
+/**
+    Register a notification function for a particular keystroke for the input device.
+
+    @param This                    - Protocol instance pointer.
+    @param KeyData                 - A pointer to a buffer that is filled in with the keystroke
+                              information data for the key that was pressed.
+    @param KeyNotificationFunction - Points to the function to be called when the key
+                              sequence is typed specified by KeyData.
+    @param NotifyHandle            - Points to the unique handle assigned to the registered notification.
+
+    @retval EFI_SUCCESS             - The notification function was registered successfully.
+    @retval EFI_OUT_OF_RESOURCES    - Unable to allocate resources for necesssary data structures.
+    @retval EFI_INVALID_PARAMETER   - KeyData or NotifyHandle is NULL.
+
+**/
+EFI_STATUS
+EFIAPI
+KeypadRegisterKeyNotify (
+  IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL  *This,
+  IN EFI_KEY_DATA                       *KeyData,
+  IN EFI_KEY_NOTIFY_FUNCTION            KeyNotificationFunction,
+  OUT VOID                              **NotifyHandle
+  );
+
+/**
+    Remove a registered notification function from a particular keystroke.
+
+    @param This                    - Protocol instance pointer.
+    @param NotificationHandle      - The handle of the notification function being unregistered.
+
+
+    @retval EFI_SUCCESS             - The notification function was unregistered successfully.
+    @retval EFI_INVALID_PARAMETER   - The NotificationHandle is invalid.
+    @retval EFI_NOT_FOUND           - Can not find the matching entry in database.
+
+**/
+EFI_STATUS
+EFIAPI
+KeypadUnregisterKeyNotify (
+  IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL  *This,
+  IN VOID                               *NotificationHandle
+  );
+
+/**
+  Push one key data to the EFI key buffer.
+
+  @param Queue     Pointer to instance of EFI_KEY_QUEUE.
+  @param KeyData   The key data to push.
+**/
+VOID
+PushEfikeyBufTail (
+  IN  EFI_KEY_QUEUE         *Queue,
+  IN  EFI_KEY_DATA          *KeyData
+  );
+
+/**
+  Judge whether is a registed key
+
+  @param RegsiteredData       A pointer to a buffer that is filled in with the keystroke
+                              state data for the key that was registered.
+  @param InputData            A pointer to a buffer that is filled in with the keystroke
+                              state data for the key that was pressed.
+
+  @retval TRUE                Key be pressed matches a registered key.
+  @retval FLASE               Match failed.
+
+**/
+BOOLEAN
+IsKeyRegistered (
+  IN EFI_KEY_DATA  *RegsiteredData,
+  IN EFI_KEY_DATA  *InputData
+  );
+
+#endif
diff --git a/sdm845Pkg/Drivers/KeypadDxe/KeypadController.c b/sdm845Pkg/Drivers/KeypadDxe/KeypadController.c
new file mode 100644 (file)
index 0000000..be92d6d
--- /dev/null
@@ -0,0 +1,138 @@
+/** @file
+  Routines that talk to the KeypadDevice protocol
+
+Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
+This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution.  The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+#include "Keypad.h"
+
+/**
+  Display error message.
+
+  @param ConsoleIn Pointer to instance of KEYPAD_CONSOLE_IN_DEV
+  @param ErrMsg    Unicode string of error message
+
+**/
+VOID
+KeypadError (
+  IN KEYPAD_CONSOLE_IN_DEV *ConsoleIn,
+  IN CHAR16                  *ErrMsg
+  )
+{
+  ConsoleIn->KeypadErr = TRUE;
+}
+
+/**
+  Timer event handler: read a series of scancodes from 8042
+  and put them into memory scancode buffer.
+  it read as much scancodes to either fill
+  the memory buffer or empty the keypad buffer.
+  It is registered as running under TPL_NOTIFY
+
+  @param Event       The timer event
+  @param Context     A KEYPAD_CONSOLE_IN_DEV pointer
+
+**/
+VOID
+EFIAPI
+KeypadTimerHandler (
+  IN EFI_EVENT    Event,
+  IN VOID         *Context
+  )
+
+{
+  EFI_TPL                 OldTpl;
+  KEYPAD_CONSOLE_IN_DEV   *ConsoleIn;
+
+  ConsoleIn = (KEYPAD_CONSOLE_IN_DEV *) Context;
+
+  //
+  // Enter critical section
+  //
+  OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
+
+  if (((KEYPAD_CONSOLE_IN_DEV *) Context)->KeypadErr) {
+    //
+    // Leave critical section and return
+    //
+    gBS->RestoreTPL (OldTpl);
+    return ;
+  }
+
+  UINT64 CurrentCounterValue = GetPerformanceCounter();
+  UINT64 DeltaCounter = CurrentCounterValue - ConsoleIn->Last;
+  ConsoleIn->Last = CurrentCounterValue;
+
+  ConsoleIn->KeypadDevice->GetKeys(ConsoleIn->KeypadDevice, &ConsoleIn->KeypadReturnApi, GetTimeInNanoSecond(DeltaCounter));
+
+  //
+  // Leave critical section and return
+  //
+  gBS->RestoreTPL (OldTpl);
+}
+
+/**
+  Perform 8042 controller and keypad Initialization.
+  If ExtendedVerification is TRUE, do additional test for
+  the keypad interface
+
+  @param ConsoleIn - KEYPAD_CONSOLE_IN_DEV instance pointer
+  @param ExtendedVerification - indicates a thorough initialization
+
+  @retval EFI_DEVICE_ERROR Fail to init keypad
+  @retval EFI_SUCCESS      Success to init keypad
+**/
+EFI_STATUS
+InitKeypad (
+  IN OUT KEYPAD_CONSOLE_IN_DEV *ConsoleIn,
+  IN BOOLEAN                     ExtendedVerification
+  )
+{
+  EFI_STATUS              Status;
+
+  Status                 = EFI_SUCCESS;
+
+  ConsoleIn->KeypadDevice->Reset(ConsoleIn->KeypadDevice);
+
+  //
+  // Clear Memory Scancode Buffer
+  //
+  ConsoleIn->EfiKeyQueue.Head   = 0;
+  ConsoleIn->EfiKeyQueue.Tail   = 0;
+  ConsoleIn->EfiKeyQueueForNotify.Head = 0;
+  ConsoleIn->EfiKeyQueueForNotify.Tail = 0;
+
+  //
+  // Reset the status indicators
+  //
+  ConsoleIn->CapsLock   = FALSE;
+  ConsoleIn->NumLock    = FALSE;
+  ConsoleIn->ScrollLock = FALSE;
+  ConsoleIn->LeftCtrl   = FALSE;
+  ConsoleIn->RightCtrl  = FALSE;
+  ConsoleIn->LeftAlt    = FALSE;
+  ConsoleIn->RightAlt   = FALSE;
+  ConsoleIn->LeftShift  = FALSE;
+  ConsoleIn->RightShift = FALSE;
+  ConsoleIn->LeftLogo   = FALSE;
+  ConsoleIn->RightLogo  = FALSE;
+  ConsoleIn->Menu       = FALSE;
+  ConsoleIn->SysReq     = FALSE;
+
+  ConsoleIn->IsSupportPartialKey = FALSE;
+
+  if (!EFI_ERROR (Status)) {
+    return EFI_SUCCESS;
+  } else {
+    return EFI_DEVICE_ERROR;
+  }
+
+}
diff --git a/sdm845Pkg/Drivers/KeypadDxe/KeypadDxe.inf b/sdm845Pkg/Drivers/KeypadDxe/KeypadDxe.inf
new file mode 100644 (file)
index 0000000..bbab941
--- /dev/null
@@ -0,0 +1,57 @@
+## @file
+# Keypad Driver.
+#
+# Keypad Driver for UEFI. The keypad type implemented follows IBM
+# compatible PS2 protocol using Scan Code Set 1.
+#
+# Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
+#
+# This program and the accompanying materials
+# are licensed and made available under the terms and conditions of the BSD License
+# which accompanies this distribution.  The full text of the license may be found at
+# http://opensource.org/licenses/bsd-license.php
+#
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+#
+##
+
+[Defines]
+  INF_VERSION                    = 0x00010005
+  BASE_NAME                      = KeypadDxe
+  FILE_GUID                      = 463C9415-765B-4AE8-9B1A-AA5C6ECB2892
+  MODULE_TYPE                    = UEFI_DRIVER
+  VERSION_STRING                 = 1.0
+  ENTRY_POINT                    = InitializeKeypad
+
+[Sources]
+  ComponentName.c
+  Keypad.h
+  KeypadController.c
+  KeypadTextIn.c
+  Keypad.c
+
+[Packages]
+  MdePkg/MdePkg.dec
+  MdeModulePkg/MdeModulePkg.dec
+  Lumia930Pkg/Lumia930Pkg.dec
+
+[LibraryClasses]
+  MemoryAllocationLib
+  UefiRuntimeServicesTableLib
+  DebugLib
+  DevicePathLib
+  UefiBootServicesTableLib
+  UefiLib
+  UefiDriverEntryPoint
+  BaseLib
+  BaseMemoryLib
+  TimerLib
+  PcdLib
+  IoLib
+
+[Protocols]
+  gEfiSimpleTextInProtocolGuid                  ## BY_START
+  gEfiSimpleTextInputExProtocolGuid             ## BY_START
+  gEFIDroidKeypadDeviceProtocolGuid
diff --git a/sdm845Pkg/Drivers/KeypadDxe/KeypadTextIn.c b/sdm845Pkg/Drivers/KeypadDxe/KeypadTextIn.c
new file mode 100644 (file)
index 0000000..e03072d
--- /dev/null
@@ -0,0 +1,700 @@
+/** @file
+  Routines implements SIMPLE_TEXT_IN protocol's interfaces based on interfaces
+  provided by KeypadController.c.
+
+Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
+This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution.  The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+
+#include "Keypad.h"
+
+/**
+  Check whether the EFI key buffer is empty.
+
+  @param Queue     Pointer to instance of EFI_KEY_QUEUE.
+
+  @retval TRUE    The EFI key buffer is empty.
+  @retval FALSE   The EFI key buffer isn't empty.
+**/
+BOOLEAN
+IsEfikeyBufEmpty (
+  IN  EFI_KEY_QUEUE         *Queue
+  )
+{
+  return (BOOLEAN) (Queue->Head == Queue->Tail);
+}
+
+/**
+  Read & remove one key data from the EFI key buffer.
+
+  @param Queue     Pointer to instance of EFI_KEY_QUEUE.
+  @param KeyData   Receive the key data.
+
+  @retval EFI_SUCCESS   The key data is popped successfully.
+  @retval EFI_NOT_READY There is no key data available.
+**/
+EFI_STATUS
+PopEfikeyBufHead (
+  IN  EFI_KEY_QUEUE         *Queue,
+  OUT EFI_KEY_DATA          *KeyData OPTIONAL
+  )
+{
+  if (IsEfikeyBufEmpty (Queue)) {
+    return EFI_NOT_READY;
+  }
+  //
+  // Retrieve and remove the values
+  //
+  if (KeyData != NULL) {
+    CopyMem (KeyData, &Queue->Buffer[Queue->Head], sizeof (EFI_KEY_DATA));
+  }
+  Queue->Head = (Queue->Head + 1) % KEYPAD_EFI_KEY_MAX_COUNT;
+  return EFI_SUCCESS;
+}
+
+/**
+  Push one key data to the EFI key buffer.
+
+  @param Queue     Pointer to instance of EFI_KEY_QUEUE.
+  @param KeyData   The key data to push.
+**/
+VOID
+PushEfikeyBufTail (
+  IN  EFI_KEY_QUEUE         *Queue,
+  IN  EFI_KEY_DATA          *KeyData
+  )
+{
+  if ((Queue->Tail + 1) % KEYPAD_EFI_KEY_MAX_COUNT == Queue->Head) {
+    //
+    // If Queue is full, pop the one from head.
+    //
+    PopEfikeyBufHead (Queue, NULL);
+  }
+  CopyMem (&Queue->Buffer[Queue->Tail], KeyData, sizeof (EFI_KEY_DATA));
+  Queue->Tail = (Queue->Tail + 1) % KEYPAD_EFI_KEY_MAX_COUNT;
+}
+
+/**
+  Judge whether is a registed key
+
+  @param RegsiteredData       A pointer to a buffer that is filled in with the keystroke
+                              state data for the key that was registered.
+  @param InputData            A pointer to a buffer that is filled in with the keystroke
+                              state data for the key that was pressed.
+
+  @retval TRUE                Key be pressed matches a registered key.
+  @retval FLASE               Match failed.
+
+**/
+BOOLEAN
+IsKeyRegistered (
+  IN EFI_KEY_DATA  *RegsiteredData,
+  IN EFI_KEY_DATA  *InputData
+  )
+
+{
+  ASSERT (RegsiteredData != NULL && InputData != NULL);
+
+  if ((RegsiteredData->Key.ScanCode    != InputData->Key.ScanCode) ||
+      (RegsiteredData->Key.UnicodeChar != InputData->Key.UnicodeChar)) {
+    return FALSE;
+  }
+
+  //
+  // Assume KeyShiftState/KeyToggleState = 0 in Registered key data means these state could be ignored.
+  //
+  if (RegsiteredData->KeyState.KeyShiftState != 0 &&
+      RegsiteredData->KeyState.KeyShiftState != InputData->KeyState.KeyShiftState) {
+    return FALSE;
+  }
+  if (RegsiteredData->KeyState.KeyToggleState != 0 &&
+      RegsiteredData->KeyState.KeyToggleState != InputData->KeyState.KeyToggleState) {
+    return FALSE;
+  }
+
+  return TRUE;
+
+}
+
+/**
+    Reads the next keystroke from the input device. The WaitForKey Event can
+    be used to test for existance of a keystroke via WaitForEvent () call.
+
+    @param ConsoleInDev          Keypad private structure
+    @param KeyData               A pointer to a buffer that is filled in with the keystroke
+                                 state data for the key that was pressed.
+
+
+    @retval EFI_SUCCESS             The keystroke information was returned.
+    @retval EFI_NOT_READY           There was no keystroke data availiable.
+    @retval EFI_DEVICE_ERROR        The keystroke information was not returned due to
+                                    hardware errors.
+    @retval EFI_INVALID_PARAMETER   KeyData is NULL.
+
+**/
+EFI_STATUS
+KeypadReadKeyStrokeWorker (
+  IN  KEYPAD_CONSOLE_IN_DEV             *ConsoleInDev,
+  OUT EFI_KEY_DATA                      *KeyData
+  )
+
+{
+  EFI_STATUS                            Status;
+  EFI_TPL                               OldTpl;
+
+  if (KeyData == NULL) {
+    return EFI_INVALID_PARAMETER;
+  }
+
+  //
+  // Enter critical section
+  //
+  OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
+
+  KeypadTimerHandler (NULL, ConsoleInDev);
+
+  if (ConsoleInDev->KeypadErr) {
+    Status = EFI_DEVICE_ERROR;
+  } else {
+    Status = PopEfikeyBufHead (&ConsoleInDev->EfiKeyQueue, KeyData);
+  }
+
+  gBS->RestoreTPL (OldTpl);
+  return Status;
+}
+
+/**
+  Perform 8042 controller and keypad initialization which implement SIMPLE_TEXT_IN.Reset()
+
+  @param This                 Pointer to instance of EFI_SIMPLE_TEXT_INPUT_PROTOCOL
+  @param ExtendedVerification Indicate that the driver may perform a more
+                              exhaustive verification operation of the device during
+                              reset, now this par is ignored in this driver
+
+**/
+EFI_STATUS
+EFIAPI
+KeypadEfiReset (
+  IN  EFI_SIMPLE_TEXT_INPUT_PROTOCOL  *This,
+  IN  BOOLEAN                         ExtendedVerification
+  )
+{
+  EFI_STATUS              Status;
+  KEYPAD_CONSOLE_IN_DEV   *ConsoleIn;
+  EFI_TPL                 OldTpl;
+
+  ConsoleIn = KEYPAD_CONSOLE_IN_DEV_FROM_THIS (This);
+  if (ConsoleIn->KeypadErr) {
+    return EFI_DEVICE_ERROR;
+  }
+
+  //
+  // Enter critical section
+  //
+  OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
+
+  //
+  // Call InitKeypad to initialize the keypad
+  //
+  Status = InitKeypad (ConsoleIn, ExtendedVerification);
+  if (EFI_ERROR (Status)) {
+    //
+    // Leave critical section and return
+    //
+    gBS->RestoreTPL (OldTpl);
+    return EFI_DEVICE_ERROR;
+  }
+
+  //
+  // Leave critical section and return
+  //
+  gBS->RestoreTPL (OldTpl);
+
+  return EFI_SUCCESS;
+}
+
+/**
+  Retrieve key values for driver user which implement SIMPLE_TEXT_IN.ReadKeyStroke().
+
+  @param This    Pointer to instance of EFI_SIMPLE_TEXT_INPUT_PROTOCOL
+  @param Key     The output buffer for key value
+
+  @retval EFI_SUCCESS success to read key stroke
+**/
+EFI_STATUS
+EFIAPI
+KeypadReadKeyStroke (
+  IN  EFI_SIMPLE_TEXT_INPUT_PROTOCOL  *This,
+  OUT EFI_INPUT_KEY                   *Key
+  )
+{
+  EFI_STATUS              Status;
+  KEYPAD_CONSOLE_IN_DEV   *ConsoleIn;
+  EFI_KEY_DATA            KeyData;
+
+  ConsoleIn = KEYPAD_CONSOLE_IN_DEV_FROM_THIS (This);
+
+  //
+  // Considering if the partial keystroke is enabled, there maybe a partial
+  // keystroke in the queue, so here skip the partial keystroke and get the
+  // next key from the queue
+  //
+  while (1) {
+    //
+    // If there is no pending key, then return.
+    //
+    Status = KeypadReadKeyStrokeWorker (ConsoleIn, &KeyData);
+    if (EFI_ERROR (Status)) {
+      return Status;
+    }
+    //
+    // If it is partial keystroke, skip it.
+    //
+    if (KeyData.Key.ScanCode == SCAN_NULL && KeyData.Key.UnicodeChar == CHAR_NULL) {
+      continue;
+    }
+    //
+    // Translate the CTRL-Alpha characters to their corresponding control value
+    // (ctrl-a = 0x0001 through ctrl-Z = 0x001A)
+    //
+    if ((KeyData.KeyState.KeyShiftState & (EFI_LEFT_CONTROL_PRESSED | EFI_RIGHT_CONTROL_PRESSED)) != 0) {
+      if (KeyData.Key.UnicodeChar >= L'a' && KeyData.Key.UnicodeChar <= L'z') {
+        KeyData.Key.UnicodeChar = (CHAR16) (KeyData.Key.UnicodeChar - L'a' + 1);
+      } else if (KeyData.Key.UnicodeChar >= L'A' && KeyData.Key.UnicodeChar <= L'Z') {
+        KeyData.Key.UnicodeChar = (CHAR16) (KeyData.Key.UnicodeChar - L'A' + 1);
+      }
+    }
+
+    CopyMem (Key, &KeyData.Key, sizeof (EFI_INPUT_KEY));
+    return EFI_SUCCESS;
+  }
+}
+
+/**
+  Event notification function for SIMPLE_TEXT_IN.WaitForKey event
+  Signal the event if there is key available
+
+  @param Event    the event object
+  @param Context  waitting context
+
+**/
+VOID
+EFIAPI
+KeypadWaitForKey (
+  IN  EFI_EVENT               Event,
+  IN  VOID                    *Context
+  )
+{
+  EFI_TPL                     OldTpl;
+  KEYPAD_CONSOLE_IN_DEV       *ConsoleIn;
+  EFI_KEY_DATA                KeyData;
+
+  ConsoleIn = (KEYPAD_CONSOLE_IN_DEV *) Context;
+
+  //
+  // Enter critical section
+  //
+  OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
+
+  KeypadTimerHandler (NULL, ConsoleIn);
+
+  if (!ConsoleIn->KeypadErr) {
+    //
+    // WaitforKey doesn't suppor the partial key.
+    // Considering if the partial keystroke is enabled, there maybe a partial
+    // keystroke in the queue, so here skip the partial keystroke and get the
+    // next key from the queue
+    //
+    while (!IsEfikeyBufEmpty (&ConsoleIn->EfiKeyQueue)) {
+      CopyMem (
+        &KeyData,
+        &(ConsoleIn->EfiKeyQueue.Buffer[ConsoleIn->EfiKeyQueue.Head]),
+        sizeof (EFI_KEY_DATA)
+        );
+      if (KeyData.Key.ScanCode == SCAN_NULL && KeyData.Key.UnicodeChar == CHAR_NULL) {
+        PopEfikeyBufHead (&ConsoleIn->EfiKeyQueue, &KeyData);
+        continue;
+      }
+      //
+      // if there is pending value key, signal the event.
+      //
+      gBS->SignalEvent (Event);
+      break;
+    }
+  }
+  //
+  // Leave critical section and return
+  //
+  gBS->RestoreTPL (OldTpl);
+}
+
+/**
+  Event notification function for SIMPLE_TEXT_INPUT_EX_PROTOCOL.WaitForKeyEx event
+  Signal the event if there is key available
+
+  @param Event    event object
+  @param Context  waiting context
+
+**/
+VOID
+EFIAPI
+KeypadWaitForKeyEx (
+  IN  EFI_EVENT               Event,
+  IN  VOID                    *Context
+  )
+
+{
+  KeypadWaitForKey (Event, Context);
+}
+
+/**
+  Reset the input device and optionaly run diagnostics
+
+  @param This                     Protocol instance pointer.
+  @param ExtendedVerification     Driver may perform diagnostics on reset.
+
+  @retval EFI_SUCCESS             The device was reset.
+  @retval EFI_DEVICE_ERROR        The device is not functioning properly and could
+                                  not be reset.
+
+**/
+EFI_STATUS
+EFIAPI
+KeypadEfiResetEx (
+  IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL  *This,
+  IN BOOLEAN                            ExtendedVerification
+  )
+
+{
+  KEYPAD_CONSOLE_IN_DEV                 *ConsoleInDev;
+
+  ConsoleInDev = TEXT_INPUT_EX_KEYPAD_CONSOLE_IN_DEV_FROM_THIS (This);
+
+  return ConsoleInDev->ConIn.Reset (
+                               &ConsoleInDev->ConIn,
+                               ExtendedVerification
+                               );
+}
+
+/**
+    Reads the next keystroke from the input device. The WaitForKey Event can
+    be used to test for existance of a keystroke via WaitForEvent () call.
+
+
+    @param This         Protocol instance pointer.
+    @param KeyData      A pointer to a buffer that is filled in with the keystroke
+                        state data for the key that was pressed.
+
+    @retval EFI_SUCCESS           The keystroke information was returned.
+    @retval EFI_NOT_READY         There was no keystroke data availiable.
+    @retval EFI_DEVICE_ERROR      The keystroke information was not returned due to
+                                  hardware errors.
+    @retval EFI_INVALID_PARAMETER KeyData is NULL.
+
+**/
+EFI_STATUS
+EFIAPI
+KeypadReadKeyStrokeEx (
+  IN  EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
+  OUT EFI_KEY_DATA                      *KeyData
+  )
+
+{
+  KEYPAD_CONSOLE_IN_DEV                 *ConsoleInDev;
+
+  if (KeyData == NULL) {
+    return EFI_INVALID_PARAMETER;
+  }
+
+  ConsoleInDev = TEXT_INPUT_EX_KEYPAD_CONSOLE_IN_DEV_FROM_THIS (This);
+  return KeypadReadKeyStrokeWorker (ConsoleInDev, KeyData);
+}
+
+/**
+  Set certain state for the input device.
+
+  @param This               Protocol instance pointer.
+  @param KeyToggleState     A pointer to the EFI_KEY_TOGGLE_STATE to set the
+                            state for the input device.
+
+  @retval EFI_SUCCESS           The device state was set successfully.
+  @retval EFI_DEVICE_ERROR      The device is not functioning correctly and could
+                                not have the setting adjusted.
+  @retval EFI_UNSUPPORTED       The device does not have the ability to set its state.
+  @retval EFI_INVALID_PARAMETER KeyToggleState is NULL.
+
+**/
+EFI_STATUS
+EFIAPI
+KeypadSetState (
+  IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL  *This,
+  IN EFI_KEY_TOGGLE_STATE               *KeyToggleState
+  )
+
+{
+  EFI_STATUS                            Status;
+  KEYPAD_CONSOLE_IN_DEV                 *ConsoleInDev;
+  EFI_TPL                               OldTpl;
+
+  if (KeyToggleState == NULL) {
+    return EFI_INVALID_PARAMETER;
+  }
+
+  ConsoleInDev = TEXT_INPUT_EX_KEYPAD_CONSOLE_IN_DEV_FROM_THIS (This);
+
+  //
+  // Enter critical section
+  //
+  OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
+
+  if (ConsoleInDev->KeypadErr) {
+    Status = EFI_DEVICE_ERROR;
+    goto Exit;
+  }
+
+  if ((*KeyToggleState & EFI_TOGGLE_STATE_VALID) != EFI_TOGGLE_STATE_VALID) {
+    Status = EFI_UNSUPPORTED;
+    goto Exit;
+  }
+
+  //
+  // Update the status light
+  //
+  ConsoleInDev->ScrollLock          = FALSE;
+  ConsoleInDev->NumLock             = FALSE;
+  ConsoleInDev->CapsLock            = FALSE;
+  ConsoleInDev->IsSupportPartialKey = FALSE;
+
+  if ((*KeyToggleState & EFI_SCROLL_LOCK_ACTIVE) == EFI_SCROLL_LOCK_ACTIVE) {
+    ConsoleInDev->ScrollLock = TRUE;
+  }
+  if ((*KeyToggleState & EFI_NUM_LOCK_ACTIVE) == EFI_NUM_LOCK_ACTIVE) {
+    ConsoleInDev->NumLock = TRUE;
+  }
+  if ((*KeyToggleState & EFI_CAPS_LOCK_ACTIVE) == EFI_CAPS_LOCK_ACTIVE) {
+    ConsoleInDev->CapsLock = TRUE;
+  }
+  if ((*KeyToggleState & EFI_KEY_STATE_EXPOSED) == EFI_KEY_STATE_EXPOSED) {
+    ConsoleInDev->IsSupportPartialKey = TRUE;
+  }
+
+Exit:
+  //
+  // Leave critical section and return
+  //
+  gBS->RestoreTPL (OldTpl);
+
+  return Status;
+
+}
+
+/**
+    Register a notification function for a particular keystroke for the input device.
+
+    @param This                       Protocol instance pointer.
+    @param KeyData                    A pointer to a buffer that is filled in with the keystroke
+                                      information data for the key that was pressed.
+    @param KeyNotificationFunction    Points to the function to be called when the key
+                                      sequence is typed specified by KeyData.
+    @param NotifyHandle               Points to the unique handle assigned to the registered notification.
+
+    @retval EFI_SUCCESS               The notification function was registered successfully.
+    @retval EFI_OUT_OF_RESOURCES      Unable to allocate resources for necesssary data structures.
+    @retval EFI_INVALID_PARAMETER     KeyData or NotifyHandle or KeyNotificationFunction is NULL.
+
+**/
+EFI_STATUS
+EFIAPI
+KeypadRegisterKeyNotify (
+  IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL  *This,
+  IN EFI_KEY_DATA                       *KeyData,
+  IN EFI_KEY_NOTIFY_FUNCTION            KeyNotificationFunction,
+  OUT VOID                              **NotifyHandle
+  )
+{
+  EFI_STATUS                            Status;
+  KEYPAD_CONSOLE_IN_DEV                 *ConsoleInDev;
+  EFI_TPL                               OldTpl;
+  LIST_ENTRY                            *Link;
+  KEYPAD_CONSOLE_IN_EX_NOTIFY           *CurrentNotify;
+  KEYPAD_CONSOLE_IN_EX_NOTIFY           *NewNotify;
+
+  if (KeyData == NULL || NotifyHandle == NULL || KeyNotificationFunction == NULL) {
+    return EFI_INVALID_PARAMETER;
+  }
+
+  ConsoleInDev = TEXT_INPUT_EX_KEYPAD_CONSOLE_IN_DEV_FROM_THIS (This);
+
+  //
+  // Enter critical section
+  //
+  OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
+
+  //
+  // Return EFI_SUCCESS if the (KeyData, NotificationFunction) is already registered.
+  //
+  for (Link = ConsoleInDev->NotifyList.ForwardLink; Link != &ConsoleInDev->NotifyList; Link = Link->ForwardLink) {
+    CurrentNotify = CR (
+                      Link,
+                      KEYPAD_CONSOLE_IN_EX_NOTIFY,
+                      NotifyEntry,
+                      KEYPAD_CONSOLE_IN_EX_NOTIFY_SIGNATURE
+                      );
+    if (IsKeyRegistered (&CurrentNotify->KeyData, KeyData)) {
+      if (CurrentNotify->KeyNotificationFn == KeyNotificationFunction) {
+        *NotifyHandle = CurrentNotify;
+        Status = EFI_SUCCESS;
+        goto Exit;
+      }
+    }
+  }
+
+  //
+  // Allocate resource to save the notification function
+  //
+  NewNotify = (KEYPAD_CONSOLE_IN_EX_NOTIFY *) AllocateZeroPool (sizeof (KEYPAD_CONSOLE_IN_EX_NOTIFY));
+  if (NewNotify == NULL) {
+    Status = EFI_OUT_OF_RESOURCES;
+    goto Exit;
+  }
+
+  NewNotify->Signature         = KEYPAD_CONSOLE_IN_EX_NOTIFY_SIGNATURE;
+  NewNotify->KeyNotificationFn = KeyNotificationFunction;
+  CopyMem (&NewNotify->KeyData, KeyData, sizeof (EFI_KEY_DATA));
+  InsertTailList (&ConsoleInDev->NotifyList, &NewNotify->NotifyEntry);
+
+  *NotifyHandle                = NewNotify;
+  Status                       = EFI_SUCCESS;
+
+Exit:
+  //
+  // Leave critical section and return
+  //
+  gBS->RestoreTPL (OldTpl);
+  return Status;
+
+}
+
+/**
+    Remove a registered notification function from a particular keystroke.
+
+    @param This                       Protocol instance pointer.
+    @param NotificationHandle         The handle of the notification function being unregistered.
+
+
+    @retval EFI_SUCCESS               The notification function was unregistered successfully.
+    @retval EFI_INVALID_PARAMETER     The NotificationHandle is invalid.
+
+**/
+EFI_STATUS
+EFIAPI
+KeypadUnregisterKeyNotify (
+  IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL  *This,
+  IN VOID                               *NotificationHandle
+  )
+{
+  EFI_STATUS                            Status;
+  KEYPAD_CONSOLE_IN_DEV                 *ConsoleInDev;
+  EFI_TPL                               OldTpl;
+  LIST_ENTRY                            *Link;
+  KEYPAD_CONSOLE_IN_EX_NOTIFY           *CurrentNotify;
+
+  if (NotificationHandle == NULL) {
+    return EFI_INVALID_PARAMETER;
+  }
+
+  ConsoleInDev = TEXT_INPUT_EX_KEYPAD_CONSOLE_IN_DEV_FROM_THIS (This);
+
+  //
+  // Enter critical section
+  //
+  OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
+
+  for (Link = ConsoleInDev->NotifyList.ForwardLink; Link != &ConsoleInDev->NotifyList; Link = Link->ForwardLink) {
+    CurrentNotify = CR (
+                      Link,
+                      KEYPAD_CONSOLE_IN_EX_NOTIFY,
+                      NotifyEntry,
+                      KEYPAD_CONSOLE_IN_EX_NOTIFY_SIGNATURE
+                      );
+    if (CurrentNotify == NotificationHandle) {
+      //
+      // Remove the notification function from NotifyList and free resources
+      //
+      RemoveEntryList (&CurrentNotify->NotifyEntry);
+
+      gBS->FreePool (CurrentNotify);
+      Status = EFI_SUCCESS;
+      goto Exit;
+    }
+  }
+
+  //
+  // Can not find the specified Notification Handle
+  //
+  Status = EFI_INVALID_PARAMETER;
+Exit:
+  //
+  // Leave critical section and return
+  //
+  gBS->RestoreTPL (OldTpl);
+  return Status;
+}
+
+/**
+  Process key notify.
+
+  @param  Event                 Indicates the event that invoke this function.
+  @param  Context               Indicates the calling context.
+**/
+VOID
+EFIAPI
+KeyNotifyProcessHandler (
+  IN  EFI_EVENT                 Event,
+  IN  VOID                      *Context
+  )
+{
+  EFI_STATUS                    Status;
+  KEYPAD_CONSOLE_IN_DEV         *ConsoleIn;
+  EFI_KEY_DATA                  KeyData;
+  LIST_ENTRY                    *Link;
+  LIST_ENTRY                    *NotifyList;
+  KEYPAD_CONSOLE_IN_EX_NOTIFY   *CurrentNotify;
+  EFI_TPL                       OldTpl;
+
+  ConsoleIn = (KEYPAD_CONSOLE_IN_DEV *) Context;
+
+  //
+  // Invoke notification functions.
+  //
+  NotifyList = &ConsoleIn->NotifyList;
+  while (TRUE) {
+    //
+    // Enter critical section
+    //  
+    OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
+    Status = PopEfikeyBufHead (&ConsoleIn->EfiKeyQueueForNotify, &KeyData);
+    //
+    // Leave critical section
+    //
+    gBS->RestoreTPL (OldTpl);
+    if (EFI_ERROR (Status)) {
+      break;
+    }
+    for (Link = GetFirstNode (NotifyList); !IsNull (NotifyList, Link); Link = GetNextNode (NotifyList, Link)) {
+      CurrentNotify = CR (Link, KEYPAD_CONSOLE_IN_EX_NOTIFY, NotifyEntry, KEYPAD_CONSOLE_IN_EX_NOTIFY_SIGNATURE);
+      if (IsKeyRegistered (&CurrentNotify->KeyData, &KeyData)) {
+        CurrentNotify->KeyNotificationFn (&KeyData);
+      }
+    }
+  }
+}
+
diff --git a/sdm845Pkg/Drivers/KeypadDxe/Source.txt b/sdm845Pkg/Drivers/KeypadDxe/Source.txt
new file mode 100644 (file)
index 0000000..5152b50
--- /dev/null
@@ -0,0 +1,2 @@
+URL:    https://github.com/tianocore/edk2/tree/master/MdeModulePkg/Bus/Isa/Ps2KeyboardDxe
+BRANCH: master @ 35dadd7c54
diff --git a/sdm845Pkg/Drivers/LogoDxe/Logo.bmp b/sdm845Pkg/Drivers/LogoDxe/Logo.bmp
new file mode 100644 (file)
index 0000000..98a4f8a
Binary files /dev/null and b/sdm845Pkg/Drivers/LogoDxe/Logo.bmp differ
diff --git a/sdm845Pkg/Drivers/LogoDxe/Logo.c b/sdm845Pkg/Drivers/LogoDxe/Logo.c
new file mode 100644 (file)
index 0000000..c36d536
--- /dev/null
@@ -0,0 +1,132 @@
+/** @file
+  Logo DXE Driver, install Edkii Platform Logo protocol.
+
+Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>
+This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD
+License which accompanies this distribution.  The full text of the license may
+be found at http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+#include <Uefi.h>
+
+#include <Library/DebugLib.h>
+#include <Library/UefiBootServicesTableLib.h>
+
+#include <Protocol/GraphicsOutput.h>
+#include <Protocol/HiiDatabase.h>
+#include <Protocol/HiiImageEx.h>
+#include <Protocol/HiiPackageList.h>
+#include <Protocol/PlatformLogo.h>
+
+typedef struct {
+  EFI_IMAGE_ID                          ImageId;
+  EDKII_PLATFORM_LOGO_DISPLAY_ATTRIBUTE Attribute;
+  INTN                                  OffsetX;
+  INTN                                  OffsetY;
+} LOGO_ENTRY;
+
+EFI_HII_IMAGE_EX_PROTOCOL *mHiiImageEx;
+EFI_HII_HANDLE             mHiiHandle;
+LOGO_ENTRY                 mLogos[] = {
+    {IMAGE_TOKEN(IMG_LOGO), EdkiiPlatformLogoDisplayAttributeCenter, 0, 0}};
+
+/**
+  Load a platform logo image and return its data and attributes.
+
+  @param This              The pointer to this protocol instance.
+  @param Instance          The visible image instance is found.
+  @param Image             Points to the image.
+  @param Attribute         The display attributes of the image returned.
+  @param OffsetX           The X offset of the image regarding the Attribute.
+  @param OffsetY           The Y offset of the image regarding the Attribute.
+
+  @retval EFI_SUCCESS      The image was fetched successfully.
+  @retval EFI_NOT_FOUND    The specified image could not be found.
+**/
+EFI_STATUS
+EFIAPI
+GetImage(
+    IN EDKII_PLATFORM_LOGO_PROTOCOL *This, IN OUT UINT32 *Instance,
+    OUT EFI_IMAGE_INPUT *Image,
+    OUT EDKII_PLATFORM_LOGO_DISPLAY_ATTRIBUTE *Attribute, OUT INTN *OffsetX,
+    OUT INTN *OffsetY)
+{
+  UINT32 Current;
+  if (Instance == NULL || Image == NULL || Attribute == NULL ||
+      OffsetX == NULL || OffsetY == NULL) {
+    return EFI_INVALID_PARAMETER;
+  }
+
+  Current = *Instance;
+  if (Current >= ARRAY_SIZE(mLogos)) {
+    return EFI_NOT_FOUND;
+  }
+
+  (*Instance)++;
+  *Attribute = mLogos[Current].Attribute;
+  *OffsetX   = mLogos[Current].OffsetX;
+  *OffsetY   = mLogos[Current].OffsetY;
+  return mHiiImageEx->GetImageEx(
+      mHiiImageEx, mHiiHandle, mLogos[Current].ImageId, Image);
+}
+
+EDKII_PLATFORM_LOGO_PROTOCOL mPlatformLogo = {GetImage};
+
+/**
+  Entrypoint of this module.
+
+  This function is the entrypoint of this module. It installs the Edkii
+  Platform Logo protocol.
+
+  @param  ImageHandle       The firmware allocated handle for the EFI image.
+  @param  SystemTable       A pointer to the EFI System Table.
+
+  @retval EFI_SUCCESS       The entry point is executed successfully.
+
+**/
+EFI_STATUS
+EFIAPI
+InitializeLogo(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
+{
+  EFI_STATUS                   Status;
+  EFI_HII_PACKAGE_LIST_HEADER *PackageList;
+  EFI_HII_DATABASE_PROTOCOL *  HiiDatabase;
+  EFI_HANDLE                   Handle;
+
+  Status = gBS->LocateProtocol(
+      &gEfiHiiDatabaseProtocolGuid, NULL, (VOID **)&HiiDatabase);
+  ASSERT_EFI_ERROR(Status);
+
+  Status = gBS->LocateProtocol(
+      &gEfiHiiImageExProtocolGuid, NULL, (VOID **)&mHiiImageEx);
+  ASSERT_EFI_ERROR(Status);
+
+  //
+  // Retrieve HII package list from ImageHandle
+  //
+  Status = gBS->OpenProtocol(
+      ImageHandle, &gEfiHiiPackageListProtocolGuid, (VOID **)&PackageList,
+      ImageHandle, NULL, EFI_OPEN_PROTOCOL_GET_PROTOCOL);
+  if (EFI_ERROR(Status)) {
+    DEBUG((
+        DEBUG_ERROR,
+        "HII Image Package with logo not found in PE/COFF resource section\n"));
+    return Status;
+  }
+
+  //
+  // Publish HII package list to HII Database.
+  //
+  Status =
+      HiiDatabase->NewPackageList(HiiDatabase, PackageList, NULL, &mHiiHandle);
+  if (!EFI_ERROR(Status)) {
+    Handle = NULL;
+    Status = gBS->InstallMultipleProtocolInterfaces(
+        &Handle, &gEdkiiPlatformLogoProtocolGuid, &mPlatformLogo, NULL);
+  }
+  return Status;
+}
diff --git a/sdm845Pkg/Drivers/LogoDxe/Logo.idf b/sdm845Pkg/Drivers/LogoDxe/Logo.idf
new file mode 100644 (file)
index 0000000..3107adf
--- /dev/null
@@ -0,0 +1,15 @@
+// /** @file
+// Platform Logo image definition file.
+//
+// Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>
+//
+// This program and the accompanying materials
+// are licensed and made available under the terms and conditions of the BSD License
+// which accompanies this distribution. The full text of the license may be found at
+// http://opensource.org/licenses/bsd-license.php
+// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+//
+// **/
+
+#image IMG_LOGO Logo.bmp
diff --git a/sdm845Pkg/Drivers/LogoDxe/Logo.inf b/sdm845Pkg/Drivers/LogoDxe/Logo.inf
new file mode 100644 (file)
index 0000000..ba2f205
--- /dev/null
@@ -0,0 +1,34 @@
+## @file
+#  The default logo bitmap picture shown on setup screen, which is corresponding to gEfiDefaultBmpLogoGuid.
+#
+#  Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
+#
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution. The full text of the license may be found at
+#  http://opensource.org/licenses/bsd-license.php
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+#
+##
+
+[Defines]
+  INF_VERSION                    = 0x00010005
+  BASE_NAME                      = Logo
+  MODULE_UNI_FILE                = Logo.uni
+  FILE_GUID                      = 7BB28B99-61BB-11D5-9A5D-0090273FC14D
+  MODULE_TYPE                    = USER_DEFINED
+  VERSION_STRING                 = 1.0
+
+#
+# The following information is for reference only and not required by the build tools.
+#
+#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC ARM AARCH64
+#
+
+[Binaries]
+  BIN|Logo.bmp|*
+
+[UserExtensions.TianoCore."ExtraFiles"]
+  LogoExtra.uni
diff --git a/sdm845Pkg/Drivers/LogoDxe/Logo.uni b/sdm845Pkg/Drivers/LogoDxe/Logo.uni
new file mode 100644 (file)
index 0000000..1de3d90
--- /dev/null
@@ -0,0 +1,21 @@
+// /** @file
+// The default logo bitmap picture shown on setup screen, which is corresponding to gEfiDefaultBmpLogoGuid.
+//
+// This module provides the default logo bitmap picture shown on setup screen, which corresponds to gEfiDefaultBmpLogoGuid.
+//
+// Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
+//
+// This program and the accompanying materials
+// are licensed and made available under the terms and conditions of the BSD License
+// which accompanies this distribution. The full text of the license may be found at
+// http://opensource.org/licenses/bsd-license.php
+// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+//
+// **/
+
+
+#string STR_MODULE_ABSTRACT             #language en-US "Provides the default logo bitmap picture shown on setup screen, which corresponds to gEfiDefaultBmpLogoGuid"
+
+#string STR_MODULE_DESCRIPTION          #language en-US "This module provides the default logo bitmap picture shown on setup screen, which corresponds to gEfiDefaultBmpLogoGuid."
+
diff --git a/sdm845Pkg/Drivers/LogoDxe/LogoDxe.inf b/sdm845Pkg/Drivers/LogoDxe/LogoDxe.inf
new file mode 100644 (file)
index 0000000..185beae
--- /dev/null
@@ -0,0 +1,61 @@
+## @file
+#  The default logo bitmap picture shown on setup screen.
+#
+#  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>
+#
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution. The full text of the license may be found at
+#  http://opensource.org/licenses/bsd-license.php
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+#
+##
+
+[Defines]
+  INF_VERSION                    = 0x00010005
+  BASE_NAME                      = LogoDxe
+  MODULE_UNI_FILE                = LogoDxe.uni
+  FILE_GUID                      = F74D20EE-37E7-48FC-97F7-9B1047749C69
+  MODULE_TYPE                    = DXE_DRIVER
+  VERSION_STRING                 = 1.0
+
+  ENTRY_POINT                    = InitializeLogo
+#
+#  This flag specifies whether HII resource section is generated into PE image.
+#
+  UEFI_HII_RESOURCE_SECTION      = TRUE
+
+#
+# The following information is for reference only and not required by the build tools.
+#
+#  VALID_ARCHITECTURES           = IA32 X64
+#
+
+[Sources]
+  Logo.bmp
+  Logo.c
+  Logo.idf
+
+[Packages]
+  MdeModulePkg/MdeModulePkg.dec
+  MdePkg/MdePkg.dec
+
+[LibraryClasses]
+  UefiBootServicesTableLib
+  UefiDriverEntryPoint
+  DebugLib
+
+[Protocols]
+  gEfiHiiDatabaseProtocolGuid        ## CONSUMES
+  gEfiHiiImageExProtocolGuid         ## CONSUMES
+  gEfiHiiPackageListProtocolGuid     ## PRODUCES CONSUMES
+  gEdkiiPlatformLogoProtocolGuid     ## PRODUCES
+
+[Depex]
+  gEfiHiiDatabaseProtocolGuid AND
+  gEfiHiiImageExProtocolGuid
+
+[UserExtensions.TianoCore."ExtraFiles"]
+  LogoDxeExtra.uni
diff --git a/sdm845Pkg/Drivers/LogoDxe/LogoDxe.uni b/sdm845Pkg/Drivers/LogoDxe/LogoDxe.uni
new file mode 100644 (file)
index 0000000..de11481
--- /dev/null
@@ -0,0 +1,21 @@
+// /** @file
+// The default logo bitmap picture shown on setup screen.
+//
+// This module provides the default logo bitmap picture shown on setup screen, through EDKII Platform Logo protocol.
+//
+// Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+//
+// This program and the accompanying materials
+// are licensed and made available under the terms and conditions of the BSD License
+// which accompanies this distribution. The full text of the license may be found at
+// http://opensource.org/licenses/bsd-license.php
+// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+//
+// **/
+
+
+#string STR_MODULE_ABSTRACT             #language en-US "Little Moe LLC Logo"
+
+#string STR_MODULE_DESCRIPTION          #language en-US "This module provides the default logo bitmap picture shown on setup screen, through EDKII Platform Logo protocol."
+
diff --git a/sdm845Pkg/Drivers/LogoDxe/LogoDxeExtra.uni b/sdm845Pkg/Drivers/LogoDxe/LogoDxeExtra.uni
new file mode 100644 (file)
index 0000000..590ccb3
--- /dev/null
@@ -0,0 +1,19 @@
+// /** @file
+// Logo Localized Strings and Content
+//
+// Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+//
+// This program and the accompanying materials
+// are licensed and made available under the terms and conditions of the BSD License
+// which accompanies this distribution. The full text of the license may be found at
+// http://opensource.org/licenses/bsd-license.php
+// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+//
+// **/
+
+#string STR_PROPERTIES_MODULE_NAME
+#language en-US
+"Logo Image File"
+
+
diff --git a/sdm845Pkg/Drivers/LogoDxe/LogoExtra.uni b/sdm845Pkg/Drivers/LogoDxe/LogoExtra.uni
new file mode 100644 (file)
index 0000000..bfd7eba
--- /dev/null
@@ -0,0 +1,19 @@
+// /** @file
+// Logo Localized Strings and Content
+//
+// Copyright (c) 2013 - 2014, Intel Corporation. All rights reserved.<BR>
+//
+// This program and the accompanying materials
+// are licensed and made available under the terms and conditions of the BSD License
+// which accompanies this distribution. The full text of the license may be found at
+// http://opensource.org/licenses/bsd-license.php
+// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+//
+// **/
+
+#string STR_PROPERTIES_MODULE_NAME 
+#language en-US 
+"Logo Image File"
+
+
diff --git a/sdm845Pkg/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.c b/sdm845Pkg/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.c
new file mode 100644 (file)
index 0000000..1d5c221
--- /dev/null
@@ -0,0 +1,850 @@
+/** @file
+  This driver installs SMBIOS information for ARM Juno platforms
+
+  Copyright (c) 2015, ARM Limited. All rights reserved.
+
+  This program and the accompanying materials
+  are licensed and made available under the terms and conditions of the BSD License
+  which accompanies this distribution.  The full text of the license may be found at
+  http://opensource.org/licenses/bsd-license.php
+
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+#include <ArmPlatform.h>
+#include <IndustryStandard/SmBios.h>
+#include <Library/ArmLib.h>
+#include <Library/BaseLib.h>
+#include <Library/BaseMemoryLib.h>
+#include <Library/DebugLib.h>
+#include <Library/IoLib.h>
+#include <Library/MemoryAllocationLib.h>
+#include <Library/PcdLib.h>
+#include <Library/UefiBootServicesTableLib.h>
+#include <Library/UefiRuntimeServicesTableLib.h>
+#include <PiDxe.h>
+#include <Protocol/Smbios.h>
+
+#define TYPE0_STRINGS                                    \
+  "EFI Development Kit II / ARM LTD\0" /* Vendor */      \
+  "EDK II\0"                           /* BiosVersion */ \
+  __DATE__"\0"                         /* BiosReleaseDate */
+
+#define TYPE1_STRINGS                                   \
+  "Google\0"                         /* Manufacturer */ \
+  "Pixel 3 XL\0"                     /* Product Name */ \
+  "None\0"                           /* Version */      \
+  "                    \0"           /* 20 character buffer */
+
+#define TYPE2_STRINGS                                     \
+  "Google\0"                         /* Manufacturer */   \
+  "Pixel 3 XL\0"                     /* Product Name */   \
+  "R0\0"                             /* Version */        \
+  "Serial Not Set\0"                 /* Serial */         \
+  "Base of Chassis\0"                /* board location */ \
+  "R1\0"                             /* Version */        \
+  "R2\0"                             /* Version */
+
+#define TYPE3_STRINGS                                   \
+  "ARM LTD\0"                        /* Manufacturer */ \
+  "None\0"                           /* Version */      \
+  "Serial Not Set\0"                 /* Serial  */
+
+#define TYPE4_STRINGS                                               \
+  "BGA-1156\0"                       /* socket type */              \
+  "ARM LTD\0"                        /* manufactuer */              \
+  "Cortex-A57\0"                     /* processor 1 description */  \
+  "Cortex-A53\0"                     /* processor 2 description */  \
+  "Cortex-A72\0"                     /* processor 2 description */  \
+  "0xd03\0"                          /* A53 part number */          \
+  "0xd07\0"                          /* A57 part number */          \
+  "0xd08\0"                          /* A72 part number */
+
+#define TYPE7_STRINGS                              \
+  "L1 Instruction\0"                 /* L1I  */    \
+  "L1 Data\0"                        /* L1D  */    \
+  "L2\0"                             /* L2   */
+
+#define TYPE9_STRINGS                              \
+  "PCIE_SLOT0\0"                     /* Slot0 */   \
+  "PCIE_SLOT1\0"                     /* Slot1 */   \
+  "PCIE_SLOT2\0"                     /* Slot2 */   \
+  "PCIE_SLOT3\0"                     /* Slot3 */
+
+#define TYPE16_STRINGS                             \
+  "\0"                               /* nothing */
+
+#define TYPE17_STRINGS                                       \
+  "RIGHT SIDE\0"                     /* location */          \
+  "BANK 0\0"                         /* bank description */
+
+#define TYPE19_STRINGS                             \
+  "\0"                               /* nothing */
+
+#define TYPE32_STRINGS                             \
+  "\0"                               /* nothing */
+
+
+//
+// Type definition and contents of the default SMBIOS table.
+// This table covers only the minimum structures required by
+// the SMBIOS specification (section 6.2, version 3.0)
+//
+#pragma pack(1)
+typedef struct {
+  SMBIOS_TABLE_TYPE0 Base;
+  INT8              Strings[sizeof(TYPE0_STRINGS)];
+} ARM_TYPE0;
+
+typedef struct {
+  SMBIOS_TABLE_TYPE1 Base;
+  UINT8              Strings[sizeof(TYPE1_STRINGS)];
+} ARM_TYPE1;
+
+typedef struct {
+  SMBIOS_TABLE_TYPE2 Base;
+  UINT8              Strings[sizeof(TYPE2_STRINGS)];
+} ARM_TYPE2;
+
+typedef struct {
+  SMBIOS_TABLE_TYPE3 Base;
+  UINT8              Strings[sizeof(TYPE3_STRINGS)];
+} ARM_TYPE3;
+
+typedef struct {
+  SMBIOS_TABLE_TYPE4 Base;
+  UINT8              Strings[sizeof(TYPE4_STRINGS)];
+} ARM_TYPE4;
+
+typedef struct {
+  SMBIOS_TABLE_TYPE7 Base;
+  UINT8              Strings[sizeof(TYPE7_STRINGS)];
+} ARM_TYPE7;
+
+typedef struct {
+  SMBIOS_TABLE_TYPE9 Base;
+  UINT8              Strings[sizeof(TYPE9_STRINGS)];
+} ARM_TYPE9;
+
+typedef struct {
+  SMBIOS_TABLE_TYPE16 Base;
+  UINT8              Strings[sizeof(TYPE16_STRINGS)];
+} ARM_TYPE16;
+
+typedef struct {
+  SMBIOS_TABLE_TYPE17 Base;
+  UINT8              Strings[sizeof(TYPE17_STRINGS)];
+} ARM_TYPE17;
+
+typedef struct {
+  SMBIOS_TABLE_TYPE19 Base;
+  UINT8              Strings[sizeof(TYPE19_STRINGS)];
+} ARM_TYPE19;
+
+typedef struct {
+  SMBIOS_TABLE_TYPE32 Base;
+  UINT8              Strings[sizeof(TYPE32_STRINGS)];
+} ARM_TYPE32;
+
+// SMBIOS tables often reference each other using
+// fixed constants, define a list of these constants
+// for our hardcoded tables
+enum SMBIOS_REFRENCE_HANDLES {
+  SMBIOS_HANDLE_A57_L1I = 0x1000,
+  SMBIOS_HANDLE_A57_L1D,
+  SMBIOS_HANDLE_A57_L2,
+  SMBIOS_HANDLE_A53_L1I,
+  SMBIOS_HANDLE_A53_L1D,
+  SMBIOS_HANDLE_A53_L2,
+  SMBIOS_HANDLE_MOTHERBOARD,
+  SMBIOS_HANDLE_CHASSIS,
+  SMBIOS_HANDLE_A72_CLUSTER,
+  SMBIOS_HANDLE_A57_CLUSTER,
+  SMBIOS_HANDLE_A53_CLUSTER,
+  SMBIOS_HANDLE_MEMORY,
+  SMBIOS_HANDLE_DIMM
+};
+
+#define SERIAL_LEN 10  //this must be less than the buffer len allocated in the type1 structure
+
+#pragma pack()
+
+// BIOS information (section 7.1)
+STATIC ARM_TYPE0 mArmDefaultType0 = {
+  {
+    { // SMBIOS_STRUCTURE Hdr
+      EFI_SMBIOS_TYPE_BIOS_INFORMATION, // UINT8 Type
+      sizeof (SMBIOS_TABLE_TYPE0),      // UINT8 Length
+      SMBIOS_HANDLE_PI_RESERVED,
+    },
+    1,     // SMBIOS_TABLE_STRING       Vendor
+    2,     // SMBIOS_TABLE_STRING       BiosVersion
+    0xE800,// UINT16                    BiosSegment
+    3,     // SMBIOS_TABLE_STRING       BiosReleaseDate
+    0,     // UINT8                     BiosSize
+    {
+      0,0,0,0,0,0,
+      1, //PCI supported
+      0,
+      1, //PNP supported
+      0,
+      1, //BIOS upgradable
+      0, 0, 0,
+      1, //Boot from CD
+      1, //selectable boot
+    },  // MISC_BIOS_CHARACTERISTICS BiosCharacteristics
+    {      // BIOSCharacteristicsExtensionBytes[2]
+      0x3,
+      0xC,
+    },
+    0,     // UINT8                     SystemBiosMajorRelease
+    0,     // UINT8                     SystemBiosMinorRelease
+    0xFF,  // UINT8                     EmbeddedControllerFirmwareMajorRelease
+    0xFF   // UINT8                     EmbeddedControllerFirmwareMinorRelease
+  },
+  // Text strings (unformatted area)
+  TYPE0_STRINGS
+};
+
+// System information (section 7.2)
+STATIC CONST ARM_TYPE1 mArmDefaultType1 = {
+  {
+    { // SMBIOS_STRUCTURE Hdr
+      EFI_SMBIOS_TYPE_SYSTEM_INFORMATION,
+      sizeof(SMBIOS_TABLE_TYPE1),
+      SMBIOS_HANDLE_PI_RESERVED,
+    },
+    1,     //Manufacturer
+    2,     //Product Name
+    3,     //Version
+    4,     //Serial
+    { 0x8a95d198, 0x7f46, 0x11e5, { 0xbf,0x8b,0x08,0x00,0x27,0x04,0xd4,0x8e }},    //UUID
+    6,     //Wakeup type
+    0,     //SKU
+    0,     //Family
+  },
+  // Text strings (unformatted)
+  TYPE1_STRINGS
+};
+
+// Baseboard (section 7.3)
+STATIC ARM_TYPE2 mArmDefaultType2 = {
+  {
+    { // SMBIOS_STRUCTURE Hdr
+      EFI_SMBIOS_TYPE_BASEBOARD_INFORMATION, // UINT8 Type
+      sizeof (SMBIOS_TABLE_TYPE2),           // UINT8 Length
+      SMBIOS_HANDLE_MOTHERBOARD,
+    },
+    1,    //Manufacturer
+    2,    //Product Name
+    3,    //Version
+    4,    //Serial
+    0,    //Asset tag
+    {1},  //motherboard, not replaceable
+    5,    //location of board
+    SMBIOS_HANDLE_CHASSIS,
+    BaseBoardTypeMotherBoard,
+    1,
+    {SMBIOS_HANDLE_A53_CLUSTER}, //,SMBIOS_HANDLE_A53_CLUSTER,SMBIOS_HANDLE_MEMORY},
+  },
+  TYPE2_STRINGS
+};
+
+// Enclosure
+STATIC CONST ARM_TYPE3 mArmDefaultType3 = {
+  {
+    { // SMBIOS_STRUCTURE Hdr
+      EFI_SMBIOS_TYPE_SYSTEM_ENCLOSURE, // UINT8 Type
+      sizeof (SMBIOS_TABLE_TYPE3),      // UINT8 Length
+      SMBIOS_HANDLE_CHASSIS,
+    },
+    1,   //Manufacturer
+    4,   //enclosure type (low profile desktop)
+    2,   //version
+    3,   //serial
+    0,   //asset tag
+    ChassisStateUnknown,   //boot chassis state
+    ChassisStateSafe,      //power supply state
+    ChassisStateSafe,      //thermal state
+    ChassisSecurityStatusNone,   //security state
+    {0,0,0,0,}, //OEM defined
+    1,  //1U height
+    1,  //number of power cords
+    0,  //no contained elements
+  },
+  TYPE3_STRINGS
+};
+
+// Processor
+STATIC CONST ARM_TYPE4 mArmDefaultType4_a72 = {
+  {
+    { // SMBIOS_STRUCTURE Hdr
+      EFI_SMBIOS_TYPE_PROCESSOR_INFORMATION, // UINT8 Type
+      sizeof (SMBIOS_TABLE_TYPE4),           // UINT8 Length
+      SMBIOS_HANDLE_A72_CLUSTER,
+    },
+    1, //socket type
+    3, //processor type CPU
+    ProcessorFamilyIndicatorFamily2, //processor family, acquire from field2
+    2, //manufactuer
+    {{0,},{0.}}, //processor id
+    5, //version
+    {0,0,0,0,0,1}, //voltage
+    0, //external clock
+    1200, //max speed
+    1200, //current speed
+    0x41, //status
+    ProcessorUpgradeOther,
+    SMBIOS_HANDLE_A57_L1I, //l1 cache handle
+    SMBIOS_HANDLE_A57_L2, //l2 cache handle
+    0xFFFF, //l3 cache handle
+    0, //serial not set
+    0, //asset not set
+    8, //part number
+    2, //core count in socket
+    2, //enabled core count in socket
+    0, //threads per socket
+    0xEC, // processor characteristics
+    ProcessorFamilyARM, //ARM core
+  },
+  TYPE4_STRINGS
+};
+
+STATIC CONST ARM_TYPE4 mArmDefaultType4_a57 = {
+  {
+    { // SMBIOS_STRUCTURE Hdr
+      EFI_SMBIOS_TYPE_PROCESSOR_INFORMATION, // UINT8 Type
+      sizeof (SMBIOS_TABLE_TYPE4),           // UINT8 Length
+      SMBIOS_HANDLE_A57_CLUSTER,
+    },
+    1, //socket type
+    3, //processor type CPU
+    ProcessorFamilyIndicatorFamily2, //processor family, acquire from field2
+    2, //manufactuer
+    {{0,},{0.}}, //processor id
+    3, //version
+    {0,0,0,0,0,1}, //voltage
+    0, //external clock
+    1200, //max speed
+    1200, //current speed
+    0x41, //status
+    ProcessorUpgradeOther,
+    SMBIOS_HANDLE_A57_L1I, //l1 cache handle
+    SMBIOS_HANDLE_A57_L2, //l2 cache handle
+    0xFFFF, //l3 cache handle
+    0, //serial not set
+    0, //asset not set
+    7, //part number
+    2, //core count in socket
+    2, //enabled core count in socket
+    0, //threads per socket
+    0xEC, // processor characteristics
+    ProcessorFamilyARM, //ARM core
+  },
+  TYPE4_STRINGS
+};
+
+STATIC CONST ARM_TYPE4 mArmDefaultType4_a53 = {
+  {
+    {   // SMBIOS_STRUCTURE Hdr
+        EFI_SMBIOS_TYPE_PROCESSOR_INFORMATION, // UINT8 Type
+        sizeof (SMBIOS_TABLE_TYPE4),           // UINT8 Length
+        SMBIOS_HANDLE_A53_CLUSTER,
+    },
+    1, //socket type
+    3, //processor type CPU
+    ProcessorFamilyIndicatorFamily2, //processor family, acquire from field2
+    2, //manufactuer
+    {{0,},{0.}}, //processor id
+    4, //version
+    {0,0,0,0,0,1}, //voltage
+    0, //external clock
+    650, //max speed
+    650, //current speed
+    0x41, //status
+    ProcessorUpgradeOther,
+    SMBIOS_HANDLE_A53_L1I, //l1 cache handle
+    SMBIOS_HANDLE_A53_L2, //l2 cache handle
+    0xFFFF, //l3 cache handle
+    0, //serial not set
+    0, //asset not set
+    6, //part number
+    4, //core count in socket
+    4, //enabled core count in socket
+    0, //threads per socket
+    0xEC, // processor characteristics
+    ProcessorFamilyARM, //ARM core
+  },
+  TYPE4_STRINGS
+};
+
+// Cache
+STATIC CONST ARM_TYPE7 mArmDefaultType7_a57_l1i = {
+  {
+    { // SMBIOS_STRUCTURE Hdr
+      EFI_SMBIOS_TYPE_CACHE_INFORMATION, // UINT8 Type
+      sizeof (SMBIOS_TABLE_TYPE7),       // UINT8 Length
+      SMBIOS_HANDLE_A57_L1I,
+    },
+    1,
+    0x380, //L1 enabled, unknown WB
+    48, //48k i cache max
+    48, //48k installed
+    {0,1}, //SRAM type
+    {0,1}, //SRAM type
+    0, //unkown speed
+    CacheErrorParity, //parity checking
+    CacheTypeInstruction, //instruction cache
+    CacheAssociativityOther, //three way
+  },
+  TYPE7_STRINGS
+};
+
+STATIC CONST ARM_TYPE7 mArmDefaultType7_a53_l1i = {
+  {
+    { // SMBIOS_STRUCTURE Hdr
+      EFI_SMBIOS_TYPE_CACHE_INFORMATION, // UINT8 Type
+      sizeof (SMBIOS_TABLE_TYPE7),       // UINT8 Length
+      SMBIOS_HANDLE_A53_L1I,
+    },
+    1,
+    0x380, //L1 enabled, unknown WB
+    32, //32k i cache max
+    32, //32k installed
+    {0,1}, //SRAM type
+    {0,1}, //SRAM type
+    0, //unkown speed
+    CacheErrorParity, //parity checking
+    CacheTypeInstruction, //instruction cache
+    CacheAssociativity2Way, //two way
+  },
+  TYPE7_STRINGS
+};
+
+STATIC CONST ARM_TYPE7 mArmDefaultType7_a57_l1d = {
+  {
+    { // SMBIOS_STRUCTURE Hdr
+      EFI_SMBIOS_TYPE_CACHE_INFORMATION, // UINT8 Type
+      sizeof (SMBIOS_TABLE_TYPE7),       // UINT8 Length
+      SMBIOS_HANDLE_A57_L1D,
+    },
+    2,
+    0x180, //L1 enabled, WB
+    32, //32k d cache max
+    32, //32k installed
+    {0,1}, //SRAM type
+    {0,1}, //SRAM type
+    0, //unkown speed
+    CacheErrorSingleBit, //ECC checking
+    CacheTypeData, //instruction cache
+    CacheAssociativity2Way, //two way associative
+  },
+  TYPE7_STRINGS
+};
+
+STATIC CONST ARM_TYPE7 mArmDefaultType7_a53_l1d = {
+  {
+    { // SMBIOS_STRUCTURE Hdr
+      EFI_SMBIOS_TYPE_CACHE_INFORMATION, // UINT8 Type
+      sizeof (SMBIOS_TABLE_TYPE7),       // UINT8 Length
+      SMBIOS_HANDLE_A53_L1D,
+    },
+    2,
+    0x180, //L1 enabled, WB
+    32, //32k d cache max
+    32, //32k installed
+    {0,1}, //SRAM type
+    {0,1}, //SRAM type
+    0, //unkown speed
+    CacheErrorSingleBit, //ECC checking
+    CacheTypeData, //instruction cache
+    CacheAssociativity4Way, //four way associative
+  },
+  TYPE7_STRINGS
+};
+
+STATIC CONST ARM_TYPE7 mArmDefaultType7_a57_l2 = {
+  {
+    { // SMBIOS_STRUCTURE Hdr
+      EFI_SMBIOS_TYPE_CACHE_INFORMATION, // UINT8 Type
+      sizeof (SMBIOS_TABLE_TYPE7),       // UINT8 Length
+      SMBIOS_HANDLE_A57_L2,
+    },
+    3,
+    0x181, //L2 enabled, WB
+    2048, //2M d cache max
+    2048, //2M installed
+    {0,1}, //SRAM type
+    {0,1}, //SRAM type
+    0, //unkown speed
+    CacheErrorSingleBit, //ECC checking
+    CacheTypeUnified, //instruction cache
+    CacheAssociativity16Way, //16 way associative
+  },
+  TYPE7_STRINGS
+};
+
+STATIC CONST ARM_TYPE7 mArmDefaultType7_a53_l2 = {
+  {
+    { // SMBIOS_STRUCTURE Hdr
+      EFI_SMBIOS_TYPE_CACHE_INFORMATION, // UINT8 Type
+      sizeof (SMBIOS_TABLE_TYPE7),       // UINT8 Length
+      SMBIOS_HANDLE_A53_L2,
+    },
+    3,
+    0x181, //L2 enabled, WB
+    1024, //1M D cache max
+    1024, //1M installed
+    {0,1}, //SRAM type
+    {0,1}, //SRAM type
+    0, //unkown speed
+    CacheErrorSingleBit, //ECC checking
+    CacheTypeUnified, //instruction cache
+    CacheAssociativity16Way, //16 way associative
+  },
+  TYPE7_STRINGS
+};
+
+// Slots
+STATIC CONST ARM_TYPE9 mArmDefaultType9_0 = {
+  {
+    { // SMBIOS_STRUCTURE Hdr
+      EFI_SMBIOS_TYPE_SYSTEM_SLOTS, // UINT8 Type
+      sizeof (SMBIOS_TABLE_TYPE9),  // UINT8 Length
+      SMBIOS_HANDLE_PI_RESERVED,
+    },
+    1, //slot 0
+    SlotTypePciExpressGen2X4,
+    SlotDataBusWidth1X,
+    SlotUsageUnknown,
+    SlotLengthShort,
+    0,
+    {1}, //unknown
+    {1,0,1},  //PME and SMBUS
+    0,
+    2,
+    1,
+  },
+  TYPE9_STRINGS
+};
+
+STATIC CONST ARM_TYPE9 mArmDefaultType9_1 = {
+  {
+    { // SMBIOS_STRUCTURE Hdr
+      EFI_SMBIOS_TYPE_SYSTEM_SLOTS, // UINT8 Type
+      sizeof (SMBIOS_TABLE_TYPE9),  // UINT8 Length
+      SMBIOS_HANDLE_PI_RESERVED,
+    },
+    1, //slot 0
+    SlotTypePciExpressGen2X4,
+    SlotDataBusWidth1X,
+    SlotUsageUnknown,
+    SlotLengthShort,
+    0,
+    {1},
+    {1,0,1}, //PME and SMBUS
+    0,
+    2,
+    2,
+  },
+  TYPE9_STRINGS
+};
+
+STATIC CONST ARM_TYPE9 mArmDefaultType9_2 = {
+  {
+    { // SMBIOS_STRUCTURE Hdr
+      EFI_SMBIOS_TYPE_SYSTEM_SLOTS, // UINT8 Type
+      sizeof (SMBIOS_TABLE_TYPE9),  // UINT8 Length
+      SMBIOS_HANDLE_PI_RESERVED,
+    },
+    1, //slot 0
+    SlotTypePciExpressGen2X8,
+    SlotDataBusWidth4X,
+    SlotUsageUnknown,
+    SlotLengthShort,
+    0,
+    {1},
+    {1,0,1}, //PME and SMBUS
+    0,
+    2,
+    3,
+  },
+  TYPE9_STRINGS
+};
+
+STATIC CONST ARM_TYPE9 mArmDefaultType9_3 = {
+  {
+    { // SMBIOS_STRUCTURE Hdr
+      EFI_SMBIOS_TYPE_SYSTEM_SLOTS, // UINT8 Type
+      sizeof (SMBIOS_TABLE_TYPE9),  // UINT8 Length
+      SMBIOS_HANDLE_PI_RESERVED,
+    },
+    1, //slot 0
+    SlotTypePciExpressGen2X16,
+    SlotDataBusWidth4X,
+    SlotUsageUnknown,
+    SlotLengthShort,
+    0,
+    {1},
+    {1,0,1}, //PME and SMBUS
+    0,
+    2,
+    0xc,
+  },
+  TYPE9_STRINGS
+};
+
+// Memory array
+STATIC CONST ARM_TYPE16 mArmDefaultType16 = {
+  {
+    { // SMBIOS_STRUCTURE Hdr
+      EFI_SMBIOS_TYPE_PHYSICAL_MEMORY_ARRAY, // UINT8 Type
+      sizeof (SMBIOS_TABLE_TYPE16),          // UINT8 Length
+      SMBIOS_HANDLE_MEMORY,
+    },
+    MemoryArrayLocationSystemBoard, //on motherboard
+    MemoryArrayUseSystemMemory,     //system RAM
+    MemoryErrorCorrectionNone,      //Juno doesn't have ECC RAM
+    0x800000, //8GB
+    0xFFFE,   //No error information structure
+    0x1,      //soldered memory
+  },
+  TYPE16_STRINGS
+};
+
+// Memory device
+STATIC CONST ARM_TYPE17 mArmDefaultType17 = {
+  {
+    { // SMBIOS_STRUCTURE Hdr
+      EFI_SMBIOS_TYPE_MEMORY_DEVICE, // UINT8 Type
+      sizeof (SMBIOS_TABLE_TYPE17),  // UINT8 Length
+      SMBIOS_HANDLE_DIMM,
+    },
+    SMBIOS_HANDLE_MEMORY, //array to which this module belongs
+    0xFFFE,               //no errors
+    64, //single DIMM, no ECC is 64bits (for ecc this would be 72)
+    64, //data width of this device (64-bits)
+    0x2000, //8GB
+    0x0B,   //row of chips
+    0,      //not part of a set
+    1,      //right side of board
+    2,      //bank 0
+//  MemoryTypeLpddr3, //LP DDR3, isn't defined yet
+    MemoryTypeDdr3,                  //LP DDR3
+    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, //unbuffered
+    1600,                            //1600Mhz DDR
+    0, //varies between diffrent production runs
+    0, //serial
+    0, //asset tag
+    0, //part number
+    0, //rank
+  },
+  TYPE17_STRINGS
+};
+
+// Memory array mapped address, this structure
+// is overridden by InstallMemoryStructure
+STATIC CONST ARM_TYPE19 mArmDefaultType19 = {
+  {
+    {  // SMBIOS_STRUCTURE Hdr
+      EFI_SMBIOS_TYPE_MEMORY_ARRAY_MAPPED_ADDRESS, // UINT8 Type
+      sizeof (SMBIOS_TABLE_TYPE19),                // UINT8 Length
+      SMBIOS_HANDLE_PI_RESERVED,
+    },
+    0xFFFFFFFF, //invalid, look at extended addr field
+    0xFFFFFFFF,
+    SMBIOS_HANDLE_DIMM, //handle
+    1,
+    0x080000000,        //starting addr of first 2GB
+    0x100000000,        //ending addr of first 2GB
+  },
+  TYPE19_STRINGS
+};
+
+// System boot info
+STATIC CONST ARM_TYPE32 mArmDefaultType32 = {
+  {
+    { // SMBIOS_STRUCTURE Hdr
+      EFI_SMBIOS_TYPE_SYSTEM_BOOT_INFORMATION, // UINT8 Type
+      sizeof (SMBIOS_TABLE_TYPE32),            // UINT8 Length
+      SMBIOS_HANDLE_PI_RESERVED,
+    },
+    {0,0,0,0,0,0},                             //reserved
+    BootInformationStatusNoError,
+  },
+  TYPE32_STRINGS
+};
+
+STATIC CONST VOID *DefaultCommonTables[]=
+{
+  &mArmDefaultType0,
+  &mArmDefaultType1,
+  &mArmDefaultType2,
+  &mArmDefaultType3,
+  &mArmDefaultType7_a53_l1i,
+  &mArmDefaultType7_a53_l1d,
+  &mArmDefaultType7_a53_l2,
+  &mArmDefaultType4_a53,
+  &mArmDefaultType9_0,
+  &mArmDefaultType9_1,
+  &mArmDefaultType9_2,
+  &mArmDefaultType9_3,
+  &mArmDefaultType16,
+  &mArmDefaultType17,
+//    &mArmDefaultType19, //memory range type 19 dynamically generated
+  &mArmDefaultType32,
+  NULL
+};
+
+STATIC CONST VOID *DefaultTablesR0R1[]=
+{
+  &mArmDefaultType7_a57_l1i,
+  &mArmDefaultType7_a57_l1d,
+  &mArmDefaultType7_a57_l2,
+  &mArmDefaultType4_a57,
+  NULL
+};
+
+/*
+
+STATIC CONST VOID *DefaultTablesR2[]=
+{
+  &mArmDefaultType7_a57_l1i, // Cache layout is the same on the A72 vs A57
+  &mArmDefaultType7_a57_l1d,
+  &mArmDefaultType7_a57_l2,
+  &mArmDefaultType4_a72,
+  NULL
+};
+
+*/
+
+/**
+   Installs a memory descriptor (type19) for the given address range
+
+   @param  Smbios               SMBIOS protocol
+
+**/
+EFI_STATUS
+InstallMemoryStructure (
+  IN EFI_SMBIOS_PROTOCOL       *Smbios,
+  IN UINT64                    StartingAddress,
+  IN UINT64                    RegionLength
+  )
+{
+  EFI_SMBIOS_HANDLE         SmbiosHandle;
+  ARM_TYPE19                MemoryDescriptor;
+  EFI_STATUS                Status = EFI_SUCCESS;
+
+  CopyMem( &MemoryDescriptor, &mArmDefaultType19, sizeof(ARM_TYPE19));
+
+  MemoryDescriptor.Base.ExtendedStartingAddress = StartingAddress;
+  MemoryDescriptor.Base.ExtendedEndingAddress = StartingAddress+RegionLength;
+  SmbiosHandle = MemoryDescriptor.Base.Hdr.Handle;
+
+  Status = Smbios->Add (
+    Smbios,
+    NULL,
+    &SmbiosHandle,
+    (EFI_SMBIOS_TABLE_HEADER*) &MemoryDescriptor
+    );
+  return Status;
+}
+
+/**
+   Install a whole table worth of structructures
+
+   @parm
+**/
+EFI_STATUS
+InstallStructures (
+   IN EFI_SMBIOS_PROTOCOL       *Smbios,
+   IN CONST VOID *DefaultTables[]
+   )
+{
+    EFI_STATUS                Status = EFI_SUCCESS;
+    EFI_SMBIOS_HANDLE         SmbiosHandle;
+
+    int TableEntry;
+    for ( TableEntry=0; DefaultTables[TableEntry] != NULL; TableEntry++)
+    {
+       SmbiosHandle = ((EFI_SMBIOS_TABLE_HEADER*)DefaultTables[TableEntry])->Handle;
+       Status = Smbios->Add (
+           Smbios,
+           NULL,
+           &SmbiosHandle,
+           (EFI_SMBIOS_TABLE_HEADER*) DefaultTables[TableEntry]
+           );
+       if (EFI_ERROR(Status))
+           break;
+    }
+    return Status;
+}
+
+
+/**
+   Install all structures from the DefaultTables structure
+
+   @param  Smbios               SMBIOS protocol
+
+**/
+EFI_STATUS
+InstallAllStructures (
+   IN EFI_SMBIOS_PROTOCOL       *Smbios
+   )
+{
+  EFI_STATUS                Status = EFI_SUCCESS;
+  VOID                      *ExtraTables = DefaultTablesR0R1;
+
+  //
+  // Add all Juno table entries
+  //
+  Status=InstallStructures (Smbios,DefaultCommonTables);
+  ASSERT_EFI_ERROR (Status);
+
+  Status=InstallStructures (Smbios,ExtraTables);
+  ASSERT_EFI_ERROR (Status);
+
+  // Generate memory descriptors for the two memory ranges we know about
+  Status = InstallMemoryStructure ( Smbios, PcdGet64 (PcdSystemMemoryBase), PcdGet64 (PcdSystemMemorySize));
+  ASSERT_EFI_ERROR (Status);
+
+  return Status;
+}
+
+/**
+   Installs SMBIOS information for ARM platforms
+
+   @param ImageHandle     Module's image handle
+   @param SystemTable     Pointer of EFI_SYSTEM_TABLE
+
+   @retval EFI_SUCCESS    Smbios data successfully installed
+   @retval Other          Smbios data was not installed
+
+**/
+EFI_STATUS
+EFIAPI
+SmbiosTablePublishEntry (
+  IN EFI_HANDLE           ImageHandle,
+  IN EFI_SYSTEM_TABLE     *SystemTable
+  )
+{
+  EFI_STATUS                Status;
+  EFI_SMBIOS_PROTOCOL       *Smbios;
+
+  //
+  // Find the SMBIOS protocol
+  //
+  Status = gBS->LocateProtocol (
+    &gEfiSmbiosProtocolGuid,
+    NULL,
+    (VOID**)&Smbios
+    );
+  if (EFI_ERROR (Status)) {
+    return Status;
+  }
+
+  Status = InstallAllStructures (Smbios);
+
+  return Status;
+}
diff --git a/sdm845Pkg/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.inf b/sdm845Pkg/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
new file mode 100644 (file)
index 0000000..9675528
--- /dev/null
@@ -0,0 +1,68 @@
+## @file
+#  This driver installs SMBIOS information for ArmJuno
+#
+#  Copyright (c) 2011, Bei Guan <gbtju85@gmail.com>
+#  Copyright (c) 2011, Intel Corporation. All rights reserved.
+#  Copyright (c) 2015, ARM Limited. All rights reserved.
+#
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution. The full text of the license may be found at
+#  http://opensource.org/licenses/bsd-license.php
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+##
+
+[Defines]
+  INF_VERSION                    = 0x00010005
+  BASE_NAME                      = SmbiosPlatformDxe
+  FILE_GUID                      = B736DF5D-59ED-48C0-AC10-1EEE228D085B
+  MODULE_TYPE                    = DXE_DRIVER
+  VERSION_STRING                 = 1.0
+
+  ENTRY_POINT                    = SmbiosTablePublishEntry
+
+#
+# The following information is for reference only and not required by the build tools.
+#
+#  VALID_ARCHITECTURES           = AARCH64
+#
+
+[Sources]
+  SmbiosPlatformDxe.c
+
+[Packages]
+  ArmPkg/ArmPkg.dec
+  ArmPlatformPkg/ArmPlatformPkg.dec
+  MdeModulePkg/MdeModulePkg.dec
+  MdePkg/MdePkg.dec
+  sdm845Pkg/sdm845Pkg.dec
+
+[LibraryClasses]
+  ArmLib
+  BaseMemoryLib
+  BaseLib
+  DebugLib
+  HobLib
+  IoLib
+  MemoryAllocationLib
+  PcdLib
+  UefiBootServicesTableLib
+  UefiDriverEntryPoint
+
+[Guids]
+  gEfiGlobalVariableGuid
+
+[FixedPcd]
+  gArmTokenSpaceGuid.PcdSystemMemoryBase
+  gArmTokenSpaceGuid.PcdSystemMemorySize
+  gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareRevision
+
+[Protocols]
+  gEfiSmbiosProtocolGuid                      # PROTOCOL ALWAYS_CONSUMED
+
+[Guids]
+
+[Depex]
+  gEfiSmbiosProtocolGuid
diff --git a/sdm845Pkg/Include/ArmPlatform.h b/sdm845Pkg/Include/ArmPlatform.h
new file mode 100644 (file)
index 0000000..86df52f
--- /dev/null
@@ -0,0 +1,74 @@
+/** @file
+*
+*  Copyright (c) 2013-2017, ARM Limited. All rights reserved.
+*
+*  This program and the accompanying materials
+*  are licensed and made available under the terms and conditions of the BSD License
+*  which accompanies this distribution.  The full text of the license may be found at
+*  http://opensource.org/licenses/bsd-license.php
+*
+*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+*
+**/
+
+#ifndef __ARM_JUNO_H__
+#define __ARM_JUNO_H__
+
+//#include <VExpressMotherBoard.h>
+
+/***********************************************************************************
+// Platform Memory Map
+************************************************************************************/
+
+// Motherboard Peripheral and On-chip peripheral
+
+//
+// ACPI table information used to initialize tables.
+//
+#define EFI_ACPI_ARM_OEM_ID           'A','R','M','L','T','D'   // OEMID 6 bytes long
+#define EFI_ACPI_ARM_OEM_TABLE_ID     SIGNATURE_64('A','R','M','-','J','U','N','O') // OEM table id 8 bytes long
+#define EFI_ACPI_ARM_OEM_REVISION     0x20140727
+#define EFI_ACPI_ARM_CREATOR_ID       SIGNATURE_32('A','R','M',' ')
+#define EFI_ACPI_ARM_CREATOR_REVISION 0x00000099
+
+// A macro to initialise the common header part of EFI ACPI tables as defined by
+// EFI_ACPI_DESCRIPTION_HEADER structure.
+#define ARM_ACPI_HEADER(Signature, Type, Revision) {              \
+    Signature,                      /* UINT32  Signature */       \
+    sizeof (Type),                  /* UINT32  Length */          \
+    Revision,                       /* UINT8   Revision */        \
+    0,                              /* UINT8   Checksum */        \
+    { EFI_ACPI_ARM_OEM_ID },        /* UINT8   OemId[6] */        \
+    EFI_ACPI_ARM_OEM_TABLE_ID,      /* UINT64  OemTableId */      \
+    EFI_ACPI_ARM_OEM_REVISION,      /* UINT32  OemRevision */     \
+    EFI_ACPI_ARM_CREATOR_ID,        /* UINT32  CreatorId */       \
+    EFI_ACPI_ARM_CREATOR_REVISION   /* UINT32  CreatorRevision */ \
+  }
+
+//
+// Hardware platform identifiers
+//
+#define JUNO_REVISION_PROTOTYPE 0
+#define JUNO_REVISION_R0        1
+#define JUNO_REVISION_R1        2
+#define JUNO_REVISION_R2        3
+#define JUNO_REVISION_UKNOWN    0xFF
+
+// Define if the exported ACPI Tables are based on ACPI 5.0 spec or latest
+//#define ARM_JUNO_ACPI_5_0
+
+//
+// Address of the system registers that contain the MAC address
+// assigned to the PCI Gigabyte Ethernet device.
+//
+
+/***********************************************************************************
+// Motherboard memory-mapped peripherals
+************************************************************************************/
+
+// Define MotherBoard SYS flags offsets (from ARM_VE_BOARD_PERIPH_BASE)
+//
+// Sites where the peripheral is fitted
+//
+#endif
diff --git a/sdm845Pkg/Include/Configuration/BootDevices.h b/sdm845Pkg/Include/Configuration/BootDevices.h
new file mode 100644 (file)
index 0000000..17e9025
--- /dev/null
@@ -0,0 +1,34 @@
+#ifndef _BOOT_DEVICES_H_
+#define _BOOT_DEVICES_H_
+
+#include <Library/DevicePathLib.h>
+#include <Uefi.h>
+
+#define PLAT_KEYPAD_DEVICE_GUID                                                \
+  {                                                                            \
+    0xD7F58A0E, 0xBED2, 0x4B5A,                                                \
+    {                                                                          \
+      0xBB, 0x43, 0x8A, 0xB2, 0x3D, 0xD0, 0xE2, 0xB0                           \
+    }                                                                          \
+  }
+
+/* DevicePath definition for Button driver */
+#pragma pack(1)
+typedef struct {
+  VENDOR_DEVICE_PATH       VendorDevicePath;
+  EFI_DEVICE_PATH_PROTOCOL End;
+} EFI_KEYPAD_DEVICE_PATH;
+#pragma pack()
+
+EFI_KEYPAD_DEVICE_PATH KeyPadDxeDevicePath = {
+    {{HARDWARE_DEVICE_PATH,
+      HW_VENDOR_DP,
+      {(UINT8)(sizeof(VENDOR_DEVICE_PATH)),
+       (UINT8)((sizeof(VENDOR_DEVICE_PATH)) >> 8)}},
+     PLAT_KEYPAD_DEVICE_GUID},
+    {END_DEVICE_PATH_TYPE,
+     END_ENTIRE_DEVICE_PATH_SUBTYPE,
+     {(UINT8)(END_DEVICE_PATH_LENGTH),
+      (UINT8)((END_DEVICE_PATH_LENGTH) >> 8)}}};
+
+#endif
\ No newline at end of file
diff --git a/sdm845Pkg/Include/Configuration/DeviceMemoryMap.h b/sdm845Pkg/Include/Configuration/DeviceMemoryMap.h
new file mode 100644 (file)
index 0000000..7d8430f
--- /dev/null
@@ -0,0 +1,392 @@
+#ifndef _DEVICE_MEMORY_MAP_H_\r
+#define _DEVICE_MEMORY_MAP_H_\r
+\r
+#include <Library/ArmLib.h>\r
+\r
+#define MAX_ARM_MEMORY_REGION_DESCRIPTOR_COUNT 95\r
+\r
+/* Below flag is used for system memory */\r
+#define SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES                               \\r
+  EFI_RESOURCE_ATTRIBUTE_PRESENT | EFI_RESOURCE_ATTRIBUTE_INITIALIZED |        \\r
+      EFI_RESOURCE_ATTRIBUTE_TESTED | EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE |     \\r
+      EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE |                               \\r
+      EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE |                         \\r
+      EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE |                            \\r
+      EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTABLE\r
+\r
+typedef enum { NoHob, AddMem, AddDev, MaxMem } DeviceMemoryAddHob;\r
+\r
+typedef struct {\r
+  EFI_PHYSICAL_ADDRESS         Address;\r
+  UINT64                       Length;\r
+  EFI_RESOURCE_TYPE            ResourceType;\r
+  EFI_RESOURCE_ATTRIBUTE_TYPE  ResourceAttribute;\r
+  ARM_MEMORY_REGION_ATTRIBUTES ArmAttributes;\r
+  DeviceMemoryAddHob           HobOption;\r
+  EFI_MEMORY_TYPE              MemoryType;\r
+} ARM_MEMORY_REGION_DESCRIPTOR_EX, *PARM_MEMORY_REGION_DESCRIPTOR_EX;\r
+\r
+static ARM_MEMORY_REGION_DESCRIPTOR_EX gDeviceMemoryDescriptorEx[] = {\r
+    /* Address,          Length,     ResourceType, Resource Attribute, ARM MMU\r
+       Attribute,                  HobOption, EFI Memory Type */\r
+\r
+    /* DDR */\r
+\r
+    /* Kernel */\r
+    {0x80000000, 0x01AC0000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, AddMem, EfiBootServicesCode},\r
+    /* HLOS1 */\r
+       {0x81AC0000, 0x03C40000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, AddMem,\r
+     EfiBootServicesData},\r
+       /* MPSS_EFS */\r
+       {0x85D00000, 0x00200000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, AddMem, EfiReservedMemoryType},\r
+       /* GPU PRR */\r
+       {0x85F00000, 0x00010000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, AddMem, EfiReservedMemoryType},\r
+       /* HLOS2 */\r
+       {0x85F10000, 0x000B0000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, AddMem, EfiBootServicesData},\r
+    /* AOP CMD DB */\r
+    {0x85FE0000, 0x00020000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, AddMem, EfiReservedMemoryType},\r
+    /* SMEM */\r
+    {0x86000000, 0x00200000, EFI_RESOURCE_MEMORY_RESERVED,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED, AddMem,\r
+     EfiReservedMemoryType},\r
+       /* TZApps */\r
+       {0x86D00000, 0x03E00000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, NoHob, EfiReservedMemoryType},\r
+       /* TGCM */\r
+       {0x8AB00000, 0x01400000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, AddMem, EfiReservedMemoryType},\r
+       /* PIL_REGION */\r
+       {0x8BF00000, 0x0BD00000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, AddMem, EfiReservedMemoryType},\r
+    /* DXE Heap */\r
+    {0x97C00000, 0x05730000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, AddMem, EfiConventionalMemory},\r
+    /* DBI Dump */\r
+    {0x9D330000, 0x000D0000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_INITIALIZED, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     NoHob, EfiConventionalMemory},\r
+    /* FrameBuffer */\r
+    {0x9D400000, 0x02400000, EFI_RESOURCE_MEMORY_RESERVED,\r
+     EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_WRITE_THROUGH, AddMem, EfiMaxMemoryType},\r
+    /* FV Region */\r
+    {0x9F800000, 0x00200000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, AddMem, EfiBootServicesData},\r
+    /* ABOOT FV */\r
+    {0x9FA00000, 0x00200000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, AddMem, EfiReservedMemoryType},\r
+    /* UEFI FD */\r
+    {0x9FC00000, 0x00300000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, AddMem, EfiBootServicesData},\r
+    /* SEC Heap */\r
+    {0x9FF00000, 0x0008C000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, AddMem, EfiBootServicesData},\r
+    /* CPU Vectors */\r
+    {0x9FF8C000, 0x00001000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, AddMem, EfiBootServicesData},\r
+    /* MMU PageTables */\r
+    {0x9FF8D000, 0x00003000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, AddMem, EfiBootServicesData},\r
+    /* UEFI Stack */\r
+    {0x9FF90000, 0x00040000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, AddMem, EfiBootServicesData},\r
+    \r
+       {0x9FFD0000, 0x0000A000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED, AddMem,\r
+     EfiRuntimeServicesData},\r
+       {0x9FFDA000, 0x00003000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED, AddMem,\r
+     EfiRuntimeServicesData},\r
+       {0x9FFDD000, 0x00004000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED, AddMem,\r
+     EfiRuntimeServicesData},\r
+       {0x9FFE1000, 0x00001000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED, AddMem,\r
+     EfiRuntimeServicesData},\r
+       {0x9FFE2000, 0x00001000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED, AddMem,\r
+     EfiRuntimeServicesData},\r
+       {0x9FFE3000, 0x00014000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED, AddMem,\r
+     EfiRuntimeServicesData},\r
+       {0x9FFF7000, 0x00008000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED, AddMem,\r
+     EfiRuntimeServicesData},\r
+       {0x9FFFF000, 0x00001000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED, AddMem,\r
+     EfiRuntimeServicesData},\r
+        \r
+       {0xA0000000, 0xE0000000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, AddMem, EfiConventionalMemory},\r
+       {0x180000000, 0x57400000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, AddMem, EfiConventionalMemory},\r
+       {0x1D7400000, 0x8000000, EFI_RESOURCE_SYSTEM_MEMORY,\r
+     SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES,\r
+     ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, AddMem, EfiConventionalMemory},\r
+\r
+    /* Other */\r
+\r
+    /* AOP_SS_MSG_RAM */\r
+    {0x0C300000, 0x00100000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_INITIALIZED, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     NoHob, EfiConventionalMemory},\r
+    /* IMEM Base */\r
+    {0x14680000, 0x0003F000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_INITIALIZED, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     NoHob, EfiConventionalMemory},\r
+    /* IMEM Cookie Base */\r
+    {0x146BF000, 0x00001000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_INITIALIZED, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiConventionalMemory},\r
+\r
+    /* Register */\r
+\r
+    /* GCC CLK CTL */\r
+    {0x00100000, 0x000B0000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* SECURITY CONTROL */\r
+    {0x00780000, 0x00007000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* PRNG_CFG_PRNG */\r
+    {0x00790000, 0x00010000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* QUPV3_0_GSI */\r
+    {0x00800000, 0x000D0000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* QUPV3_1_GSI */\r
+    {0x00A00000, 0x000D0000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+       /* PCIE_0_WRAPPER_AHB */\r
+       {0x01C00000, 0x00008000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+       /* PCIE_1_WRAPPER_AHB */\r
+       {0x01C08000, 0x00008000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* UFS UFS REGS */\r
+    {0x01D80000, 0x00020000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* CRYPTO0 CRYPTO */\r
+    {0x01DC0000, 0x00040000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* TCSR_TCSR_REGS */\r
+    {0x01FC0000, 0x00030000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* TLMM_EAST */\r
+    {0x03500000, 0x00300000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* TLMM_NORTH */\r
+    {0x03900000, 0x00300000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* TLMM_SOUTH */\r
+    {0x03D00000, 0x00300000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+\r
+    /* GPU_CPR */\r
+    {0x0509A000, 0x00004000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+\r
+    /* RPMH_CPRF */\r
+    {0x0C200000, 0x0000F000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* GPU_GMU_GX_BLK */\r
+    {0x0506A000, 0x00001000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+\r
+    /* GPU_GMU_CX_BLK */\r
+    {0x0507D000, 0x0000C000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* GPU_CC */\r
+    {0x05090000, 0x00010000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* GPU_ISENSE */\r
+    {0x0508B000, 0x00002000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* QUPV3_SSC_GSI */\r
+    {0x05A00000, 0x000D0000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* PERIPH_SS */\r
+    {0x08800000, 0x00200000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* USB30_PRIM */\r
+    {0x0A600000, 0x0011B000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* VIDEO_CC */\r
+    {0x0AB00000, 0x00010000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+       /* TITAN_A_CCI */\r
+       {0x0AC4A000, 0x00004000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO}, \r
+    /* TITAN_CAM_CC */\r
+    {0x0AD00000, 0x00010000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* MDSS */\r
+    {0x0AE00000, 0x00134000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* DISP_CC */\r
+    {0x0AF00000, 0x00020000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* PDC_DISPLAY */\r
+    {0x0B290000, 0x00010000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* PDC_DISP_SEQ */\r
+    {0x0B490000, 0x00010000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* RPMH_BCM_BCM_TOP */\r
+    {0x0BA00000, 0x00200000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* SLP_CNTR */\r
+    {0x0C221000, 0x00001000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* TSENS0 */\r
+    {0x0C222000, 0x00001000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* TSENS1 */\r
+    {0x0C223000, 0x00001000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* TSENS0_TM */\r
+    {0x0C263000, 0x00001000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* PSHOLD */\r
+    {0x0C264000, 0x00001000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* TSENS1_TM */\r
+    {0x0C265000, 0x00001000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* PMIC_ARB_SPMI */\r
+    {0x0C400000, 0x02800000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* SMMU */\r
+    {0x15000000, 0x000D0000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* GOLD_SAW4_SRM */\r
+    {0x17830000, 0x00001000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* SILVER_SAW4_SRM */\r
+    {0x17840000, 0x00001000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* GOLD_CLK_CTL */\r
+    {0x178B0000, 0x00001000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* SILVER_CLK_CTL */\r
+    {0x178C0000, 0x00001000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* L3_CLK_CTL */\r
+    {0x178D0000, 0x00001000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* APSS_WDT_TMR1 */\r
+    {0x17980000, 0x00001000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* APSS_IPC_INT */\r
+    {0x17990000, 0x00001000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* APSS_RSC_RSCCR */\r
+    {0x179C0000, 0x00030000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* APSS_GIC500_GICD */\r
+    {0x17A00000, 0x00010000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* APSS_GIC500_GICR */\r
+    {0x17A60000, 0x00100000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* QTIMER */\r
+    {0x17C00000, 0x00110000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* OSM */\r
+    {0x17D20000, 0x000B0000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+       /* PCIE_1_WRAPPER_AXI */\r
+       {0x40000000, 0x02000000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+       /* PCIE_0_WRAPPER_AXI */\r
+       {0x60000000, 0x01000000, EFI_RESOURCE_MEMORY_MAPPED_IO,\r
+     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,\r
+     AddDev, EfiMemoryMappedIO},\r
+    /* Terminator */\r
+    {}};\r
+\r
+#endif\r
diff --git a/sdm845Pkg/Include/Configuration/Hob.h b/sdm845Pkg/Include/Configuration/Hob.h
new file mode 100644 (file)
index 0000000..17e9cb5
--- /dev/null
@@ -0,0 +1,18 @@
+#ifndef __LOCAL_HOB_H__
+#define __LOCAL_HOB_H__
+
+#define PRELOADER_ENV_ADDR 0xb0000000
+#define PRELOADER_VERSION_MIN 0x1000
+
+#define PRELOADER_HEADER SIGNATURE_32('B', 'S', 'E', 'N')
+
+typedef struct _PRELOADER_ENVIRONMENT {
+  UINT32   Header;
+  UINT32   PreloaderVersion;
+  CHAR8    PreloaderRelease[64];
+  EFI_TIME BootTimeEpoch;
+  UINT32   UefiDisplayInfo[30];
+  UINT32   Crc32;
+} PRELOADER_ENVIRONMENT, *PPRELOADER_ENVIRONMENT;
+
+#endif
\ No newline at end of file
diff --git a/sdm845Pkg/Include/Library/FrameBufferSerialPortLib.h b/sdm845Pkg/Include/Library/FrameBufferSerialPortLib.h
new file mode 100644 (file)
index 0000000..b36f5d8
--- /dev/null
@@ -0,0 +1,41 @@
+#ifndef _FRAMEBUFFER_SERIALPORT_LIB_H_
+#define _FRAMEBUFFER_SERIALPORT_LIB_H_
+
+typedef struct _FBCON_POSITION {
+    INTN x;
+    INTN y;
+} FBCON_POSITION, *PFBCON_POSITION;
+
+typedef struct _FBCON_COLOR {
+    UINTN Foreground;
+    UINTN Background;
+} FBCON_COLOR, *PFBCON_COLOR;
+
+enum FbConMsgType {
+       /* type for menu */
+       FBCON_COMMON_MSG = 0,
+       FBCON_UNLOCK_TITLE_MSG,
+       FBCON_TITLE_MSG,
+       FBCON_SUBTITLE_MSG,
+
+       /* type for warning */
+       FBCON_YELLOW_MSG,
+       FBCON_ORANGE_MSG,
+       FBCON_RED_MSG,
+       FBCON_GREEN_MSG,
+
+       /* and the select message's background */
+       FBCON_SELECT_MSG_BG_COLOR,
+};
+
+void ResetFb(void);
+
+UINTN
+EFIAPI
+SerialPortWriteCritical
+(
+       IN UINT8     *Buffer,
+       IN UINTN     NumberOfBytes
+);
+
+#endif
diff --git a/sdm845Pkg/Include/Resources/FbColor.h b/sdm845Pkg/Include/Resources/FbColor.h
new file mode 100644 (file)
index 0000000..bb6fc5a
--- /dev/null
@@ -0,0 +1,14 @@
+#ifndef _FB_COLOR_H_
+#define _FB_COLOR_H_
+
+#define FB_BGRA8888_BLACK          0xff000000
+#define FB_BGRA8888_WHITE          0xffffffff
+#define FB_BGRA8888_CYAN           0xff00ffff
+#define FB_BGRA8888_BLUE           0xff0000ff
+#define FB_BGRA8888_SILVER         0xffc0c0c0
+#define FB_BGRA8888_YELLOW         0xffffff00
+#define FB_BGRA8888_ORANGE         0xffffa500
+#define FB_BGRA8888_RED            0xffff0000
+#define FB_BGRA8888_GREEN          0xff00ff00
+
+#endif
\ No newline at end of file
diff --git a/sdm845Pkg/Include/Resources/font5x12.h b/sdm845Pkg/Include/Resources/font5x12.h
new file mode 100644 (file)
index 0000000..d37664d
--- /dev/null
@@ -0,0 +1,136 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the 
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _FONT_5x12_DATA_
+#define _FONT_5x12_DATA_
+
+#define FONT_WIDTH             5
+#define FONT_HEIGHT            12
+
+#define SCALE_FACTOR   2
+
+unsigned font5x12[] = {
+    0x00000000, 0x00000000,
+    0x08421080, 0x00020084,
+    0x00052940, 0x00000000,
+    0x15f52800, 0x0000295f,
+    0x1c52f880, 0x00023e94,
+    0x08855640, 0x0004d542,
+    0x04528800, 0x000b2725,
+    0x00021080, 0x00000000,
+    0x04211088, 0x00821042,
+    0x10841082, 0x00221108,
+    0x09575480, 0x00000000,
+    0x3e420000, 0x00000084,
+    0x00000000, 0x00223000,
+    0x3e000000, 0x00000000,
+    0x00000000, 0x00471000,
+    0x08844200, 0x00008442,
+    0x2318a880, 0x00022a31,
+    0x08429880, 0x000f9084,
+    0x1108c5c0, 0x000f8444,
+    0x1c4443e0, 0x00074610,
+    0x14a62100, 0x000423e9,
+    0x26d087e0, 0x00074610,
+    0x1e10c5c0, 0x00074631,
+    0x088443e0, 0x00010844,
+    0x1d18c5c0, 0x00074631,
+    0x3d18c5c0, 0x00074610,
+    0x08e20000, 0x00471000,
+    0x08e20000, 0x00223000,
+    0x02222200, 0x00082082,
+    0x01f00000, 0x000003e0,
+    0x20820820, 0x00008888,
+    0x1108c5c0, 0x00020084,
+    0x2b98c5c0, 0x000f05b5,
+    0x2318a880, 0x0008c63f,
+    0x1d2949e0, 0x0007ca52,
+    0x0210c5c0, 0x00074421,
+    0x252949e0, 0x0007ca52,
+    0x1e1087e0, 0x000f8421,
+    0x1e1087e0, 0x00008421,
+    0x0210c5c0, 0x00074639,
+    0x3f18c620, 0x0008c631,
+    0x084211c0, 0x00071084,
+    0x10842380, 0x00032508,
+    0x0654c620, 0x0008c525,
+    0x02108420, 0x000f8421,
+    0x2b5dc620, 0x0008c631,
+    0x2b59ce20, 0x0008c739,
+    0x2318c5c0, 0x00074631,
+    0x1f18c5e0, 0x00008421,
+    0x2318c5c0, 0x01075631,
+    0x1f18c5e0, 0x0008c525,
+    0x1c10c5c0, 0x00074610,
+    0x084213e0, 0x00021084,
+    0x2318c620, 0x00074631,
+    0x1518c620, 0x0002114a,
+    0x2b18c620, 0x000556b5,
+    0x08a54620, 0x0008c54a,
+    0x08a54620, 0x00021084,
+    0x088443e0, 0x000f8442,
+    0x0421084e, 0x00e10842,
+    0x08210420, 0x00084108,
+    0x1084210e, 0x00e42108,
+    0x0008a880, 0x00000000,
+    0x00000000, 0x01f00000,
+    0x00000104, 0x00000000,
+    0x20e00000, 0x000b663e,
+    0x22f08420, 0x0007c631,
+    0x22e00000, 0x00074421,
+    0x23e84200, 0x000f4631,
+    0x22e00000, 0x0007443f,
+    0x1e214980, 0x00010842,
+    0x22e00000, 0x1d187a31,
+    0x26d08420, 0x0008c631,
+    0x08601000, 0x00071084,
+    0x10c02000, 0x0c94a108,
+    0x0a908420, 0x0008a4a3,
+    0x084210c0, 0x00071084,
+    0x2ab00000, 0x0008d6b5,
+    0x26d00000, 0x0008c631,
+    0x22e00000, 0x00074631,
+    0x22f00000, 0x0210be31,
+    0x23e00000, 0x21087a31,
+    0x26d00000, 0x00008421,
+    0x22e00000, 0x00074506,
+    0x04f10800, 0x00064842,
+    0x23100000, 0x000b6631,
+    0x23100000, 0x00022951,
+    0x23100000, 0x000556b5,
+    0x15100000, 0x0008a884,
+    0x23100000, 0x1d185b31,
+    0x11f00000, 0x000f8444,
+    0x06421098, 0x01821084,
+    0x08421080, 0x00021084,
+    0x30421083, 0x00321084,
+    0x0004d640, 0x00000000,
+    0x00000000, 0x00000000,
+};
+
+#endif
diff --git a/sdm845Pkg/Library/FrameBufferSerialPortLib/FrameBufferSerialPortLib.c b/sdm845Pkg/Library/FrameBufferSerialPortLib/FrameBufferSerialPortLib.c
new file mode 100644 (file)
index 0000000..6c3c911
--- /dev/null
@@ -0,0 +1,464 @@
+#include <PiDxe.h>
+
+#include <Library/ArmLib.h>
+#include <Library/CacheMaintenanceLib.h>
+#include <Library/HobLib.h>
+#include <Library/SerialPortLib.h>
+
+#include <Resources/font5x12.h>
+#include <Resources/FbColor.h>
+
+#include "FrameBufferSerialPortLib.h"
+
+FBCON_POSITION m_Position;
+FBCON_POSITION m_MaxPosition;
+FBCON_COLOR m_Color;
+BOOLEAN m_Initialized = FALSE;
+
+UINTN gWidth = FixedPcdGet32(PcdMipiFrameBufferWidth);
+// Reserve half screen for output
+UINTN gHeight = FixedPcdGet32(PcdMipiFrameBufferHeight);
+UINTN gBpp = FixedPcdGet32(PcdMipiFrameBufferPixelBpp);
+
+// Module-used internal routine
+void FbConPutCharWithFactor
+(
+       char c,
+       int type,
+       unsigned scale_factor
+);
+
+void FbConDrawglyph
+(
+       char *pixels,
+       unsigned stride,
+       unsigned bpp,
+       unsigned *glyph,
+       unsigned scale_factor
+);
+
+void FbConReset(void);
+void FbConScrollUp(void);
+void FbConFlush(void);
+
+RETURN_STATUS
+EFIAPI
+SerialPortInitialize
+(
+       VOID
+)
+{
+       UINTN InterruptState = 0;
+
+       // Prevent dup initialization
+       if (m_Initialized) return RETURN_SUCCESS;
+
+       // Interrupt Disable
+       InterruptState = ArmGetInterruptState();
+       ArmDisableInterrupts();
+
+       // Reset console
+       FbConReset();
+
+       // Set flag
+       m_Initialized = TRUE;
+
+       if (InterruptState) ArmEnableInterrupts();
+       return RETURN_SUCCESS;
+}
+
+void ResetFb(void)
+{
+       // Clear current screen.
+       char* Pixels = (void*)FixedPcdGet32(PcdMipiFrameBufferAddress);
+       UINTN BgColor = FB_BGRA8888_BLACK;
+
+       // Set to black color.
+       for (UINTN i = 0; i < gWidth; i++)
+       {
+               for (UINTN j = 0; j < gHeight; j++)
+               {
+                       BgColor = FB_BGRA8888_BLACK;
+                       // Set pixel bit
+                       for (UINTN p = 0; p < (gBpp / 8); p++)
+                       {
+                               *Pixels = (unsigned char)BgColor;
+                               BgColor = BgColor >> 8;
+                               Pixels++;
+                       }
+               }
+       }
+}
+
+void FbConReset(void)
+{
+       // Reset position.
+       m_Position.x = 0;
+       m_Position.y = 0;
+
+       // Calc max position.
+       m_MaxPosition.x = gWidth / (FONT_WIDTH + 1);
+       m_MaxPosition.y = (gHeight - 1) / FONT_HEIGHT;
+
+       // Reset color.
+       m_Color.Foreground = FB_BGRA8888_WHITE;
+       m_Color.Background = FB_BGRA8888_BLACK;
+}
+
+void FbConPutCharWithFactor
+(
+       char c,
+       int type,
+       unsigned scale_factor
+)
+{
+       char* Pixels;
+
+       if (!m_Initialized) return;
+
+paint:
+
+       if ((unsigned char)c > 127) return;
+
+       if ((unsigned char)c < 32)
+       {
+               if (c == '\n')
+               {
+                       goto newline;
+               }
+               else if (c == '\r')
+               {
+                       m_Position.x = 0;
+                       return;
+               }
+               else
+               {
+                       return;
+               }
+       }
+
+       // Save some space
+       if (m_Position.x == 0 && (unsigned char)c == ' ' &&
+               type != FBCON_SUBTITLE_MSG &&
+               type != FBCON_TITLE_MSG)
+               return;
+
+       BOOLEAN intstate = ArmGetInterruptState();
+       ArmDisableInterrupts();
+
+       Pixels = (void*)FixedPcdGet32(PcdMipiFrameBufferAddress);
+       Pixels += m_Position.y * ((gBpp / 8) * FONT_HEIGHT * gWidth);
+       Pixels += m_Position.x * scale_factor * ((gBpp / 8) * (FONT_WIDTH + 1));
+
+       FbConDrawglyph(
+               Pixels,
+               gWidth,
+               (gBpp / 8),
+               font5x12 + (c - 32) * 2,
+               scale_factor);
+
+       m_Position.x++;
+
+       if (m_Position.x >= (int)(m_MaxPosition.x / scale_factor)) goto newline;
+
+       if (intstate) ArmEnableInterrupts();
+       return;
+
+newline:
+       m_Position.y += scale_factor;
+       m_Position.x = 0;
+       if (m_Position.y >= m_MaxPosition.y - scale_factor)
+       {
+               ResetFb();
+               FbConFlush();
+               m_Position.y = 0;
+
+               if (intstate) ArmEnableInterrupts();
+               goto paint;
+       }
+       else
+       {
+               FbConFlush();
+               if (intstate) ArmEnableInterrupts();
+       }
+
+}
+
+void FbConDrawglyph
+(
+       char *pixels,
+       unsigned stride,
+       unsigned bpp,
+       unsigned *glyph,
+       unsigned scale_factor
+)
+{
+       char *bg_pixels = pixels;
+       unsigned x, y, i, j, k;
+       unsigned data, temp;
+       unsigned int fg_color = m_Color.Foreground;
+       unsigned int bg_color = m_Color.Background;
+       stride -= FONT_WIDTH * scale_factor;
+
+       for (y = 0; y < FONT_HEIGHT / 2; ++y)
+       {
+               for (i = 0; i < scale_factor; i++)
+               {
+                       for (x = 0; x < FONT_WIDTH; ++x)
+                       {
+                               for (j = 0; j < scale_factor; j++)
+                               {
+                                       bg_color = m_Color.Background;
+                                       for (k = 0; k < bpp; k++)
+                                       {
+                                               *bg_pixels = (unsigned char)bg_color;
+                                               bg_color = bg_color >> 8;
+                                               bg_pixels++;
+                                       }
+                               }
+                       }
+                       bg_pixels += (stride * bpp);
+               }
+       }
+
+       for (y = 0; y < FONT_HEIGHT / 2; ++y)
+       {
+               for (i = 0; i < scale_factor; i++)
+               {
+                       for (x = 0; x < FONT_WIDTH; ++x)
+                       {
+                               for (j = 0; j < scale_factor; j++)
+                               {
+                                       bg_color = m_Color.Background;
+                                       for (k = 0; k < bpp; k++)
+                                       {
+                                               *bg_pixels = (unsigned char)bg_color;
+                                               bg_color = bg_color >> 8;
+                                               bg_pixels++;
+                                       }
+                               }
+                       }
+                       bg_pixels += (stride * bpp);
+               }
+       }
+
+       data = glyph[0];
+       for (y = 0; y < FONT_HEIGHT / 2; ++y)
+       {
+               temp = data;
+               for (i = 0; i < scale_factor; i++)
+               {
+                       data = temp;
+                       for (x = 0; x < FONT_WIDTH; ++x)
+                       {
+                               if (data & 1)
+                               {
+                                       for (j = 0; j < scale_factor; j++)
+                                       {
+                                               fg_color = m_Color.Foreground;
+                                               for (k = 0; k < bpp; k++)
+                                               {
+                                                       *pixels = (unsigned char)fg_color;
+                                                       fg_color = fg_color >> 8;
+                                                       pixels++;
+                                               }
+                                       }
+                               }
+                               else
+                               {
+                                       for (j = 0; j < scale_factor; j++)
+                                       {
+                                               pixels = pixels + bpp;
+                                       }
+                               }
+                               data >>= 1;
+                       }
+                       pixels += (stride * bpp);
+               }
+       }
+
+       data = glyph[1];
+       for (y = 0; y < FONT_HEIGHT / 2; ++y)
+       {
+               temp = data;
+               for (i = 0; i < scale_factor; i++)
+               {
+                       data = temp;
+                       for (x = 0; x < FONT_WIDTH; ++x)
+                       {
+                               if (data & 1)
+                               {
+                                       for (j = 0; j < scale_factor; j++)
+                                       {
+                                               fg_color = m_Color.Foreground;
+                                               for (k = 0; k < bpp; k++)
+                                               {
+                                                       *pixels = (unsigned char)fg_color;
+                                                       fg_color = fg_color >> 8;
+                                                       pixels++;
+                                               }
+                                       }
+                               }
+                               else
+                               {
+                                       for (j = 0; j < scale_factor; j++)
+                                       {
+                                               pixels = pixels + bpp;
+                                       }
+                               }
+                               data >>= 1;
+                       }
+                       pixels += (stride * bpp);
+               }
+       }
+}
+
+/* TODO: Take stride into account */
+void FbConScrollUp(void)
+{
+       unsigned short *dst = (void*)FixedPcdGet32(PcdMipiFrameBufferAddress);
+       unsigned short *src = dst + (gWidth * FONT_HEIGHT);
+       unsigned count = gWidth * (gHeight - FONT_HEIGHT);
+
+       while (count--)
+       {
+               *dst++ = *src++;
+       }
+
+       count = gWidth * FONT_HEIGHT;
+       while (count--)
+       {
+               *dst++ = m_Color.Background;
+       }
+
+       FbConFlush();
+}
+
+void FbConFlush(void)
+{
+       unsigned total_x, total_y;
+       unsigned bytes_per_bpp;
+
+       total_x = gWidth;
+       total_y = gHeight;
+       bytes_per_bpp = (gBpp / 8);
+
+       WriteBackInvalidateDataCacheRange(
+               (void*)FixedPcdGet32(PcdMipiFrameBufferAddress),
+               (total_x * total_y * bytes_per_bpp)
+       );
+}
+
+UINTN
+EFIAPI
+SerialPortWrite
+(
+       IN UINT8     *Buffer,
+       IN UINTN     NumberOfBytes
+)
+{
+       UINT8* CONST Final = &Buffer[NumberOfBytes];
+       UINTN  InterruptState = ArmGetInterruptState();
+       ArmDisableInterrupts();
+
+       while (Buffer < Final)
+       {
+               FbConPutCharWithFactor(*Buffer++, FBCON_COMMON_MSG, SCALE_FACTOR);
+       }
+
+       if (InterruptState) ArmEnableInterrupts();
+       return NumberOfBytes;
+}
+
+UINTN
+EFIAPI
+SerialPortWriteCritical
+(
+       IN UINT8     *Buffer,
+       IN UINTN     NumberOfBytes
+)
+{
+       UINT8* CONST Final = &Buffer[NumberOfBytes];
+       UINTN  CurrentForeground = m_Color.Foreground;
+       UINTN  InterruptState = ArmGetInterruptState();
+
+       ArmDisableInterrupts();
+       m_Color.Foreground = FB_BGRA8888_YELLOW;
+
+       while (Buffer < Final)
+       {
+               FbConPutCharWithFactor(*Buffer++, FBCON_COMMON_MSG, SCALE_FACTOR);
+       }
+
+       m_Color.Foreground = CurrentForeground;
+
+       if (InterruptState) ArmEnableInterrupts();
+       return NumberOfBytes;
+}
+
+UINTN
+EFIAPI
+SerialPortRead
+(
+       OUT UINT8     *Buffer,
+       IN  UINTN     NumberOfBytes
+)
+{
+       return 0;
+}
+
+BOOLEAN
+EFIAPI
+SerialPortPoll
+(
+       VOID
+)
+{
+       return FALSE;
+}
+
+RETURN_STATUS
+EFIAPI
+SerialPortSetControl
+(
+       IN UINT32 Control
+)
+{
+       return RETURN_UNSUPPORTED;
+}
+
+RETURN_STATUS
+EFIAPI
+SerialPortGetControl
+(
+       OUT UINT32 *Control
+)
+{
+       return RETURN_UNSUPPORTED;
+}
+
+RETURN_STATUS
+EFIAPI
+SerialPortSetAttributes
+(
+       IN OUT UINT64             *BaudRate,
+       IN OUT UINT32             *ReceiveFifoDepth,
+       IN OUT UINT32             *Timeout,
+       IN OUT EFI_PARITY_TYPE    *Parity,
+       IN OUT UINT8              *DataBits,
+       IN OUT EFI_STOP_BITS_TYPE *StopBits
+)
+{
+       return RETURN_UNSUPPORTED;
+}
+
+UINTN SerialPortFlush(VOID)
+{
+       return 0;
+}
+
+VOID
+EnableSynchronousSerialPortIO(VOID)
+{
+       // Already synchronous
+}
\ No newline at end of file
diff --git a/sdm845Pkg/Library/FrameBufferSerialPortLib/FrameBufferSerialPortLib.h b/sdm845Pkg/Library/FrameBufferSerialPortLib/FrameBufferSerialPortLib.h
new file mode 100644 (file)
index 0000000..b36f5d8
--- /dev/null
@@ -0,0 +1,41 @@
+#ifndef _FRAMEBUFFER_SERIALPORT_LIB_H_
+#define _FRAMEBUFFER_SERIALPORT_LIB_H_
+
+typedef struct _FBCON_POSITION {
+    INTN x;
+    INTN y;
+} FBCON_POSITION, *PFBCON_POSITION;
+
+typedef struct _FBCON_COLOR {
+    UINTN Foreground;
+    UINTN Background;
+} FBCON_COLOR, *PFBCON_COLOR;
+
+enum FbConMsgType {
+       /* type for menu */
+       FBCON_COMMON_MSG = 0,
+       FBCON_UNLOCK_TITLE_MSG,
+       FBCON_TITLE_MSG,
+       FBCON_SUBTITLE_MSG,
+
+       /* type for warning */
+       FBCON_YELLOW_MSG,
+       FBCON_ORANGE_MSG,
+       FBCON_RED_MSG,
+       FBCON_GREEN_MSG,
+
+       /* and the select message's background */
+       FBCON_SELECT_MSG_BG_COLOR,
+};
+
+void ResetFb(void);
+
+UINTN
+EFIAPI
+SerialPortWriteCritical
+(
+       IN UINT8     *Buffer,
+       IN UINTN     NumberOfBytes
+);
+
+#endif
diff --git a/sdm845Pkg/Library/FrameBufferSerialPortLib/FrameBufferSerialPortLib.inf b/sdm845Pkg/Library/FrameBufferSerialPortLib/FrameBufferSerialPortLib.inf
new file mode 100644 (file)
index 0000000..178abb6
--- /dev/null
@@ -0,0 +1,30 @@
+[Defines]
+  INF_VERSION    = 0x00010005
+  BASE_NAME      = FrameBufferSerialPortLib
+  MODULE_TYPE    = BASE
+  VERSION_STRING = 1.0
+  LIBRARY_CLASS  = SerialPortLib
+
+[Sources.common]
+  FrameBufferSerialPortLib.c
+
+[Packages]
+  MdePkg/MdePkg.dec
+  ArmPkg/ArmPkg.dec
+  sdm845Pkg/sdm845Pkg.dec
+
+[LibraryClasses]
+  ArmLib
+  PcdLib
+  IoLib
+  HobLib
+  CompilerIntrinsicsLib
+  CacheMaintenanceLib
+
+[Pcd]
+  gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferAddress
+  gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferWidth
+  gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferHeight
+  gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferPixelBpp
+  gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferVisibleWidth
+  gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferVisibleHeight
diff --git a/sdm845Pkg/Library/InMemorySerialPortLib/InMemorySerialPortLib.c b/sdm845Pkg/Library/InMemorySerialPortLib/InMemorySerialPortLib.c
new file mode 100644 (file)
index 0000000..87c90c1
--- /dev/null
@@ -0,0 +1,218 @@
+/** @file
+  Null Serial Port library instance with empty functions.
+
+  Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+  This program and the accompanying materials
+  are licensed and made available under the terms and conditions of the BSD License
+  which accompanies this distribution.  The full text of the license may be found at
+  http://opensource.org/licenses/bsd-license.php.
+
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+
+#include <Base.h>
+#include <Library/SerialPortLib.h>
+#include <Library/CacheMaintenanceLib.h>
+
+/**
+  Initialize the serial device hardware.
+
+  If no initialization is required, then return RETURN_SUCCESS.
+  If the serial device was successfully initialized, then return RETURN_SUCCESS.
+  If the serial device could not be initialized, then return RETURN_DEVICE_ERROR.
+
+  @retval RETURN_SUCCESS        The serial device was initialized.
+  @retval RETURN_DEVICE_ERROR   The serial device could not be initialized.
+
+**/
+RETURN_STATUS
+EFIAPI
+SerialPortInitialize (
+  VOID
+  )
+{
+#if 0
+  UINT8* base = (UINT8*)0xa1a10000ull;
+  for (UINTN i = 0; i < 0x200000; i++) {
+    base[i] = 0;
+  }
+#endif
+  return RETURN_SUCCESS;
+}
+
+static void mem_putchar(UINT8 c) {
+  static const UINTN size = 0x200000;
+  static UINTN offset = 0;
+  UINT8* base = (UINT8*)0xa1a10000ull;
+  base[offset++] = c;
+  if (offset >= size) {
+    offset = 0;
+  }
+  WriteBackInvalidateDataCacheRange(base, size);
+}
+
+/**
+  Write data from buffer to serial device.
+
+  Writes NumberOfBytes data bytes from Buffer to the serial device.
+  The number of bytes actually written to the serial device is returned.
+  If the return value is less than NumberOfBytes, then the write operation failed.
+  If Buffer is NULL, then ASSERT().
+  If NumberOfBytes is zero, then return 0.
+
+  @param  Buffer           The pointer to the data buffer to be written.
+  @param  NumberOfBytes    The number of bytes to written to the serial device.
+
+  @retval 0                NumberOfBytes is 0.
+  @retval >0               The number of bytes written to the serial device.
+                           If this value is less than NumberOfBytes, then the write operation failed.
+
+**/
+UINTN
+EFIAPI
+SerialPortWrite (
+  IN UINT8     *Buffer,
+  IN UINTN     NumberOfBytes
+)
+{
+  for (UINTN i = 0; i < NumberOfBytes; i++) {
+    mem_putchar(Buffer[i]);
+  }
+  return NumberOfBytes;
+}
+
+
+/**
+  Read data from serial device and save the datas in buffer.
+
+  Reads NumberOfBytes data bytes from a serial device into the buffer
+  specified by Buffer. The number of bytes actually read is returned.
+  If the return value is less than NumberOfBytes, then the rest operation failed.
+  If Buffer is NULL, then ASSERT().
+  If NumberOfBytes is zero, then return 0.
+
+  @param  Buffer           The pointer to the data buffer to store the data read from the serial device.
+  @param  NumberOfBytes    The number of bytes which will be read.
+
+  @retval 0                Read data failed; No data is to be read.
+  @retval >0               The actual number of bytes read from serial device.
+
+**/
+UINTN
+EFIAPI
+SerialPortRead (
+  OUT UINT8     *Buffer,
+  IN  UINTN     NumberOfBytes
+)
+{
+  return 0;
+}
+
+/**
+  Polls a serial device to see if there is any data waiting to be read.
+
+  Polls a serial device to see if there is any data waiting to be read.
+  If there is data waiting to be read from the serial device, then TRUE is returned.
+  If there is no data waiting to be read from the serial device, then FALSE is returned.
+
+  @retval TRUE             Data is waiting to be read from the serial device.
+  @retval FALSE            There is no data waiting to be read from the serial device.
+
+**/
+BOOLEAN
+EFIAPI
+SerialPortPoll (
+  VOID
+  )
+{
+  return FALSE;
+}
+
+/**
+  Sets the control bits on a serial device.
+
+  @param Control                Sets the bits of Control that are settable.
+
+  @retval RETURN_SUCCESS        The new control bits were set on the serial device.
+  @retval RETURN_UNSUPPORTED    The serial device does not support this operation.
+  @retval RETURN_DEVICE_ERROR   The serial device is not functioning correctly.
+
+**/
+RETURN_STATUS
+EFIAPI
+SerialPortSetControl (
+  IN UINT32 Control
+  )
+{
+  return RETURN_UNSUPPORTED;
+}
+
+/**
+  Retrieve the status of the control bits on a serial device.
+
+  @param Control                A pointer to return the current control signals from the serial device.
+
+  @retval RETURN_SUCCESS        The control bits were read from the serial device.
+  @retval RETURN_UNSUPPORTED    The serial device does not support this operation.
+  @retval RETURN_DEVICE_ERROR   The serial device is not functioning correctly.
+
+**/
+RETURN_STATUS
+EFIAPI
+SerialPortGetControl (
+  OUT UINT32 *Control
+  )
+{
+  return RETURN_UNSUPPORTED;
+}
+
+/**
+  Sets the baud rate, receive FIFO depth, transmit/receice time out, parity,
+  data bits, and stop bits on a serial device.
+
+  @param BaudRate           The requested baud rate. A BaudRate value of 0 will use the
+                            device's default interface speed.
+                            On output, the value actually set.
+  @param ReveiveFifoDepth   The requested depth of the FIFO on the receive side of the
+                            serial interface. A ReceiveFifoDepth value of 0 will use
+                            the device's default FIFO depth.
+                            On output, the value actually set.
+  @param Timeout            The requested time out for a single character in microseconds.
+                            This timeout applies to both the transmit and receive side of the
+                            interface. A Timeout value of 0 will use the device's default time
+                            out value.
+                            On output, the value actually set.
+  @param Parity             The type of parity to use on this serial device. A Parity value of
+                            DefaultParity will use the device's default parity value.
+                            On output, the value actually set.
+  @param DataBits           The number of data bits to use on the serial device. A DataBits
+                            vaule of 0 will use the device's default data bit setting.
+                            On output, the value actually set.
+  @param StopBits           The number of stop bits to use on this serial device. A StopBits
+                            value of DefaultStopBits will use the device's default number of
+                            stop bits.
+                            On output, the value actually set.
+
+  @retval RETURN_SUCCESS            The new attributes were set on the serial device.
+  @retval RETURN_UNSUPPORTED        The serial device does not support this operation.
+  @retval RETURN_INVALID_PARAMETER  One or more of the attributes has an unsupported value.
+  @retval RETURN_DEVICE_ERROR       The serial device is not functioning correctly.
+
+**/
+RETURN_STATUS
+EFIAPI
+SerialPortSetAttributes (
+  IN OUT UINT64             *BaudRate,
+  IN OUT UINT32             *ReceiveFifoDepth,
+  IN OUT UINT32             *Timeout,
+  IN OUT EFI_PARITY_TYPE    *Parity,
+  IN OUT UINT8              *DataBits,
+  IN OUT EFI_STOP_BITS_TYPE *StopBits
+  )
+{
+  return RETURN_UNSUPPORTED;
+}
+
diff --git a/sdm845Pkg/Library/InMemorySerialPortLib/InMemorySerialPortLib.inf b/sdm845Pkg/Library/InMemorySerialPortLib/InMemorySerialPortLib.inf
new file mode 100644 (file)
index 0000000..197276c
--- /dev/null
@@ -0,0 +1,39 @@
+## @file
+#  Null instance of Serial Port Library with empty functions.
+#
+#  Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+#
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution. The full text of the license may be found at
+#  http://opensource.org/licenses/bsd-license.php.
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+#
+##
+
+[Defines]
+  INF_VERSION                    = 0x00010005
+  BASE_NAME                      = InMemorySerialPortLib
+  MODULE_UNI_FILE                = InMemorySerialPortLib.uni
+  FILE_GUID                      = 762fbf9a-984a-4960-9c7c-e0a076860304
+  MODULE_TYPE                    = BASE
+  VERSION_STRING                 = 1.0
+  LIBRARY_CLASS                  = SerialPortLib
+
+
+#
+#  VALID_ARCHITECTURES           = IA32 X64 EBC
+#
+
+[Sources]
+  InMemorySerialPortLib.c
+
+
+[Packages]
+  MdePkg/MdePkg.dec
+
+[LibraryClasses]
+  CacheMaintenanceLib
+
diff --git a/sdm845Pkg/Library/InMemorySerialPortLib/InMemorySerialPortLib.uni b/sdm845Pkg/Library/InMemorySerialPortLib/InMemorySerialPortLib.uni
new file mode 100644 (file)
index 0000000..dae375b
--- /dev/null
@@ -0,0 +1,21 @@
+// /** @file
+// Null instance of Serial Port Library with empty functions.
+//
+// Null instance of Serial Port Library with empty functions.
+//
+// Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
+//
+// This program and the accompanying materials
+// are licensed and made available under the terms and conditions of the BSD License
+// which accompanies this distribution. The full text of the license may be found at
+// http://opensource.org/licenses/bsd-license.php.
+// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+//
+// **/
+
+
+#string STR_MODULE_ABSTRACT             #language en-US "Serial Port Library that dumps everything written to in memory buffer"
+
+#string STR_MODULE_DESCRIPTION          #language en-US "Serial Port Library that dumps everything written to in memory buffer"
+
diff --git a/sdm845Pkg/Library/MemoryInitPeiLib/MemoryInitPeiLib.c b/sdm845Pkg/Library/MemoryInitPeiLib/MemoryInitPeiLib.c
new file mode 100644 (file)
index 0000000..1447b4d
--- /dev/null
@@ -0,0 +1,133 @@
+/** @file
+ *
+ *  Copyright (c) 2011-2015, ARM Limited. All rights reserved.
+ *
+ *  This program and the accompanying materials
+ *  are licensed and made available under the terms and conditions of the BSD
+ *License which accompanies this distribution.  The full text of the license may
+ *be found at http://opensource.org/licenses/bsd-license.php
+ *
+ *  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR
+ *IMPLIED.
+ *
+ **/
+
+#include <PiPei.h>
+
+#include <Library/ArmMmuLib.h>
+#include <Library/ArmPlatformLib.h>
+#include <Library/DebugLib.h>
+#include <Library/HobLib.h>
+#include <Library/MemoryAllocationLib.h>
+#include <Library/PcdLib.h>
+
+// This varies by device
+#include <Configuration/DeviceMemoryMap.h>
+
+extern UINT64 mSystemMemoryEnd;
+
+VOID BuildMemoryTypeInformationHob(VOID);
+
+STATIC
+VOID InitMmu(IN ARM_MEMORY_REGION_DESCRIPTOR *MemoryTable)
+{
+
+  VOID *        TranslationTableBase;
+  UINTN         TranslationTableSize;
+  RETURN_STATUS Status;
+
+  // Note: Because we called PeiServicesInstallPeiMemory() before
+  // to call InitMmu() the MMU Page Table resides in
+  // RAM (even at the top of DRAM as it is the first permanent memory
+  // allocation)
+  Status = ArmConfigureMmu(
+      MemoryTable, &TranslationTableBase, &TranslationTableSize);
+
+  if (EFI_ERROR(Status)) {
+    DEBUG((EFI_D_ERROR, "Error: Failed to enable MMU: %r\n", Status));
+  }
+}
+
+STATIC
+VOID AddHob(PARM_MEMORY_REGION_DESCRIPTOR_EX Desc)
+{
+  BuildResourceDescriptorHob(
+      Desc->ResourceType, Desc->ResourceAttribute, Desc->Address, Desc->Length);
+
+  BuildMemoryAllocationHob(Desc->Address, Desc->Length, Desc->MemoryType);
+}
+
+/*++
+
+Routine Description:
+
+
+
+Arguments:
+
+  FileHandle  - Handle of the file being invoked.
+  PeiServices - Describes the list of possible PEI Services.
+
+Returns:
+
+  Status -  EFI_SUCCESS if the boot mode could be set
+
+--*/
+EFI_STATUS
+EFIAPI
+MemoryPeim(IN EFI_PHYSICAL_ADDRESS UefiMemoryBase, IN UINT64 UefiMemorySize)
+{
+
+  PARM_MEMORY_REGION_DESCRIPTOR_EX MemoryDescriptorEx =
+      gDeviceMemoryDescriptorEx;
+  ARM_MEMORY_REGION_DESCRIPTOR
+        MemoryDescriptor[MAX_ARM_MEMORY_REGION_DESCRIPTOR_COUNT];
+  UINTN Index = 0;
+
+  // Ensure PcdSystemMemorySize has been set
+  ASSERT(PcdGet64(PcdSystemMemorySize) != 0);
+
+  // Run through each memory descriptor
+  while (MemoryDescriptorEx->Length != 0) {
+    switch (MemoryDescriptorEx->HobOption) {
+    case AddMem:
+    case AddDev:
+      AddHob(MemoryDescriptorEx);
+      break;
+    case NoHob:
+    default:
+      goto update;
+    }
+
+  update:
+    ASSERT(Index < MAX_ARM_MEMORY_REGION_DESCRIPTOR_COUNT);
+
+    MemoryDescriptor[Index].PhysicalBase = MemoryDescriptorEx->Address;
+    MemoryDescriptor[Index].VirtualBase  = MemoryDescriptorEx->Address;
+    MemoryDescriptor[Index].Length       = MemoryDescriptorEx->Length;
+    MemoryDescriptor[Index].Attributes   = MemoryDescriptorEx->ArmAttributes;
+
+    Index++;
+    MemoryDescriptorEx++;
+  }
+
+  // Last one (terminator)
+  ASSERT(Index < MAX_ARM_MEMORY_REGION_DESCRIPTOR_COUNT);
+  MemoryDescriptor[Index].PhysicalBase = 0;
+  MemoryDescriptor[Index].VirtualBase  = 0;
+  MemoryDescriptor[Index].Length       = 0;
+  MemoryDescriptor[Index].Attributes   = 0;
+
+  // Build Memory Allocation Hob
+  DEBUG((EFI_D_INFO, "Configure MMU In \n"));
+  InitMmu(MemoryDescriptor);
+  DEBUG((EFI_D_INFO, "Configure MMU Out \n"));
+
+  if (FeaturePcdGet(PcdPrePiProduceMemoryTypeInformationHob)) {
+    // Optional feature that helps prevent EFI memory map fragmentation.
+    BuildMemoryTypeInformationHob();
+  }
+
+  return EFI_SUCCESS;
+}
diff --git a/sdm845Pkg/Library/MemoryInitPeiLib/PeiMemoryAllocationLib.inf b/sdm845Pkg/Library/MemoryInitPeiLib/PeiMemoryAllocationLib.inf
new file mode 100644 (file)
index 0000000..7faf6c0
--- /dev/null
@@ -0,0 +1,51 @@
+#/** @file
+#
+#  Copyright (c) 2011-2014, ARM Ltd. All rights reserved.<BR>
+#  Copyright (c) 2016, Linaro, Ltd. All rights reserved.<BR>
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at
+#  http://opensource.org/licenses/bsd-license.php
+#
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+#**/
+
+[Defines]
+  INF_VERSION                    = 0x00010005
+  BASE_NAME                      = MemoryInitPeiLib
+  FILE_GUID                      = 4bbc9c10-a100-43fb-8311-332ba497d1b4
+  MODULE_TYPE                    = BASE
+  VERSION_STRING                 = 1.0
+  LIBRARY_CLASS                  = MemoryInitPeiLib|SEC PEIM
+
+[Sources]
+  MemoryInitPeiLib.c
+
+[Packages]
+  MdePkg/MdePkg.dec
+  MdeModulePkg/MdeModulePkg.dec
+  EmbeddedPkg/EmbeddedPkg.dec
+  ArmPkg/ArmPkg.dec
+  ArmPlatformPkg/ArmPlatformPkg.dec
+  sdm845Pkg/sdm845Pkg.dec
+
+[LibraryClasses]
+  DebugLib
+  HobLib
+  ArmMmuLib
+  ArmPlatformLib
+
+[Guids]
+  gEfiMemoryTypeInformationGuid
+
+[FeaturePcd]
+  gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob
+
+[FixedPcd]
+  gArmTokenSpaceGuid.PcdSystemMemoryBase
+  gArmTokenSpaceGuid.PcdSystemMemorySize
+
+[Depex]
+  TRUE
diff --git a/sdm845Pkg/Library/PlatformBootManagerLib/PlatformBm.c b/sdm845Pkg/Library/PlatformBootManagerLib/PlatformBm.c
new file mode 100644 (file)
index 0000000..a31360f
--- /dev/null
@@ -0,0 +1,691 @@
+/** @file
+  Implementation for PlatformBootManagerLib library class interfaces.
+
+  Copyright (C) 2015-2016, Red Hat, Inc.
+  Copyright (c) 2014, ARM Ltd. All rights reserved.
+  Copyright (c) 2004 - 2016, Intel Corporation. All rights reserved.
+  Copyright (c) 2016, Linaro Ltd. All rights reserved.
+  Copyright (c), 2017, Andrei Warkentin <andrey.warkentin@gmail.com>
+
+  This program and the accompanying materials are licensed and made available
+  under the terms and conditions of the BSD License which accompanies this
+  distribution. The full text of the license may be found at
+  http://opensource.org/licenses/bsd-license.php
+
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT
+  WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+#include <Library/BootLogoLib.h>
+#include <Library/CapsuleLib.h>
+#include <Library/DevicePathLib.h>
+#include <Library/HobLib.h>
+#include <Library/PcdLib.h>
+#include <Library/UefiBootManagerLib.h>
+#include <Library/UefiLib.h>
+#include <Library/PrintLib.h>
+#include <Protocol/DevicePath.h>
+#include <Protocol/EsrtManagement.h>
+#include <Protocol/GraphicsOutput.h>
+#include <Protocol/LoadedImage.h>
+#include <Guid/EventGroup.h>
+#include <Guid/TtyTerm.h>
+#include <Configuration/BootDevices.h>
+
+#include "PlatformBm.h"
+
+#define DP_NODE_LEN(Type) { (UINT8)sizeof (Type), (UINT8)(sizeof (Type) >> 8) }
+
+#pragma pack (1)
+typedef struct {
+  VENDOR_DEVICE_PATH         SerialDxe;
+  UART_DEVICE_PATH           Uart;
+  VENDOR_DEFINED_DEVICE_PATH TermType;
+  EFI_DEVICE_PATH_PROTOCOL   End;
+} PLATFORM_SERIAL_CONSOLE;
+#pragma pack ()
+
+typedef struct {
+  VENDOR_DEVICE_PATH            Custom;
+  USB_DEVICE_PATH               Hub;
+  USB_DEVICE_PATH               Dev;
+  EFI_DEVICE_PATH_PROTOCOL      EndDevicePath;
+} PLATFORM_USB_DEV;
+
+#define DW_USB_DXE_FILE_GUID { \
+          0x4bf1704c, 0x03f4, 0x46d5, \
+          { 0xbc, 0xa6, 0x82, 0xfa, 0x58, 0x0b, 0xad, 0xfd } \
+          }
+
+STATIC PLATFORM_USB_DEV mUsbHubPort = {
+  //
+  // VENDOR_DEVICE_PATH DwUsbHostDxe
+  //
+  {
+    { HARDWARE_DEVICE_PATH, HW_VENDOR_DP, DP_NODE_LEN (VENDOR_DEVICE_PATH) },
+    DW_USB_DXE_FILE_GUID
+  },
+
+  //
+  // USB_DEVICE_PATH Hub
+  //
+  {
+    { MESSAGING_DEVICE_PATH, MSG_USB_DP, DP_NODE_LEN (USB_DEVICE_PATH) },
+    0, 0
+  },
+
+  //
+  // USB_DEVICE_PATH Dev
+  //
+  {
+    { MESSAGING_DEVICE_PATH, MSG_USB_DP, DP_NODE_LEN (USB_DEVICE_PATH) },
+    1, 0
+  },
+
+  //
+  // EFI_DEVICE_PATH_PROTOCOL End
+  //
+  {
+    END_DEVICE_PATH_TYPE, END_ENTIRE_DEVICE_PATH_SUBTYPE,
+    DP_NODE_LEN (EFI_DEVICE_PATH_PROTOCOL)
+  }
+};
+
+#define SERIAL_DXE_FILE_GUID { \
+          0xD3987D4B, 0x971A, 0x435F, \
+          { 0x8C, 0xAF, 0x49, 0x67, 0xEB, 0x62, 0x72, 0x41 } \
+          }
+
+STATIC PLATFORM_SERIAL_CONSOLE mSerialConsole = {
+  //
+  // VENDOR_DEVICE_PATH SerialDxe
+  //
+  {
+    { HARDWARE_DEVICE_PATH, HW_VENDOR_DP, DP_NODE_LEN (VENDOR_DEVICE_PATH) },
+    SERIAL_DXE_FILE_GUID
+  },
+
+  //
+  // UART_DEVICE_PATH Uart
+  //
+  {
+    { MESSAGING_DEVICE_PATH, MSG_UART_DP, DP_NODE_LEN (UART_DEVICE_PATH) },
+    0,                                      // Reserved
+    FixedPcdGet64 (PcdUartDefaultBaudRate), // BaudRate
+    FixedPcdGet8 (PcdUartDefaultDataBits),  // DataBits
+    FixedPcdGet8 (PcdUartDefaultParity),    // Parity
+    FixedPcdGet8 (PcdUartDefaultStopBits)   // StopBits
+  },
+
+  //
+  // VENDOR_DEFINED_DEVICE_PATH TermType
+  //
+  {
+    {
+      MESSAGING_DEVICE_PATH, MSG_VENDOR_DP,
+      DP_NODE_LEN (VENDOR_DEFINED_DEVICE_PATH)
+    }
+    //
+    // Guid to be filled in dynamically
+    //
+  },
+
+  //
+  // EFI_DEVICE_PATH_PROTOCOL End
+  //
+  {
+    END_DEVICE_PATH_TYPE, END_ENTIRE_DEVICE_PATH_SUBTYPE,
+    DP_NODE_LEN (EFI_DEVICE_PATH_PROTOCOL)
+  }
+};
+
+
+#pragma pack (1)
+typedef struct {
+  USB_CLASS_DEVICE_PATH    Keyboard;
+  EFI_DEVICE_PATH_PROTOCOL End;
+} PLATFORM_USB_KEYBOARD;
+#pragma pack ()
+
+STATIC PLATFORM_USB_KEYBOARD mUsbKeyboard = {
+  //
+  // USB_CLASS_DEVICE_PATH Keyboard
+  //
+  {
+    {
+      MESSAGING_DEVICE_PATH, MSG_USB_CLASS_DP,
+      DP_NODE_LEN (USB_CLASS_DEVICE_PATH)
+    },
+    0xFFFF, // VendorId: any
+    0xFFFF, // ProductId: any
+    3,      // DeviceClass: HID
+    1,      // DeviceSubClass: boot
+    1       // DeviceProtocol: keyboard
+  },
+
+  //
+  // EFI_DEVICE_PATH_PROTOCOL End
+  //
+  {
+    END_DEVICE_PATH_TYPE, END_ENTIRE_DEVICE_PATH_SUBTYPE,
+    DP_NODE_LEN (EFI_DEVICE_PATH_PROTOCOL)
+  }
+};
+
+
+/**
+  Check if the handle satisfies a particular condition.
+
+  @param[in] Handle      The handle to check.
+  @param[in] ReportText  A caller-allocated string passed in for reporting
+                         purposes. It must never be NULL.
+
+  @retval TRUE   The condition is satisfied.
+  @retval FALSE  Otherwise. This includes the case when the condition could not
+                 be fully evaluated due to an error.
+**/
+typedef
+BOOLEAN
+(EFIAPI *FILTER_FUNCTION) (
+  IN EFI_HANDLE   Handle,
+  IN CONST CHAR16 *ReportText
+  );
+
+
+/**
+  Process a handle.
+
+  @param[in] Handle      The handle to process.
+  @param[in] ReportText  A caller-allocated string passed in for reporting
+                         purposes. It must never be NULL.
+**/
+typedef
+VOID
+(EFIAPI *CALLBACK_FUNCTION)  (
+  IN EFI_HANDLE   Handle,
+  IN CONST CHAR16 *ReportText
+  );
+
+/**
+  Locate all handles that carry the specified protocol, filter them with a
+  callback function, and pass each handle that passes the filter to another
+  callback.
+
+  @param[in] ProtocolGuid  The protocol to look for.
+
+  @param[in] Filter        The filter function to pass each handle to. If this
+                           parameter is NULL, then all handles are processed.
+
+  @param[in] Process       The callback function to pass each handle to that
+                           clears the filter.
+**/
+STATIC
+VOID
+FilterAndProcess (
+  IN EFI_GUID          *ProtocolGuid,
+  IN FILTER_FUNCTION   Filter         OPTIONAL,
+  IN CALLBACK_FUNCTION Process
+  )
+{
+  EFI_STATUS Status;
+  EFI_HANDLE *Handles;
+  UINTN      NoHandles;
+  UINTN      Idx;
+
+  Status = gBS->LocateHandleBuffer (ByProtocol, ProtocolGuid,
+                  NULL /* SearchKey */, &NoHandles, &Handles);
+  if (EFI_ERROR (Status)) {
+    //
+    // This is not an error, just an informative condition.
+    //
+    DEBUG ((EFI_D_VERBOSE, "%a: %g: %r\n", __FUNCTION__, ProtocolGuid,
+      Status));
+    return;
+  }
+
+  ASSERT (NoHandles > 0);
+  for (Idx = 0; Idx < NoHandles; ++Idx) {
+    CHAR16        *DevicePathText;
+    STATIC CHAR16 Fallback[] = L"<device path unavailable>";
+
+    //
+    // The ConvertDevicePathToText() function handles NULL input transparently.
+    //
+    DevicePathText = ConvertDevicePathToText (
+                       DevicePathFromHandle (Handles[Idx]),
+                       FALSE, // DisplayOnly
+                       FALSE  // AllowShortcuts
+                       );
+    if (DevicePathText == NULL) {
+      DevicePathText = Fallback;
+    }
+
+    if (Filter == NULL || Filter (Handles[Idx], DevicePathText)) {
+      Process (Handles[Idx], DevicePathText);
+    }
+
+    if (DevicePathText != Fallback) {
+      FreePool (DevicePathText);
+    }
+  }
+  gBS->FreePool (Handles);
+}
+
+/**
+  This CALLBACK_FUNCTION retrieves the EFI_DEVICE_PATH_PROTOCOL from the
+  handle, and adds it to ConOut and ErrOut.
+**/
+STATIC
+VOID
+EFIAPI
+AddOutput (
+  IN EFI_HANDLE   Handle,
+  IN CONST CHAR16 *ReportText
+  )
+{
+  EFI_STATUS               Status;
+  EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+
+  DevicePath = DevicePathFromHandle (Handle);
+  if (DevicePath == NULL) {
+    DEBUG ((EFI_D_ERROR, "%a: %s: handle %p: device path not found\n",
+      __FUNCTION__, ReportText, Handle));
+    return;
+  }
+
+  Status = EfiBootManagerUpdateConsoleVariable (ConOut, DevicePath, NULL);
+  if (EFI_ERROR (Status)) {
+    DEBUG ((EFI_D_ERROR, "%a: %s: adding to ConOut: %r\n", __FUNCTION__,
+      ReportText, Status));
+    return;
+  }
+
+  Status = EfiBootManagerUpdateConsoleVariable (ErrOut, DevicePath, NULL);
+  if (EFI_ERROR (Status)) {
+    DEBUG ((EFI_D_ERROR, "%a: %s: adding to ErrOut: %r\n", __FUNCTION__,
+      ReportText, Status));
+    return;
+  }
+
+  DEBUG ((EFI_D_VERBOSE, "%a: %s: added to ConOut and ErrOut\n", __FUNCTION__,
+    ReportText));
+}
+
+STATIC
+VOID
+EFIAPI
+AddInput (
+  IN EFI_HANDLE   Handle,
+  IN CONST CHAR16 *ReportText
+  )
+{
+  EFI_STATUS               Status;
+  EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+
+  DevicePath = DevicePathFromHandle (Handle);
+  if (DevicePath == NULL) {
+    DEBUG ((EFI_D_ERROR, "%a: %s: handle %p: device path not found\n",
+      __FUNCTION__, ReportText, Handle));
+    return;
+  }
+
+  Status = EfiBootManagerUpdateConsoleVariable (ConIn, DevicePath, NULL);
+  if (EFI_ERROR (Status)) {
+    DEBUG ((EFI_D_ERROR, "%a: %s: adding to ConIn: %r\n", __FUNCTION__,
+      ReportText, Status));
+    return;
+  }
+
+  DEBUG ((EFI_D_VERBOSE, "%a: %s: added to ConOut and ErrOut\n", __FUNCTION__,
+    ReportText));
+}
+
+STATIC
+INTN
+PlatformRegisterBootOption (
+  EFI_DEVICE_PATH_PROTOCOL *DevicePath,
+  CHAR16                   *Description,
+  UINT32                   Attributes
+  )
+{
+  EFI_STATUS                        Status;
+  INTN                              OptionIndex;
+  EFI_BOOT_MANAGER_LOAD_OPTION      NewOption;
+  EFI_BOOT_MANAGER_LOAD_OPTION      *BootOptions;
+  UINTN                             BootOptionCount;
+
+  Status = EfiBootManagerInitializeLoadOption (
+             &NewOption,
+             LoadOptionNumberUnassigned,
+             LoadOptionTypeBoot,
+             Attributes,
+             Description,
+             DevicePath,
+             NULL,
+             0
+             );
+  ASSERT_EFI_ERROR (Status);
+
+  BootOptions = EfiBootManagerGetLoadOptions (
+                  &BootOptionCount, LoadOptionTypeBoot
+                  );
+
+  OptionIndex = EfiBootManagerFindLoadOption (
+                  &NewOption, BootOptions, BootOptionCount
+                  );
+
+  if (OptionIndex == -1) {
+    Status = EfiBootManagerAddLoadOptionVariable (&NewOption, MAX_UINTN);
+    ASSERT_EFI_ERROR (Status);
+    OptionIndex = BootOptionCount;
+  }
+
+  EfiBootManagerFreeLoadOption (&NewOption);
+  EfiBootManagerFreeLoadOptions (BootOptions, BootOptionCount);
+
+  return OptionIndex;
+}
+
+STATIC
+INTN
+PlatformRegisterFvBootOption (
+  CONST EFI_GUID                   *FileGuid,
+  CHAR16                           *Description,
+  UINT32                           Attributes
+  )
+{
+  EFI_STATUS                        Status;
+  MEDIA_FW_VOL_FILEPATH_DEVICE_PATH FileNode;
+  EFI_LOADED_IMAGE_PROTOCOL         *LoadedImage;
+  EFI_DEVICE_PATH_PROTOCOL          *DevicePath;
+  INTN OptionIndex;
+
+  Status = gBS->HandleProtocol (
+                  gImageHandle,
+                  &gEfiLoadedImageProtocolGuid,
+                  (VOID **) &LoadedImage
+                  );
+  ASSERT_EFI_ERROR (Status);
+
+  EfiInitializeFwVolDevicepathNode (&FileNode, FileGuid);
+  DevicePath = DevicePathFromHandle (LoadedImage->DeviceHandle);
+  ASSERT (DevicePath != NULL);
+  DevicePath = AppendDevicePathNode (
+                 DevicePath,
+                 (EFI_DEVICE_PATH_PROTOCOL *) &FileNode
+                 );
+  ASSERT (DevicePath != NULL);
+
+  OptionIndex = PlatformRegisterBootOption (DevicePath,
+                                            Description,
+                                            Attributes);
+  FreePool (DevicePath);
+
+  return OptionIndex;
+}
+
+
+STATIC
+VOID
+PlatformRegisterOptionsAndKeys (
+  VOID
+  )
+{
+  INTN ShellOption;
+
+  ShellOption = PlatformRegisterFvBootOption(
+      &gUefiShellFileGuid, 
+      L"UEFI Shell",
+      LOAD_OPTION_ACTIVE
+  );
+}
+
+STATIC
+VOID
+PlatformRegisterSetupKey(
+  VOID
+)
+{
+  EFI_STATUS                   Status;
+  EFI_INPUT_KEY                PowerBtn;
+  EFI_BOOT_MANAGER_LOAD_OPTION BootOption;
+
+  //
+  // Map Power to Boot Manager Menu
+  //
+  PowerBtn.ScanCode    = SCAN_NULL;
+  PowerBtn.UnicodeChar = CHAR_CARRIAGE_RETURN;
+  Status = EfiBootManagerGetBootManagerMenu(&BootOption);
+  ASSERT_EFI_ERROR(Status);
+  Status = EfiBootManagerAddKeyOptionVariable(
+      NULL, 
+      (UINT16) BootOption.OptionNumber, 
+      0, 
+      &PowerBtn, 
+      NULL
+  );
+  ASSERT (Status == EFI_SUCCESS || Status == EFI_ALREADY_STARTED);
+}
+
+
+//
+// BDS Platform Functions
+//
+/**
+  Do the platform init, can be customized by OEM/IBV
+  Possible things that can be done in PlatformBootManagerBeforeConsole:
+  > Update console variable: 1. include hot-plug devices;
+  >                          2. Clear ConIn and add SOL for AMT
+  > Register new Driver#### or Boot####
+  > Register new Key####: e.g.: F12
+  > Signal ReadyToLock event
+  > Authentication action: 1. connect Auth devices;
+  >                        2. Identify auto logon user.
+**/
+VOID
+EFIAPI
+PlatformBootManagerBeforeConsole (
+  VOID
+  )
+{
+  EFI_STATUS                    Status;
+  ESRT_MANAGEMENT_PROTOCOL      *EsrtManagement;
+
+  if (GetBootModeHob() == BOOT_ON_FLASH_UPDATE) {
+    DEBUG ((DEBUG_INFO, "ProcessCapsules Before EndOfDxe ......\n"));
+    Status = ProcessCapsules ();
+    DEBUG ((DEBUG_INFO, "ProcessCapsules returned %r\n", Status));
+  } else {
+    Status = gBS->LocateProtocol (&gEsrtManagementProtocolGuid, NULL,
+                    (VOID **)&EsrtManagement);
+    if (!EFI_ERROR (Status)) {
+      EsrtManagement->SyncEsrtFmp ();
+    }
+  }
+
+  //
+  // Now add the device path of all handles with GOP on them to ConOut and
+  // ErrOut.
+  //
+  FilterAndProcess (&gEfiGraphicsOutputProtocolGuid, NULL, AddOutput);
+
+  //
+  // Add the hardcoded short-form USB keyboard device path to ConIn.
+  //
+  EfiBootManagerUpdateConsoleVariable (ConIn,
+    (EFI_DEVICE_PATH_PROTOCOL *)&mUsbKeyboard, NULL);
+
+  //
+  // Now add the device path of all handles with QcomKeypadDeviceProtocolGuid
+  // on them to ConIn.
+  //
+  FilterAndProcess (&gEFIDroidKeypadDeviceProtocolGuid, NULL, AddInput);
+  // Register setup key then
+  PlatformRegisterSetupKey();
+
+  //
+  // Add the hardcoded serial console device path to ConIn, ConOut, ErrOut.
+  //
+  ASSERT (FixedPcdGet8 (PcdDefaultTerminalType) == 4);
+  CopyGuid (&mSerialConsole.TermType.Guid, &gEfiTtyTermGuid);
+
+  EfiBootManagerUpdateConsoleVariable (ConIn,
+    (EFI_DEVICE_PATH_PROTOCOL *)&mSerialConsole, NULL);
+  EfiBootManagerUpdateConsoleVariable (ConOut,
+    (EFI_DEVICE_PATH_PROTOCOL *)&mSerialConsole, NULL);
+  EfiBootManagerUpdateConsoleVariable (ErrOut,
+    (EFI_DEVICE_PATH_PROTOCOL *)&mSerialConsole, NULL);
+
+  //
+  // Signal EndOfDxe PI Event
+  //
+  EfiEventGroupSignal (&gEfiEndOfDxeEventGroupGuid);
+
+  //
+  // Dispatch deferred images after EndOfDxe event and ReadyToLock installation.
+  //
+  EfiBootManagerDispatchDeferredImages ();
+}
+
+/**
+  Do the platform specific action after the console is ready
+  Possible things that can be done in PlatformBootManagerAfterConsole:
+  > Console post action:
+    > Dynamically switch output mode from 100x31 to 80x25 for certain senarino
+    > Signal console ready platform customized event
+  > Run diagnostics like memory testing
+  > Connect certain devices
+  > Dispatch aditional option roms
+  > Special boot: e.g.: USB boot, enter UI
+**/
+VOID
+EFIAPI
+PlatformBootManagerAfterConsole (
+  VOID
+  )
+{
+  ESRT_MANAGEMENT_PROTOCOL      *EsrtManagement;
+  EFI_STATUS                    Status;
+
+  //
+  // Show the splash screen.
+  //
+  Status = BootLogoEnableLogo ();
+
+  //
+  // Connect the rest of the devices.
+  //
+  EfiBootManagerConnectAll ();
+
+  Status = gBS->LocateProtocol (&gEsrtManagementProtocolGuid, NULL,
+                  (VOID **)&EsrtManagement);
+  if (!EFI_ERROR (Status)) {
+    EsrtManagement->SyncEsrtFmp ();
+  }
+
+  if (GetBootModeHob() == BOOT_ON_FLASH_UPDATE) {
+    DEBUG((DEBUG_INFO, "ProcessCapsules After EndOfDxe ......\n"));
+    Status = ProcessCapsules ();
+    DEBUG((DEBUG_INFO, "ProcessCapsules returned %r\n", Status));
+  }
+
+  EfiBootManagerRefreshAllBootOption ();
+
+  PlatformRegisterOptionsAndKeys ();
+}
+
+/**
+  This function is called each second during the boot manager waits the
+  timeout.
+
+  @param TimeoutRemain  The remaining timeout.
+**/
+VOID
+EFIAPI
+PlatformBootManagerWaitCallback (
+  UINT16          TimeoutRemain
+  )
+{
+  EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION Black;
+  EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION White;
+  UINT16                              Timeout;
+  EFI_STATUS                          Status;
+
+  Timeout = PcdGet16 (PcdPlatformBootTimeOut);
+
+  Black.Raw = 0x00000000;
+  White.Raw = 0x00FFFFFF;
+
+  Status = BootLogoUpdateProgress (
+             White.Pixel,
+             Black.Pixel,
+             L"Press Power Button for Setup Utility\n",
+             White.Pixel,
+             (Timeout - TimeoutRemain) * 100 / Timeout,
+             0
+             );
+  if (EFI_ERROR (Status)) {
+    Print (L".");
+  }
+}
+
+/**
+  The function is called when no boot option could be launched,
+  including platform recovery options and options pointing to applications
+  built into firmware volumes.
+
+  If this function returns, BDS attempts to enter an infinite loop.
+**/
+VOID
+EFIAPI
+PlatformBootManagerUnableToBoot (
+  VOID
+  )
+{
+  EFI_STATUS                   Status;
+  EFI_INPUT_KEY                Key;
+  EFI_BOOT_MANAGER_LOAD_OPTION BootManagerMenu;
+  UINTN                        Index;
+
+  //
+  // BootManagerMenu doesn't contain the correct information when return status
+  // is EFI_NOT_FOUND.
+  //
+  Status = EfiBootManagerGetBootManagerMenu (&BootManagerMenu);
+  if (EFI_ERROR (Status)) {
+    return;
+  }
+  //
+  // Normally BdsDxe does not print anything to the system console, but this is
+  // a last resort -- the end-user will likely not see any DEBUG messages
+  // logged in this situation.
+  //
+  // AsciiPrint() will NULL-check gST->ConOut internally. We check gST->ConIn
+  // here to see if it makes sense to request and wait for a keypress.
+  //
+  if (gST->ConIn != NULL) {
+    AsciiPrint (
+      "%a: No bootable option or device was found.\n"
+      "%a: Press any key to enter the Boot Manager Menu.\n",
+      gEfiCallerBaseName,
+      gEfiCallerBaseName
+      );
+    Status = gBS->WaitForEvent (1, &gST->ConIn->WaitForKey, &Index);
+    ASSERT_EFI_ERROR (Status);
+    ASSERT (Index == 0);
+
+    //
+    // Drain any queued keys.
+    //
+    while (!EFI_ERROR (gST->ConIn->ReadKeyStroke (gST->ConIn, &Key))) {
+      //
+      // just throw away Key
+      //
+    }
+  }
+
+  for (;;) {
+    EfiBootManagerBoot (&BootManagerMenu);
+  }
+}
diff --git a/sdm845Pkg/Library/PlatformBootManagerLib/PlatformBm.h b/sdm845Pkg/Library/PlatformBootManagerLib/PlatformBm.h
new file mode 100644 (file)
index 0000000..9f18e41
--- /dev/null
@@ -0,0 +1,60 @@
+/** @file
+  Head file for BDS Platform specific code
+
+  Copyright (C) 2015-2016, Red Hat, Inc.
+  Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.
+  Copyright (c) 2016, Linaro Ltd. All rights reserved.
+  Copyright (c), 2017, Andrei Warkentin <andrey.warkentin@gmail.com>
+
+  This program and the accompanying materials are licensed and made available
+  under the terms and conditions of the BSD License which accompanies this
+  distribution. The full text of the license may be found at
+  http://opensource.org/licenses/bsd-license.php
+
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT
+  WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+#ifndef _PLATFORM_BM_H_
+#define _PLATFORM_BM_H_
+
+#include <Library/BaseLib.h>
+#include <Library/BaseMemoryLib.h>
+#include <Library/DebugLib.h>
+#include <Library/DevicePathLib.h>
+#include <Library/MemoryAllocationLib.h>
+#include <Library/UefiBootServicesTableLib.h>
+#include <Library/UefiLib.h>
+#include <Library/UefiRuntimeServicesTableLib.h>
+
+/**
+  Use SystemTable Conout to stop video based Simple Text Out consoles from
+  going to the video device. Put up LogoFile on every video device that is a
+  console.
+
+  @param[in]  LogoFile   File name of logo to display on the center of the
+                         screen.
+
+  @retval EFI_SUCCESS     ConsoleControl has been flipped to graphics and logo
+                          displayed.
+  @retval EFI_UNSUPPORTED Logo not found
+**/
+EFI_STATUS
+EnableQuietBoot (
+  IN  EFI_GUID  *LogoFile
+  );
+
+/**
+  Use SystemTable Conout to turn on video based Simple Text Out consoles. The
+  Simple Text Out screens will now be synced up with all non video output
+  devices
+
+  @retval EFI_SUCCESS     UGA devices are back in text mode and synced up.
+**/
+EFI_STATUS
+DisableQuietBoot (
+  VOID
+  );
+
+#endif // _PLATFORM_BM_H_
diff --git a/sdm845Pkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf b/sdm845Pkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
new file mode 100644 (file)
index 0000000..0d05f4a
--- /dev/null
@@ -0,0 +1,92 @@
+## @file
+#  Implementation for PlatformBootManagerLib library class interfaces.
+#
+#  Copyright (C) 2015-2016, Red Hat, Inc.
+#  Copyright (c) 2014, ARM Ltd. All rights reserved.
+#  Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
+#  Copyright (c) 2016, Linaro Ltd. All rights reserved.
+#  Copyright (c), 2017, Andrei Warkentin <andrey.warkentin@gmail.com>
+#
+#  This program and the accompanying materials are licensed and made available
+#  under the terms and conditions of the BSD License which accompanies this
+#  distribution. The full text of the license may be found at
+#  http://opensource.org/licenses/bsd-license.php
+#
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR
+#  IMPLIED.
+#
+##
+
+[Defines]
+  INF_VERSION                    = 0x00010005
+  BASE_NAME                      = PlatformBootManagerLib
+  FILE_GUID                      = 92FD2DE3-B9CB-4B35-8141-42AD34D73C9F
+  MODULE_TYPE                    = DXE_DRIVER
+  VERSION_STRING                 = 1.0
+  LIBRARY_CLASS                  = PlatformBootManagerLib|DXE_DRIVER
+
+#
+# The following information is for reference only and not required by the build tools.
+#
+#  VALID_ARCHITECTURES           = ARM AARCH64
+#
+
+[Sources]
+  PlatformBm.c
+
+[Packages]
+  MdeModulePkg/MdeModulePkg.dec
+  MdePkg/MdePkg.dec
+  ShellPkg/ShellPkg.dec
+  sdm845Pkg/sdm845Pkg.dec
+
+[BuildOptions.AARCH64]
+  GCC:*_*_*_CC_FLAGS = -Wno-unused-variable
+
+[LibraryClasses]
+  BaseLib
+  BaseMemoryLib
+  BootLogoLib
+  CapsuleLib
+  DebugLib
+  DevicePathLib
+  DxeServicesLib
+  HobLib
+  MemoryAllocationLib
+  PcdLib
+  PrintLib
+  UefiBootManagerLib
+  UefiBootServicesTableLib
+  UefiLib
+
+[FeaturePcd]
+  gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport
+
+[FixedPcd]
+  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate
+  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits
+  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity
+  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits
+  gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType
+
+[Pcd]
+  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut
+
+[Guids]
+  gEfiFileInfoGuid
+  gEfiFileSystemInfoGuid
+  gEfiFileSystemVolumeLabelInfoIdGuid
+  gEfiEndOfDxeEventGroupGuid
+  gEfiTtyTermGuid
+  gUefiShellFileGuid
+
+[Protocols]
+  gEfiDevicePathProtocolGuid
+  gEfiGraphicsOutputProtocolGuid
+  gEfiLoadedImageProtocolGuid
+  gEfiSimpleFileSystemProtocolGuid
+  gEsrtManagementProtocolGuid
+  gEfiUsb2HcProtocolGuid
+  gEFIDroidKeypadDeviceProtocolGuid
+
diff --git a/sdm845Pkg/Library/PlatformPeiLib/PlatformPeiLib.c b/sdm845Pkg/Library/PlatformPeiLib/PlatformPeiLib.c
new file mode 100644 (file)
index 0000000..fbfa53e
--- /dev/null
@@ -0,0 +1,32 @@
+/** @file
+ *
+ *  Copyright (c) 2011-2014, ARM Limited. All rights reserved.
+ *  Copyright (c) 2014, Linaro Limited. All rights reserved.
+ *
+ *  This program and the accompanying materials
+ *  are licensed and made available under the terms and conditions of the BSD
+ *License which accompanies this distribution.  The full text of the license may
+ *be found at http://opensource.org/licenses/bsd-license.php
+ *
+ *  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR
+ *IMPLIED.
+ *
+ **/
+
+#include <PiPei.h>
+
+#include <Library/DebugLib.h>
+#include <Library/HobLib.h>
+#include <Library/MemoryAllocationLib.h>
+#include <Library/PcdLib.h>
+
+EFI_STATUS
+EFIAPI
+PlatformPeim(VOID)
+{
+
+  BuildFvHob(PcdGet64(PcdFvBaseAddress), PcdGet32(PcdFvSize));
+
+  return EFI_SUCCESS;
+}
\ No newline at end of file
diff --git a/sdm845Pkg/Library/PlatformPeiLib/PlatformPeiLib.inf b/sdm845Pkg/Library/PlatformPeiLib/PlatformPeiLib.inf
new file mode 100644 (file)
index 0000000..730378b
--- /dev/null
@@ -0,0 +1,45 @@
+#/** @file
+#
+#  Copyright (c) 2011-2015, ARM Limited. All rights reserved.
+#  Copyright (c) 2014, Linaro Limited. All rights reserved.
+#
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at
+#  http://opensource.org/licenses/bsd-license.php
+#
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+#**/
+
+[Defines]
+  INF_VERSION                    = 0x00010005
+  BASE_NAME                      = PlatformPeiLib
+  FILE_GUID                      = 59C11815-F8DA-4F49-B4FB-EC1E41ED1F06
+  MODULE_TYPE                    = SEC
+  VERSION_STRING                 = 1.0
+  LIBRARY_CLASS                  = PlatformPeiLib
+
+[Sources]
+  PlatformPeiLib.c
+
+[Packages]
+  ArmPkg/ArmPkg.dec
+  sdm845Pkg/sdm845Pkg.dec
+  MdePkg/MdePkg.dec
+  MdeModulePkg/MdeModulePkg.dec
+  EmbeddedPkg/EmbeddedPkg.dec
+
+[LibraryClasses]
+  DebugLib
+  HobLib
+
+[FixedPcd]
+  gArmTokenSpaceGuid.PcdFvSize
+
+[Pcd]
+  gArmTokenSpaceGuid.PcdFvBaseAddress
+
+[Depex]
+  gEfiPeiMemoryDiscoveredPpiGuid
diff --git a/sdm845Pkg/Library/VirtualRealTimeClockLib/VirtualRealTimeClockLib.c b/sdm845Pkg/Library/VirtualRealTimeClockLib/VirtualRealTimeClockLib.c
new file mode 100644 (file)
index 0000000..50a107f
--- /dev/null
@@ -0,0 +1,214 @@
+/** @file
+ *
+ *  Implement dummy EFI RealTimeClock runtime services.
+ *
+ *  Copyright (c), 2018, Andrei Warkentin <andrey.warkentin@gmail.com>
+ *  Copyright (c) Microsoft Corporation. All rights reserved.
+ *
+ *  This program and the accompanying materials
+ *  are licensed and made available under the terms and conditions of the BSD
+ *License which accompanies this distribution.  The full text of the license may
+ *be found at http://opensource.org/licenses/bsd-license.php
+ *
+ *  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR
+ *IMPLIED.
+ *
+ **/
+
+#include <PiDxe.h>
+
+#include <Library/ArmGenericTimerCounterLib.h>
+#include <Library/BaseLib.h>
+#include <Library/DebugLib.h>
+#include <Library/HobLib.h>
+#include <Library/IoLib.h>
+#include <Library/PcdLib.h>
+#include <Library/RealTimeClockLib.h>
+#include <Library/TimerLib.h>
+
+#include <Configuration/Hob.h>
+
+STATIC EFI_TIME BaseTime;
+
+/**
+Returns the current time and date information, and the time-keeping capabilities
+of the virtual RTC.
+
+For simplicity, this LibGetTime does not report Years/Months, instead it will
+only report current Day, Hours, Minutes and Seconds starting from the begining
+of CPU up-time. Otherwise, a more complex logic will be required to account for
+leap years and days/month differences.
+
+@param  Time                  A pointer to storage to receive a snapshot of the
+current time.
+@param  Capabilities          An optional pointer to a buffer to receive the
+real time clock device's capabilities.
+
+@retval EFI_SUCCESS           The operation completed successfully.
+@retval EFI_INVALID_PARAMETER Time is NULL.
+@retval EFI_DEVICE_ERROR      The time could not be retrieved due to hardware
+error.
+
+**/
+EFI_STATUS
+EFIAPI
+LibGetTime(OUT EFI_TIME *Time, OUT EFI_TIME_CAPABILITIES *Capabilities)
+{
+  UINT32 Freq = ArmGenericTimerGetTimerFreq();
+
+  if (Time == NULL) {
+    return EFI_INVALID_PARAMETER;
+  }
+
+  //
+  // Depend on ARM generic timer to report date/time relative to the
+  // start of CPU timer counting where date and time will always
+  // be relative to the date/time 1/1/1900 00H:00M:00S
+  //
+
+  ASSERT(Freq != 0);
+  if (Freq == 0) {
+    return EFI_DEVICE_ERROR;
+  }
+
+  if (Capabilities) {
+    Capabilities->Accuracy   = 0;
+    Capabilities->Resolution = Freq;
+    Capabilities->SetsToZero = FALSE;
+  }
+
+  UINT64 ElapsedSeconds = GetPerformanceCounter() / Freq;
+
+  //
+  // Don't report Year/Month since Leap Year logic is not implemented. This
+  // should be fine since the sole purpose of this special implementation is to
+  // be used for relative time measurement. e.g. Windows Boot Manager.
+  //
+
+  Time->Year  = BaseTime.Year;
+  Time->Month = BaseTime.Month;
+
+  const UINT64 SECONDS_PER_DAY = 24 * 60 * 60;
+  Time->Day                    = (ElapsedSeconds / SECONDS_PER_DAY);
+  ElapsedSeconds %= SECONDS_PER_DAY;
+
+  const UINT64 SECONDS_PER_HOUR = 60 * 60;
+  Time->Hour                    = (ElapsedSeconds / SECONDS_PER_HOUR);
+  ElapsedSeconds %= SECONDS_PER_HOUR;
+
+  const UINT64 SECONDS_PER_MINUTE = 60;
+  Time->Minute                    = (ElapsedSeconds / SECONDS_PER_MINUTE);
+  ElapsedSeconds %= SECONDS_PER_MINUTE;
+
+  Time->Second = ElapsedSeconds;
+
+  //
+  // Not required to report in our special case
+  //
+
+  Time->Nanosecond = 0;
+  Time->TimeZone   = 0;
+  Time->Daylight   = 0;
+
+  return EFI_SUCCESS;
+}
+
+/**
+Sets the current local time and date information.
+
+@param  Time                  A pointer to the current time.
+
+@retval EFI_SUCCESS           The operation completed successfully.
+@retval EFI_INVALID_PARAMETER A time field is out of range.
+@retval EFI_DEVICE_ERROR      The time could not be set due due to hardware
+error.
+
+**/
+EFI_STATUS
+EFIAPI
+LibSetTime(IN EFI_TIME *Time)
+{
+  //
+  // The virtual clock is read-only.
+  //
+  return EFI_UNSUPPORTED;
+}
+
+/**
+Returns the current wakeup alarm clock setting.
+
+@param  Enabled               Indicates if the alarm is currently enabled or
+disabled.
+@param  Pending               Indicates if the alarm signal is pending and
+requires acknowledgement.
+@param  Time                  The current alarm setting.
+
+@retval EFI_SUCCESS           The alarm settings were returned.
+@retval EFI_INVALID_PARAMETER Any parameter is NULL.
+@retval EFI_DEVICE_ERROR      The wakeup time could not be retrieved due to a
+hardware error.
+
+**/
+EFI_STATUS
+EFIAPI
+LibGetWakeupTime(OUT BOOLEAN *Enabled, OUT BOOLEAN *Pending, OUT EFI_TIME *Time)
+{
+  return EFI_UNSUPPORTED;
+}
+
+/**
+Sets the system wakeup alarm clock time.
+
+@param  Enabled               Enable or disable the wakeup alarm.
+@param  Time                  If Enable is TRUE, the time to set the wakeup
+alarm for.
+
+@retval EFI_SUCCESS           If Enable is TRUE, then the wakeup alarm was
+enabled. If Enable is FALSE, then the wakeup alarm was disabled.
+@retval EFI_INVALID_PARAMETER A time field is out of range.
+@retval EFI_DEVICE_ERROR      The wakeup time could not be set due to a hardware
+error.
+@retval EFI_UNSUPPORTED       A wakeup timer is not supported on this platform.
+
+**/
+EFI_STATUS
+EFIAPI
+LibSetWakeupTime(IN BOOLEAN Enabled, OUT EFI_TIME *Time)
+{
+  return EFI_UNSUPPORTED;
+}
+
+/**
+This is the declaration of an EFI image entry point. This can be the entry point
+to an application written to this specification, an EFI boot service driver, or
+an EFI runtime driver.
+
+@param  ImageHandle           Handle that identifies the loaded image.
+@param  SystemTable           System Table for this image.
+
+@retval EFI_SUCCESS           The operation completed successfully.
+
+**/
+EFI_STATUS
+EFIAPI
+LibRtcInitialize(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
+{
+  BaseTime.Year  = 2019;
+  BaseTime.Month = 1;
+
+  return EFI_SUCCESS;
+}
+
+/**
+Fixup internal data so that EFI can be call in virtual mode.
+Call the passed in Child Notify event and convert any pointers in
+lib to virtual mode.
+
+@param[in]    Event   The Event that is being processed
+@param[in]    Context Event Context
+**/
+VOID EFIAPI LibRtcVirtualNotifyEvent(IN EFI_EVENT Event, IN VOID *Context)
+{
+  return;
+}
diff --git a/sdm845Pkg/Library/VirtualRealTimeClockLib/VirtualRealTimeClockLib.inf b/sdm845Pkg/Library/VirtualRealTimeClockLib/VirtualRealTimeClockLib.inf
new file mode 100644 (file)
index 0000000..fbd1783
--- /dev/null
@@ -0,0 +1,43 @@
+#/* @file
+#
+#  Implement dummy EFI RealTimeClock runtime services.
+#
+#  Copyright (c), 2018, Andrei Warkentin <andrey.warkentin@gmail.com>
+#  Copyright (c) Microsoft Corporation. All rights reserved.
+#
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at
+#  http://opensource.org/licenses/bsd-license.php
+#
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+#*/
+
+[Defines]
+  INF_VERSION                    = 0x00010005
+  BASE_NAME                      = VirtualRealTimeClockLib
+  FILE_GUID                      = 1E27D461-78F3-4F7D-B1C2-F72384F13A6E
+  MODULE_TYPE                    = BASE
+  VERSION_STRING                 = 1.0
+  LIBRARY_CLASS                  = RealTimeClockLib
+
+[Sources.common]
+  VirtualRealTimeClockLib.c
+
+[Packages]
+  ArmPkg/ArmPkg.dec
+  MdePkg/MdePkg.dec
+  EmbeddedPkg/EmbeddedPkg.dec
+  sdm845Pkg/sdm845Pkg.dec
+
+[LibraryClasses]
+  IoLib
+  DebugLib
+  TimerLib
+  HobLib
+  PcdLib
+
+[FixedPcd]
+  gsdm845PkgTokenSpaceGuid.PcdBootShimInfo1
\ No newline at end of file
diff --git a/sdm845Pkg/Library/XiaomiMI8Lib/XiaomiMI8.c b/sdm845Pkg/Library/XiaomiMI8Lib/XiaomiMI8.c
new file mode 100644 (file)
index 0000000..f4201d6
--- /dev/null
@@ -0,0 +1,146 @@
+/** @file
+*
+*  Copyright (c) 2018, Linaro Limited. All rights reserved.
+*
+*  This program and the accompanying materials
+*  are licensed and made available under the terms and conditions of the BSD License
+*  which accompanies this distribution.  The full text of the license may be found at
+*  http://opensource.org/licenses/bsd-license.php
+*
+*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+*
+**/
+
+#include <Library/ArmPlatformLib.h>
+#include <Library/DebugLib.h>
+#include <Library/IoLib.h>
+#include <Library/PcdLib.h>
+
+#include <Ppi/ArmMpCoreInfo.h>
+
+ARM_CORE_INFO mHiKey960InfoTable[] = {
+  {
+    // Cluster 0, Core 0
+    0x0, 0x0,
+
+    // MP Core MailBox Set/Get/Clear Addresses and Clear Value
+    (UINT64)0xFFFFFFFF
+  },
+/*
+  {
+    // Cluster 0, Core 1
+    0x0, 0x1,
+
+    // MP Core MailBox Set/Get/Clear Addresses and Clear Value
+    (UINT64)0xFFFFFFFF
+  },
+  {
+    // Cluster 0, Core 2
+    0x0, 0x2,
+
+    // MP Core MailBox Set/Get/Clear Addresses and Clear Value
+    (UINT64)0xFFFFFFFF
+  },
+  {
+    // Cluster 0, Core 3
+    0x0, 0x3,
+
+    // MP Core MailBox Set/Get/Clear Addresses and Clear Value
+    (UINT64)0xFFFFFFFF
+  },
+  {
+    // Cluster 1, Core 0
+    0x1, 0x0,
+
+    // MP Core MailBox Set/Get/Clear Addresses and Clear Value
+    (UINT64)0xFFFFFFFF
+  },
+  {
+    // Cluster 1, Core 1
+    0x1, 0x1,
+
+    // MP Core MailBox Set/Get/Clear Addresses and Clear Value
+    (UINT64)0xFFFFFFFF
+  },
+  {
+    // Cluster 1, Core 2
+    0x1, 0x2,
+
+    // MP Core MailBox Set/Get/Clear Addresses and Clear Value
+    (UINT64)0xFFFFFFFF
+  },
+  {
+    // Cluster 1, Core 3
+    0x1, 0x3,
+
+    // MP Core MailBox Set/Get/Clear Addresses and Clear Value
+    (UINT64)0xFFFFFFFF
+  }
+*/
+};
+
+/**
+  Return the current Boot Mode
+
+  This function returns the boot reason on the platform
+
+  @return   Return the current Boot Mode of the platform
+
+**/
+EFI_BOOT_MODE
+ArmPlatformGetBootMode (
+  VOID
+  )
+{
+  return BOOT_WITH_FULL_CONFIGURATION;
+}
+
+/**
+  Initialize controllers that must setup in the normal world
+
+  This function is called by the ArmPlatformPkg/Pei or ArmPlatformPkg/Pei/PlatformPeim
+  in the PEI phase.
+
+**/
+RETURN_STATUS
+ArmPlatformInitialize (
+  IN  UINTN                     MpId
+  )
+{
+  return RETURN_SUCCESS;
+}
+
+EFI_STATUS
+PrePeiCoreGetMpCoreInfo (
+  OUT UINTN                   *CoreCount,
+  OUT ARM_CORE_INFO           **ArmCoreTable
+  )
+{
+  // Only support one cluster
+  *CoreCount    = sizeof(mHiKey960InfoTable) / sizeof(ARM_CORE_INFO);
+  *ArmCoreTable = mHiKey960InfoTable;
+  return EFI_SUCCESS;
+}
+
+// Needs to be declared in the file. Otherwise gArmMpCoreInfoPpiGuid is undefined in the contect of PrePeiCore
+EFI_GUID mArmMpCoreInfoPpiGuid = ARM_MP_CORE_INFO_PPI_GUID;
+ARM_MP_CORE_INFO_PPI mMpCoreInfoPpi = { PrePeiCoreGetMpCoreInfo };
+
+EFI_PEI_PPI_DESCRIPTOR      gPlatformPpiTable[] = {
+  {
+    EFI_PEI_PPI_DESCRIPTOR_PPI,
+    &mArmMpCoreInfoPpiGuid,
+    &mMpCoreInfoPpi
+  }
+};
+
+VOID
+ArmPlatformGetPlatformPpiList (
+  OUT UINTN                   *PpiListSize,
+  OUT EFI_PEI_PPI_DESCRIPTOR  **PpiList
+  )
+{
+  *PpiListSize = sizeof(gPlatformPpiTable);
+  *PpiList = gPlatformPpiTable;
+}
diff --git a/sdm845Pkg/Library/XiaomiMI8Lib/XiaomiMI8Helper.S b/sdm845Pkg/Library/XiaomiMI8Lib/XiaomiMI8Helper.S
new file mode 100644 (file)
index 0000000..487d06d
--- /dev/null
@@ -0,0 +1,76 @@
+#
+#  Copyright (c) 2018, Linaro Limited. All rights reserved.
+#
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at
+#  http://opensource.org/licenses/bsd-license.php
+#
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+#
+
+#include <AsmMacroIoLibV8.h>
+#include <Library/ArmLib.h>
+
+.text
+.align 3
+
+ASM_FUNC(ArmPlatformPeiBootAction)
+startlabel:
+  // check if we're located at expected location
+  adr  x4, .
+  ldr  x5, =ArmPlatformPeiBootAction
+  cmp  x4, x5
+  bne  docopy
+  ret
+docopy:
+  // find our start address by getting our expected offset, then subtracting it from our actual address
+  ldr  x6, =FixedPcdGet64 (PcdFdBaseAddress)
+  sub  x5, x5, x6 // x5 now holds offset of ArmPlatformPeiBootAction from start of FD base
+  sub  x4, x4, x5 // x4 now holds address of actual FD base
+  // tweak the return address
+  // note: x30 is lr; gcc5 doesn't have the alias
+  sub  x30, x30, x4
+  add  x30, x30, x6
+  ldr  x5, =FixedPcdGet64 (PcdFdSize)
+  // crap memcpy
+loop:
+  ldp  x2, x3, [x4], #16
+  stp  x2, x3, [x6], #16
+  subs x5, x5, #16
+  b.ne loop
+  ret
+.ltorg
+
+//UINTN
+//ArmPlatformIsPrimaryCore (
+//  IN UINTN MpId
+//  );
+ASM_FUNC(ArmPlatformIsPrimaryCore)
+  MOV32 (w1, FixedPcdGet32(PcdArmPrimaryCoreMask))
+  and   x0, x0, x1
+  MOV32 (w1, FixedPcdGet32(PcdArmPrimaryCore))
+  cmp   w0, w1
+  cset  x0, eq
+  ret
+
+//UINTN
+//ArmPlatformGetPrimaryCoreMpId (
+//  VOID
+//  );
+ASM_FUNC(ArmPlatformGetPrimaryCoreMpId)
+  MOV32 (w0, FixedPcdGet32(PcdArmPrimaryCore))
+  ret
+
+//UINTN
+//ArmPlatformGetCorePosition (
+//  IN UINTN MpId
+//  );
+// With this function: CorePos = (ClusterId * 4) + CoreId
+ASM_FUNC(ArmPlatformGetCorePosition)
+  and   x1, x0, #ARM_CORE_MASK
+  and   x0, x0, #ARM_CLUSTER_MASK
+  add   x0, x1, x0, LSR #6
+  ret
diff --git a/sdm845Pkg/Library/XiaomiMI8Lib/XiaomiMI8Lib.inf b/sdm845Pkg/Library/XiaomiMI8Lib/XiaomiMI8Lib.inf
new file mode 100644 (file)
index 0000000..fdf85d5
--- /dev/null
@@ -0,0 +1,47 @@
+#
+#  Copyright (c) 2018, Linaro Limited. All rights reserved.
+#
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at
+#  http://opensource.org/licenses/bsd-license.php
+#
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+
+[Defines]
+  INF_VERSION                    = 0x00010019
+  BASE_NAME                      = sdm845Lib
+  FILE_GUID                      = 61620091-45BA-4EFF-8F58-F7ABF228CEBC
+  MODULE_TYPE                    = BASE
+  VERSION_STRING                 = 1.0
+  LIBRARY_CLASS                  = ArmPlatformLib
+
+[Packages]
+  ArmPkg/ArmPkg.dec
+  ArmPlatformPkg/ArmPlatformPkg.dec
+  EmbeddedPkg/EmbeddedPkg.dec
+  MdePkg/MdePkg.dec
+  MdeModulePkg/MdeModulePkg.dec
+  sdm845Pkg/sdm845Pkg.dec
+
+[LibraryClasses]
+  ArmLib
+  HobLib
+  IoLib
+  MemoryAllocationLib
+  SerialPortLib
+
+[Sources.common]
+  sdm845.c
+  sdm845Helper.S
+  sdm845Mem.c
+
+[FixedPcd]
+  gArmTokenSpaceGuid.PcdArmPrimaryCore
+  gArmTokenSpaceGuid.PcdArmPrimaryCoreMask
+  gArmTokenSpaceGuid.PcdSystemMemoryBase
+  gArmTokenSpaceGuid.PcdSystemMemorySize
+  gArmTokenSpaceGuid.PcdFdBaseAddress
+  gArmTokenSpaceGuid.PcdFdSize
diff --git a/sdm845Pkg/Library/XiaomiMI8Lib/XiaomiMI8Mem.c b/sdm845Pkg/Library/XiaomiMI8Lib/XiaomiMI8Mem.c
new file mode 100644 (file)
index 0000000..da0dc56
--- /dev/null
@@ -0,0 +1,97 @@
+/** @file
+*
+*  Copyright (c) 2011, ARM Limited. All rights reserved.
+*  Copyright (c) 2019, RUIKAI LIU and MR TUNNEL. All rights reserved.
+*
+*  This program and the accompanying materials
+*  are licensed and made available under the terms and conditions of the BSD License
+*  which accompanies this distribution.  The full text of the license may be found at
+*  http://opensource.org/licenses/bsd-license.php
+*
+*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+*
+**/
+
+#include <Library/ArmPlatformLib.h>
+#include <Library/MemoryAllocationLib.h>
+#include <Library/DebugLib.h>
+#include <Library/HobLib.h>
+#include <Configuration/DeviceMemoryMap.h>
+/**
+  Return the Virtual Memory Map of your platform
+  This Virtual Memory Map is used by MemoryInitPei Module to initialize the MMU on your platform.
+  @param[out]   VirtualMemoryMap    Array of ARM_MEMORY_REGION_DESCRIPTOR describing a Physical-to-
+                                    Virtual Memory mapping. This array must be ended by a zero-filled
+                                    entry
+**/
+
+STATIC
+VOID
+AddHob
+(
+    ARM_MEMORY_REGION_DESCRIPTOR_EX Desc
+)
+{
+       BuildResourceDescriptorHob(
+               Desc.ResourceType,
+               Desc.ResourceAttribute,
+               Desc.Address,
+               Desc.Length
+       );
+
+       BuildMemoryAllocationHob(
+               Desc.Address,
+               Desc.Length,
+               Desc.MemoryType
+       );
+}
+
+VOID
+ArmPlatformGetVirtualMemoryMap (
+  IN ARM_MEMORY_REGION_DESCRIPTOR** VirtualMemoryMap
+  )
+{
+  //TO-DO:ADD MEMORY MAP HERE
+    ARM_MEMORY_REGION_DESCRIPTOR* MemoryDescriptor;
+    UINTN Index = 0;
+
+    MemoryDescriptor = (ARM_MEMORY_REGION_DESCRIPTOR*)AllocatePages
+                       (EFI_SIZE_TO_PAGES (sizeof (ARM_MEMORY_REGION_DESCRIPTOR) *
+                       MAX_ARM_MEMORY_REGION_DESCRIPTOR_COUNT));
+
+    // Run through each memory descriptor
+    while (gDeviceMemoryDescriptorEx[Index].Address != (EFI_PHYSICAL_ADDRESS)0xFFFFFFFF)
+    {
+        switch (gDeviceMemoryDescriptorEx[Index].HobOption)
+        {
+            case AddMem:
+                       case AddDev:
+                AddHob(gDeviceMemoryDescriptorEx[Index]);
+                break;
+            case NoHob:
+            default:
+                goto update;
+        }
+
+    update:
+        ASSERT(Index < MAX_ARM_MEMORY_REGION_DESCRIPTOR_COUNT);
+
+        MemoryDescriptor[Index].PhysicalBase = gDeviceMemoryDescriptorEx[Index].Address;
+        MemoryDescriptor[Index].VirtualBase = gDeviceMemoryDescriptorEx[Index].Address;
+        MemoryDescriptor[Index].Length = gDeviceMemoryDescriptorEx[Index].Length;
+       MemoryDescriptor[Index].Attributes = gDeviceMemoryDescriptorEx[Index].ArmAttributes;
+
+        Index++;
+    }
+
+    // Last one (terminator)
+    MemoryDescriptor[Index].PhysicalBase = 0;
+    MemoryDescriptor[Index].VirtualBase = 0;
+    MemoryDescriptor[Index].Length = 0;
+    MemoryDescriptor[Index++].Attributes = (ARM_MEMORY_REGION_ATTRIBUTES)0;
+    ASSERT(Index <= MAX_ARM_MEMORY_REGION_DESCRIPTOR_COUNT);
+
+    *VirtualMemoryMap = &MemoryDescriptor[0];
+  //ASSERT(0);
+}
\ No newline at end of file
diff --git a/sdm845Pkg/SimpleFbDxe/SimpleFbDxe.c b/sdm845Pkg/SimpleFbDxe/SimpleFbDxe.c
new file mode 100644 (file)
index 0000000..3daa792
--- /dev/null
@@ -0,0 +1,317 @@
+/* SimpleFbDxe: Simple FrameBuffer */
+#include <PiDxe.h>
+#include <Uefi.h>
+#include <Library/UefiLib.h>
+#include <Library/UefiBootServicesTableLib.h>
+#include <Library/DebugLib.h>
+#include <Library/PcdLib.h>
+#include <Library/BaseMemoryLib.h>
+#include <Library/MemoryAllocationLib.h>
+#include <Library/DxeServicesTableLib.h>
+#include <Protocol/GraphicsOutput.h>
+#include <Library/BaseLib.h>
+#include <Library/FrameBufferBltLib.h>
+#include <Library/CacheMaintenanceLib.h>
+
+/// Defines
+/*
+ * Convert enum video_log2_bpp to bytes and bits. Note we omit the outer
+ * brackets to allow multiplication by fractional pixels.
+ */
+#define VNBYTES(bpix)  (1 << (bpix)) / 8
+#define VNBITS(bpix)   (1 << (bpix))
+
+#define FB_BITS_PER_PIXEL                   (32)
+#define FB_BYTES_PER_PIXEL                  (FB_BITS_PER_PIXEL / 8)
+
+/*
+ * Bits per pixel selector. Each value n is such that the bits-per-pixel is
+ * 2 ^ n
+ */
+enum video_log2_bpp {
+       VIDEO_BPP1      = 0,
+       VIDEO_BPP2,
+       VIDEO_BPP4,
+       VIDEO_BPP8,
+       VIDEO_BPP16,
+       VIDEO_BPP32,
+};
+
+typedef struct {
+  VENDOR_DEVICE_PATH DisplayDevicePath;
+  EFI_DEVICE_PATH EndDevicePath;
+} DISPLAY_DEVICE_PATH;
+
+DISPLAY_DEVICE_PATH mDisplayDevicePath =
+{
+    {
+      {
+        HARDWARE_DEVICE_PATH,
+        HW_VENDOR_DP,
+        {
+          (UINT8)(sizeof(VENDOR_DEVICE_PATH)),
+          (UINT8)((sizeof(VENDOR_DEVICE_PATH)) >> 8),
+        }
+      },
+      EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID
+    },
+    {
+      END_DEVICE_PATH_TYPE,
+      END_ENTIRE_DEVICE_PATH_SUBTYPE,
+      {
+        sizeof(EFI_DEVICE_PATH_PROTOCOL),
+        0
+      }
+    }
+};
+
+/// Declares
+
+STATIC FRAME_BUFFER_CONFIGURE        *mFrameBufferBltLibConfigure;
+STATIC UINTN                         mFrameBufferBltLibConfigureSize;
+
+STATIC
+EFI_STATUS
+EFIAPI
+DisplayQueryMode
+(
+    IN  EFI_GRAPHICS_OUTPUT_PROTOCOL          *This,
+    IN  UINT32                                ModeNumber,
+    OUT UINTN                                 *SizeOfInfo,
+    OUT EFI_GRAPHICS_OUTPUT_MODE_INFORMATION  **Info
+);
+
+STATIC
+EFI_STATUS
+EFIAPI
+DisplaySetMode
+(
+    IN  EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
+    IN  UINT32                       ModeNumber
+);
+
+STATIC
+EFI_STATUS
+EFIAPI
+DisplayBlt
+(
+    IN  EFI_GRAPHICS_OUTPUT_PROTOCOL            *This,
+    IN  EFI_GRAPHICS_OUTPUT_BLT_PIXEL           *BltBuffer,   OPTIONAL
+    IN  EFI_GRAPHICS_OUTPUT_BLT_OPERATION       BltOperation,
+    IN  UINTN                                   SourceX,
+    IN  UINTN                                   SourceY,
+    IN  UINTN                                   DestinationX,
+    IN  UINTN                                   DestinationY,
+    IN  UINTN                                   Width,
+    IN  UINTN                                   Height,
+    IN  UINTN                                   Delta         OPTIONAL
+);
+
+STATIC EFI_GRAPHICS_OUTPUT_PROTOCOL mDisplay = {
+  DisplayQueryMode,
+  DisplaySetMode,
+  DisplayBlt,
+  NULL
+};
+
+STATIC
+EFI_STATUS
+EFIAPI
+DisplayQueryMode
+(
+    IN  EFI_GRAPHICS_OUTPUT_PROTOCOL          *This,
+    IN  UINT32                                ModeNumber,
+    OUT UINTN                                 *SizeOfInfo,
+    OUT EFI_GRAPHICS_OUTPUT_MODE_INFORMATION  **Info
+)
+{
+    EFI_STATUS Status;
+    Status = gBS->AllocatePool(
+        EfiBootServicesData,
+        sizeof(EFI_GRAPHICS_OUTPUT_MODE_INFORMATION),
+        (VOID **) Info);
+
+    ASSERT_EFI_ERROR(Status);
+
+    *SizeOfInfo = sizeof(EFI_GRAPHICS_OUTPUT_MODE_INFORMATION);
+    (*Info)->Version = This->Mode->Info->Version;
+    (*Info)->HorizontalResolution = This->Mode->Info->HorizontalResolution;
+    (*Info)->VerticalResolution = This->Mode->Info->VerticalResolution;
+    (*Info)->PixelFormat = This->Mode->Info->PixelFormat;
+    (*Info)->PixelsPerScanLine = This->Mode->Info->PixelsPerScanLine;
+
+    return EFI_SUCCESS;
+}
+
+STATIC
+EFI_STATUS
+EFIAPI
+DisplaySetMode
+(
+    IN  EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
+    IN  UINT32                       ModeNumber
+)
+{
+  return EFI_SUCCESS;
+}
+
+STATIC
+EFI_STATUS
+EFIAPI
+DisplayBlt
+(
+    IN  EFI_GRAPHICS_OUTPUT_PROTOCOL      *This,
+    IN  EFI_GRAPHICS_OUTPUT_BLT_PIXEL     *BltBuffer,   OPTIONAL
+    IN  EFI_GRAPHICS_OUTPUT_BLT_OPERATION BltOperation,
+    IN  UINTN                             SourceX,
+    IN  UINTN                             SourceY,
+    IN  UINTN                             DestinationX,
+    IN  UINTN                             DestinationY,
+    IN  UINTN                             Width,
+    IN  UINTN                             Height,
+    IN  UINTN                             Delta         OPTIONAL
+)
+{
+
+  RETURN_STATUS                         Status;
+  EFI_TPL                               Tpl;
+  //
+  // We have to raise to TPL_NOTIFY, so we make an atomic write to the frame buffer.
+  // We would not want a timer based event (Cursor, ...) to come in while we are
+  // doing this operation.
+  //
+  Tpl = gBS->RaiseTPL (TPL_NOTIFY);
+  Status = FrameBufferBlt (
+             mFrameBufferBltLibConfigure,
+             BltBuffer,
+             BltOperation,
+             SourceX, SourceY,
+             DestinationX, DestinationY, Width, Height,
+             Delta
+             );
+  gBS->RestoreTPL (Tpl);
+
+  // zhuowei: hack: flush the cache manually since my memory maps are still broken
+  WriteBackInvalidateDataCacheRange((void*)mDisplay.Mode->FrameBufferBase, 
+    mDisplay.Mode->FrameBufferSize);
+  // zhuowei: end hack
+
+  return RETURN_ERROR (Status) ? EFI_INVALID_PARAMETER : EFI_SUCCESS;
+}
+
+EFI_STATUS
+EFIAPI
+SimpleFbDxeInitialize
+(
+    IN EFI_HANDLE         ImageHandle,
+    IN EFI_SYSTEM_TABLE   *SystemTable
+)
+{
+
+    EFI_STATUS          Status                  = EFI_SUCCESS;
+    EFI_HANDLE          hUEFIDisplayHandle      = NULL;
+
+    /* Retrieve simple frame buffer from pre-SEC bootloader */
+    DEBUG((EFI_D_ERROR, "SimpleFbDxe: Retrieve MIPI FrameBuffer parameters from PCD\n"));
+    UINT32              MipiFrameBufferAddr     = FixedPcdGet32(PcdMipiFrameBufferAddress);
+    UINT32              MipiFrameBufferWidth    = FixedPcdGet32(PcdMipiFrameBufferWidth);
+    UINT32              MipiFrameBufferHeight   = FixedPcdGet32(PcdMipiFrameBufferHeight);
+
+    /* Sanity check */
+    if (MipiFrameBufferAddr == 0 || MipiFrameBufferWidth == 0 || MipiFrameBufferHeight == 0)
+    {
+        DEBUG((EFI_D_ERROR, "SimpleFbDxe: Invalid FrameBuffer parameters\n"));
+        return EFI_DEVICE_ERROR;
+    }
+
+    /* Prepare struct */
+    if (mDisplay.Mode == NULL)
+    {
+        Status = gBS->AllocatePool(
+            EfiBootServicesData,
+            sizeof(EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE),
+            (VOID **) &mDisplay.Mode
+        );
+
+        ASSERT_EFI_ERROR(Status);
+        if (EFI_ERROR(Status)) return Status;
+
+        ZeroMem(mDisplay.Mode, sizeof(EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE));
+    }
+    
+    if (mDisplay.Mode->Info == NULL)
+    {
+        Status = gBS->AllocatePool(
+            EfiBootServicesData,
+            sizeof(EFI_GRAPHICS_OUTPUT_MODE_INFORMATION),
+            (VOID **) &mDisplay.Mode->Info
+        );
+
+        ASSERT_EFI_ERROR(Status);
+        if (EFI_ERROR(Status)) return Status;
+
+        ZeroMem(mDisplay.Mode->Info, sizeof(EFI_GRAPHICS_OUTPUT_MODE_INFORMATION));
+    }
+
+    /* Set information */
+    mDisplay.Mode->MaxMode = 1;
+    mDisplay.Mode->Mode = 0;
+    mDisplay.Mode->Info->Version = 0;
+
+    mDisplay.Mode->Info->HorizontalResolution = MipiFrameBufferWidth;
+    mDisplay.Mode->Info->VerticalResolution = MipiFrameBufferHeight;
+
+    /* SimpleFB runs on a8r8g8b8 (VIDEO_BPP32) for DB410c */
+    UINT32 LineLength = MipiFrameBufferWidth * VNBYTES(VIDEO_BPP32);
+    UINT32 FrameBufferSize = LineLength * MipiFrameBufferHeight;
+    EFI_PHYSICAL_ADDRESS FrameBufferAddress = MipiFrameBufferAddr;
+
+    mDisplay.Mode->Info->PixelsPerScanLine = MipiFrameBufferWidth;
+    mDisplay.Mode->Info->PixelFormat = PixelBlueGreenRedReserved8BitPerColor;
+    mDisplay.Mode->SizeOfInfo = sizeof(EFI_GRAPHICS_OUTPUT_MODE_INFORMATION);
+    mDisplay.Mode->FrameBufferBase = FrameBufferAddress;
+    mDisplay.Mode->FrameBufferSize = FrameBufferSize;
+
+    //
+    // Create the FrameBufferBltLib configuration.
+    //
+    Status = FrameBufferBltConfigure (
+                     (VOID *) (UINTN) mDisplay.Mode->FrameBufferBase,
+                     mDisplay.Mode->Info,
+                     mFrameBufferBltLibConfigure,
+                     &mFrameBufferBltLibConfigureSize
+                     );
+    if (Status == RETURN_BUFFER_TOO_SMALL) {
+      mFrameBufferBltLibConfigure = AllocatePool (mFrameBufferBltLibConfigureSize);
+      if (mFrameBufferBltLibConfigure != NULL) {
+        Status = FrameBufferBltConfigure (
+                         (VOID *) (UINTN) mDisplay.Mode->FrameBufferBase,
+                         mDisplay.Mode->Info,
+                         mFrameBufferBltLibConfigure,
+                         &mFrameBufferBltLibConfigureSize
+                         );
+      }
+    }
+    ASSERT_EFI_ERROR (Status);
+
+    // zhuowei: clear the screen to black
+    // UEFI standard requires this, since text is white - see OvmfPkg/QemuVideoDxe/Gop.c
+    ZeroMem((void*)FrameBufferAddress, FrameBufferSize);
+    // hack: clear cache
+    WriteBackInvalidateDataCacheRange((void*)FrameBufferAddress, FrameBufferSize);
+    // zhuowei: end
+    /* Register handle */
+    Status = gBS->InstallMultipleProtocolInterfaces(
+        &hUEFIDisplayHandle,
+        &gEfiDevicePathProtocolGuid,
+        &mDisplayDevicePath,
+        &gEfiGraphicsOutputProtocolGuid,
+        &mDisplay,
+        NULL);
+
+    ASSERT_EFI_ERROR (Status);
+
+    return Status;
+
+}
diff --git a/sdm845Pkg/SimpleFbDxe/SimpleFbDxe.inf b/sdm845Pkg/SimpleFbDxe/SimpleFbDxe.inf
new file mode 100644 (file)
index 0000000..e6be60a
--- /dev/null
@@ -0,0 +1,51 @@
+# SimpleFbDxe.inf: Implements Simple FrameBuffer in UEFI.
+
+[Defines]
+  INF_VERSION                    = 0x00010005
+  BASE_NAME                      = SimpleFbDxe
+  FILE_GUID                      = dcfd1e6d-788d-4ffc-8e1b-ca2f75651a92
+  MODULE_TYPE                    = DXE_DRIVER
+  VERSION_STRING                 = 1.0
+  ENTRY_POINT                    = SimpleFbDxeInitialize
+
+[Sources.common]
+  SimpleFbDxe.c
+
+[Packages]
+  MdePkg/MdePkg.dec
+  MdeModulePkg/MdeModulePkg.dec
+  EmbeddedPkg/EmbeddedPkg.dec
+  ArmPkg/ArmPkg.dec
+  sdm845Pkg/sdm845Pkg.dec
+
+[LibraryClasses]
+  BaseLib
+  ReportStatusCodeLib
+  UefiLib
+  UefiBootServicesTableLib
+  UefiDriverEntryPoint
+  BaseMemoryLib
+  DebugLib
+  PcdLib
+  FrameBufferBltLib
+  CacheMaintenanceLib
+
+[Protocols]
+  gEfiGraphicsOutputProtocolGuid ## PRODUCES
+  gEfiCpuArchProtocolGuid
+
+[FixedPcd]
+  gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferAddress
+  gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferWidth
+  gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferHeight
+
+[Guids]
+  gEfiMdeModulePkgTokenSpaceGuid
+
+[Pcd]
+  gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution
+  gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution
+
+[Depex]
+  gEfiCpuArchProtocolGuid
+
diff --git a/sdm845Pkg/sdm845Dxe/sdm845Dxe.c b/sdm845Pkg/sdm845Dxe/sdm845Dxe.c
new file mode 100644 (file)
index 0000000..58856ba
--- /dev/null
@@ -0,0 +1,111 @@
+/** @file
+*
+*  Copyright (c) 2018, Linaro Ltd. All rights reserved.
+*
+*  This program and the accompanying materials
+*  are licensed and made available under the terms and conditions of the BSD License
+*  which accompanies this distribution.  The full text of the license may be found at
+*  http://opensource.org/licenses/bsd-license.php
+*
+*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+*
+**/
+
+#include <Guid/EventGroup.h>
+
+#include <Library/BaseLib.h>
+#include <Library/BaseMemoryLib.h>
+#include <Library/CacheMaintenanceLib.h>
+#include <Library/DebugLib.h>
+#include <Library/DevicePathLib.h>
+#include <Library/IoLib.h>
+#include <Library/MemoryAllocationLib.h>
+#include <Library/PrintLib.h>
+#include <Library/SerialPortLib.h>
+#include <Library/TimerLib.h>
+#include <Library/UefiBootManagerLib.h>
+#include <Library/UefiBootServicesTableLib.h>
+#include <Library/UefiLib.h>
+
+#include <Protocol/Cpu.h>
+#include <Protocol/DevicePathFromText.h>
+#include <Protocol/EmbeddedGpio.h>
+#include <Protocol/LoadedImage.h>
+#include <Protocol/PlatformBootManager.h>
+
+#include "sdm845Dxe.h"
+
+EFI_CPU_ARCH_PROTOCOL     *gCpu;
+
+VOID
+InitPeripherals (
+  IN VOID
+  )
+{
+  //This mainly works.
+  EFI_STATUS            Status;
+
+  Status = gCpu->SetMemoryAttributes (gCpu, 0xa1a10000, 0x200000,
+                  EFI_MEMORY_UC | EFI_MEMORY_XP);
+  ASSERT_EFI_ERROR (Status);
+  Status = gCpu->SetMemoryAttributes (gCpu, 0x9d400000, 0x2400000,
+                  EFI_MEMORY_WC | EFI_MEMORY_XP);
+  ASSERT_EFI_ERROR (Status);
+}
+
+/**
+  Notification function of the event defined as belonging to the
+  EFI_END_OF_DXE_EVENT_GROUP_GUID event group that was created in
+  the entry point of the driver.
+
+  This function is called when an event belonging to the
+  EFI_END_OF_DXE_EVENT_GROUP_GUID event group is signalled. Such an
+  event is signalled once at the end of the dispatching of all
+  drivers (end of the so called DXE phase).
+
+  @param[in]  Event    Event declared in the entry point of the driver whose
+                       notification function is being invoked.
+  @param[in]  Context  NULL
+**/
+STATIC
+VOID
+OnEndOfDxe (
+  IN EFI_EVENT  Event,
+  IN VOID       *Context
+  )
+{
+}
+
+EFI_STATUS
+EFIAPI
+sdm845EntryPoint (
+  IN EFI_HANDLE         ImageHandle,
+  IN EFI_SYSTEM_TABLE   *SystemTable
+  )
+{
+  EFI_STATUS            Status;
+  EFI_EVENT             EndOfDxeEvent;
+
+  Status = gBS->LocateProtocol (&gEfiCpuArchProtocolGuid, NULL, (VOID **)&gCpu);
+  ASSERT_EFI_ERROR(Status);
+
+  InitPeripherals ();
+
+  //
+  // Create an event belonging to the "gEfiEndOfDxeEventGroupGuid" group.
+  // The "OnEndOfDxe()" function is declared as the call back function.
+  // It will be called at the end of the DXE phase when an event of the
+  // same group is signalled to inform about the end of the DXE phase.
+  // Install the INSTALL_FDT_PROTOCOL protocol.
+  //
+  Status = gBS->CreateEventEx (
+                  EVT_NOTIFY_SIGNAL,
+                  TPL_CALLBACK,
+                  OnEndOfDxe,
+                  NULL,
+                  &gEfiEndOfDxeEventGroupGuid,
+                  &EndOfDxeEvent
+                  );
+  return Status;
+}
diff --git a/sdm845Pkg/sdm845Dxe/sdm845Dxe.h b/sdm845Pkg/sdm845Dxe/sdm845Dxe.h
new file mode 100644 (file)
index 0000000..df71aa5
--- /dev/null
@@ -0,0 +1,18 @@
+/** @file
+*
+*  Copyright (c) 2018, Linaro Ltd. All rights reserved.
+*
+*  This program and the accompanying materials
+*  are licensed and made available under the terms and conditions of the BSD License
+*  which accompanies this distribution.  The full text of the license may be found at
+*  http://opensource.org/licenses/bsd-license.php
+*
+*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+*
+**/
+
+#ifndef __PIXEL3XLDXE_H__
+#define __PIXEL3XLDXE_H__
+
+#endif /* __PIXEL3XLDXE_H__ */
diff --git a/sdm845Pkg/sdm845Dxe/sdm845Dxe.inf b/sdm845Pkg/sdm845Dxe/sdm845Dxe.inf
new file mode 100644 (file)
index 0000000..b2033e9
--- /dev/null
@@ -0,0 +1,48 @@
+#
+#  Copyright (c) 2018, Linaro Limited. All rights reserved.
+#
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at
+#  http://opensource.org/licenses/bsd-license.php
+#
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+
+[Defines]
+  INF_VERSION                    = 0x0001001a
+  BASE_NAME                      = sdm845Dxe
+  FILE_GUID                      = 422BB380-0FFB-41EC-B86E-AE70F8A02DA3
+  MODULE_TYPE                    = DXE_DRIVER
+  VERSION_STRING                 = 1.0
+  ENTRY_POINT                    = sdm845EntryPoint
+
+[Sources.common]
+  sdm845Dxe.c
+
+[Packages]
+  EmbeddedPkg/EmbeddedPkg.dec
+  MdeModulePkg/MdeModulePkg.dec
+  MdePkg/MdePkg.dec
+
+[LibraryClasses]
+  BaseMemoryLib
+  CacheMaintenanceLib
+  DxeServicesTableLib
+  IoLib
+  PcdLib
+  TimerLib
+  UefiDriverEntryPoint
+  UefiLib
+
+[Protocols]
+  gEfiDevicePathFromTextProtocolGuid
+  gEfiLoadedImageProtocolGuid
+  gEfiCpuArchProtocolGuid
+
+[Guids]
+  gEfiEndOfDxeEventGroupGuid
+
+[Depex]
+  gEfiCpuArchProtocolGuid
diff --git a/sdm845Pkg/sdm845Pkg.dec b/sdm845Pkg/sdm845Pkg.dec
new file mode 100644 (file)
index 0000000..70ecc65
--- /dev/null
@@ -0,0 +1,47 @@
+#
+#  Copyright (c) 2018, Linaro Limited. All rights reserved.
+#
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at
+#  http://opensource.org/licenses/bsd-license.php
+#
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+
+[Defines]
+  DEC_SPECIFICATION              = 0x0001001a
+  PACKAGE_NAME                   = sdm845Pkg
+  PACKAGE_GUID                   = 7eb1de03-3910-4d1d-84ce-c17b53636b9a
+  PACKAGE_VERSION                = 0.1
+
+################################################################################
+#
+# Include Section - list of Include Paths that are provided by this package.
+#                   Comments are used for Keywords and Module Types.
+#
+# Supported Module Types:
+#  BASE SEC PEI_CORE PEIM DXE_CORE DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SMM_DRIVER DXE_SAL_DRIVER UEFI_DRIVER UEFI_APPLICATION
+#
+################################################################################
+[Includes.common]
+  Include                        # Root include for the package
+
+[Guids.common]
+  gsdm845PkgTokenSpaceGuid        = { 0x99a14446, 0xaad7, 0xe460, {0xb4, 0xe5, 0x1f, 0x79, 0xaa, 0xa4, 0x93, 0xfd } }
+
+[Protocols]
+  gEFIDroidKeypadDeviceProtocolGuid = { 0xb27625b5, 0x0b6c, 0x4614, { 0xaa, 0x3c, 0x33, 0x13, 0xb5, 0x1d, 0x36, 0x46 } }
+
+
+[PcdsFixedAtBuild.common]
+  # Simple FrameBuffer
+  gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferAddress|0x00400000|UINT32|0x0000a400
+  gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferWidth|1080|UINT32|0x0000a401
+  gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferHeight|2160|UINT32|0x0000a402
+  gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferPixelBpp|32|UINT32|0x0000a403
+  gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferVisibleWidth|1080|UINT32|0x0000a404
+  gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferVisibleHeight|2160|UINT32|0x0000a405
+  # RTC information
+  gsdm845PkgTokenSpaceGuid.PcdBootShimInfo1|0xb0000000|UINT64|0x00000a601
diff --git a/sdm845Pkg/sdm845Pkg.dsc b/sdm845Pkg/sdm845Pkg.dsc
new file mode 100644 (file)
index 0000000..eabc3b1
--- /dev/null
@@ -0,0 +1,297 @@
+#
+#  Copyright (c) 2018, Linaro Limited. All rights reserved.
+#
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at
+#  http://opensource.org/licenses/bsd-license.php
+#
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+
+################################################################################
+#
+# Defines Section - statements that will be processed to create a Makefile.
+#
+################################################################################
+[Defines]
+  PLATFORM_NAME                  = sdm845Pkg
+  PLATFORM_GUID                  = 28f1a3bf-193a-47e3-a7b9-5a435eaab2ee
+  PLATFORM_VERSION               = 0.1
+  DSC_SPECIFICATION              = 0x00010019
+  OUTPUT_DIRECTORY               = Build/$(PLATFORM_NAME)
+  SUPPORTED_ARCHITECTURES        = AARCH64
+  BUILD_TARGETS                  = DEBUG|RELEASE
+  SKUID_IDENTIFIER               = DEFAULT
+  FLASH_DEFINITION               = sdm845Pkg/sdm845Pkg.fdf
+
+!include sdm845Pkg/CommonDsc.dsc.inc
+
+[LibraryClasses.common]
+  ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
+  ArmPlatformLib|sdm845Pkg/Library/sdm845Lib/sdm845Lib.inf
+  CompilerIntrinsicsLib|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
+  CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
+  UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf
+  PlatformBootManagerLib|ArmPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
+  CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
+
+  # UiApp dependencies
+  ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
+  FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf
+  DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
+  BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf
+
+  SerialPortLib|sdm845Pkg/Library/InMemorySerialPortLib/InMemorySerialPortLib.inf
+  RealTimeClockLib|EmbeddedPkg/Library/VirtualRealTimeClockLib/VirtualRealTimeClockLib.inf
+  TimeBaseLib|EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.inf
+
+  # USB Requirements
+  UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf
+
+  # Network Libraries
+  UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
+  NetLib|NetworkPkg/Library/DxeNetLib/DxeNetLib.inf
+  DpcLib|NetworkPkg/Library/DxeDpcLib/DxeDpcLib.inf
+  IpIoLib|NetworkPkg/Library/DxeIpIoLib/DxeIpIoLib.inf
+  UdpIoLib|NetworkPkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf
+
+  # VariableRuntimeDxe Requirements
+  SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf
+  AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf
+  TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
+  VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf
+
+  # SimpleFbDxe
+  FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf
+
+  SerialPortLib|sdm845Pkg/Library/FrameBufferSerialPortLib/FrameBufferSerialPortLib.inf
+  PlatformBootManagerLib|sdm845Pkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
+  MemoryInitPeiLib|sdm845Pkg/Library/MemoryInitPeiLib/PeiMemoryAllocationLib.inf
+  PlatformPeiLib|sdm845Pkg/Library/PlatformPeiLib/PlatformPeiLib.inf
+
+[LibraryClasses.common.SEC]
+  PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
+  ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf
+  HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf
+  MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf
+  MemoryInitPeiLib|sdm845Pkg/Library/MemoryInitPeiLib/PeiMemoryAllocationLib.inf
+  PlatformPeiLib|sdm845Pkg/Library/PlatformPeiLib/PlatformPeiLib.inf
+  PrePiHobListPointerLib|ArmPlatformPkg/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf
+
+################################################################################
+#
+# Pcd Section - list of all EDK II PCD Entries defined by this Platform
+#
+################################################################################
+
+[PcdsFeatureFlag.common]
+  ## If TRUE, Graphics Output Protocol will be installed on virtual handle created by ConsplitterDxe.
+  #  It could be set FALSE to save size.
+  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
+  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
+
+
+[PcdsFixedAtBuild.common]
+  gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|4
+
+  gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString|L"Alpha"
+
+  # System Memory (5GB)
+  gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000
+  gArmTokenSpaceGuid.PcdSystemMemorySize|0x140000000
+
+  # We only boot one processor here!
+  gArmPlatformTokenSpaceGuid.PcdCoreCount|1
+  gArmPlatformTokenSpaceGuid.PcdClusterCount|1
+
+  #
+  # ARM PrimeCell
+  #
+
+  #
+  # ARM General Interrupt Controller
+  #
+  gArmTokenSpaceGuid.PcdGicDistributorBase|0x17a00000
+  gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x17a60000
+
+  gArmTokenSpaceGuid.PcdArmArchTimerIntrNum|0x12
+  gArmTokenSpaceGuid.PcdArmArchTimerVirtIntrNum|0x13
+
+  # GUID of the UI app
+  gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 }
+  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|5
+
+  gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE
+
+  gEmbeddedTokenSpaceGuid.PcdMetronomeTickPeriod|1000
+
+  #
+  #
+  # Fastboot
+  #
+  gEmbeddedTokenSpaceGuid.PcdAndroidFastbootUsbVendorId|0x18d1
+  gEmbeddedTokenSpaceGuid.PcdAndroidFastbootUsbProductId|0xd00d
+
+  #
+  # Make VariableRuntimeDxe work at emulated non-volatile variable mode.
+  #
+  gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvModeEnable|TRUE
+  
+  gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferAddress|0x9d400000
+  gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferWidth|1080
+  gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferHeight|2248
+
+  gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiExposedTableVersions|0x20
+
+################################################################################
+#
+# Components Section - list of all EDK II Modules needed by this Platform
+#
+################################################################################
+[Components.common]
+  #
+  # PEI Phase modules
+  #
+  ArmPlatformPkg/PrePi/PeiUniCore.inf
+
+  #
+  # DXE
+  #
+  MdeModulePkg/Core/Dxe/DxeMain.inf {
+    <LibraryClasses>
+      PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
+      NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
+  }
+
+  #
+  # Architectural Protocols
+  #
+  ArmPkg/Drivers/CpuDxe/CpuDxe.inf
+  MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
+  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
+  MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
+  EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf
+  MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf
+  EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
+  EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
+
+  MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
+  MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
+  MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
+  MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
+  MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
+
+  MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
+  
+  ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
+  ArmPkg/Drivers/TimerDxe/TimerDxe.inf
+
+  MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
+
+  MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
+
+  EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf {
+    <LibraryClasses>
+         RealTimeClockLib|sdm845Pkg/Library/VirtualRealTimeClockLib/VirtualRealTimeClockLib.inf
+  }
+  #
+  # GPIO
+  #
+
+  #
+  # Virtual Keyboard
+  #
+  EmbeddedPkg/Drivers/VirtualKeyboardDxe/VirtualKeyboardDxe.inf
+
+  sdm845Pkg/sdm845Dxe/sdm845Dxe.inf
+  sdm845Pkg/SimpleFbDxe/SimpleFbDxe.inf
+
+  #
+  # USB Host Support
+  #
+  MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
+
+  #
+  # USB Mass Storage Support
+  #
+  MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
+
+  #
+  # USB Peripheral Support
+  #
+  EmbeddedPkg/Drivers/AndroidFastbootTransportUsbDxe/FastbootTransportUsbDxe.inf
+
+  #
+  # Fastboot
+  #
+  EmbeddedPkg/Application/AndroidFastboot/AndroidFastbootApp.inf
+
+
+  #
+  # FAT filesystem + GPT/MBR partitioning
+  #
+  MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
+  MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
+  MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
+  FatPkg/EnhancedFatDxe/Fat.inf
+
+  #
+  # ACPI Support
+  #
+  MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
+  MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf
+  MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
+  # sdm845Pkg/AcpiTables/AcpiTables.inf
+
+  #
+  # SMBIOS Support
+  #
+  sdm845Pkg/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
+  MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
+
+  #
+  # Bds
+  #
+  MdeModulePkg/Universal/PrintDxe/PrintDxe.inf
+  MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
+  MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf {
+    <LibraryClasses>
+      PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
+  }
+  MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
+  MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
+  MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf
+  MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
+  MdeModulePkg/Application/UiApp/UiApp.inf {
+    <LibraryClasses>
+      NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf
+      NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf
+      NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
+      PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
+  }
+  sdm845Pkg/Drivers/LogoDxe/LogoDxe.inf
+
+  ShellPkg/Application/Shell/Shell.inf {
+    <LibraryClasses>
+      ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf
+      NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf
+      NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf
+      NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf
+      NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf
+      NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
+      NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
+      NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
+      NULL|ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf
+      HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
+      PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
+      BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
+    <PcdsFixedAtBuild>
+      gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF
+      gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
+      gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000
+  }
+!ifdef $(INCLUDE_TFTP_COMMAND)
+  ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf
+!endif #$(INCLUDE_TFTP_COMMAND)
diff --git a/sdm845Pkg/sdm845Pkg.fdf b/sdm845Pkg/sdm845Pkg.fdf
new file mode 100644 (file)
index 0000000..696ab53
--- /dev/null
@@ -0,0 +1,351 @@
+#
+#  Copyright (c) 2018, Linaro Limited. All rights reserved.
+#
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at
+#  http://opensource.org/licenses/bsd-license.php
+#
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+
+################################################################################
+#
+# FD Section
+# The [FD] Section is made up of the definition statements and a
+# description of what goes into  the Flash Device Image.  Each FD section
+# defines one flash "device" image.  A flash device image may be one of
+# the following: Removable media bootable image (like a boot floppy
+# image,) an Option ROM image (that would be "flashed" into an add-in
+# card,) a System "Flash"  image (that would be burned into a system's
+# flash) or an Update ("Capsule") image that will be used to update and
+# existing system flash.
+#
+################################################################################
+
+[FD.sdm845Pkg_UEFI]
+BaseAddress   = 0xd0000000|gArmTokenSpaceGuid.PcdFdBaseAddress  # The base address of the Firmware in NOR Flash.
+Size          = 0x00200000|gArmTokenSpaceGuid.PcdFdSize         # The size in bytes of the FLASH Device
+ErasePolarity = 1
+
+# This one is tricky, it must be: BlockSize * NumBlocks = Size
+BlockSize     = 0x00001000
+NumBlocks     = 0x200
+
+################################################################################
+#
+# Following are lists of FD Region layout which correspond to the locations of different
+# images within the flash device.
+#
+# Regions must be defined in ascending order and may not overlap.
+#
+# A Layout Region start with a eight digit hex offset (leading "0x" required) followed by
+# the pipe "|" character, followed by the size of the region, also in hex with the leading
+# "0x" characters. Like:
+# Offset|Size
+# PcdOffsetCName|PcdSizeCName
+# RegionType <FV, DATA, or FILE>
+#
+################################################################################
+
+# from ArmVirtPkg/ArmVirtQemuKernel.fdf
+#
+# Implement the Linux kernel header layout so that the loader will identify
+# it as something bootable, and execute it with a FDT pointer in x0 or r2.
+#
+0x00000000|0x00008000
+DATA = {
+  0x01, 0x00, 0x00, 0x10,                         # code0: adr x1, .
+  0xff, 0x1f, 0x00, 0x14,                         # code1: b 0x8000
+  0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, # text_offset: 512 KB
+  0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, # image_size: 2 MB
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # flags
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # res2
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # res3
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # res4
+  0x41, 0x52, 0x4d, 0x64,                         # magic: "ARM\x64"
+  0x00, 0x00, 0x00, 0x00                          # res5
+}
+
+0x00008000|0x001f8000
+gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize
+FV = FVMAIN_COMPACT
+
+
+################################################################################
+#
+# FV Section
+#
+# [FV] section is used to define what components or modules are placed within a flash
+# device file.  This section also defines order the components and modules are positioned
+# within the image.  The [FV] section consists of define statements, set statements and
+# module statements.
+#
+################################################################################
+
+[FV.FvMain]
+BlockSize          = 0x40
+NumBlocks          = 0         # This FV gets compressed so make it just big enough
+FvAlignment        = 8         # FV alignment and FV attributes setting.
+ERASE_POLARITY     = 1
+MEMORY_MAPPED      = TRUE
+STICKY_WRITE       = TRUE
+LOCK_CAP           = TRUE
+LOCK_STATUS        = TRUE
+WRITE_DISABLED_CAP = TRUE
+WRITE_ENABLED_CAP  = TRUE
+WRITE_STATUS       = TRUE
+WRITE_LOCK_CAP     = TRUE
+WRITE_LOCK_STATUS  = TRUE
+READ_DISABLED_CAP  = TRUE
+READ_ENABLED_CAP   = TRUE
+READ_STATUS        = TRUE
+READ_LOCK_CAP      = TRUE
+READ_LOCK_STATUS   = TRUE
+
+  APRIORI DXE {
+    INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
+  }
+
+  INF MdeModulePkg/Core/Dxe/DxeMain.inf
+
+  #
+  # PI DXE Drivers producing Architectural Protocols (EFI Services)
+  #
+  INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf
+  INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
+  INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
+  INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
+  INF EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf
+  INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf
+  INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
+  INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
+
+  FILE DRIVER = af9763a2-033b-4109-8e17-56a98d380c92 {
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/HWIODxeDriver/HWIODxeDriver.depex
+    SECTION PE32 = sdm845Pkg/Binary/HWIODxeDriver/HWIODxeDriver.efi
+    SECTION UI = "HWIODxeDriver"
+  }
+
+  FILE DRIVER = 4db5dea6-5302-4d1a-8a82-677a683b0d29 {
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/ClockDxe/ClockDxe.depex
+    SECTION PE32 = sdm845Pkg/Binary/ClockDxe/ClockDxe.efi
+    SECTION UI = "ClockDxe"
+  }
+
+  FILE DRIVER = 5776232e-082d-4b75-9a0e-fe1d13f7a5d9 {
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/PmicDxe/PmicDxe.depex
+    SECTION PE32 = sdm845Pkg/Binary/PmicDxe/PmicDxe.efi
+    SECTION UI = "PmicDxe"
+  }
+
+  FILE DRIVER = 5bd181db-0487-4f1a-ae73-820e165611b3 {
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/ButtonsDxe/ButtonsDxe.depex
+    SECTION PE32 = sdm845Pkg/Binary/ButtonsDxe/ButtonsDxe.efi
+    SECTION UI = "ButtonsDxe"
+  }
+
+  #
+  # Multiple Console IO support
+  #
+  INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
+  INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
+  INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
+  INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
+  INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
+
+  INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
+  INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf
+
+  INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
+
+  INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
+
+  FILE DRIVER = 3299a266-15f0-4346-8318-716336736d3e {
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/UsbDeviceDxe/UsbDeviceDxe.depex
+    SECTION PE32 = sdm845Pkg/Binary/UsbDeviceDxe/UsbDeviceDxe.efi
+    SECTION UI = "UsbDeviceDxe"
+  }
+
+  FILE DRIVER = 11faed4c-b21f-4d88-8e48-c4c28a1e50df {
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/UsbPwrCtrlDxe/UsbPwrCtrlDxe.depex
+    SECTION PE32 = sdm845Pkg/Binary/UsbPwrCtrlDxe/UsbPwrCtrlDxe.efi
+    SECTION UI = "UsbPwrCtrlDxe"
+  }
+
+  FILE DRIVER = 5af77f10-90df-4e7e-8325-a17ec09d5443 {
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/UsbMsdDxe/UsbMsdDxe.depex
+    SECTION PE32 = sdm845Pkg/Binary/UsbMsdDxe/UsbMsdDxe.efi
+    SECTION UI = "UsbMsdDxe"
+  }
+
+  FILE DRIVER = 94f8a6a7-dc34-4101-88c1-99179cceae83 {
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/UsbfnDwc3Dxe/UsbfnDwc3Dxe.depex
+    SECTION PE32 = sdm845Pkg/Binary/UsbfnDwc3Dxe/UsbfnDwc3Dxe.efi
+    SECTION UI = "UsbfnDwc3Dxe"
+  }
+
+  FILE DRIVER = cd823a4d-7dec-4531-ae5d-4134fa4127b8 {
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/UsbConfigDxe/UsbConfigDxe.depex
+    SECTION PE32 = sdm845Pkg/Binary/UsbConfigDxe/UsbConfigDxe.efi
+    SECTION UI = "UsbDeviceDxe"
+  }
+
+  #
+  # GPIO
+  #
+
+  #
+  # Virtual Keyboard
+  #
+  INF EmbeddedPkg/Drivers/VirtualKeyboardDxe/VirtualKeyboardDxe.inf
+
+  INF sdm845Pkg/sdm845Dxe/sdm845Dxe.inf
+  INF sdm845Pkg/SimpleFbDxe/SimpleFbDxe.inf
+
+  FILE DRIVER = 0d35cd8e-97ea-4f9a-96af-0f0d89f76567 {
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/UFSDxe/UFSDxe.depex
+    SECTION PE32 = sdm845Pkg/Binary/UFSDxe/UFSDxe.efi
+    SECTION UI = "UFSDxe"
+  }
+  FILE DRIVER = 2a7b4bef-80cd-49e1-b473-374ba4d673fc {
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/SPMI/SPMI.depex
+    SECTION PE32 = sdm845Pkg/Binary/SPMI/SPMI.efi
+    SECTION UI = "SPMI"
+  }
+
+  FILE DRIVER = f541d663-4a48-40aa-aabf-ff158ccae34c {
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/SmemDxe/SmemDxe.depex
+    SECTION PE32 = sdm845Pkg/Binary/SmemDxe/SmemDxe.efi
+    SECTION UI = "SmemDxe"
+  }
+    
+  FILE DRIVER = 10e193df-9966-44e7-b17c-59dd831e20fc {
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/ChipInfo/ChipInfo.depex
+    SECTION PE32 = sdm845Pkg/Binary/ChipInfo/ChipInfo.efi
+    SECTION UI = "ChipInfo"
+  }
+
+  FILE DRIVER = 7a32bd23-f735-4f57-aa1a-447d2fe3be0d {
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/SPI/SPI.depex
+    SECTION PE32 = sdm845Pkg/Binary/SPI/SPI.efi
+    SECTION UI = "SPI"
+  }
+
+
+  #
+  # USB Host Support
+  #
+  INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
+
+  #
+  # USB Mass Storage Support
+  #
+  INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
+
+  #
+  # USB Peripheral Support
+  #
+  INF EmbeddedPkg/Drivers/AndroidFastbootTransportUsbDxe/FastbootTransportUsbDxe.inf
+
+  #
+  # Fastboot
+  #
+  INF EmbeddedPkg/Application/AndroidFastboot/AndroidFastbootApp.inf
+
+  #
+  # FAT filesystem + GPT/MBR partitioning
+  #
+  INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
+  INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
+  INF FatPkg/EnhancedFatDxe/Fat.inf
+  INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
+
+  INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
+
+  INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
+
+  #
+  # ACPI Support
+  #
+  INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
+  INF MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf
+  INF MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
+  # INF RuleOverride = ACPITABLE sdm845Pkg/AcpiTables/AcpiTables.inf
+
+  FILE FREEFORM = 7E374E25-8E01-4FEE-87F2-390C23C606CD {
+         # SECTION RAW = sdm845Pkg/AcpiTables/minimal/DBG2.aml
+         # SECTION RAW = sdm845Pkg/AcpiTables/minimal/DSDT.aml
+         # SECTION RAW = sdm845Pkg/AcpiTables/minimal/FACP.aml
+         # SECTION RAW = sdm845Pkg/AcpiTables/minimal/GTDT.aml
+    # SECTION RAW = sdm845Pkg/AcpiTables/minimal/APIC.aml
+    SECTION RAW = sdm845Pkg/AcpiTables/test/DBG2.aml
+         SECTION RAW = sdm845Pkg/AcpiTables/test/DSDT.aml
+    SECTION RAW = sdm845Pkg/AcpiTables/test/CSRT.aml
+         SECTION RAW = sdm845Pkg/AcpiTables/test/FADT.aml
+    SECTION RAW = sdm845Pkg/AcpiTables/test/FACS.aml
+    SECTION RAW = sdm845Pkg/AcpiTables/test/GTDT.aml
+    SECTION RAW = sdm845Pkg/AcpiTables/test/IORT.aml
+       SECTION RAW = sdm845Pkg/AcpiTables/test/MCFG.aml
+    SECTION RAW = sdm845Pkg/AcpiTables/test/MADT.aml
+    SECTION RAW = sdm845Pkg/AcpiTables/test/PPTT.aml
+    SECTION RAW = sdm845Pkg/AcpiTables/test/TPM2.aml
+         SECTION UI = "AcpiTables"
+  }
+
+  #
+  # SMBIOS Support
+  #
+  INF sdm845Pkg/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
+  INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
+
+  #
+  # UEFI applications
+  #
+  INF ShellPkg/Application/Shell/Shell.inf
+!ifdef $(INCLUDE_TFTP_COMMAND)
+  INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf
+!endif #$(INCLUDE_TFTP_COMMAND)
+
+  #
+  # Bds
+  #
+  INF MdeModulePkg/Universal/PrintDxe/PrintDxe.inf
+  INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
+  INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
+  INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
+  INF MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf
+  INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
+  INF MdeModulePkg/Application/UiApp/UiApp.inf
+  INF sdm845Pkg/Drivers/LogoDxe/LogoDxe.inf
+
+[FV.FVMAIN_COMPACT]
+FvAlignment        = 8
+ERASE_POLARITY     = 1
+MEMORY_MAPPED      = TRUE
+STICKY_WRITE       = TRUE
+LOCK_CAP           = TRUE
+LOCK_STATUS        = TRUE
+WRITE_DISABLED_CAP = TRUE
+WRITE_ENABLED_CAP  = TRUE
+WRITE_STATUS       = TRUE
+WRITE_LOCK_CAP     = TRUE
+WRITE_LOCK_STATUS  = TRUE
+READ_DISABLED_CAP  = TRUE
+READ_ENABLED_CAP   = TRUE
+READ_STATUS        = TRUE
+READ_LOCK_CAP      = TRUE
+READ_LOCK_STATUS   = TRUE
+
+  INF ArmPlatformPkg/PrePi/PeiUniCore.inf
+
+  FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {
+    SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE {
+      SECTION FV_IMAGE = FVMAIN
+    }
+  }
+
+!include sdm845Pkg/CommonFdf.fdf.inc
+
+