Merge tag 'soc-dt-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 29 Jun 2023 22:07:06 +0000 (15:07 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 29 Jun 2023 22:07:06 +0000 (15:07 -0700)
Pull ARM SoC devicetree updates from Arnd Bergmann:
 "The biggest change this time is for the 32-bit devicetree files, which
  are all moved to a new location, using separate subdirectories for
  each SoC vendor, following the same scheme that is used on arm64, mips
  and riscv. This has been discussed for many years, but so far we never
  did this as there was a plan to move the files out of the kernel
  entirely, which has never happened.

  The impact of this will be that all external patches no longer apply,
  and anything depending on the location of the dtb files in the build
  directory will have to change. The installed files after 'make
  dtbs_install' keep the current location.

  There are six added SoCs here that are largely variants of previously
  added chips. Two other chips are added in a separate branch along with
  their device drivers.

   - The Samsung Exynos 4212 makes its return after the Samsung Galaxy
     Express phone is addded at last. The SoC support was originally
     added in 2012 but removed again in 2017 as it was unused at the
     time.

   - Amlogic C3 is a Cortex-A35 based smart IP camera chip

   - Qualcomm MSM8939 (Snapdragon 615) is a more featureful variant of
     the still common MSM8916 (Snapdragon 410) phone chip that has been
     supported for a long time.

   - Qualcomm SC8180x (Snapdragon 8cx) is one of their earlier high-end
     laptop chips, used in the Lenovo Flex 5G, which is added along with
     the reference board.

   - Qualcomm SDX75 is the latest generation modem chip that is used as
     a peripherial in phones but can also run a standalone Linux. Unlike
     the prior 32-bit SDX65 and SDX55, this now has a 64-bit Cortex-A55.

   - Alibaba T-Head TH1520 is a quad-core RISC-V chip based on the
     Xuantie C910 core, a step up from all previously added rv64 chips.

  All of the above come with reference board implementations, those
  included there are 39 new board files, but only five more 32-bit this
  time, probably a new low:

   - Marantec Maveo board based on dhcor imx6ull module

   - Endian 4i Edge 200, based on the armv5 Marvell Kirkwood chip

   - Epson Moverio BT-200 AR glasses based on TI OMAP4

   - PHYTEC STM32MP1-3 Dev board based on STM32MP15 PHYTEC SOM

   - ICnova ADB4006 board based on Allwinner A20

  On the 64-bit side, there are also fewer addded machines than we had
  in the recent releases:

   - Three boards based on NXP i.MX8: Emtop SoM & Baseboard, NXP i.MX8MM
     EVKB board and i.MX8MP based Gateworks Venice gw7905-2x device.

   - NVIDIA IGX Orin and Jetson Orin Nano boards, both based on tegra234

   - Qualcomm gains support for 6 reference boards on various members of
     their IPQ networking SoC series, as well as the Sony Xperia M4 Aqua
     phone, the Acer Aspire 1 laptop, and the Fxtec Pro1X board on top
     of the various reference platforms for their new chips.

   - Rockchips support for several newer boards: Indiedroid Nova
     (rk3588), Edgeble Neural Compute Module 6B (rk3588), FriendlyARM
     NanoPi R2C Plus (rk3328), Anbernic RG353PS (rk3566), Lunzn
     Fastrhino R66S/R68S (rk3568)

   - TI K3/AM625 based PHYTEC phyBOARD-Lyra-AM625 board and Toradex
     Verdin family with AM62 COM, carrier and dev boards

  Other changes to existing boards contain the usual minor improvements
  along with

   - continued updates to clean up dts files based on dtc warnings and
     binding checks, in particular cache properties and node names

   - support for devicetree overlays on at91, bcm283x

   - significant additions to existing SoC support on mediatek,
     qualcomm, ti k3 family, starfive jh71xx, NXP i.MX6 and i.MX8, ST
     STM32MP1

  As usual, a lot more detail is available in the individual merge
  commits"

* tag 'soc-dt-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (926 commits)
  ARM: mvebu: fix unit address on armada-390-db flash
  ARM: dts: Move .dts files to vendor sub-directories
  kbuild: Support flat DTBs install
  ARM: dts: Add .dts files missing from the build
  ARM: dts: allwinner: Use quoted #include
  ARM: dts: lan966x: kontron-d10: add PHY interrupts
  ARM: dts: lan966x: kontron-d10: fix SPI CS
  ARM: dts: lan966x: kontron-d10: fix board reset
  ARM: dts: at91: Enable device-tree overlay support for AT91 boards
  arm: dts: Enable device-tree overlay support for AT91 boards
  arm64: dts: exynos: Remove clock from Exynos850 pmu_system_controller
  ARM: dts: at91: use generic name for shutdown controller
  ARM: dts: BCM5301X: Add cells sizes to PCIe nodes
  dt-bindings: firmware: brcm,kona-smc: convert to YAML
  riscv: dts: sort makefile entries by directory
  riscv: defconfig: enable T-HEAD SoC
  MAINTAINERS: add entry for T-HEAD RISC-V SoC
  riscv: dts: thead: add sipeed Lichee Pi 4A board device tree
  riscv: dts: add initial T-HEAD TH1520 SoC device tree
  riscv: Add the T-HEAD SoC family Kconfig option
  ...

73 files changed:
1  2 
Documentation/devicetree/bindings/spi/spi-zynqmp-qspi.yaml
Documentation/devicetree/bindings/vendor-prefixes.yaml
MAINTAINERS
arch/arm/Kconfig
arch/arm/boot/dts/arm/vexpress-v2p-ca5s.dts
arch/arm/boot/dts/microchip/at91-sama7g5ek.dts
arch/arm/boot/dts/microchip/at91sam9261ek.dts
arch/arm/boot/dts/nxp/imx/imx6qdl-mba6.dtsi
arch/arm/boot/dts/nxp/imx/imx6ull-dhcor-som.dtsi
arch/arm/boot/dts/nxp/imx/imx7d-pico-hobbit.dts
arch/arm/boot/dts/nxp/imx/imx7d-sdb.dts
arch/arm/boot/dts/qcom/qcom-apq8026-asus-sparrow.dts
arch/arm/boot/dts/qcom/qcom-apq8026-huawei-sturgeon.dts
arch/arm/boot/dts/qcom/qcom-apq8026-lg-lenok.dts
arch/arm/boot/dts/qcom/qcom-apq8064.dtsi
arch/arm/boot/dts/qcom/qcom-apq8084.dtsi
arch/arm/boot/dts/qcom/qcom-ipq4019.dtsi
arch/arm/boot/dts/qcom/qcom-ipq8064.dtsi
arch/arm/boot/dts/qcom/qcom-mdm9615-wp8548-mangoh-green.dts
arch/arm/boot/dts/qcom/qcom-msm8660.dtsi
arch/arm/boot/dts/qcom/qcom-msm8960.dtsi
arch/arm/boot/dts/qcom/qcom-msm8974-lge-nexus5-hammerhead.dts
arch/arm/boot/dts/qcom/qcom-msm8974-sony-xperia-rhine.dtsi
arch/arm/boot/dts/qcom/qcom-msm8974.dtsi
arch/arm/boot/dts/qcom/qcom-msm8974pro-oneplus-bacon.dts
arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts
arch/arm/boot/dts/qcom/qcom-msm8974pro-sony-xperia-shinano-castor.dts
arch/arm/boot/dts/ti/omap/am57xx-cl-som-am57x.dts
arch/arm/boot/dts/ti/omap/omap3-cm-t3x.dtsi
arch/arm/boot/dts/ti/omap/omap3-devkit8000-lcd-common.dtsi
arch/arm/boot/dts/ti/omap/omap3-lilly-a83x.dtsi
arch/arm/boot/dts/ti/omap/omap3-overo-common-lcd35.dtsi
arch/arm/boot/dts/ti/omap/omap3-overo-common-lcd43.dtsi
arch/arm/boot/dts/ti/omap/omap3-pandora-common.dtsi
arch/arm/boot/dts/ti/omap/omap5-cm-t54.dts
arch/arm64/boot/dts/arm/vexpress-v2f-1xv7-ca53x2.dts
arch/arm64/boot/dts/freescale/imx8mn-beacon-baseboard.dtsi
arch/arm64/boot/dts/freescale/imx8mn-var-som.dtsi
arch/arm64/boot/dts/freescale/imx8mn.dtsi
arch/arm64/boot/dts/freescale/imx8mp.dtsi
arch/arm64/boot/dts/qcom/ipq5332.dtsi
arch/arm64/boot/dts/qcom/ipq6018.dtsi
arch/arm64/boot/dts/qcom/ipq8074.dtsi
arch/arm64/boot/dts/qcom/ipq9574.dtsi
arch/arm64/boot/dts/qcom/msm8916.dtsi
arch/arm64/boot/dts/qcom/msm8953.dtsi
arch/arm64/boot/dts/qcom/msm8976.dtsi
arch/arm64/boot/dts/qcom/msm8994.dtsi
arch/arm64/boot/dts/qcom/msm8996.dtsi
arch/arm64/boot/dts/qcom/msm8998.dtsi
arch/arm64/boot/dts/qcom/qcm2290.dtsi
arch/arm64/boot/dts/qcom/qdu1000.dtsi
arch/arm64/boot/dts/qcom/sa8155p-adp.dts
arch/arm64/boot/dts/qcom/sa8775p.dtsi
arch/arm64/boot/dts/qcom/sc7180-idp.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi
arch/arm64/boot/dts/qcom/sc7180.dtsi
arch/arm64/boot/dts/qcom/sc7280.dtsi
arch/arm64/boot/dts/qcom/sc8280xp.dtsi
arch/arm64/boot/dts/qcom/sdm630.dtsi
arch/arm64/boot/dts/qcom/sdm670.dtsi
arch/arm64/boot/dts/qcom/sdm845.dtsi
arch/arm64/boot/dts/qcom/sm6115.dtsi
arch/arm64/boot/dts/qcom/sm6125.dtsi
arch/arm64/boot/dts/qcom/sm6350.dtsi
arch/arm64/boot/dts/qcom/sm6375.dtsi
arch/arm64/boot/dts/qcom/sm8150.dtsi
arch/arm64/boot/dts/qcom/sm8350.dtsi
arch/arm64/boot/dts/qcom/sm8450.dtsi
arch/arm64/boot/dts/qcom/sm8550.dtsi
arch/arm64/boot/dts/rockchip/rk356x.dtsi
arch/arm64/boot/dts/rockchip/rk3588s.dtsi
include/dt-bindings/power/qcom-rpmpd.h

diff --cc MAINTAINERS
Simple merge
Simple merge
index 0000000,3b88209..ff1f9a1
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,225 +1,226 @@@
+ // SPDX-License-Identifier: GPL-2.0
+ /*
+  * ARM Ltd. Versatile Express
+  *
+  * CoreTile Express A5x2
+  * Cortex-A5 MPCore (V2P-CA5s)
+  *
+  * HBI-0225B
+  */
+ /dts-v1/;
+ #include "vexpress-v2m-rs1.dtsi"
+ / {
+       model = "V2P-CA5s";
+       arm,hbi = <0x225>;
+       arm,vexpress,site = <0xf>;
+       compatible = "arm,vexpress,v2p-ca5s", "arm,vexpress";
+       interrupt-parent = <&gic>;
+       #address-cells = <1>;
+       #size-cells = <1>;
+       chosen { };
+       aliases {
+               serial0 = &v2m_serial0;
+               serial1 = &v2m_serial1;
+               serial2 = &v2m_serial2;
+               serial3 = &v2m_serial3;
+               i2c0 = &v2m_i2c_dvi;
+               i2c1 = &v2m_i2c_pcie;
+       };
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a5";
+                       reg = <0>;
+                       next-level-cache = <&L2>;
+               };
+               cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a5";
+                       reg = <1>;
+                       next-level-cache = <&L2>;
+               };
+       };
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x40000000>;
+       };
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+               /* Chipselect 2 is physically at 0x18000000 */
+               vram: vram@18000000 {
+                       /* 8 MB of designated video RAM */
+                       compatible = "shared-dma-pool";
+                       reg = <0x18000000 0x00800000>;
+                       no-map;
+               };
+       };
+       hdlcd@2a110000 {
+               compatible = "arm,hdlcd";
+               reg = <0x2a110000 0x1000>;
+               interrupts = <0 85 4>;
+               clocks = <&hdlcd_clk>;
+               clock-names = "pxlclk";
+       };
+       memory-controller@2a150000 {
+               compatible = "arm,pl341", "arm,primecell";
+               reg = <0x2a150000 0x1000>;
+               clocks = <&axi_clk>;
+               clock-names = "apb_pclk";
+       };
+       memory-controller@2a190000 {
+               compatible = "arm,pl354", "arm,primecell";
+               reg = <0x2a190000 0x1000>;
+               interrupts = <0 86 4>,
+                            <0 87 4>;
+               clocks = <&axi_clk>;
+               clock-names = "apb_pclk";
+       };
+       scu@2c000000 {
+               compatible = "arm,cortex-a5-scu";
+               reg = <0x2c000000 0x58>;
+       };
+       timer@2c000600 {
+               compatible = "arm,cortex-a5-twd-timer";
+               reg = <0x2c000600 0x20>;
+               interrupts = <1 13 0x304>;
+       };
+       timer@2c000200 {
+               compatible = "arm,cortex-a5-global-timer",
+                            "arm,cortex-a9-global-timer";
+               reg = <0x2c000200 0x20>;
+               interrupts = <1 11 0x304>;
+               clocks = <&cpu_clk>;
+       };
+       watchdog@2c000620 {
+               compatible = "arm,cortex-a5-twd-wdt";
+               reg = <0x2c000620 0x20>;
+               interrupts = <1 14 0x304>;
+       };
+       gic: interrupt-controller@2c001000 {
+               compatible = "arm,cortex-a5-gic", "arm,cortex-a9-gic";
+               #interrupt-cells = <3>;
+               #address-cells = <0>;
+               interrupt-controller;
+               reg = <0x2c001000 0x1000>,
+                     <0x2c000100 0x100>;
+       };
+       L2: cache-controller@2c0f0000 {
+               compatible = "arm,pl310-cache";
+               reg = <0x2c0f0000 0x1000>;
+               interrupts = <0 84 4>;
+               cache-level = <2>;
++              cache-unified;
+       };
+       pmu {
+               compatible = "arm,cortex-a5-pmu";
+               interrupts = <0 68 4>,
+                            <0 69 4>;
+       };
+       dcc {
+               compatible = "arm,vexpress,config-bus";
+               arm,vexpress,config-bridge = <&v2m_sysreg>;
+               cpu_clk: oscclk0 {
+                       /* CPU and internal AXI reference clock */
+                       compatible = "arm,vexpress-osc";
+                       arm,vexpress-sysreg,func = <1 0>;
+                       freq-range = <50000000 100000000>;
+                       #clock-cells = <0>;
+                       clock-output-names = "oscclk0";
+               };
+               axi_clk: oscclk1 {
+                       /* Multiplexed AXI master clock */
+                       compatible = "arm,vexpress-osc";
+                       arm,vexpress-sysreg,func = <1 1>;
+                       freq-range = <5000000 50000000>;
+                       #clock-cells = <0>;
+                       clock-output-names = "oscclk1";
+               };
+               oscclk2 {
+                       /* DDR2 */
+                       compatible = "arm,vexpress-osc";
+                       arm,vexpress-sysreg,func = <1 2>;
+                       freq-range = <80000000 120000000>;
+                       #clock-cells = <0>;
+                       clock-output-names = "oscclk2";
+               };
+               hdlcd_clk: oscclk3 {
+                       /* HDLCD */
+                       compatible = "arm,vexpress-osc";
+                       arm,vexpress-sysreg,func = <1 3>;
+                       freq-range = <23750000 165000000>;
+                       #clock-cells = <0>;
+                       clock-output-names = "oscclk3";
+               };
+               oscclk4 {
+                       /* Test chip gate configuration */
+                       compatible = "arm,vexpress-osc";
+                       arm,vexpress-sysreg,func = <1 4>;
+                       freq-range = <80000000 80000000>;
+                       #clock-cells = <0>;
+                       clock-output-names = "oscclk4";
+               };
+               smbclk: oscclk5 {
+                       /* SMB clock */
+                       compatible = "arm,vexpress-osc";
+                       arm,vexpress-sysreg,func = <1 5>;
+                       freq-range = <25000000 60000000>;
+                       #clock-cells = <0>;
+                       clock-output-names = "oscclk5";
+               };
+               temp-dcc {
+                       /* DCC internal operating temperature */
+                       compatible = "arm,vexpress-temp";
+                       arm,vexpress-sysreg,func = <4 0>;
+                       label = "DCC";
+               };
+       };
+       smb: bus@8000000 {
+               ranges = <0 0x8000000 0x18000000>;
+       };
+       site2: hsb@40000000 {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0 0x40000000 0x40000000>;
+               #interrupt-cells = <1>;
+               interrupt-map-mask = <0 3>;
+               interrupt-map = <0 0 &gic 0 36 4>,
+                               <0 1 &gic 0 37 4>,
+                               <0 2 &gic 0 38 4>,
+                               <0 3 &gic 0 39 4>;
+       };
+ };
index 0000000,aa5cc0e..217e9b9
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,834 +1,834 @@@
 -      atmel,shdwc-debouncer = <976>;
+ // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+ /*
+  *  at91-sama7g5ek.dts - Device Tree file for SAMA7G5-EK board
+  *
+  *  Copyright (c) 2020 Microchip Technology Inc. and its subsidiaries
+  *
+  *  Author: Eugen Hristev <eugen.hristev@microchip.com>
+  *  Author: Claudiu Beznea <claudiu.beznea@microchip.com>
+  *
+  */
+ /dts-v1/;
+ #include "sama7g5-pinfunc.h"
+ #include "sama7g5.dtsi"
+ #include <dt-bindings/mfd/atmel-flexcom.h>
+ #include <dt-bindings/input/input.h>
+ #include <dt-bindings/pinctrl/at91.h>
+ #include <dt-bindings/sound/microchip,pdmc.h>
+ / {
+       model = "Microchip SAMA7G5-EK";
+       compatible = "microchip,sama7g5ek", "microchip,sama7g5", "microchip,sama7";
+       chosen {
+               bootargs = "rw root=/dev/mmcblk1p2 rootfstype=ext4 rootwait";
+               stdout-path = "serial0:115200n8";
+       };
+       aliases {
+               serial0 = &uart3;
+               serial1 = &uart4;
+               serial2 = &uart7;
+               serial3 = &uart0;
+               i2c0 = &i2c1;
+               i2c1 = &i2c8;
+               i2c2 = &i2c9;
+       };
+       clocks {
+               slow_xtal {
+                       clock-frequency = <32768>;
+               };
+               main_xtal {
+                       clock-frequency = <24000000>;
+               };
+       };
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_key_gpio_default>;
+               button {
+                       label = "PB_USER";
+                       gpios = <&pioA PIN_PA12 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_PROG1>;
+                       wakeup-source;
+               };
+       };
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_led_gpio_default>;
+               status = "okay"; /* Conflict with pwm. */
+               red_led {
+                       label = "red";
+                       gpios = <&pioA PIN_PB8 GPIO_ACTIVE_HIGH>;
+               };
+               green_led {
+                       label = "green";
+                       gpios = <&pioA PIN_PA13 GPIO_ACTIVE_HIGH>;
+               };
+               blue_led {
+                       label = "blue";
+                       gpios = <&pioA PIN_PD20 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+       /* 512 M */
+       memory@60000000 {
+               device_type = "memory";
+               reg = <0x60000000 0x20000000>;
+       };
+       sound: sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "sama7g5ek audio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               simple-audio-card,dai-link@0 {
+                       reg = <0>;
+                       cpu {
+                               sound-dai = <&spdiftx>;
+                       };
+                       codec {
+                               sound-dai = <&spdif_out>;
+                       };
+               };
+               simple-audio-card,dai-link@1 {
+                       reg = <1>;
+                       cpu {
+                               sound-dai = <&spdifrx>;
+                       };
+                       codec {
+                               sound-dai = <&spdif_in>;
+                       };
+               };
+       };
+       spdif_in: spdif-in {
+               #sound-dai-cells = <0>;
+               compatible = "linux,spdif-dir";
+       };
+       spdif_out: spdif-out {
+               #sound-dai-cells = <0>;
+               compatible = "linux,spdif-dit";
+       };
+ };
+ &adc {
+       vddana-supply = <&vddout25>;
+       vref-supply = <&vddout25>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_mikrobus1_an_default &pinctrl_mikrobus2_an_default>;
+       status = "okay";
+ };
+ &can0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_can0_default>;
+       status = "okay";
+ };
+ &can1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_can1_default>;
+       status = "okay";
+ };
+ &cpu0 {
+       cpu-supply = <&vddcpu>;
+ };
+ &qspi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_qspi>;
+       status = "okay";
+       flash@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <133000000>;
+               spi-tx-bus-width = <8>;
+               spi-rx-bus-width = <8>;
+               m25p,fast-read;
+               at91bootstrap@0 {
+                       label = "ospi: at91bootstrap";
+                       reg = <0x0 0x40000>;
+               };
+               bootloader@40000 {
+                       label = "ospi: bootloader";
+                       reg = <0x40000 0xc0000>;
+               };
+               bootloaderenvred@100000 {
+                       label = "ospi: bootloader env redundant";
+                       reg = <0x100000 0x40000>;
+               };
+               bootloaderenv@140000 {
+                       label = "ospi: bootloader env";
+                       reg = <0x140000 0x40000>;
+               };
+               dtb@180000 {
+                       label = "ospi: device tree";
+                       reg = <0x180000 0x80000>;
+               };
+               kernel@200000 {
+                       label = "ospi: kernel";
+                       reg = <0x200000 0x600000>;
+               };
+               rootfs@800000 {
+                       label = "ospi: rootfs";
+                       reg = <0x800000 0x7800000>;
+               };
+       };
+ };
+ &dma0 {
+       status = "okay";
+ };
+ &dma1 {
+       status = "okay";
+ };
+ &dma2 {
+       status = "okay";
+ };
+ &flx0 {
+       atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
+       status = "disabled";
+       uart0: serial@200 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_flx0_default>;
+               status = "disabled";
+       };
+ };
+ &flx1 {
+       atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
+       status = "okay";
+       i2c1: i2c@600 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c1_default>;
+               i2c-analog-filter;
+               i2c-digital-filter;
+               i2c-digital-filter-width-ns = <35>;
+               status = "okay";
+               mcp16502@5b {
+                       compatible = "microchip,mcp16502";
+                       reg = <0x5b>;
+                       status = "okay";
+                       regulators {
+                               vdd_3v3: VDD_IO {
+                                       regulator-name = "VDD_IO";
+                                       regulator-min-microvolt = <3300000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       regulator-initial-mode = <2>;
+                                       regulator-allowed-modes = <2>, <4>;
+                                       regulator-always-on;
+                                       regulator-state-standby {
+                                               regulator-on-in-suspend;
+                                               regulator-suspend-microvolt = <3300000>;
+                                               regulator-mode = <4>;
+                                       };
+                                       regulator-state-mem {
+                                               regulator-off-in-suspend;
+                                               regulator-mode = <4>;
+                                       };
+                               };
+                               vddioddr: VDD_DDR {
+                                       regulator-name = "VDD_DDR";
+                                       regulator-min-microvolt = <1350000>;
+                                       regulator-max-microvolt = <1350000>;
+                                       regulator-initial-mode = <2>;
+                                       regulator-allowed-modes = <2>, <4>;
+                                       regulator-always-on;
+                                       regulator-state-standby {
+                                               regulator-on-in-suspend;
+                                               regulator-suspend-microvolt = <1350000>;
+                                               regulator-mode = <4>;
+                                       };
+                                       regulator-state-mem {
+                                               regulator-on-in-suspend;
+                                               regulator-suspend-microvolt = <1350000>;
+                                               regulator-mode = <4>;
+                                       };
+                               };
+                               vddcore: VDD_CORE {
+                                       regulator-name = "VDD_CORE";
+                                       regulator-min-microvolt = <1150000>;
+                                       regulator-max-microvolt = <1150000>;
+                                       regulator-initial-mode = <2>;
+                                       regulator-allowed-modes = <2>, <4>;
+                                       regulator-always-on;
+                                       regulator-state-standby {
+                                               regulator-on-in-suspend;
+                                               regulator-suspend-voltage = <1150000>;
+                                               regulator-mode = <4>;
+                                       };
+                                       regulator-state-mem {
+                                               regulator-off-in-suspend;
+                                               regulator-mode = <4>;
+                                       };
+                               };
+                               vddcpu: VDD_OTHER {
+                                       regulator-name = "VDD_OTHER";
+                                       regulator-min-microvolt = <1050000>;
+                                       regulator-max-microvolt = <1250000>;
+                                       regulator-initial-mode = <2>;
+                                       regulator-allowed-modes = <2>, <4>;
+                                       regulator-ramp-delay = <3125>;
+                                       regulator-always-on;
+                                       regulator-state-standby {
+                                               regulator-on-in-suspend;
+                                               regulator-suspend-voltage = <1050000>;
+                                               regulator-mode = <4>;
+                                       };
+                                       regulator-state-mem {
+                                               regulator-off-in-suspend;
+                                               regulator-mode = <4>;
+                                       };
+                               };
+                               vldo1: LDO1 {
+                                       regulator-name = "LDO1";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-state-standby {
+                                               regulator-suspend-voltage = <1800000>;
+                                               regulator-on-in-suspend;
+                                       };
+                                       regulator-state-mem {
+                                               regulator-off-in-suspend;
+                                       };
+                               };
+                               vldo2: LDO2 {
+                                       regulator-name = "LDO2";
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <3700000>;
+                                       regulator-state-standby {
+                                               regulator-suspend-voltage = <1800000>;
+                                               regulator-on-in-suspend;
+                                       };
+                                       regulator-state-mem {
+                                               regulator-off-in-suspend;
+                                       };
+                               };
+                       };
+               };
+       };
+ };
+ &flx3 {
+       atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
+       status = "okay";
+       uart3: serial@200 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_flx3_default>;
+               status = "okay";
+       };
+ };
+ &flx4 {
+       atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
+       status = "okay";
+       uart4: serial@200 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_flx4_default>;
+               status = "okay";
+       };
+ };
+ &flx7 {
+       atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
+       status = "okay";
+       uart7: serial@200 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_flx7_default>;
+               status = "okay";
+       };
+ };
+ &flx8 {
+       atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
+       status = "okay";
+       i2c8: i2c@600 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c8_default>;
+               i2c-analog-filter;
+               i2c-digital-filter;
+               i2c-digital-filter-width-ns = <35>;
+               status = "okay";
+       };
+ };
+ &flx9 {
+       atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
+       status = "okay";
+       i2c9: i2c@600 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c9_default>;
+               i2c-analog-filter;
+               i2c-digital-filter;
+               i2c-digital-filter-width-ns = <35>;
+               status = "okay";
+       };
+ };
+ &flx11 {
+       atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>;
+       status = "okay";
+       spi11: spi@400 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_mikrobus1_spi &pinctrl_mikrobus1_spi_cs>;
+               status = "okay";
+       };
+ };
+ &gmac0 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gmac0_default
+                    &pinctrl_gmac0_mdio_default
+                    &pinctrl_gmac0_txck_default
+                    &pinctrl_gmac0_phy_irq>;
+       phy-mode = "rgmii-id";
+       status = "okay";
+       ethernet-phy@7 {
+               reg = <0x7>;
+               interrupt-parent = <&pioA>;
+               interrupts = <PIN_PA31 IRQ_TYPE_LEVEL_LOW>;
+       };
+ };
+ &gmac1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gmac1_default
+                    &pinctrl_gmac1_mdio_default
+                    &pinctrl_gmac1_phy_irq>;
+       phy-mode = "rmii";
+       status = "okay"; /* Conflict with pdmc0. */
+       ethernet-phy@0 {
+               reg = <0x0>;
+               interrupt-parent = <&pioA>;
+               interrupts = <PIN_PA21 IRQ_TYPE_LEVEL_LOW>;
+       };
+ };
+ &i2s0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2s0_default>;
+ };
+ &pdmc0 {
+       #sound-dai-cells = <0>;
+       microchip,mic-pos = <MCHP_PDMC_DS0 MCHP_PDMC_CLK_NEGATIVE>, /* MIC 1 */
+                           <MCHP_PDMC_DS1 MCHP_PDMC_CLK_NEGATIVE>, /* MIC 2 */
+                           <MCHP_PDMC_DS0 MCHP_PDMC_CLK_POSITIVE>, /* MIC 3 */
+                           <MCHP_PDMC_DS1 MCHP_PDMC_CLK_POSITIVE>; /* MIC 4 */
+       status = "disabled"; /* Conflict with gmac1. */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pdmc0_default>;
+ };
+ &pioA {
+       pinctrl_can0_default: can0_default {
+               pinmux = <PIN_PD12__CANTX0>,
+                        <PIN_PD13__CANRX0 >;
+               bias-disable;
+       };
+       pinctrl_can1_default: can1_default {
+               pinmux = <PIN_PD14__CANTX1>,
+                        <PIN_PD15__CANRX1 >;
+               bias-disable;
+       };
+       pinctrl_flx0_default: flx0_default {
+               pinmux = <PIN_PE3__FLEXCOM0_IO0>,
+                        <PIN_PE4__FLEXCOM0_IO1>,
+                        <PIN_PE6__FLEXCOM0_IO3>,
+                        <PIN_PE7__FLEXCOM0_IO4>;
+               bias-disable;
+       };
+       pinctrl_flx3_default: flx3_default {
+               pinmux = <PIN_PD16__FLEXCOM3_IO0>,
+                        <PIN_PD17__FLEXCOM3_IO1>;
+               bias-pull-up;
+       };
+       pinctrl_flx4_default: flx4_default {
+               pinmux = <PIN_PD18__FLEXCOM4_IO0>,
+                        <PIN_PD19__FLEXCOM4_IO1>;
+               bias-disable;
+       };
+       pinctrl_flx7_default: flx7_default {
+               pinmux = <PIN_PC23__FLEXCOM7_IO0>,
+                        <PIN_PC24__FLEXCOM7_IO1>;
+               bias-disable;
+       };
+       pinctrl_gmac0_default: gmac0_default {
+               pinmux = <PIN_PA16__G0_TX0>,
+                        <PIN_PA17__G0_TX1>,
+                        <PIN_PA26__G0_TX2>,
+                        <PIN_PA27__G0_TX3>,
+                        <PIN_PA19__G0_RX0>,
+                        <PIN_PA20__G0_RX1>,
+                        <PIN_PA28__G0_RX2>,
+                        <PIN_PA29__G0_RX3>,
+                        <PIN_PA15__G0_TXEN>,
+                        <PIN_PA30__G0_RXCK>,
+                        <PIN_PA18__G0_RXDV>,
+                        <PIN_PA25__G0_125CK>;
+               slew-rate = <0>;
+               bias-disable;
+       };
+       pinctrl_gmac0_mdio_default: gmac0_mdio_default {
+               pinmux = <PIN_PA22__G0_MDC>,
+                        <PIN_PA23__G0_MDIO>;
+               bias-disable;
+       };
+       pinctrl_gmac0_txck_default: gmac0_txck_default {
+               pinmux = <PIN_PA24__G0_TXCK>;
+               slew-rate = <0>;
+               bias-pull-up;
+       };
+       pinctrl_gmac0_phy_irq: gmac0_phy_irq {
+               pinmux = <PIN_PA31__GPIO>;
+               bias-disable;
+       };
+       pinctrl_gmac1_default: gmac1_default {
+               pinmux = <PIN_PD30__G1_TXCK>,
+                        <PIN_PD22__G1_TX0>,
+                        <PIN_PD23__G1_TX1>,
+                        <PIN_PD21__G1_TXEN>,
+                        <PIN_PD25__G1_RX0>,
+                        <PIN_PD26__G1_RX1>,
+                        <PIN_PD27__G1_RXER>,
+                        <PIN_PD24__G1_RXDV>;
+               slew-rate = <0>;
+               bias-disable;
+       };
+       pinctrl_gmac1_mdio_default: gmac1_mdio_default {
+               pinmux = <PIN_PD28__G1_MDC>,
+                        <PIN_PD29__G1_MDIO>;
+               bias-disable;
+       };
+       pinctrl_gmac1_phy_irq: gmac1_phy_irq {
+               pinmux = <PIN_PA21__GPIO>;
+               bias-disable;
+       };
+       pinctrl_i2c1_default: i2c1_default {
+               pinmux = <PIN_PC9__FLEXCOM1_IO0>,
+                        <PIN_PC10__FLEXCOM1_IO1>;
+               bias-disable;
+       };
+       pinctrl_i2c8_default: i2c8_default {
+               pinmux = <PIN_PC14__FLEXCOM8_IO0>,
+                        <PIN_PC13__FLEXCOM8_IO1>;
+               bias-disable;
+       };
+       pinctrl_i2c9_default: i2c9_default {
+               pinmux = <PIN_PC18__FLEXCOM9_IO0>,
+                        <PIN_PC19__FLEXCOM9_IO1>;
+               bias-disable;
+       };
+       pinctrl_i2s0_default: i2s0_default {
+               pinmux = <PIN_PB23__I2SMCC0_CK>,
+                        <PIN_PB24__I2SMCC0_WS>,
+                        <PIN_PB25__I2SMCC0_DOUT1>,
+                        <PIN_PB26__I2SMCC0_DOUT0>,
+                        <PIN_PB27__I2SMCC0_MCK>;
+               bias-disable;
+       };
+       pinctrl_key_gpio_default: key_gpio_default {
+               pinmux = <PIN_PA12__GPIO>;
+               bias-pull-up;
+       };
+       pinctrl_led_gpio_default: led_gpio_default {
+               pinmux = <PIN_PA13__GPIO>,
+                        <PIN_PB8__GPIO>,
+                        <PIN_PD20__GPIO>;
+               bias-pull-up;
+       };
+       pinctrl_mikrobus1_an_default: mikrobus1_an_default {
+               pinmux = <PIN_PD0__GPIO>;
+               bias-disable;
+       };
+       pinctrl_mikrobus2_an_default: mikrobus2_an_default {
+               pinmux = <PIN_PD1__GPIO>;
+               bias-disable;
+       };
+       pinctrl_mikrobus1_pwm2_default: mikrobus1_pwm2_default {
+               pinmux = <PIN_PA13__PWMH2>;
+               bias-disable;
+       };
+       pinctrl_mikrobus2_pwm3_default: mikrobus2_pwm3_default {
+               pinmux = <PIN_PD20__PWMH3>;
+               bias-disable;
+       };
+       pinctrl_mikrobus1_spi_cs: mikrobus1_spi_cs {
+               pinmux = <PIN_PB6__FLEXCOM11_IO3>;
+               bias-disable;
+       };
+       pinctrl_mikrobus1_spi: mikrobus1_spi {
+               pinmux = <PIN_PB3__FLEXCOM11_IO0>,
+                        <PIN_PB4__FLEXCOM11_IO1>,
+                        <PIN_PB5__FLEXCOM11_IO2>;
+               bias-disable;
+       };
+       pinctrl_pdmc0_default: pdmc0_default {
+               pinmux = <PIN_PD23__PDMC0_DS0>,
+                        <PIN_PD24__PDMC0_DS1>,
+                        <PIN_PD22__PDMC0_CLK>;
+               bias_disable;
+       };
+       pinctrl_qspi: qspi {
+               pinmux = <PIN_PB12__QSPI0_IO0>,
+                        <PIN_PB11__QSPI0_IO1>,
+                        <PIN_PB10__QSPI0_IO2>,
+                        <PIN_PB9__QSPI0_IO3>,
+                        <PIN_PB16__QSPI0_IO4>,
+                        <PIN_PB17__QSPI0_IO5>,
+                        <PIN_PB18__QSPI0_IO6>,
+                        <PIN_PB19__QSPI0_IO7>,
+                        <PIN_PB13__QSPI0_CS>,
+                        <PIN_PB14__QSPI0_SCK>,
+                        <PIN_PB15__QSPI0_SCKN>,
+                        <PIN_PB20__QSPI0_DQS>,
+                        <PIN_PB21__QSPI0_INT>;
+               bias-disable;
+               slew-rate = <0>;
+               atmel,drive-strength = <ATMEL_PIO_DRVSTR_ME>;
+       };
+       pinctrl_sdmmc0_default: sdmmc0_default {
+               cmd_data {
+                       pinmux = <PIN_PA1__SDMMC0_CMD>,
+                                <PIN_PA3__SDMMC0_DAT0>,
+                                <PIN_PA4__SDMMC0_DAT1>,
+                                <PIN_PA5__SDMMC0_DAT2>,
+                                <PIN_PA6__SDMMC0_DAT3>,
+                                <PIN_PA7__SDMMC0_DAT4>,
+                                <PIN_PA8__SDMMC0_DAT5>,
+                                <PIN_PA9__SDMMC0_DAT6>,
+                                <PIN_PA10__SDMMC0_DAT7>;
+                       slew-rate = <0>;
+                       bias-pull-up;
+               };
+               ck_cd_rstn_vddsel {
+                       pinmux = <PIN_PA0__SDMMC0_CK>,
+                                <PIN_PA2__SDMMC0_RSTN>,
+                                <PIN_PA11__SDMMC0_DS>;
+                       slew-rate = <0>;
+                       bias-pull-up;
+               };
+       };
+       pinctrl_sdmmc1_default: sdmmc1_default {
+               cmd_data {
+                       pinmux = <PIN_PB29__SDMMC1_CMD>,
+                                <PIN_PB31__SDMMC1_DAT0>,
+                                <PIN_PC0__SDMMC1_DAT1>,
+                                <PIN_PC1__SDMMC1_DAT2>,
+                                <PIN_PC2__SDMMC1_DAT3>;
+                       slew-rate = <0>;
+                       bias-pull-up;
+               };
+               ck_cd_rstn_vddsel {
+                       pinmux = <PIN_PB30__SDMMC1_CK>,
+                                <PIN_PB28__SDMMC1_RSTN>,
+                                <PIN_PC5__SDMMC1_1V8SEL>,
+                                <PIN_PC4__SDMMC1_CD>;
+                       slew-rate = <0>;
+                       bias-pull-up;
+               };
+       };
+       pinctrl_sdmmc2_default: sdmmc2_default {
+               cmd_data {
+                       pinmux = <PIN_PD3__SDMMC2_CMD>,
+                                <PIN_PD5__SDMMC2_DAT0>,
+                                <PIN_PD6__SDMMC2_DAT1>,
+                                <PIN_PD7__SDMMC2_DAT2>,
+                                <PIN_PD8__SDMMC2_DAT3>;
+                       slew-rate = <0>;
+                       bias-pull-up;
+               };
+               ck {
+                       pinmux = <PIN_PD4__SDMMC2_CK>;
+                       slew-rate = <0>;
+                       bias-pull-up;
+               };
+       };
+       pinctrl_spdifrx_default: spdifrx_default {
+               pinmux = <PIN_PB0__SPDIF_RX>;
+               bias-disable;
+       };
+       pinctrl_spdiftx_default: spdiftx_default {
+               pinmux = <PIN_PB1__SPDIF_TX>;
+               bias-disable;
+       };
+ };
+ &pwm {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_mikrobus1_pwm2_default &pinctrl_mikrobus2_pwm3_default>;
+       status = "disabled"; /* Conflict with leds. */
+ };
+ &rtt {
+       atmel,rtt-rtc-time-reg = <&gpbr 0x0>;
+ };
+ &sdmmc0 {
+       bus-width = <8>;
+       non-removable;
+       sdhci-caps-mask = <0x0 0x00200000>;
+       vmmc-supply = <&vdd_3v3>;
+       vqmmc-supply = <&vldo1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sdmmc0_default>;
+       status = "okay";
+ };
+ &sdmmc1 {
+       bus-width = <4>;
+       no-1-8-v;
+       sdhci-caps-mask = <0x0 0x00200000>;
+       vmmc-supply = <&vdd_3v3>;
+       vqmmc-supply = <&vdd_3v3>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sdmmc1_default>;
+       status = "okay";
+ };
+ &sdmmc2 {
+       bus-width = <4>;
+       no-1-8-v;
+       sdhci-caps-mask = <0x0 0x00200000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sdmmc2_default>;
+ };
+ &shdwc {
++      debounce-delay-us = <976>;
+       status = "okay";
+       input@0 {
+               reg = <0>;
+       };
+ };
+ &spdifrx {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_spdifrx_default>;
+       status = "okay";
+ };
+ &spdiftx {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_spdiftx_default>;
+       status = "okay";
+ };
+ &tcb0 {
+       timer0: timer@0 {
+               compatible = "atmel,tcb-timer";
+               reg = <0>;
+       };
+       timer1: timer@1 {
+               compatible = "atmel,tcb-timer";
+               reg = <1>;
+       };
+ };
+ &trng {
+       status = "okay";
+ };
+ &vddout25 {
+       vin-supply = <&vdd_3v3>;
+       status = "okay";
+ };
index 0000000,88869ca..045cb25
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,245 +1,245 @@@
 -                                      pendown-gpio = <&pioC 2 GPIO_ACTIVE_HIGH>;
+ // SPDX-License-Identifier: GPL-2.0-only
+ /*
+  * at91sam9261ek.dts - Device Tree file for Atmel at91sam9261 reference board
+  *
+  *  Copyright (C) 2013 Jean-Jacques Hiblot <jjhiblot@traphandler.com>
+  */
+ /dts-v1/;
+ #include "at91sam9261.dtsi"
+ / {
+       model = "Atmel at91sam9261ek";
+       compatible = "atmel,at91sam9261ek", "atmel,at91sam9261", "atmel,at91sam9";
+       chosen {
+               bootargs = "rootfstype=ubifs ubi.mtd=5 root=ubi0:rootfs rw";
+               stdout-path = "serial0:115200n8";
+       };
+       memory@20000000 {
+               reg = <0x20000000 0x4000000>;
+       };
+       clocks {
+               slow_xtal {
+                       clock-frequency = <32768>;
+               };
+               main_xtal {
+                       clock-frequency = <18432000>;
+               };
+       };
+       ahb {
+               usb0: ohci@500000 {
+                       status = "okay";
+               };
+               fb0: fb@600000 {
+                       display = <&display0>;
+                       atmel,power-control-gpio = <&pioA 12 GPIO_ACTIVE_LOW>;
+                       status = "okay";
+                       display0: panel {
+                               bits-per-pixel = <16>;
+                               atmel,lcdcon-backlight;
+                               atmel,dmacon = <0x1>;
+                               atmel,lcdcon2 = <0x80008002>;
+                               atmel,guard-time = <1>;
+                               atmel,lcd-wiring-mode = "BRG";
+                               display-timings {
+                                       native-mode = <&timing0>;
+                                       timing0: timing0 {
+                                               clock-frequency = <4965000>;
+                                               hactive = <240>;
+                                               vactive = <320>;
+                                               hback-porch = <1>;
+                                               hfront-porch = <33>;
+                                               vback-porch = <1>;
+                                               vfront-porch = <0>;
+                                               hsync-len = <5>;
+                                               vsync-len = <1>;
+                                               hsync-active = <1>;
+                                               vsync-active = <1>;
+                                       };
+                               };
+                       };
+               };
+               ebi: ebi@10000000 {
+                       status = "okay";
+                       nand_controller: nand-controller {
+                               status = "okay";
+                               pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
+                               pinctrl-names = "default";
+                               nand@3 {
+                                       reg = <0x3 0x0 0x800000>;
+                                       rb-gpios = <&pioC 15 GPIO_ACTIVE_HIGH>;
+                                       cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
+                                       nand-bus-width = <8>;
+                                       nand-ecc-mode = "soft";
+                                       nand-on-flash-bbt;
+                                       label = "atmel_nand";
+                                       partitions {
+                                               compatible = "fixed-partitions";
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               at91bootstrap@0 {
+                                                       label = "at91bootstrap";
+                                                       reg = <0x0 0x40000>;
+                                               };
+                                               bootloader@40000 {
+                                                       label = "bootloader";
+                                                       reg = <0x40000 0x80000>;
+                                               };
+                                               bootloaderenv@c0000 {
+                                                       label = "bootloader env";
+                                                       reg = <0xc0000 0xc0000>;
+                                               };
+                                               dtb@180000 {
+                                                       label = "device tree";
+                                                       reg = <0x180000 0x80000>;
+                                               };
+                                               kernel@200000 {
+                                                       label = "kernel";
+                                                       reg = <0x200000 0x600000>;
+                                               };
+                                               rootfs@800000 {
+                                                       label = "rootfs";
+                                                       reg = <0x800000 0x0f800000>;
+                                               };
+                                       };
+                               };
+                       };
+               };
+               apb {
+                       tcb0: timer@fffa0000 {
+                               timer0: timer@0 {
+                                       compatible = "atmel,tcb-timer";
+                                       reg = <0>, <1>;
+                               };
+                               timer1: timer@2 {
+                                       compatible = "atmel,tcb-timer";
+                                       reg = <2>;
+                               };
+                       };
+                       usb1: gadget@fffa4000 {
+                               atmel,vbus-gpio = <&pioB 29 GPIO_ACTIVE_HIGH>;
+                               status = "okay";
+                       };
+                       spi0: spi@fffc8000 {
+                               cs-gpios = <&pioA 3 0>, <0>, <&pioA 28 0>, <0>;
+                               status = "okay";
+                               flash@0 {
+                                       compatible = "atmel,at45", "atmel,dataflash";
+                                       reg = <0>;
+                                       spi-max-frequency = <15000000>;
+                               };
+                               tsc2046@2 {
+                                       reg = <2>;
+                                       compatible = "ti,ads7843";
+                                       interrupts-extended = <&pioC 2 IRQ_TYPE_EDGE_BOTH>;
+                                       spi-max-frequency = <3000000>;
++                                      pendown-gpio = <&pioC 2 GPIO_ACTIVE_LOW>;
+                                       ti,x-min = /bits/ 16 <150>;
+                                       ti,x-max = /bits/ 16 <3830>;
+                                       ti,y-min = /bits/ 16 <190>;
+                                       ti,y-max = /bits/ 16 <3830>;
+                                       ti,vref-delay-usecs = /bits/ 16 <450>;
+                                       ti,x-plate-ohms = /bits/ 16 <450>;
+                                       ti,y-plate-ohms = /bits/ 16 <250>;
+                                       ti,pressure-max = /bits/ 16 <15000>;
+                                       ti,debounce-rep = /bits/ 16 <0>;
+                                       ti,debounce-tol = /bits/ 16 <65535>;
+                                       ti,debounce-max = /bits/ 16 <1>;
+                                       wakeup-source;
+                               };
+                       };
+                       dbgu: serial@fffff200 {
+                               status = "okay";
+                       };
+                       rtc@fffffd20 {
+                               atmel,rtt-rtc-time-reg = <&gpbr 0x0>;
+                       };
+                       watchdog@fffffd40 {
+                               status = "okay";
+                       };
+               };
+       };
+       leds {
+               compatible = "gpio-leds";
+               ds8 {
+                       label = "ds8";
+                       gpios = <&pioA 13 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "none";
+               };
+               ds7 {
+                       label = "ds7";
+                       gpios = <&pioA 14 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "nand-disk";
+               };
+               ds1 {
+                       label = "ds1";
+                       gpios = <&pioA 23 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+       gpio-keys {
+               compatible = "gpio-keys";
+               button-0 {
+                       label = "button_0";
+                       gpios = <&pioA 27 GPIO_ACTIVE_LOW>;
+                       linux,code = <256>;
+                       wakeup-source;
+               };
+               button-1 {
+                       label = "button_1";
+                       gpios = <&pioA 26 GPIO_ACTIVE_LOW>;
+                       linux,code = <257>;
+                       wakeup-source;
+               };
+               button-2 {
+                       label = "button_2";
+                       gpios = <&pioA 25 GPIO_ACTIVE_LOW>;
+                       linux,code = <258>;
+                       wakeup-source;
+               };
+               button-3 {
+                       label = "button_3";
+                       gpios = <&pioA 24 GPIO_ACTIVE_LOW>;
+                       linux,code = <259>;
+                       wakeup-source;
+               };
+       };
+ };
index 0000000,212c623..7d032d1
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,592 +1,593 @@@
+ // SPDX-License-Identifier: GPL-2.0-only
+ /*
+  * Copyright 2013 Sascha Hauer, Pengutronix
+  *
+  * Copyright 2013-2021 TQ-Systems GmbH
+  * Author: Markus Niebel <Markus.Niebel@tq-group.com>
+  */
+ #include <dt-bindings/clock/imx6qdl-clock.h>
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/input/input.h>
+ #include <dt-bindings/sound/fsl-imx-audmux.h>
+ / {
+       aliases {
+               mmc0 = &usdhc3;
+               mmc1 = &usdhc2;
+               /delete-property/ mmc2;
+               /delete-property/ mmc3;
+               rtc0 = &rtc0;
+       };
+       chosen {
+               stdout-path = &uart2;
+       };
+       beeper: gpio-beeper {
+               compatible = "gpio-beeper";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpiobeeper>;
+               gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;
+       };
+       gpio_buttons: gpio-buttons {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpiobuttons>;
+               button1 {
+                       label = "s6";
+                       linux,code = <KEY_F6>;
+                       gpios = <&gpio7 13 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
+               };
+               button2 {
+                       label = "s7";
+                       linux,code = <KEY_F7>;
+                       gpios = <&gpio7 12 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
+               };
+               button3 {
+                       label = "s8";
+                       linux,code = <KEY_F8>;
+                       gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
+               };
+       };
+       gpio-leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpioled>;
+               led1 {
+                       label = "led1";
+                       gpios = <&gpio6 16 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-on";
+               };
+               led2 {
+                       label = "led2";
+                       gpios = <&gpio6 31 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+       reg_mba6_3p3v: regulator-mba6-3p3v {
+               compatible = "regulator-fixed";
+               regulator-name = "supply-mba6-3p3v";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+       reg_pcie: regulator-pcie {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_regpcie>;
+               regulator-name = "supply-pcie";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               /* PCIE.PWR_EN */
+               gpio = <&gpio2 0 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+               vin-supply = <&reg_mba6_3p3v>;
+       };
+       reg_vcc3v3_audio: regulator-vcc3v3-audio {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3-audio";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&reg_mba6_3p3v>;
+       };
+       sound {
+               compatible = "fsl,imx-audio-tlv320aic32x4";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_audmux>;
+               model = "imx-audio-tlv320aic32x4";
+               ssi-controller = <&ssi1>;
+               audio-codec = <&tlv320aic32x4>;
+               audio-asrc = <&asrc>;
+               audio-routing =
+                       "IN3_L", "Mic Jack",
+                       "Mic Jack", "Mic Bias",
+                       "IN1_L", "Line In Jack",
+                       "IN1_R", "Line In Jack",
+                       "Line Out Jack", "LOL",
+                       "Line Out Jack", "LOR";
+               mux-int-port = <1>;
+               mux-ext-port = <3>;
+       };
+ };
+ &audmux {
+       status = "okay";
+       mux-ssi0 {
+               fsl,audmux-port = <MX31_AUDMUX_PORT1_SSI0>;
+               fsl,port-config = <
+                       (IMX_AUDMUX_V2_PTCR_SYN |
+                               IMX_AUDMUX_V2_PTCR_TFSDIR |
+                               IMX_AUDMUX_V2_PTCR_TFSEL(MX31_AUDMUX_PORT3_SSI_PINS_3) |
+                               IMX_AUDMUX_V2_PTCR_TCLKDIR |
+                               IMX_AUDMUX_V2_PTCR_TCSEL(MX31_AUDMUX_PORT3_SSI_PINS_3))
+                       IMX_AUDMUX_V2_PDCR_RXDSEL(MX31_AUDMUX_PORT3_SSI_PINS_3)
+               >;
+       };
+       mux-aud3 {
+               fsl,audmux-port = <MX31_AUDMUX_PORT3_SSI_PINS_3>;
+               fsl,port-config = <
+                       IMX_AUDMUX_V2_PTCR_SYN
+                       IMX_AUDMUX_V2_PDCR_RXDSEL(MX31_AUDMUX_PORT1_SSI0)
+               >;
+       };
+ };
+ &can1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_can1>;
+       status = "okay";
+ };
+ &can2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_can2>;
+       status = "okay";
+ };
+ &ecspi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi1>, <&pinctrl_ecspi1_mba6>;
+       cs-gpios = <&gpio3 19 0>, <&gpio3 24 0>;
+ };
+ &fec {
+       phy-mode = "rgmii-id";
+       phy-handle = <&ethphy>;
+       mac-address = [00 00 00 00 00 00];
+       status = "okay";
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               ethphy: ethernet-phy@3 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <3>;
+                       interrupt-parent = <&gpio1>;
+                       interrupts = <28 IRQ_TYPE_LEVEL_LOW>;
+                       reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <1000>;
+                       reset-deassert-us = <100000>;
+                       micrel,force-master;
+                       max-speed = <1000>;
+               };
+       };
+ };
+ &hdmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hdmi>;
+       ddc-i2c-bus = <&i2c2>;
+       status = "okay";
+ };
+ &i2c1 {
+       tlv320aic32x4: audio-codec@18 {
+               compatible = "ti,tlv320aic32x4";
+               reg = <0x18>;
+               clocks = <&clks IMX6QDL_CLK_CKO>;
+               clock-names = "mclk";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_codec>;
+               ldoin-supply = <&reg_vcc3v3_audio>;
+               iov-supply = <&reg_mba6_3p3v>;
+       };
+ };
+ /* DDC */
+ &i2c2 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       pinctrl-1 = <&pinctrl_i2c2_recovery>;
+       scl-gpios = <&gpio4 12 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio4 13 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       status = "okay";
+ };
+ &pcie {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pcie>;
+       reset-gpio = <&gpio6 7 GPIO_ACTIVE_LOW>;
++      vpcie-supply = <&reg_pcie>;
+       status = "okay";
+ };
+ &pwm1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm1>;
+       status = "okay";
+ };
+ &pwm3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm3>;
+       status = "okay";
+ };
+ &pwm4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm4>;
+       status = "okay";
+ };
+ &snvs_poweroff {
+       status = "okay";
+ };
+ &ssi1 {
+       status = "okay";
+ };
+ &uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       status = "okay";
+ };
+ &uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart3>;
+       uart-has-rtscts;
+       status = "okay";
+ };
+ &uart4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart4>;
+       uart-has-rtscts;
+       linux,rs485-enabled-at-boot-time;
+       rs485-rts-active-low;
+       rs485-rx-during-tx;
+       status = "okay";
+ };
+ &uart5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart5>;
+       uart-has-rtscts;
+       status = "okay";
+ };
+ &usbh1 {
+       disable-over-current;
+       status = "okay";
+       #address-cells = <1>;
+       #size-cells = <0>;
+       hub@1 {
+               compatible = "usb424,2517";
+               reg = <1>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               ethernet@1 {
+                       compatible = "usb424,9e00";
+                       reg = <1>;
+                       nvmem-cells = <&mba_mac_address>;
+                       nvmem-cell-names = "mac-address";
+               };
+       };
+ };
+ &usbotg {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usbotg>;
+       power-active-high;
+       over-current-active-low;
+       srp-disable;
+       hnp-disable;
+       adp-disable;
+       dr_mode = "otg";
+       status = "okay";
+ };
+ /* SD card slot */
+ &usdhc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc2>;
+       vmmc-supply = <&reg_mba6_3p3v>;
+       bus-width = <4>;
+       no-1-8-v;
+       no-mmc;
+       no-sdio;
+       cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
+       wp-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+ };
+ &wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog1>;
+       /* does not work on unmodified starter kit */
+       /* fsl,ext-reset-output; */
+       status = "okay";
+ };
+ &iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog>;
+       pinctrl_audmux: audmuxgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_CSI0_DAT7__AUD3_RXD  0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT4__AUD3_TXC  0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT5__AUD3_TXD  0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS 0x1b0b0
+               >;
+       };
+       pinctrl_can1: can1grp {
+               fsl,pins = <
+                       MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0xb099
+                       MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0xb099
+               >;
+       };
+       pinctrl_can2: can2grp {
+               fsl,pins = <
+                       MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX 0xb099
+                       MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX 0xb099
+               >;
+       };
+       pinctrl_codec: codecgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_CSI0_MCLK__CCM_CLKO1 0xb0 /* CLK */
+               >;
+       };
+       pinctrl_ecspi1_mba6: ecspimba6grp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_D24__GPIO3_IO24 0xb099 /* eCSPI1 SS2 */
+               >;
+       };
+       pinctrl_enet: enetgrp {
+               fsl,pins = <
+                       /* FEC phy IRQ */
+                       MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28     0x00011008
+                       /* FEC phy reset */
+                       MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25   0x1b099
+                       /* DSE = 100, 100k up, SPEED = MED */
+                       MX6QDL_PAD_ENET_MDIO__ENET_MDIO       0xb0a0
+                       MX6QDL_PAD_ENET_MDC__ENET_MDC         0xb0a0
+                       /* DSE = 111, pull 100k up */
+                       MX6QDL_PAD_RGMII_TXC__RGMII_TXC       0xb038
+                       MX6QDL_PAD_RGMII_TD0__RGMII_TD0       0xb038
+                       MX6QDL_PAD_RGMII_TD1__RGMII_TD1       0xb038
+                       MX6QDL_PAD_RGMII_TD2__RGMII_TD2       0xb038
+                       MX6QDL_PAD_RGMII_TD3__RGMII_TD3       0xb038
+                       MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0xb038
+                       /* DSE = 111, pull external */
+                       MX6QDL_PAD_RGMII_RXC__RGMII_RXC       0x0038
+                       MX6QDL_PAD_RGMII_RD0__RGMII_RD0       0x0038
+                       MX6QDL_PAD_RGMII_RD1__RGMII_RD1       0x0038
+                       MX6QDL_PAD_RGMII_RD2__RGMII_RD2       0x0038
+                       MX6QDL_PAD_RGMII_RD3__RGMII_RD3       0x0038
+                       MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x0038
+                       /* HYS = 1, DSE = 111, 100k up, SPEED = HIGH */
+                       MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK  0x1b0f0
+               >;
+       };
+       pinctrl_gpiobeeper: gpiobeepergrp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD1_DAT3__GPIO1_IO21 0xb099
+               >;
+       };
+       pinctrl_gpiobuttons: gpiobuttongrp {
+               fsl,pins = <
+                       MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x0001b099
+                       MX6QDL_PAD_GPIO_18__GPIO7_IO13 0x0001b099
+                       MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x0001b099
+               >;
+       };
+       pinctrl_gpioled: gpioledgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_NANDF_CS3__GPIO6_IO16 0xb099 /* LED V15 */
+                       MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 0xb099 /* LED V16 */
+               >;
+       };
+       pinctrl_hdmi: hdmigrp {
+               /* NOTE: DDC is done via I2C2, so DON'T
+                * configure DDC pins for HDMI!
+                */
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_A25__HDMI_TX_CEC_LINE 0x1f8b0
+               >;
+       };
+       pinctrl_hog: hoggrp {
+               fsl,pins = <
+                       MX6QDL_PAD_DI0_PIN4__GPIO4_IO20 0x0001b099
+                       MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x0001b099
+                       MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x0001b099
+                       MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x0001b099
+                       MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x0001b099
+                       MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x0001b099
+                       MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x0001b099
+                       MX6QDL_PAD_SD4_DAT0__GPIO2_IO08 0x0001b099
+                       MX6QDL_PAD_EIM_CS0__GPIO2_IO23 0x0001b099
+                       MX6QDL_PAD_EIM_CS1__GPIO2_IO24 0x0001b099
+                       MX6QDL_PAD_EIM_OE__GPIO2_IO25 0x0001b099
+                       MX6QDL_PAD_EIM_D20__GPIO3_IO20 0x0001b099
+                       MX6QDL_PAD_EIM_D26__GPIO3_IO26 0x0001b099
+                       MX6QDL_PAD_EIM_D27__GPIO3_IO27 0x0001b099
+                       MX6QDL_PAD_EIM_D28__GPIO3_IO28 0x0001b099
+                       MX6QDL_PAD_EIM_D29__GPIO3_IO29 0x0001b099
+                       MX6QDL_PAD_KEY_COL0__GPIO4_IO06 0x0001b099
+                       MX6QDL_PAD_KEY_ROW0__GPIO4_IO07 0x0001b099
+                       MX6QDL_PAD_KEY_COL1__GPIO4_IO08 0x0001b099
+                       MX6QDL_PAD_KEY_ROW1__GPIO4_IO09 0x0001b099
+                       MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18 0x0001b099
+                       MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20 0x0001b099
+                       MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21 0x0001b099
+                       MX6QDL_PAD_NANDF_ALE__GPIO6_IO08 0x0001b099
+                       MX6QDL_PAD_NANDF_CS1__GPIO6_IO14 0x0001b099
+               >;
+       };
+       pinctrl_i2c2: i2c2grp {
+               fsl,pins = <
+                       MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b899
+                       MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b899
+               >;
+       };
+       pinctrl_i2c2_recovery: i2c2recoverygrp {
+               fsl,pins = <
+                       MX6QDL_PAD_KEY_COL3__GPIO4_IO12 0x4001b899
+                       MX6QDL_PAD_KEY_ROW3__GPIO4_IO13 0x4001b899
+               >;
+       };
+       pinctrl_pcie: pciegrp {
+               fsl,pins = <
+                       /* HYS = 1, DSE = 110, 100k up, SPEED = HIGH (11)*/
+                       MX6QDL_PAD_SD4_DAT3__GPIO2_IO11 0x001b0f0 /* #PCIE.WAKE */
+                       MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x001b0f0 /* #PCIE.RST */
+                       MX6QDL_PAD_NANDF_CS0__GPIO6_IO11 0x001b0f0 /* #PCIE.DIS */
+               >;
+       };
+       pinctrl_pwm1: pwm1grp {
+               fsl,pins = <
+                       /* 100 k PD, DSE 120 OHM, SPPEED LO */
+                       MX6QDL_PAD_GPIO_9__PWM1_OUT 0x00003050
+               >;
+       };
+       pinctrl_pwm3: pwm3grp {
+               fsl,pins = <
+                       /* 100 k PD, DSE 120 OHM, SPPEED LO */
+                       MX6QDL_PAD_SD4_DAT1__PWM3_OUT 0x00003050
+               >;
+       };
+       pinctrl_pwm4: pwm4grp {
+               fsl,pins = <
+                       /* 100 k PD, DSE 120 OHM, SPPEED LO */
+                       MX6QDL_PAD_SD4_DAT2__PWM4_OUT 0x00003050
+               >;
+       };
+       pinctrl_regpcie: regpciegrp {
+               fsl,pins = <
+                       /* HYS = 1, DSE = 110, PUE+PKE, SPEED = HIGH (11)*/
+                       MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x00130f0 /* PCIE.PWR_EN */
+               >;
+       };
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x1b099
+                       MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b099
+               >;
+       };
+       pinctrl_uart3: uart3grp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD4_CLK__UART3_RX_DATA 0x1b0b1
+                       MX6QDL_PAD_SD4_CMD__UART3_TX_DATA 0x1b0b1
+                       MX6QDL_PAD_EIM_D30__UART3_CTS_B   0x1b0b1
+                       MX6QDL_PAD_EIM_D31__UART3_RTS_B   0x1b0b1
+               >;
+       };
+       pinctrl_uart4: uart4grp {
+               fsl,pins = <
+                       MX6QDL_PAD_CSI0_DAT12__UART4_TX_DATA 0x1b0b1
+                       MX6QDL_PAD_CSI0_DAT13__UART4_RX_DATA 0x1b0b1
+                       MX6QDL_PAD_CSI0_DAT16__UART4_RTS_B 0x1b0b1
+                       MX6QDL_PAD_CSI0_DAT17__UART4_CTS_B 0x1b0b1
+               >;
+       };
+       pinctrl_uart5: uart5grp {
+               fsl,pins = <
+                       MX6QDL_PAD_CSI0_DAT14__UART5_TX_DATA 0x1b0b1
+                       MX6QDL_PAD_CSI0_DAT15__UART5_RX_DATA 0x1b0b1
+                       MX6QDL_PAD_CSI0_DAT18__UART5_RTS_B 0x1b0b1
+                       MX6QDL_PAD_CSI0_DAT19__UART5_CTS_B 0x1b0b1
+               >;
+       };
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       /* CLK: 47k Pup SPD_LOW DSE 40Ohm SRE_FAST HYS */
+                       MX6QDL_PAD_SD2_CLK__SD2_CLK    0x00017071
+                       /* SD2: 47k Pup SPD_LOW DSE 80Ohm SRE_FAST HYS */
+                       MX6QDL_PAD_SD2_CMD__SD2_CMD    0x00017059
+                       MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x00017059
+                       MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x00017059
+                       MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x00017059
+                       MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x00017059
+                       MX6QDL_PAD_GPIO_4__GPIO1_IO04  0x0001b099 /* usdhc2 CD */
+                       MX6QDL_PAD_GPIO_2__GPIO1_IO02  0x0001b099 /* usdhc2 WP */
+               >;
+       };
+       pinctrl_usbotg: usbotggrp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_D21__USB_OTG_OC  0x0001b0b0
+                       MX6QDL_PAD_GPIO_1__USB_OTG_ID   0x00017059
+                       MX6QDL_PAD_EIM_D22__USB_OTG_PWR 0x0001b099
+               >;
+       };
+       pinctrl_wdog1: wdog1grp {
+               fsl,pins = <
+                        /* Watchdog out */
+                       MX6QDL_PAD_SD1_DAT2__WDOG1_B 0x0000b099
+               >;
+       };
+ };
index 0000000,a386c1e..45315ad
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,260 +1,267 @@@
+ // SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
+ /*
+  * Copyright (C) 2023 DH electronics GmbH
+  */
+ #include <dt-bindings/clock/imx6ul-clock.h>
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/input/input.h>
+ #include <dt-bindings/leds/common.h>
+ #include <dt-bindings/pwm/pwm.h>
++#include <dt-bindings/regulator/dlg,da9063-regulator.h>
+ #include "imx6ull.dtsi"
+ / {
+       aliases {
+               /delete-property/ mmc0;
+               /delete-property/ mmc1;
+       };
+       memory@80000000 {
+               /* Appropriate memory size will be filled by U-Boot */
+               reg = <0x80000000 0>;
+               device_type = "memory";
+       };
+ };
+ &cpu0 {
+       /*
+        * Due to the design as a solderable SOM, there are no capacitors
+        * below the SoC, therefore higher voltages are required.
+        */
+       operating-points = <
+               /* kHz  uV */
+               900000  1275000
+               792000  1250000 /* Voltage increased */
+               528000  1175000
+               396000  1025000
+               198000  950000
+       >;
+       fsl,soc-operating-points = <
+               /* KHz  uV */
+               900000  1250000
+               792000  1250000 /* Voltage increased */
+               528000  1175000
+               396000  1175000
+               198000  1175000
+       >;
+ };
+ &gpio1 {
+       pinctrl-0 = <&pinctrl_spi1_switch>;
+       pinctrl-names = "default";
+       /*
+        * Pin SPI_BOOT_FLASH_EN (GPIO 1.9) is a switch for either using the
+        * DHCOM SPI1 interface or accessing the SPI bootflash. Both using
+        * ecspi1, but muxed to different pins. The DHCOM SPI1 interface uses
+        * the pins PAD_LCD_DATA21..23 and the SPI bootflash uses the pins
+        * PAD_CSI_DATA04..07. If the SPI bootflash is enabled the pins for
+        * DHCOM GPIOs N/O/P/Q/R/S/T/U aren't usable anymore, because they
+        * are used for the bus interface to the SPI bootflash. The GPIOs are
+        * disconnected by a buffer which is also controlled via the pin
+        * SPI_BOOT_FLASH_EN. Therefore the access to the bootflash is a
+        * special case and is disabled by setting GPIO 1.9 to high.
+        */
+       spi1-switch-hog {
+               gpio-hog;
+               gpios = <9 0>;
+               output-high;
+               line-name = "spi1-switch";
+       };
+ };
+ &i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-0 = <&pinctrl_i2c1>;
+       pinctrl-1 = <&pinctrl_i2c1_gpio>;
+       pinctrl-names = "default", "gpio";
+       scl-gpios = <&gpio1 28 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio1 29 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       status = "okay";
+       pmic@58 {
+               compatible = "dlg,da9061";
+               reg = <0x58>;
+               onkey {
+                       compatible = "dlg,da9061-onkey", "dlg,da9062-onkey";
+                       status = "disabled";
+               };
+               regulators {
+                       vdd_soc_in_1v4: buck1 {
++                              regulator-allowed-modes = <DA9063_BUCK_MODE_SLEEP>; /* PFM */
+                               regulator-always-on;
+                               regulator-boot-on;
++                              regulator-initial-mode = <DA9063_BUCK_MODE_SLEEP>;
+                               regulator-max-microvolt = <1400000>;
+                               regulator-min-microvolt = <1400000>;
+                               regulator-name = "vdd_soc_in_1v4";
+                       };
+                       vcc_3v3: buck2 {
++                              regulator-allowed-modes = <DA9063_BUCK_MODE_SYNC>; /* PWM */
+                               regulator-always-on;
+                               regulator-boot-on;
++                              regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-name = "vcc_3v3";
+                       };
+                       /*
+                        * The current DRR3 memory can be supplied with a
+                        * voltage of either 1.35V or 1.5V. For reasons of
+                        * backward compatibility to only 1.5V DDR3 memory,
+                        * the voltage is set to 1.5V.
+                        */
+                       vcc_ddr_1v35: buck3 {
++                              regulator-allowed-modes = <DA9063_BUCK_MODE_SYNC>; /* PWM */
+                               regulator-always-on;
+                               regulator-boot-on;
++                              regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>;
+                               regulator-max-microvolt = <1500000>;
+                               regulator-min-microvolt = <1500000>;
+                               regulator-name = "vcc_ddr_1v35";
+                       };
+                       vcc_2v5: ldo1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <2500000>;
+                               regulator-min-microvolt = <2500000>;
+                               regulator-name = "vcc_2v5";
+                       };
+                       vdd_snvs_in_3v3: ldo2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-name = "vdd_snvs_in_3v3";
+                       };
+                       vcc_1v8: ldo3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-name = "vcc_1v8";
+                       };
+                       vcc_1v2: ldo4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-min-microvolt = <1200000>;
+                               regulator-name = "vcc_1v2";
+                       };
+               };
+               thermal {
+                       compatible = "dlg,da9061-thermal", "dlg,da9062-thermal";
+                       status = "disabled";
+               };
+               watchdog {
+                       compatible = "dlg,da9061-watchdog", "dlg,da9062-watchdog";
+                       status = "disabled";
+               };
+       };
+ };
+ &ocotp {
+       /* Don't get write access by default */
+       read-only;
+ };
+ &reg_arm {
+       vin-supply = <&vdd_soc_in_1v4>;
+ };
+ &reg_soc {
+       vin-supply = <&vdd_soc_in_1v4>;
+ };
+ /* BT on LGA (BT_REG_ON is connected to LGA pin E1) */
+ &uart2 {
+       pinctrl-0 = <&pinctrl_uart2>;
+       pinctrl-names = "default";
+       uart-has-rtscts;
+       status = "okay";
+       /*
+        * Actually, the maximum speed of the chip is 4MBdps, but there are
+        * limitations that prevent this speed. It hasn't yet been figured out
+        * what the reason for this is. Currently, the maximum speed of 3MBdps
+        * can be used without any problems. If the limitation can be overcome,
+        * the speed can be increased accordingly.
+        */
+       bluetooth: bluetooth {
+               compatible = "brcm,bcm43430a1-bt"; /* muRata 1DX */
+               max-speed = <3000000>;
+               vbat-supply = <&vcc_3v3>;
+               vddio-supply = <&vcc_3v3>;
+       };
+ };
+ /* WiFi on LGA (WL_REG_ON is connected to LGA pin E3) */
+ &usdhc1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       bus-width = <4>;
+       no-1-8-v;
+       non-removable;
+       keep-power-in-suspend;
+       pinctrl-0 = <&pinctrl_usdhc1_wifi>;
+       pinctrl-names = "default";
+       wakeup-source;
+       status = "okay";
+       brcmf: wifi@1 {
+               compatible = "brcm,bcm43430a1-fmac", "brcm,bcm4329-fmac"; /* muRata 1DX */
+               reg = <1>;
+       };
+ };
+ &iomuxc {
+       pinctrl_i2c1: i2c1-grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART4_TX_DATA__I2C1_SCL       0x4001b8b0
+                       MX6UL_PAD_UART4_RX_DATA__I2C1_SDA       0x4001b8b0
+               >;
+       };
+       pinctrl_i2c1_gpio: i2c1-gpio-grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART4_TX_DATA__GPIO1_IO28     0x4001b8b0
+                       MX6UL_PAD_UART4_RX_DATA__GPIO1_IO29     0x4001b8b0
+               >;
+       };
+       pinctrl_spi1_switch: spi1-switch-grp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO09__GPIO1_IO09        0x120b0 /* SPI_BOOT_FLASH_EN */
+               >;
+       };
+       pinctrl_uart2: uart2-grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX   0x1b0b1
+                       MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX   0x1b0b1
+                       MX6UL_PAD_UART3_RX_DATA__UART2_DCE_RTS  0x1b0b1
+                       MX6UL_PAD_UART3_TX_DATA__UART2_DCE_CTS  0x1b0b1
+               >;
+       };
+       pinctrl_usdhc1_wifi: usdhc1-wifi-grp {
+               fsl,pins = <
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x1b0b0
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x10010
+                       MX6UL_PAD_SD1_DATA0__USDHC1_DATA0       0x1b0b0
+                       MX6UL_PAD_SD1_DATA1__USDHC1_DATA1       0x1b0b0
+                       MX6UL_PAD_SD1_DATA2__USDHC1_DATA2       0x1b0b0
+                       MX6UL_PAD_SD1_DATA3__USDHC1_DATA3       0x1b0b0
+               >;
+       };
+ };
index 0000000,d917dc4..6ad39dc
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,105 +1,105 @@@
 -              pendown-gpio = <&gpio2 7 0>;
+ // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+ //
+ // Copyright 2017 NXP
+ #include "imx7d-pico.dtsi"
+ / {
+       model = "TechNexion PICO-IMX7D Board using Hobbit baseboard";
+       compatible = "technexion,imx7d-pico-hobbit", "fsl,imx7d";
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_leds>;
+               led {
+                       label = "gpio-led";
+                       gpios = <&gpio2 13 GPIO_ACTIVE_HIGH>;
+               };
+       };
+       sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "imx7-sgtl5000";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,bitclock-master = <&dailink_master>;
+               simple-audio-card,frame-master = <&dailink_master>;
+               simple-audio-card,cpu {
+                       sound-dai = <&sai1>;
+               };
+               dailink_master: simple-audio-card,codec {
+                       sound-dai = <&sgtl5000>;
+                       clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_DIV>;
+               };
+       };
+ };
+ &i2c1 {
+       sgtl5000: codec@a {
+               #sound-dai-cells = <0>;
+               reg = <0x0a>;
+               compatible = "fsl,sgtl5000";
+               clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_DIV>;
+               VDDA-supply = <&reg_2p5v>;
+               VDDIO-supply = <&reg_vref_1v8>;
+       };
+ };
+ &i2c4 {
+       status = "okay";
+       adc081c: adc@50 {
+               compatible = "ti,adc081c";
+               reg = <0x50>;
+               vref-supply = <&reg_3p3v>;
+       };
+ };
+ &ecspi3 {
+       ads7846@0 {
+               reg = <0>;
+               compatible = "ti,ads7846";
+               interrupt-parent = <&gpio2>;
+               interrupts = <7 0>;
+               spi-max-frequency = <1000000>;
++              pendown-gpio = <&gpio2 7 GPIO_ACTIVE_LOW>;
+               vcc-supply = <&reg_3p3v>;
+               ti,x-min = /bits/ 16 <0>;
+               ti,x-max = /bits/ 16 <4095>;
+               ti,y-min = /bits/ 16 <0>;
+               ti,y-max = /bits/ 16 <4095>;
+               ti,pressure-max = /bits/ 16 <1024>;
+               ti,x-plate-ohms = /bits/ 16 <90>;
+               ti,y-plate-ohms = /bits/ 16 <90>;
+               ti,debounce-max = /bits/ 16 <70>;
+               ti,debounce-tol = /bits/ 16 <3>;
+               ti,debounce-rep = /bits/ 16 <2>;
+               ti,settle-delay-usec = /bits/ 16 <150>;
+               wakeup-source;
+       };
+ };
+ &iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog>;
+       pinctrl_hog: hoggrp {
+               fsl,pins = <
+                       MX7D_PAD_EPDC_DATA00__GPIO2_IO0         0x14
+                       MX7D_PAD_EPDC_DATA01__GPIO2_IO1         0x14
+                       MX7D_PAD_EPDC_DATA02__GPIO2_IO2         0x14
+                       MX7D_PAD_EPDC_DATA03__GPIO2_IO3         0x14
+                       MX7D_PAD_EPDC_DATA05__GPIO2_IO5         0x14
+                       MX7D_PAD_EPDC_DATA12__GPIO2_IO12        0x14
+                       MX7D_PAD_EPDC_DATA07__GPIO2_IO7         0x14
+               >;
+       };
+       pinctrl_gpio_leds: gpioledsgrp {
+               fsl,pins = <
+                       MX7D_PAD_EPDC_DATA13__GPIO2_IO13        0x14
+               >;
+       };
+ };
index 0000000,cc9b857..75f1cd1
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,904 +1,904 @@@
 -              pendown-gpio = <&gpio2 29 GPIO_ACTIVE_HIGH>;
+ // SPDX-License-Identifier: GPL-2.0+ OR MIT
+ //
+ // Copyright (C) 2015 Freescale Semiconductor, Inc.
+ /dts-v1/;
+ #include "imx7d.dtsi"
+ / {
+       model = "Freescale i.MX7 SabreSD Board";
+       compatible = "fsl,imx7d-sdb", "fsl,imx7d";
+       chosen {
+               stdout-path = &uart1;
+       };
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x80000000>;
+       };
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_keys>;
+               key-volume-up {
+                       label = "Volume Up";
+                       gpios = <&gpio5 11 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       wakeup-source;
+               };
+               key-volume-down {
+                       label = "Volume Down";
+                       gpios = <&gpio5 10 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       wakeup-source;
+               };
+       };
+       spi-4 {
+               compatible = "spi-gpio";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_spi4>;
+               sck-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
+               mosi-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
+               cs-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
+               num-chipselects = <1>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               extended_io: gpio-expander@0 {
+                       compatible = "fairchild,74hc595";
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       reg = <0>;
+                       registers-number = <1>;
+                       spi-max-frequency = <100000>;
+               };
+       };
+       reg_sd1_vmmc: regulator-sd1-vmmc {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_SD1";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               startup-delay-us = <200000>;
+               off-on-delay-us = <20000>;
+       };
+       reg_usb_otg1_vbus: regulator-usb-otg1-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_otg1_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+       reg_usb_otg2_vbus: regulator-usb-otg2-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_otg2_vbus";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usb_otg2_vbus_reg>;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio1 7 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+       reg_vref_1v8: regulator-vref-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "vref-1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+       reg_brcm: regulator-brcm {
+               compatible = "regulator-fixed";
+               gpio = <&gpio4 21 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-name = "brcm_reg";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_brcm_reg>;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               startup-delay-us = <200000>;
+       };
+       reg_lcd_3v3: regulator-lcd-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "lcd-3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&extended_io 7 GPIO_ACTIVE_LOW>;
+       };
+       reg_can2_3v3: regulator-can2-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "can2-3v3";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_flexcan2_reg>;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio2 14 GPIO_ACTIVE_LOW>;
+       };
+       reg_fec2_3v3: regulator-fec2-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "fec2-3v3";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_enet2_reg>;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio1 4 GPIO_ACTIVE_LOW>;
+       };
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pwm1 0 5000000 0>;
+               brightness-levels = <0 4 8 16 32 64 128 255>;
+               default-brightness-level = <6>;
+               status = "okay";
+       };
+       panel {
+               compatible = "innolux,at043tn24";
+               backlight = <&backlight>;
+               power-supply = <&reg_lcd_3v3>;
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&display_out>;
+                       };
+               };
+       };
+       sound {
+               compatible = "fsl,imx7d-evk-wm8960",
+                            "fsl,imx-audio-wm8960";
+               model = "wm8960-audio";
+               audio-cpu = <&sai1>;
+               audio-codec = <&codec>;
+               hp-det-gpio = <&gpio2 28 GPIO_ACTIVE_HIGH>;
+               audio-routing =
+                       "Headphone Jack", "HP_L",
+                       "Headphone Jack", "HP_R",
+                       "Ext Spk", "SPK_LP",
+                       "Ext Spk", "SPK_LN",
+                       "Ext Spk", "SPK_RP",
+                       "Ext Spk", "SPK_RN",
+                       "LINPUT1", "AMIC",
+                       "AMIC", "MICB";
+       };
+       sound-hdmi {
+               compatible = "fsl,imx-audio-sii902x";
+               model = "sii902x-audio";
+               audio-cpu = <&sai3>;
+               hdmi-out;
+       };
+ };
+ &adc1 {
+       vref-supply = <&reg_vref_1v8>;
+       status = "okay";
+ };
+ &adc2 {
+       vref-supply = <&reg_vref_1v8>;
+       status = "okay";
+ };
+ &cpu0 {
+       cpu-supply = <&sw1a_reg>;
+ };
+ &cpu1 {
+       cpu-supply = <&sw1a_reg>;
+ };
+ &ecspi3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi3>;
+       cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
+       status = "okay";
+       tsc2046@0 {
+               compatible = "ti,tsc2046";
+               reg = <0>;
+               spi-max-frequency = <1000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_tsc2046_pendown>;
+               interrupt-parent = <&gpio2>;
+               interrupts = <29 0>;
++              pendown-gpio = <&gpio2 29 GPIO_ACTIVE_LOW>;
+               touchscreen-max-pressure = <255>;
+               wakeup-source;
+       };
+ };
+ &fec1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet1>;
+       assigned-clocks = <&clks IMX7D_ENET1_TIME_ROOT_SRC>,
+                         <&clks IMX7D_ENET1_TIME_ROOT_CLK>;
+       assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>;
+       assigned-clock-rates = <0>, <100000000>;
+       phy-mode = "rgmii";
+       phy-handle = <&ethphy0>;
+       fsl,magic-packet;
+       phy-reset-gpios = <&extended_io 5 GPIO_ACTIVE_LOW>;
+       status = "okay";
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               ethphy0: ethernet-phy@0 {
+                       reg = <0>;
+               };
+               ethphy1: ethernet-phy@1 {
+                       reg = <1>;
+               };
+       };
+ };
+ &fec2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet2>;
+       assigned-clocks = <&clks IMX7D_ENET2_TIME_ROOT_SRC>,
+                         <&clks IMX7D_ENET2_TIME_ROOT_CLK>;
+       assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>;
+       assigned-clock-rates = <0>, <100000000>;
+       phy-mode = "rgmii";
+       phy-handle = <&ethphy1>;
+       phy-supply = <&reg_fec2_3v3>;
+       fsl,magic-packet;
+       status = "okay";
+ };
+ &flexcan2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan2>;
+       xceiver-supply = <&reg_can2_3v3>;
+       status = "okay";
+ };
+ &i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       status = "okay";
+       pmic: pmic@8 {
+               compatible = "fsl,pfuze3000";
+               reg = <0x08>;
+               regulators {
+                       sw1a_reg: sw1a {
+                               regulator-min-microvolt = <700000>;
+                               regulator-max-microvolt = <1475000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <6250>;
+                       };
+                       /* use sw1c_reg to align with pfuze100/pfuze200 */
+                       sw1c_reg: sw1b {
+                               regulator-min-microvolt = <700000>;
+                               regulator-max-microvolt = <1475000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <6250>;
+                       };
+                       sw2_reg: sw2 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+                       sw3a_reg: sw3 {
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <1650000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+                       swbst_reg: swbst {
+                               regulator-min-microvolt = <5000000>;
+                               regulator-max-microvolt = <5150000>;
+                       };
+                       snvs_reg: vsnvs {
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+                       vref_reg: vrefddr {
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+                       vgen1_reg: vldo1 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+                       vgen2_reg: vldo2 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <1550000>;
+                       };
+                       vgen3_reg: vccsd {
+                               regulator-min-microvolt = <2850000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+                       vgen4_reg: v33 {
+                               regulator-min-microvolt = <2850000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+                       vgen5_reg: vldo3 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+                       vgen6_reg: vldo4 {
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                               regulator-always-on;
+                       };
+               };
+       };
+ };
+ &i2c2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       status = "okay";
+       mpl3115@60 {
+               compatible = "fsl,mpl3115";
+               reg = <0x60>;
+       };
+ };
+ &i2c3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c3>;
+       status = "okay";
+ };
+ &i2c4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c4>;
+       status = "okay";
+       codec: wm8960@1a {
+               compatible = "wlf,wm8960";
+               reg = <0x1a>;
+               clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_DIV>;
+               clock-names = "mclk";
+               wlf,shared-lrclk;
+               wlf,hp-cfg = <2 2 3>;
+               wlf,gpio-cfg = <1 3>;
+               assigned-clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_SRC>,
+                                 <&clks IMX7D_PLL_AUDIO_POST_DIV>,
+                                 <&clks IMX7D_AUDIO_MCLK_ROOT_DIV>;
+               assigned-clock-parents = <&clks IMX7D_PLL_AUDIO_POST_DIV>;
+               assigned-clock-rates = <0>, <884736000>, <12288000>;
+       };
+ };
+ &lcdif {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lcdif>;
+       status = "okay";
+       port {
+               display_out: endpoint {
+                       remote-endpoint = <&panel_in>;
+               };
+       };
+ };
+ &pcie {
+       reset-gpio = <&extended_io 1 GPIO_ACTIVE_LOW>;
+       status = "okay";
+ };
+ &reg_1p0d {
+       vin-supply = <&sw2_reg>;
+ };
+ &reg_1p2 {
+       vin-supply = <&sw2_reg>;
+ };
+ &sai1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai1>;
+       assigned-clocks = <&clks IMX7D_SAI1_ROOT_SRC>,
+                         <&clks IMX7D_PLL_AUDIO_POST_DIV>,
+                         <&clks IMX7D_SAI1_ROOT_CLK>;
+       assigned-clock-parents = <&clks IMX7D_PLL_AUDIO_POST_DIV>;
+       assigned-clock-rates = <0>, <884736000>, <36864000>;
+       status = "okay";
+ };
+ &sai3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai3 &pinctrl_sai3_mclk>;
+       assigned-clocks = <&clks IMX7D_SAI3_ROOT_SRC>,
+                         <&clks IMX7D_PLL_AUDIO_POST_DIV>,
+                         <&clks IMX7D_SAI3_ROOT_CLK>;
+       assigned-clock-parents = <&clks IMX7D_PLL_AUDIO_POST_DIV>;
+       assigned-clock-rates = <0>, <884736000>, <36864000>;
+       status = "okay";
+ };
+ &snvs_pwrkey {
+       status = "okay";
+ };
+ &uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       assigned-clocks = <&clks IMX7D_UART1_ROOT_SRC>;
+       assigned-clock-parents = <&clks IMX7D_PLL_SYS_MAIN_240M_CLK>;
+       status = "okay";
+ };
+ &uart6 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart6>;
+       assigned-clocks = <&clks IMX7D_UART6_ROOT_SRC>;
+       assigned-clock-parents = <&clks IMX7D_PLL_SYS_MAIN_240M_CLK>;
+       uart-has-rtscts;
+       status = "okay";
+ };
+ &usbotg1 {
+       vbus-supply = <&reg_usb_otg1_vbus>;
+       status = "okay";
+ };
+ &usbotg2 {
+       vbus-supply = <&reg_usb_otg2_vbus>;
+       dr_mode = "host";
+       status = "okay";
+ };
+ &usdhc1 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc1>, <&pinctrl_usdhc1_gpio>;
+       pinctrl-1 = <&pinctrl_usdhc1_100mhz>, <&pinctrl_usdhc1_gpio>;
+       pinctrl-2 = <&pinctrl_usdhc1_200mhz>, <&pinctrl_usdhc1_gpio>;
+       cd-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
+       wp-gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
+       vmmc-supply = <&reg_sd1_vmmc>;
+       wakeup-source;
+       keep-power-in-suspend;
+       status = "okay";
+ };
+ &usdhc2 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc2>;
+       pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
+       wakeup-source;
+       keep-power-in-suspend;
+       non-removable;
+       vmmc-supply = <&reg_brcm>;
+       fsl,tuning-step = <2>;
+       status = "okay";
+ };
+ &usdhc3 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc3>;
+       pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+       assigned-clocks = <&clks IMX7D_USDHC3_ROOT_CLK>;
+       assigned-clock-rates = <400000000>;
+       bus-width = <8>;
+       fsl,tuning-step = <2>;
+       non-removable;
+       status = "okay";
+ };
+ &wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+ };
+ &iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog>;
+       imx7d-sdb {
+               pinctrl_brcm_reg: brcmreggrp {
+                       fsl,pins = <
+                               MX7D_PAD_ECSPI2_MOSI__GPIO4_IO21        0x14
+                       >;
+               };
+               pinctrl_ecspi3: ecspi3grp {
+                       fsl,pins = <
+                               MX7D_PAD_SAI2_TX_SYNC__ECSPI3_MISO      0x2
+                               MX7D_PAD_SAI2_TX_BCLK__ECSPI3_MOSI      0x2
+                               MX7D_PAD_SAI2_RX_DATA__ECSPI3_SCLK      0x2
+                               MX7D_PAD_SD2_CD_B__GPIO5_IO9            0x59
+                       >;
+               };
+               pinctrl_enet1: enet1grp {
+                       fsl,pins = <
+                               MX7D_PAD_GPIO1_IO10__ENET1_MDIO                 0x3
+                               MX7D_PAD_GPIO1_IO11__ENET1_MDC                  0x3
+                               MX7D_PAD_ENET1_RGMII_TXC__ENET1_RGMII_TXC       0x1
+                               MX7D_PAD_ENET1_RGMII_TD0__ENET1_RGMII_TD0       0x1
+                               MX7D_PAD_ENET1_RGMII_TD1__ENET1_RGMII_TD1       0x1
+                               MX7D_PAD_ENET1_RGMII_TD2__ENET1_RGMII_TD2       0x1
+                               MX7D_PAD_ENET1_RGMII_TD3__ENET1_RGMII_TD3       0x1
+                               MX7D_PAD_ENET1_RGMII_TX_CTL__ENET1_RGMII_TX_CTL 0x1
+                               MX7D_PAD_ENET1_RGMII_RXC__ENET1_RGMII_RXC       0x1
+                               MX7D_PAD_ENET1_RGMII_RD0__ENET1_RGMII_RD0       0x1
+                               MX7D_PAD_ENET1_RGMII_RD1__ENET1_RGMII_RD1       0x1
+                               MX7D_PAD_ENET1_RGMII_RD2__ENET1_RGMII_RD2       0x1
+                               MX7D_PAD_ENET1_RGMII_RD3__ENET1_RGMII_RD3       0x1
+                               MX7D_PAD_ENET1_RGMII_RX_CTL__ENET1_RGMII_RX_CTL 0x1
+                       >;
+               };
+               pinctrl_enet2: enet2grp {
+                       fsl,pins = <
+                               MX7D_PAD_EPDC_GDSP__ENET2_RGMII_TXC             0x1
+                               MX7D_PAD_EPDC_SDCE2__ENET2_RGMII_TD0            0x1
+                               MX7D_PAD_EPDC_SDCE3__ENET2_RGMII_TD1            0x1
+                               MX7D_PAD_EPDC_GDCLK__ENET2_RGMII_TD2            0x1
+                               MX7D_PAD_EPDC_GDOE__ENET2_RGMII_TD3             0x1
+                               MX7D_PAD_EPDC_GDRL__ENET2_RGMII_TX_CTL          0x1
+                               MX7D_PAD_EPDC_SDCE1__ENET2_RGMII_RXC            0x1
+                               MX7D_PAD_EPDC_SDCLK__ENET2_RGMII_RD0            0x1
+                               MX7D_PAD_EPDC_SDLE__ENET2_RGMII_RD1             0x1
+                               MX7D_PAD_EPDC_SDOE__ENET2_RGMII_RD2             0x1
+                               MX7D_PAD_EPDC_SDSHR__ENET2_RGMII_RD3            0x1
+                               MX7D_PAD_EPDC_SDCE0__ENET2_RGMII_RX_CTL         0x1
+                       >;
+               };
+               pinctrl_enet2_reg: enet2reggrp {
+                       fsl,pins = <
+                               MX7D_PAD_LPSR_GPIO1_IO04__GPIO1_IO4     0x14
+                       >;
+               };
+               pinctrl_flexcan2: flexcan2grp {
+                       fsl,pins = <
+                               MX7D_PAD_GPIO1_IO14__FLEXCAN2_RX        0x59
+                               MX7D_PAD_GPIO1_IO15__FLEXCAN2_TX        0x59
+                       >;
+               };
+               pinctrl_flexcan2_reg: flexcan2reggrp {
+                       fsl,pins = <
+                               MX7D_PAD_EPDC_DATA14__GPIO2_IO14        0x59    /* CAN_STBY */
+                       >;
+               };
+               pinctrl_gpio_keys: gpio_keysgrp {
+                       fsl,pins = <
+                               MX7D_PAD_SD2_RESET_B__GPIO5_IO11        0x59
+                               MX7D_PAD_SD2_WP__GPIO5_IO10             0x59
+                       >;
+               };
+               pinctrl_hog: hoggrp {
+                       fsl,pins = <
+                               MX7D_PAD_ECSPI2_SS0__GPIO4_IO23         0x34  /* bt reg on */
+                               MX7D_PAD_EPDC_BDR0__GPIO2_IO28          0x59  /* headphone detect */
+                       >;
+               };
+               pinctrl_i2c1: i2c1grp {
+                       fsl,pins = <
+                               MX7D_PAD_I2C1_SDA__I2C1_SDA             0x4000007f
+                               MX7D_PAD_I2C1_SCL__I2C1_SCL             0x4000007f
+                       >;
+               };
+               pinctrl_i2c2: i2c2grp {
+                       fsl,pins = <
+                               MX7D_PAD_I2C2_SDA__I2C2_SDA             0x4000007f
+                               MX7D_PAD_I2C2_SCL__I2C2_SCL             0x4000007f
+                       >;
+               };
+               pinctrl_i2c3: i2c3grp {
+                       fsl,pins = <
+                               MX7D_PAD_I2C3_SDA__I2C3_SDA             0x4000007f
+                               MX7D_PAD_I2C3_SCL__I2C3_SCL             0x4000007f
+                       >;
+               };
+               pinctrl_i2c4: i2c4grp {
+                       fsl,pins = <
+                               MX7D_PAD_SAI1_RX_BCLK__I2C4_SDA         0x4000007f
+                               MX7D_PAD_SAI1_RX_SYNC__I2C4_SCL         0x4000007f
+                       >;
+               };
+               pinctrl_lcdif: lcdifgrp {
+                       fsl,pins = <
+                               MX7D_PAD_LCD_DATA00__LCD_DATA0          0x79
+                               MX7D_PAD_LCD_DATA01__LCD_DATA1          0x79
+                               MX7D_PAD_LCD_DATA02__LCD_DATA2          0x79
+                               MX7D_PAD_LCD_DATA03__LCD_DATA3          0x79
+                               MX7D_PAD_LCD_DATA04__LCD_DATA4          0x79
+                               MX7D_PAD_LCD_DATA05__LCD_DATA5          0x79
+                               MX7D_PAD_LCD_DATA06__LCD_DATA6          0x79
+                               MX7D_PAD_LCD_DATA07__LCD_DATA7          0x79
+                               MX7D_PAD_LCD_DATA08__LCD_DATA8          0x79
+                               MX7D_PAD_LCD_DATA09__LCD_DATA9          0x79
+                               MX7D_PAD_LCD_DATA10__LCD_DATA10         0x79
+                               MX7D_PAD_LCD_DATA11__LCD_DATA11         0x79
+                               MX7D_PAD_LCD_DATA12__LCD_DATA12         0x79
+                               MX7D_PAD_LCD_DATA13__LCD_DATA13         0x79
+                               MX7D_PAD_LCD_DATA14__LCD_DATA14         0x79
+                               MX7D_PAD_LCD_DATA15__LCD_DATA15         0x79
+                               MX7D_PAD_LCD_DATA16__LCD_DATA16         0x79
+                               MX7D_PAD_LCD_DATA17__LCD_DATA17         0x79
+                               MX7D_PAD_LCD_DATA18__LCD_DATA18         0x79
+                               MX7D_PAD_LCD_DATA19__LCD_DATA19         0x79
+                               MX7D_PAD_LCD_DATA20__LCD_DATA20         0x79
+                               MX7D_PAD_LCD_DATA21__LCD_DATA21         0x79
+                               MX7D_PAD_LCD_DATA22__LCD_DATA22         0x79
+                               MX7D_PAD_LCD_DATA23__LCD_DATA23         0x79
+                               MX7D_PAD_LCD_CLK__LCD_CLK               0x79
+                               MX7D_PAD_LCD_ENABLE__LCD_ENABLE         0x79
+                               MX7D_PAD_LCD_VSYNC__LCD_VSYNC           0x79
+                               MX7D_PAD_LCD_HSYNC__LCD_HSYNC           0x79
+                               MX7D_PAD_LCD_RESET__LCD_RESET           0x79
+                       >;
+               };
+               pinctrl_sai1: sai1grp {
+                       fsl,pins = <
+                               MX7D_PAD_SAI1_MCLK__SAI1_MCLK           0x1f
+                               MX7D_PAD_ENET1_RX_CLK__SAI1_TX_BCLK     0x1f
+                               MX7D_PAD_ENET1_CRS__SAI1_TX_SYNC        0x1f
+                               MX7D_PAD_ENET1_COL__SAI1_TX_DATA0       0x30
+                               MX7D_PAD_ENET1_TX_CLK__SAI1_RX_DATA0    0x1f
+                       >;
+               };
+               pinctrl_sai2: sai2grp {
+                       fsl,pins = <
+                               MX7D_PAD_SAI2_TX_BCLK__SAI2_TX_BCLK     0x1f
+                               MX7D_PAD_SAI2_TX_SYNC__SAI2_TX_SYNC     0x1f
+                               MX7D_PAD_SAI2_TX_DATA__SAI2_TX_DATA0    0x30
+                               MX7D_PAD_SAI2_RX_DATA__SAI2_RX_DATA0    0x1f
+                       >;
+               };
+               pinctrl_sai3: sai3grp {
+                       fsl,pins = <
+                               MX7D_PAD_UART3_TX_DATA__SAI3_TX_BCLK   0x1f
+                               MX7D_PAD_UART3_CTS_B__SAI3_TX_SYNC     0x1f
+                               MX7D_PAD_UART3_RTS_B__SAI3_TX_DATA0    0x30
+                       >;
+               };
+               pinctrl_spi4: spi4grp {
+                       fsl,pins = <
+                               MX7D_PAD_GPIO1_IO09__GPIO1_IO9  0x59
+                               MX7D_PAD_GPIO1_IO12__GPIO1_IO12 0x59
+                               MX7D_PAD_GPIO1_IO13__GPIO1_IO13 0x59
+                       >;
+               };
+               pinctrl_tsc2046_pendown: tsc2046_pendown {
+                       fsl,pins = <
+                               MX7D_PAD_EPDC_BDR1__GPIO2_IO29          0x59
+                       >;
+               };
+               pinctrl_uart1: uart1grp {
+                       fsl,pins = <
+                               MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX    0x79
+                               MX7D_PAD_UART1_RX_DATA__UART1_DCE_RX    0x79
+                       >;
+               };
+               pinctrl_uart5: uart5grp {
+                       fsl,pins = <
+                               MX7D_PAD_SAI1_TX_BCLK__UART5_DCE_TX     0x79
+                               MX7D_PAD_SAI1_RX_DATA__UART5_DCE_RX     0x79
+                               MX7D_PAD_SAI1_TX_SYNC__UART5_DCE_CTS    0x79
+                               MX7D_PAD_SAI1_TX_DATA__UART5_DCE_RTS    0x79
+                       >;
+               };
+               pinctrl_uart6: uart6grp {
+                       fsl,pins = <
+                               MX7D_PAD_ECSPI1_MOSI__UART6_DCE_TX      0x79
+                               MX7D_PAD_ECSPI1_SCLK__UART6_DCE_RX      0x79
+                               MX7D_PAD_ECSPI1_SS0__UART6_DCE_CTS      0x79
+                               MX7D_PAD_ECSPI1_MISO__UART6_DCE_RTS     0x79
+                       >;
+               };
+               pinctrl_usdhc1_gpio: usdhc1_gpiogrp {
+                       fsl,pins = <
+                               MX7D_PAD_SD1_CD_B__GPIO5_IO0            0x59 /* CD */
+                               MX7D_PAD_SD1_WP__GPIO5_IO1              0x59 /* WP */
+                               MX7D_PAD_SD1_RESET_B__GPIO5_IO2         0x59 /* vmmc */
+                               MX7D_PAD_GPIO1_IO08__SD1_VSELECT        0x59 /* VSELECT */
+                       >;
+               };
+               pinctrl_usdhc1: usdhc1grp {
+                       fsl,pins = <
+                               MX7D_PAD_SD1_CMD__SD1_CMD               0x59
+                               MX7D_PAD_SD1_CLK__SD1_CLK               0x19
+                               MX7D_PAD_SD1_DATA0__SD1_DATA0           0x59
+                               MX7D_PAD_SD1_DATA1__SD1_DATA1           0x59
+                               MX7D_PAD_SD1_DATA2__SD1_DATA2           0x59
+                               MX7D_PAD_SD1_DATA3__SD1_DATA3           0x59
+                       >;
+               };
+               pinctrl_usdhc1_100mhz: usdhc1grp_100mhz {
+                       fsl,pins = <
+                               MX7D_PAD_SD1_CMD__SD1_CMD               0x5a
+                               MX7D_PAD_SD1_CLK__SD1_CLK               0x1a
+                               MX7D_PAD_SD1_DATA0__SD1_DATA0           0x5a
+                               MX7D_PAD_SD1_DATA1__SD1_DATA1           0x5a
+                               MX7D_PAD_SD1_DATA2__SD1_DATA2           0x5a
+                               MX7D_PAD_SD1_DATA3__SD1_DATA3           0x5a
+                       >;
+               };
+               pinctrl_usdhc1_200mhz: usdhc1grp_200mhz {
+                       fsl,pins = <
+                               MX7D_PAD_SD1_CMD__SD1_CMD               0x5b
+                               MX7D_PAD_SD1_CLK__SD1_CLK               0x1b
+                               MX7D_PAD_SD1_DATA0__SD1_DATA0           0x5b
+                               MX7D_PAD_SD1_DATA1__SD1_DATA1           0x5b
+                               MX7D_PAD_SD1_DATA2__SD1_DATA2           0x5b
+                               MX7D_PAD_SD1_DATA3__SD1_DATA3           0x5b
+                       >;
+               };
+               pinctrl_usdhc2: usdhc2grp {
+                       fsl,pins = <
+                               MX7D_PAD_SD2_CMD__SD2_CMD               0x59
+                               MX7D_PAD_SD2_CLK__SD2_CLK               0x19
+                               MX7D_PAD_SD2_DATA0__SD2_DATA0           0x59
+                               MX7D_PAD_SD2_DATA1__SD2_DATA1           0x59
+                               MX7D_PAD_SD2_DATA2__SD2_DATA2           0x59
+                               MX7D_PAD_SD2_DATA3__SD2_DATA3           0x59
+                       >;
+               };
+               pinctrl_usdhc2_100mhz: usdhc2grp_100mhz {
+                       fsl,pins = <
+                               MX7D_PAD_SD2_CMD__SD2_CMD               0x5a
+                               MX7D_PAD_SD2_CLK__SD2_CLK               0x1a
+                               MX7D_PAD_SD2_DATA0__SD2_DATA0           0x5a
+                               MX7D_PAD_SD2_DATA1__SD2_DATA1           0x5a
+                               MX7D_PAD_SD2_DATA2__SD2_DATA2           0x5a
+                               MX7D_PAD_SD2_DATA3__SD2_DATA3           0x5a
+                       >;
+               };
+               pinctrl_usdhc2_200mhz: usdhc2grp_200mhz {
+                       fsl,pins = <
+                               MX7D_PAD_SD2_CMD__SD2_CMD               0x5b
+                               MX7D_PAD_SD2_CLK__SD2_CLK               0x1b
+                               MX7D_PAD_SD2_DATA0__SD2_DATA0           0x5b
+                               MX7D_PAD_SD2_DATA1__SD2_DATA1           0x5b
+                               MX7D_PAD_SD2_DATA2__SD2_DATA2           0x5b
+                               MX7D_PAD_SD2_DATA3__SD2_DATA3           0x5b
+                       >;
+               };
+               pinctrl_usdhc3: usdhc3grp {
+                       fsl,pins = <
+                               MX7D_PAD_SD3_CMD__SD3_CMD               0x59
+                               MX7D_PAD_SD3_CLK__SD3_CLK               0x19
+                               MX7D_PAD_SD3_DATA0__SD3_DATA0           0x59
+                               MX7D_PAD_SD3_DATA1__SD3_DATA1           0x59
+                               MX7D_PAD_SD3_DATA2__SD3_DATA2           0x59
+                               MX7D_PAD_SD3_DATA3__SD3_DATA3           0x59
+                               MX7D_PAD_SD3_DATA4__SD3_DATA4           0x59
+                               MX7D_PAD_SD3_DATA5__SD3_DATA5           0x59
+                               MX7D_PAD_SD3_DATA6__SD3_DATA6           0x59
+                               MX7D_PAD_SD3_DATA7__SD3_DATA7           0x59
+                               MX7D_PAD_SD3_STROBE__SD3_STROBE         0x19
+                       >;
+               };
+               pinctrl_usdhc3_100mhz: usdhc3grp_100mhz {
+                       fsl,pins = <
+                               MX7D_PAD_SD3_CMD__SD3_CMD               0x5a
+                               MX7D_PAD_SD3_CLK__SD3_CLK               0x1a
+                               MX7D_PAD_SD3_DATA0__SD3_DATA0           0x5a
+                               MX7D_PAD_SD3_DATA1__SD3_DATA1           0x5a
+                               MX7D_PAD_SD3_DATA2__SD3_DATA2           0x5a
+                               MX7D_PAD_SD3_DATA3__SD3_DATA3           0x5a
+                               MX7D_PAD_SD3_DATA4__SD3_DATA4           0x5a
+                               MX7D_PAD_SD3_DATA5__SD3_DATA5           0x5a
+                               MX7D_PAD_SD3_DATA6__SD3_DATA6           0x5a
+                               MX7D_PAD_SD3_DATA7__SD3_DATA7           0x5a
+                               MX7D_PAD_SD3_STROBE__SD3_STROBE         0x1a
+                       >;
+               };
+               pinctrl_usdhc3_200mhz: usdhc3grp_200mhz {
+                       fsl,pins = <
+                               MX7D_PAD_SD3_CMD__SD3_CMD               0x5b
+                               MX7D_PAD_SD3_CLK__SD3_CLK               0x1b
+                               MX7D_PAD_SD3_DATA0__SD3_DATA0           0x5b
+                               MX7D_PAD_SD3_DATA1__SD3_DATA1           0x5b
+                               MX7D_PAD_SD3_DATA2__SD3_DATA2           0x5b
+                               MX7D_PAD_SD3_DATA3__SD3_DATA3           0x5b
+                               MX7D_PAD_SD3_DATA4__SD3_DATA4           0x5b
+                               MX7D_PAD_SD3_DATA5__SD3_DATA5           0x5b
+                               MX7D_PAD_SD3_DATA6__SD3_DATA6           0x5b
+                               MX7D_PAD_SD3_DATA7__SD3_DATA7           0x5b
+                               MX7D_PAD_SD3_STROBE__SD3_STROBE         0x1b
+                       >;
+               };
+       };
+ };
+ &pwm1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm1>;
+       status = "okay";
+ };
+ &iomuxc_lpsr {
+       pinctrl_wdog: wdoggrp {
+               fsl,pins = <
+                       MX7D_PAD_LPSR_GPIO1_IO00__WDOG1_WDOG_B          0x74
+               >;
+       };
+       pinctrl_pwm1: pwm1grp {
+               fsl,pins = <
+                       MX7D_PAD_LPSR_GPIO1_IO01__PWM1_OUT              0x30
+               >;
+       };
+       pinctrl_usb_otg2_vbus_reg: usbotg2vbusreggrp {
+               fsl,pins = <
+                       MX7D_PAD_LPSR_GPIO1_IO07__GPIO1_IO7       0x14
+               >;
+       };
+       pinctrl_sai3_mclk: sai3grp_mclk {
+               fsl,pins = <
+                       MX7D_PAD_LPSR_GPIO1_IO03__SAI3_MCLK     0x1f
+               >;
+       };
+ };
index 0000000,7a80e1c..aa0e0e8
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,300 +1,298 @@@
 -              input-enable;
+ // SPDX-License-Identifier: BSD-3-Clause
+ /*
+  * Copyright (c) 2022, Luca Weiss <luca@z3ntu.xyz>
+  */
+ /dts-v1/;
+ #include "qcom-msm8226.dtsi"
+ #include "qcom-pm8226.dtsi"
+ /delete-node/ &adsp_region;
+ / {
+       model = "ASUS ZenWatch 2";
+       compatible = "asus,sparrow", "qcom,apq8026";
+       chassis-type = "watch";
+       qcom,msm-id = <199 0x20000>;
+       qcom,board-id = <8 3005>;
+       reserved-memory {
+               sbl_region: sbl@2f00000 {
+                       reg = <0x02f00000 0x100000>;
+                       no-map;
+               };
+               external_image_region: external-image@3100000 {
+                       reg = <0x3100000 0x200000>;
+                       no-map;
+               };
+               peripheral_region: peripheral@3300000 {
+                       reg = <0x3300000 0x600000>;
+                       no-map;
+               };
+               adsp_region: adsp@3900000 {
+                       reg = <0x3900000 0x1400000>;
+                       no-map;
+               };
+               modem_region: modem@4d00000 {
+                       reg = <0x4d00000 0x1b00000>;
+                       no-map;
+               };
+               modem_efs_region: modem-efs@7f00000 {
+                       reg = <0x7f00000 0x100000>;
+                       no-map;
+               };
+       };
+       vreg_wlan: wlan-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "wl-reg";
+               regulator-min-microvolt = <2950000>;
+               regulator-max-microvolt = <2950000>;
+               gpio = <&tlmm 35 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               pinctrl-names = "default";
+               pinctrl-0 = <&wlan_regulator_default_state>;
+       };
+ };
+ &adsp {
+       status = "okay";
+ };
+ &blsp1_uart1 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&blsp1_uart1_default_state>;
+       bluetooth {
+               compatible = "brcm,bcm43430a1-bt";
+               max-speed = <3000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&bluetooth_default_state>;
+               host-wakeup-gpios = <&tlmm 48 GPIO_ACTIVE_HIGH>;
+               device-wakeup-gpios = <&tlmm 61 GPIO_ACTIVE_HIGH>;
+               shutdown-gpios = <&tlmm 34 GPIO_ACTIVE_HIGH>;
+       };
+ };
+ &pm8226_vib {
+       status = "okay";
+ };
+ &rpm_requests {
+       regulators {
+               compatible = "qcom,rpm-pm8226-regulators";
+               pm8226_s3: s3 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1300000>;
+               };
+               pm8226_s4: s4 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2200000>;
+               };
+               pm8226_s5: s5 {
+                       regulator-min-microvolt = <1150000>;
+                       regulator-max-microvolt = <1150000>;
+               };
+               pm8226_l1: l1 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+               pm8226_l2: l2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+               pm8226_l3: l3 {
+                       regulator-min-microvolt = <750000>;
+                       regulator-max-microvolt = <1337500>;
+               };
+               pm8226_l4: l4 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+               pm8226_l5: l5 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+               pm8226_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8226_l7: l7 {
+                       regulator-min-microvolt = <1900000>;
+                       regulator-max-microvolt = <1900000>;
+               };
+               pm8226_l8: l8 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8226_l9: l9 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8226_l10: l10 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8226_l12: l12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8226_l14: l14 {
+                       regulator-min-microvolt = <2750000>;
+                       regulator-max-microvolt = <2750000>;
+               };
+               pm8226_l15: l15 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+               pm8226_l16: l16 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+               pm8226_l17: l17 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pm8226_l18: l18 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pm8226_l19: l19 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+               pm8226_l20: l20 {
+                       regulator-min-microvolt = <3075000>;
+                       regulator-max-microvolt = <3075000>;
+               };
+               pm8226_l21: l21 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pm8226_l22: l22 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pm8226_l23: l23 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8226_l24: l24 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1350000>;
+               };
+               pm8226_l25: l25 {
+                       regulator-min-microvolt = <1775000>;
+                       regulator-max-microvolt = <2125000>;
+               };
+               pm8226_l26: l26 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+               pm8226_l27: l27 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+               pm8226_l28: l28 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pm8226_lvs1: lvs1 {};
+       };
+ };
+ &sdhc_1 {
+       status = "okay";
+       vmmc-supply = <&pm8226_l17>;
+       vqmmc-supply = <&pm8226_l6>;
+       bus-width = <8>;
+       non-removable;
+ };
+ &sdhc_3 {
+       status = "okay";
+       max-frequency = <100000000>;
+       non-removable;
+       vmmc-supply = <&vreg_wlan>;
+       vqmmc-supply = <&pm8226_l6>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+       wifi@1 {
+               compatible = "brcm,bcm43430a1-fmac", "brcm,bcm4329-fmac";
+               reg = <1>;
+               interrupts-extended = <&tlmm 46 IRQ_TYPE_EDGE_FALLING>;
+               interrupt-names = "host-wake";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wlan_hostwake_default_state>;
+       };
+ };
+ &smbb {
+       qcom,fast-charge-safe-current = <1500000>;
+       qcom,fast-charge-current-limit = <350000>;
+       qcom,fast-charge-safe-voltage = <4430000>;
+       qcom,fast-charge-high-threshold-voltage = <4400000>;
+       qcom,auto-recharge-threshold-voltage = <4300000>;
+       qcom,minimum-input-voltage = <4400000>;
+ };
+ &tlmm {
+       blsp1_uart1_default_state: blsp1-uart1-default-state {
+               pins = "gpio0", "gpio1", "gpio2", "gpio3";
+               function = "blsp_uart1";
+               drive-strength = <8>;
+               bias-disable;
+       };
+       bluetooth_default_state: bluetooth-default-state {
+               pins = "gpio48", "gpio61";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-disable;
 -              input-enable;
+       };
+       wlan_hostwake_default_state: wlan-hostwake-default-state {
+               pins = "gpio46";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+       wlan_regulator_default_state: wlan-regulator-default-state {
+               pins = "gpio35";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+ };
+ &usb {
+       status = "okay";
+       extcon = <&smbb>;
+       dr_mode = "peripheral";
+ };
+ &usb_hs_phy {
+       extcon = <&smbb>;
+       v1p8-supply = <&pm8226_l10>;
+       v3p3-supply = <&pm8226_l20>;
+ };
index 0000000,eb73b99..de19640
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,404 +1,403 @@@
 -              input-enable;
+ // SPDX-License-Identifier: BSD-3-Clause
+ /*
+  * Copyright (c) 2022, Luca Weiss <luca@z3ntu.xyz>
+  */
+ /dts-v1/;
+ #include "qcom-msm8226.dtsi"
+ #include "qcom-pm8226.dtsi"
+ #include <dt-bindings/input/ti-drv260x.h>
+ /delete-node/ &adsp_region;
+ / {
+       model = "Huawei Watch";
+       compatible = "huawei,sturgeon", "qcom,apq8026";
+       chassis-type = "watch";
+       qcom,msm-id = <199 0x20000>;
+       qcom,board-id = <8 4>;
+       reserved-memory {
+               sbl_region: sbl@2f00000 {
+                       reg = <0x02f00000 0x100000>;
+                       no-map;
+               };
+               external_image_region: external-image@3100000 {
+                       reg = <0x3100000 0x200000>;
+                       no-map;
+               };
+               peripheral_region: peripheral@3300000 {
+                       reg = <0x3300000 0x600000>;
+                       no-map;
+               };
+               adsp_region: adsp@3900000 {
+                       reg = <0x3900000 0x1400000>;
+                       no-map;
+               };
+               modem_region: modem@4d00000 {
+                       reg = <0x4d00000 0x1b00000>;
+                       no-map;
+               };
+               modem_efs_region: modem-efs@7f00000 {
+                       reg = <0x7f00000 0x100000>;
+                       no-map;
+               };
+       };
+       vreg_wlan: wlan-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "wl-reg";
+               regulator-min-microvolt = <2950000>;
+               regulator-max-microvolt = <2950000>;
+               gpio = <&tlmm 110 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               pinctrl-names = "default";
+               pinctrl-0 = <&wlan_regulator_default_state>;
+       };
+ };
+ &adsp {
+       status = "okay";
+ };
+ &blsp1_i2c2 {
+       clock-frequency = <384000>;
+       status = "okay";
+       vibrator@5a {
+               compatible = "ti,drv2605";
+               reg = <0x5a>;
+               enable-gpios = <&tlmm 60 GPIO_ACTIVE_HIGH>;
+               mode = <DRV260X_ERM_MODE>;
+               library-sel = <DRV260X_ERM_LIB_D>;
+               vib-rated-mv = <2765>;
+               vib-overdrive-mv = <3525>;
+               pinctrl-0 = <&vibrator_default_state>;
+               pinctrl-names = "default";
+       };
+ };
+ &blsp1_i2c5 {
+       clock-frequency = <384000>;
+       status = "okay";
+       touchscreen@20 {
+               compatible = "syna,rmi4-i2c";
+               reg = <0x20>;
+               interrupts-extended = <&tlmm 17 IRQ_TYPE_EDGE_FALLING>;
+               vdd-supply = <&pm8226_l19>;
+               vio-supply = <&pm8226_lvs1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&touch_default_state>;
+               syna,startup-delay-ms = <160>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               rmi4-f01@1 {
+                       reg = <0x1>;
+                       syna,nosleep-mode = <1>;
+               };
+               rmi4-f12@12 {
+                       reg = <0x12>;
+                       syna,sensor-type = <1>;
+               };
+       };
+ };
+ &blsp1_uart4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&blsp1_uart4_default_state>;
+       status = "okay";
+       bluetooth {
+               compatible = "brcm,bcm43430a0-bt";
+               max-speed = <3000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&bluetooth_default_state>;
+               host-wakeup-gpios = <&tlmm 64 GPIO_ACTIVE_HIGH>;
+               device-wakeup-gpios = <&tlmm 63 GPIO_ACTIVE_HIGH>;
+               shutdown-gpios = <&tlmm 67 GPIO_ACTIVE_HIGH>;
+       };
+ };
+ &rpm_requests {
+       regulators {
+               compatible = "qcom,rpm-pm8226-regulators";
+               pm8226_s3: s3 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1300000>;
+               };
+               pm8226_s4: s4 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2200000>;
+               };
+               pm8226_s5: s5 {
+                       regulator-min-microvolt = <1150000>;
+                       regulator-max-microvolt = <1150000>;
+               };
+               pm8226_l1: l1 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+               pm8226_l2: l2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+               pm8226_l3: l3 {
+                       regulator-min-microvolt = <750000>;
+                       regulator-max-microvolt = <1337500>;
+               };
+               pm8226_l4: l4 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+               pm8226_l5: l5 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+               pm8226_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8226_l7: l7 {
+                       regulator-min-microvolt = <1850000>;
+                       regulator-max-microvolt = <1850000>;
+               };
+               pm8226_l8: l8 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8226_l9: l9 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+               pm8226_l10: l10 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8226_l12: l12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8226_l14: l14 {
+                       regulator-min-microvolt = <2750000>;
+                       regulator-max-microvolt = <2750000>;
+               };
+               pm8226_l15: l15 {
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+               };
+               pm8226_l16: l16 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3350000>;
+               };
+               pm8226_l17: l17 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pm8226_l18: l18 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pm8226_l19: l19 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+               pm8226_l20: l20 {
+                       regulator-min-microvolt = <3075000>;
+                       regulator-max-microvolt = <3075000>;
+               };
+               pm8226_l21: l21 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pm8226_l22: l22 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pm8226_l23: l23 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pm8226_l24: l24 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1350000>;
+               };
+               pm8226_l25: l25 {
+                       regulator-min-microvolt = <1775000>;
+                       regulator-max-microvolt = <2125000>;
+               };
+               pm8226_l26: l26 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+               pm8226_l27: l27 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+               pm8226_l28: l28 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pm8226_lvs1: lvs1 {};
+       };
+ };
+ &sdhc_1 {
+       vmmc-supply = <&pm8226_l17>;
+       vqmmc-supply = <&pm8226_l6>;
+       bus-width = <8>;
+       non-removable;
+       status = "okay";
+ };
+ &sdhc_3 {
+       max-frequency = <100000000>;
+       non-removable;
+       vmmc-supply = <&vreg_wlan>;
+       vqmmc-supply = <&pm8226_l6>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+       wifi@1 {
+               compatible = "brcm,bcm43430a0-fmac", "brcm,bcm4329-fmac";
+               reg = <1>;
+               interrupts-extended = <&tlmm 66 IRQ_TYPE_EDGE_FALLING>;
+               interrupt-names = "host-wake";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wlan_hostwake_default_state>;
+       };
+ };
+ &smbb {
+       qcom,fast-charge-safe-voltage = <4370000>;
+       qcom,fast-charge-high-threshold-voltage = <4350000>;
+       qcom,minimum-input-voltage = <4350000>;
+       qcom,fast-charge-current-limit = <300000>;
+       qcom,fast-charge-safe-current = <600000>;
+       qcom,auto-recharge-threshold-voltage = <4240000>;
+ };
+ &tlmm {
+       blsp1_uart4_default_state: blsp1-uart4-default-state {
+               pins = "gpio12", "gpio13", "gpio14", "gpio15";
+               function = "blsp_uart4";
+               drive-strength = <8>;
+               bias-disable;
+       };
+       bluetooth_default_state: bluetooth-default-state {
+               pins = "gpio63", "gpio64";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+       touch_default_state: touch-default-state {
+               irq-pins {
+                       pins = "gpio17";
+                       function = "gpio";
+                       drive-strength = <8>;
+                       bias-pull-up;
+               };
+               reset-pins {
+                       pins = "gpio16";
+                       function = "gpio";
+                       drive-strength = <6>;
+                       bias-pull-up;
+               };
+       };
+       vibrator_default_state: vibrator-default-state {
+               pins = "gpio59", "gpio60";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+       wlan_hostwake_default_state: wlan-hostwake-default-state {
+               pins = "gpio66";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+       wlan_regulator_default_state: wlan-regulator-default-state {
+               pins = "gpio110";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+ };
+ &usb {
+       extcon = <&smbb>;
+       dr_mode = "peripheral";
+       status = "okay";
+ };
+ &usb_hs_phy {
+       extcon = <&smbb>;
+       v1p8-supply = <&pm8226_l10>;
+       v3p3-supply = <&pm8226_l20>;
+ };
index 0000000,b823812..b887e53
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,359 +1,356 @@@
 -              input-enable;
+ // SPDX-License-Identifier: BSD-3-Clause
+ /*
+  * Copyright (c) 2021, Luca Weiss <luca@z3ntu.xyz>
+  */
+ /dts-v1/;
+ #include "qcom-msm8226.dtsi"
+ #include "qcom-pm8226.dtsi"
+ /delete-node/ &adsp_region;
+ / {
+       model = "LG G Watch R";
+       compatible = "lg,lenok", "qcom,apq8026";
+       chassis-type = "watch";
+       qcom,board-id = <132 0x0a>;
+       qcom,msm-id = <199 0x20000>;
+       aliases {
+               serial0 = &blsp1_uart3;
+               serial1 = &blsp1_uart4;
+       };
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+       reserved-memory {
+               sbl_region: sbl@2f00000 {
+                       reg = <0x02f00000 0x100000>;
+                       no-map;
+               };
+               external_image_region: external-image@3100000 {
+                       reg = <0x03100000 0x200000>;
+                       no-map;
+               };
+               adsp_region: adsp@3300000 {
+                       reg = <0x03300000 0x1400000>;
+                       no-map;
+               };
+       };
+       vreg_wlan: wlan-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "wl-reg";
+               regulator-min-microvolt = <2950000>;
+               regulator-max-microvolt = <2950000>;
+               gpio = <&tlmm 46 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               pinctrl-names = "default";
+               pinctrl-0 = <&wlan_regulator_default_state>;
+       };
+ };
+ &adsp {
+       status = "okay";
+ };
+ &blsp1_i2c1 {
+       status = "okay";
+       fuel-gauge@55 {
+               compatible = "ti,bq27421";
+               reg = <0x55>;
+       };
+ };
+ &blsp1_i2c5 {
+       status = "okay";
+       clock-frequency = <384000>;
+       touchscreen@20 {
+               compatible = "syna,rmi4-i2c";
+               reg = <0x20>;
+               interrupts-extended = <&tlmm 17 IRQ_TYPE_EDGE_FALLING>;
+               vdd-supply = <&pm8226_l15>;
+               vio-supply = <&pm8226_l22>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&touch_pins>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               rmi4-f01@1 {
+                       reg = <0x1>;
+                       syna,nosleep-mode = <1>;
+               };
+               rmi4-f12@12 {
+                       reg = <0x12>;
+                       syna,sensor-type = <1>;
+               };
+       };
+ };
+ &blsp1_uart3 {
+       status = "okay";
+ };
+ &blsp1_uart4 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&blsp1_uart4_default_state>;
+       bluetooth {
+               compatible = "brcm,bcm43430a0-bt";
+               max-speed = <3000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&bluetooth_default_state>;
+               host-wakeup-gpios = <&tlmm 48 GPIO_ACTIVE_HIGH>;
+               device-wakeup-gpios = <&tlmm 47 GPIO_ACTIVE_HIGH>;
+               shutdown-gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>;
+       };
+ };
+ &rpm_requests {
+       regulators {
+               compatible = "qcom,rpm-pm8226-regulators";
+               pm8226_s3: s3 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1350000>;
+               };
+               pm8226_s4: s4 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2200000>;
+               };
+               pm8226_s5: s5 {
+                       regulator-min-microvolt = <1150000>;
+                       regulator-max-microvolt = <1150000>;
+               };
+               pm8226_l1: l1 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+               pm8226_l2: l2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+               pm8226_l3: l3 {
+                       regulator-min-microvolt = <750000>;
+                       regulator-max-microvolt = <1337500>;
+               };
+               pm8226_l4: l4 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+               pm8226_l5: l5 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+               pm8226_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8226_l7: l7 {
+                       regulator-min-microvolt = <1850000>;
+                       regulator-max-microvolt = <1850000>;
+               };
+               pm8226_l8: l8 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8226_l9: l9 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+               pm8226_l10: l10 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8226_l12: l12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8226_l14: l14 {
+                       regulator-min-microvolt = <2750000>;
+                       regulator-max-microvolt = <2750000>;
+               };
+               pm8226_l15: l15 {
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+               pm8226_l16: l16 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3350000>;
+               };
+               pm8226_l17: l17 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pm8226_l18: l18 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+               pm8226_l19: l19 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+               pm8226_l20: l20 {
+                       regulator-min-microvolt = <3075000>;
+                       regulator-max-microvolt = <3075000>;
+               };
+               pm8226_l21: l21 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pm8226_l22: l22 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8226_l23: l23 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pm8226_l24: l24 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1350000>;
+               };
+               pm8226_l25: l25 {
+                       regulator-min-microvolt = <1775000>;
+                       regulator-max-microvolt = <2125000>;
+               };
+               pm8226_l26: l26 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+               pm8226_l27: l27 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+               pm8226_l28: l28 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+               pm8226_lvs1: lvs1 {};
+       };
+ };
+ &sdhc_1 {
+       status = "okay";
+       vmmc-supply = <&pm8226_l17>;
+       vqmmc-supply = <&pm8226_l6>;
+       bus-width = <8>;
+       non-removable;
+ };
+ &sdhc_3 {
+       status = "okay";
+       max-frequency = <100000000>;
+       non-removable;
+       vmmc-supply = <&vreg_wlan>;
+       vqmmc-supply = <&pm8226_l6>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+       wifi@1 {
+               compatible = "brcm,bcm43430a0-fmac", "brcm,bcm4329-fmac";
+               reg = <1>;
+               interrupts-extended = <&tlmm 37 IRQ_TYPE_EDGE_FALLING>;
+               interrupt-names = "host-wake";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wlan_hostwake_default_state>;
+       };
+ };
+ &smbb {
+       qcom,fast-charge-safe-current = <450000>;
+       qcom,fast-charge-current-limit = <400000>;
+       qcom,fast-charge-safe-voltage = <4350000>;
+       qcom,fast-charge-high-threshold-voltage = <4350000>;
+       qcom,auto-recharge-threshold-voltage = <4240000>;
+       qcom,minimum-input-voltage = <4450000>;
+ };
+ &tlmm {
+       blsp1_uart4_default_state: blsp1-uart4-default-state {
+               pins = "gpio12", "gpio13", "gpio14", "gpio15";
+               function = "blsp_uart4";
+               drive-strength = <8>;
+               bias-disable;
+       };
+       bluetooth_default_state: bluetooth-default-state {
+               pins = "gpio47", "gpio48";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
 -                      input-enable;
+       };
+       touch_pins: touch-state {
+               irq-pins {
+                       pins = "gpio17";
+                       function = "gpio";
+                       drive-strength = <8>;
+                       bias-pull-down;
 -              input-enable;
+               };
+               reset-pins {
+                       pins = "gpio16";
+                       function = "gpio";
+                       drive-strength = <8>;
+                       bias-disable;
+                       output-high;
+               };
+       };
+       wlan_hostwake_default_state: wlan-hostwake-default-state {
+               pins = "gpio37";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+       wlan_regulator_default_state: wlan-regulator-default-state {
+               pins = "gpio46";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+ };
+ &usb {
+       status = "okay";
+       extcon = <&smbb>;
+       dr_mode = "peripheral";
+ };
+ &usb_hs_phy {
+       extcon = <&smbb>;
+       v1p8-supply = <&pm8226_l10>;
+       v3p3-supply = <&pm8226_l20>;
+ };
index 0000000,672b246..d228920
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,1895 +1,1896 @@@
+ // SPDX-License-Identifier: GPL-2.0
+ /dts-v1/;
+ #include <dt-bindings/clock/qcom,gcc-msm8960.h>
+ #include <dt-bindings/clock/qcom,lcc-msm8960.h>
+ #include <dt-bindings/reset/qcom,gcc-msm8960.h>
+ #include <dt-bindings/clock/qcom,mmcc-msm8960.h>
+ #include <dt-bindings/clock/qcom,rpmcc.h>
+ #include <dt-bindings/soc/qcom,gsbi.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ / {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       model = "Qualcomm APQ8064";
+       compatible = "qcom,apq8064";
+       interrupt-parent = <&intc>;
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+               smem_region: smem@80000000 {
+                       reg = <0x80000000 0x200000>;
+                       no-map;
+               };
+               wcnss_mem: wcnss@8f000000 {
+                       reg = <0x8f000000 0x700000>;
+                       no-map;
+               };
+       };
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               CPU0: cpu@0 {
+                       compatible = "qcom,krait";
+                       enable-method = "qcom,kpss-acc-v1";
+                       device_type = "cpu";
+                       reg = <0>;
+                       next-level-cache = <&L2>;
+                       qcom,acc = <&acc0>;
+                       qcom,saw = <&saw0>;
+                       cpu-idle-states = <&CPU_SPC>;
+               };
+               CPU1: cpu@1 {
+                       compatible = "qcom,krait";
+                       enable-method = "qcom,kpss-acc-v1";
+                       device_type = "cpu";
+                       reg = <1>;
+                       next-level-cache = <&L2>;
+                       qcom,acc = <&acc1>;
+                       qcom,saw = <&saw1>;
+                       cpu-idle-states = <&CPU_SPC>;
+               };
+               CPU2: cpu@2 {
+                       compatible = "qcom,krait";
+                       enable-method = "qcom,kpss-acc-v1";
+                       device_type = "cpu";
+                       reg = <2>;
+                       next-level-cache = <&L2>;
+                       qcom,acc = <&acc2>;
+                       qcom,saw = <&saw2>;
+                       cpu-idle-states = <&CPU_SPC>;
+               };
+               CPU3: cpu@3 {
+                       compatible = "qcom,krait";
+                       enable-method = "qcom,kpss-acc-v1";
+                       device_type = "cpu";
+                       reg = <3>;
+                       next-level-cache = <&L2>;
+                       qcom,acc = <&acc3>;
+                       qcom,saw = <&saw3>;
+                       cpu-idle-states = <&CPU_SPC>;
+               };
+               L2: l2-cache {
+                       compatible = "cache";
+                       cache-level = <2>;
++                      cache-unified;
+               };
+               idle-states {
+                       CPU_SPC: spc {
+                               compatible = "qcom,idle-state-spc",
+                                               "arm,idle-state";
+                               entry-latency-us = <400>;
+                               exit-latency-us = <900>;
+                               min-residency-us = <3000>;
+                       };
+               };
+       };
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x0>;
+       };
+       thermal-zones {
+               cpu0-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsens 7>;
+                       coefficients = <1199 0>;
+                       trips {
+                               cpu_alert0: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit0: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+               cpu1-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsens 8>;
+                       coefficients = <1132 0>;
+                       trips {
+                               cpu_alert1: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit1: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+               cpu2-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsens 9>;
+                       coefficients = <1199 0>;
+                       trips {
+                               cpu_alert2: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit2: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+               cpu3-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsens 10>;
+                       coefficients = <1132 0>;
+                       trips {
+                               cpu_alert3: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit3: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+       cpu-pmu {
+               compatible = "qcom,krait-pmu";
+               interrupts = <1 10 0x304>;
+       };
+       clocks {
+               cxo_board: cxo_board {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <19200000>;
+               };
+               pxo_board: pxo_board {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <27000000>;
+               };
+               sleep_clk: sleep_clk {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <32768>;
+               };
+       };
+       sfpb_mutex: hwmutex {
+               compatible = "qcom,sfpb-mutex";
+               syscon = <&sfpb_wrapper_mutex 0x604 0x4>;
+               #hwlock-cells = <1>;
+       };
+       smem {
+               compatible = "qcom,smem";
+               memory-region = <&smem_region>;
+               hwlocks = <&sfpb_mutex 3>;
+       };
+       smd {
+               compatible = "qcom,smd";
+               modem-edge {
+                       interrupts = <0 37 IRQ_TYPE_EDGE_RISING>;
+                       qcom,ipc = <&l2cc 8 3>;
+                       qcom,smd-edge = <0>;
+                       status = "disabled";
+               };
+               q6-edge {
+                       interrupts = <0 90 IRQ_TYPE_EDGE_RISING>;
+                       qcom,ipc = <&l2cc 8 15>;
+                       qcom,smd-edge = <1>;
+                       status = "disabled";
+               };
+               dsps-edge {
+                       interrupts = <0 138 IRQ_TYPE_EDGE_RISING>;
+                       qcom,ipc = <&sps_sic_non_secure 0x4080 0>;
+                       qcom,smd-edge = <3>;
+                       status = "disabled";
+               };
+               riva-edge {
+                       interrupts = <0 198 IRQ_TYPE_EDGE_RISING>;
+                       qcom,ipc = <&l2cc 8 25>;
+                       qcom,smd-edge = <6>;
+                       status = "disabled";
+               };
+       };
+       smsm {
+               compatible = "qcom,smsm";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               qcom,ipc-1 = <&l2cc 8 4>;
+               qcom,ipc-2 = <&l2cc 8 14>;
+               qcom,ipc-3 = <&l2cc 8 23>;
+               qcom,ipc-4 = <&sps_sic_non_secure 0x4094 0>;
+               apps_smsm: apps@0 {
+                       reg = <0>;
+                       #qcom,smem-state-cells = <1>;
+               };
+               modem_smsm: modem@1 {
+                       reg = <1>;
+                       interrupts = <0 38 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+               q6_smsm: q6@2 {
+                       reg = <2>;
+                       interrupts = <0 89 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+               wcnss_smsm: wcnss@3 {
+                       reg = <3>;
+                       interrupts = <0 204 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+               dsps_smsm: dsps@4 {
+                       reg = <4>;
+                       interrupts = <0 137 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+       firmware {
+               scm {
+                       compatible = "qcom,scm-apq8064", "qcom,scm";
+                       clocks = <&rpmcc RPM_DAYTONA_FABRIC_CLK>;
+                       clock-names = "core";
+               };
+       };
+       /*
+        * These channels from the ADC are simply hardware monitors.
+        * That is why the ADC is referred to as "HKADC" - HouseKeeping
+        * ADC.
+        */
+       iio-hwmon {
+               compatible = "iio-hwmon";
+               io-channels = <&xoadc 0x00 0x01>, /* Battery */
+                           <&xoadc 0x00 0x02>, /* DC in (charger) */
+                           <&xoadc 0x00 0x04>, /* VPH the main system voltage */
+                           <&xoadc 0x00 0x0b>, /* Die temperature */
+                           <&xoadc 0x00 0x0c>, /* Reference voltage 1.25V */
+                           <&xoadc 0x00 0x0d>, /* Reference voltage 0.625V */
+                           <&xoadc 0x00 0x0e>; /* Charger temperature */
+       };
+       soc: soc {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+               compatible = "simple-bus";
+               tlmm_pinmux: pinctrl@800000 {
+                       compatible = "qcom,apq8064-pinctrl";
+                       reg = <0x800000 0x4000>;
+                       gpio-controller;
+                       gpio-ranges = <&tlmm_pinmux 0 0 90>;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       interrupts = <0 16 IRQ_TYPE_LEVEL_HIGH>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&ps_hold>;
+               };
+               sfpb_wrapper_mutex: syscon@1200000 {
+                       compatible = "syscon";
+                       reg = <0x01200000 0x8000>;
+               };
+               intc: interrupt-controller@2000000 {
+                       compatible = "qcom,msm-qgic2";
+                       interrupt-controller;
+                       #interrupt-cells = <3>;
+                       reg = <0x02000000 0x1000>,
+                             <0x02002000 0x1000>;
+               };
+               timer@200a000 {
+                       compatible = "qcom,kpss-wdt-apq8064", "qcom,kpss-timer",
+                                    "qcom,msm-timer";
+                       interrupts = <1 1 0x301>,
+                                    <1 2 0x301>,
+                                    <1 3 0x301>;
+                       reg = <0x0200a000 0x100>;
+                       clock-frequency = <27000000>;
+                       cpu-offset = <0x80000>;
+               };
+               acc0: clock-controller@2088000 {
+                       compatible = "qcom,kpss-acc-v1";
+                       reg = <0x02088000 0x1000>, <0x02008000 0x1000>;
+                       clocks = <&gcc PLL8_VOTE>, <&pxo_board>;
+                       clock-names = "pll8_vote", "pxo";
+                       clock-output-names = "acpu0_aux";
+                       #clock-cells = <0>;
+               };
+               acc1: clock-controller@2098000 {
+                       compatible = "qcom,kpss-acc-v1";
+                       reg = <0x02098000 0x1000>, <0x02008000 0x1000>;
+                       clocks = <&gcc PLL8_VOTE>, <&pxo_board>;
+                       clock-names = "pll8_vote", "pxo";
+                       clock-output-names = "acpu1_aux";
+                       #clock-cells = <0>;
+               };
+               acc2: clock-controller@20a8000 {
+                       compatible = "qcom,kpss-acc-v1";
+                       reg = <0x020a8000 0x1000>, <0x02008000 0x1000>;
+                       clocks = <&gcc PLL8_VOTE>, <&pxo_board>;
+                       clock-names = "pll8_vote", "pxo";
+                       clock-output-names = "acpu2_aux";
+                       #clock-cells = <0>;
+               };
+               acc3: clock-controller@20b8000 {
+                       compatible = "qcom,kpss-acc-v1";
+                       reg = <0x020b8000 0x1000>, <0x02008000 0x1000>;
+                       clocks = <&gcc PLL8_VOTE>, <&pxo_board>;
+                       clock-names = "pll8_vote", "pxo";
+                       clock-output-names = "acpu3_aux";
+                       #clock-cells = <0>;
+               };
+               saw0: power-controller@2089000 {
+                       compatible = "qcom,apq8064-saw2-v1.1-cpu", "qcom,saw2";
+                       reg = <0x02089000 0x1000>, <0x02009000 0x1000>;
+                       regulator;
+               };
+               saw1: power-controller@2099000 {
+                       compatible = "qcom,apq8064-saw2-v1.1-cpu", "qcom,saw2";
+                       reg = <0x02099000 0x1000>, <0x02009000 0x1000>;
+                       regulator;
+               };
+               saw2: power-controller@20a9000 {
+                       compatible = "qcom,apq8064-saw2-v1.1-cpu", "qcom,saw2";
+                       reg = <0x020a9000 0x1000>, <0x02009000 0x1000>;
+                       regulator;
+               };
+               saw3: power-controller@20b9000 {
+                       compatible = "qcom,apq8064-saw2-v1.1-cpu", "qcom,saw2";
+                       reg = <0x020b9000 0x1000>, <0x02009000 0x1000>;
+                       regulator;
+               };
+               sps_sic_non_secure: sps-sic-non-secure@12100000 {
+                       compatible = "syscon";
+                       reg = <0x12100000 0x10000>;
+               };
+               gsbi1: gsbi@12440000 {
+                       status = "disabled";
+                       compatible = "qcom,gsbi-v1.0.0";
+                       cell-index = <1>;
+                       reg = <0x12440000 0x100>;
+                       clocks = <&gcc GSBI1_H_CLK>;
+                       clock-names = "iface";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       syscon-tcsr = <&tcsr>;
+                       gsbi1_serial: serial@12450000 {
+                               compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
+                               reg = <0x12450000 0x100>,
+                                     <0x12400000 0x03>;
+                               interrupts = <0 193 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI1_UART_CLK>, <&gcc GSBI1_H_CLK>;
+                               clock-names = "core", "iface";
+                               status = "disabled";
+                       };
+                       gsbi1_i2c: i2c@12460000 {
+                               compatible = "qcom,i2c-qup-v1.1.1";
+                               pinctrl-0 = <&i2c1_pins>;
+                               pinctrl-1 = <&i2c1_pins_sleep>;
+                               pinctrl-names = "default", "sleep";
+                               reg = <0x12460000 0x1000>;
+                               interrupts = <0 194 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI1_QUP_CLK>, <&gcc GSBI1_H_CLK>;
+                               clock-names = "core", "iface";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+               gsbi2: gsbi@12480000 {
+                       status = "disabled";
+                       compatible = "qcom,gsbi-v1.0.0";
+                       cell-index = <2>;
+                       reg = <0x12480000 0x100>;
+                       clocks = <&gcc GSBI2_H_CLK>;
+                       clock-names = "iface";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       syscon-tcsr = <&tcsr>;
+                       gsbi2_i2c: i2c@124a0000 {
+                               compatible = "qcom,i2c-qup-v1.1.1";
+                               reg = <0x124a0000 0x1000>;
+                               pinctrl-0 = <&i2c2_pins>;
+                               pinctrl-1 = <&i2c2_pins_sleep>;
+                               pinctrl-names = "default", "sleep";
+                               interrupts = <0 196 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI2_QUP_CLK>, <&gcc GSBI2_H_CLK>;
+                               clock-names = "core", "iface";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+               gsbi3: gsbi@16200000 {
+                       status = "disabled";
+                       compatible = "qcom,gsbi-v1.0.0";
+                       cell-index = <3>;
+                       reg = <0x16200000 0x100>;
+                       clocks = <&gcc GSBI3_H_CLK>;
+                       clock-names = "iface";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       gsbi3_i2c: i2c@16280000 {
+                               compatible = "qcom,i2c-qup-v1.1.1";
+                               pinctrl-0 = <&i2c3_pins>;
+                               pinctrl-1 = <&i2c3_pins_sleep>;
+                               pinctrl-names = "default", "sleep";
+                               reg = <0x16280000 0x1000>;
+                               interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI3_QUP_CLK>,
+                                        <&gcc GSBI3_H_CLK>;
+                               clock-names = "core", "iface";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+               gsbi4: gsbi@16300000 {
+                       status = "disabled";
+                       compatible = "qcom,gsbi-v1.0.0";
+                       cell-index = <4>;
+                       reg = <0x16300000 0x03>;
+                       clocks = <&gcc GSBI4_H_CLK>;
+                       clock-names = "iface";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       gsbi4_i2c: i2c@16380000 {
+                               compatible = "qcom,i2c-qup-v1.1.1";
+                               pinctrl-0 = <&i2c4_pins>;
+                               pinctrl-1 = <&i2c4_pins_sleep>;
+                               pinctrl-names = "default", "sleep";
+                               reg = <0x16380000 0x1000>;
+                               interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI4_QUP_CLK>,
+                                        <&gcc GSBI4_H_CLK>;
+                               clock-names = "core", "iface";
+                               status = "disabled";
+                       };
+               };
+               gsbi5: gsbi@1a200000 {
+                       status = "disabled";
+                       compatible = "qcom,gsbi-v1.0.0";
+                       cell-index = <5>;
+                       reg = <0x1a200000 0x03>;
+                       clocks = <&gcc GSBI5_H_CLK>;
+                       clock-names = "iface";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       gsbi5_serial: serial@1a240000 {
+                               compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
+                               reg = <0x1a240000 0x100>,
+                                     <0x1a200000 0x03>;
+                               interrupts = <0 154 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI5_UART_CLK>, <&gcc GSBI5_H_CLK>;
+                               clock-names = "core", "iface";
+                               status = "disabled";
+                       };
+                       gsbi5_spi: spi@1a280000 {
+                               compatible = "qcom,spi-qup-v1.1.1";
+                               reg = <0x1a280000 0x1000>;
+                               interrupts = <0 155 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-0 = <&spi5_default>;
+                               pinctrl-1 = <&spi5_sleep>;
+                               pinctrl-names = "default", "sleep";
+                               clocks = <&gcc GSBI5_QUP_CLK>, <&gcc GSBI5_H_CLK>;
+                               clock-names = "core", "iface";
+                               status = "disabled";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+               gsbi6: gsbi@16500000 {
+                       status = "disabled";
+                       compatible = "qcom,gsbi-v1.0.0";
+                       cell-index = <6>;
+                       reg = <0x16500000 0x03>;
+                       clocks = <&gcc GSBI6_H_CLK>;
+                       clock-names = "iface";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       gsbi6_serial: serial@16540000 {
+                               compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
+                               reg = <0x16540000 0x100>,
+                                     <0x16500000 0x03>;
+                               interrupts = <0 156 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI6_UART_CLK>, <&gcc GSBI6_H_CLK>;
+                               clock-names = "core", "iface";
+                               status = "disabled";
+                       };
+                       gsbi6_i2c: i2c@16580000 {
+                               compatible = "qcom,i2c-qup-v1.1.1";
+                               pinctrl-0 = <&i2c6_pins>;
+                               pinctrl-1 = <&i2c6_pins_sleep>;
+                               pinctrl-names = "default", "sleep";
+                               reg = <0x16580000 0x1000>;
+                               interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI6_QUP_CLK>,
+                                        <&gcc GSBI6_H_CLK>;
+                               clock-names = "core", "iface";
+                               status = "disabled";
+                       };
+               };
+               gsbi7: gsbi@16600000 {
+                       status = "disabled";
+                       compatible = "qcom,gsbi-v1.0.0";
+                       cell-index = <7>;
+                       reg = <0x16600000 0x100>;
+                       clocks = <&gcc GSBI7_H_CLK>;
+                       clock-names = "iface";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       syscon-tcsr = <&tcsr>;
+                       gsbi7_serial: serial@16640000 {
+                               compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
+                               reg = <0x16640000 0x1000>,
+                                     <0x16600000 0x1000>;
+                               interrupts = <0 158 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI7_UART_CLK>, <&gcc GSBI7_H_CLK>;
+                               clock-names = "core", "iface";
+                               status = "disabled";
+                       };
+                       gsbi7_i2c: i2c@16680000 {
+                               compatible = "qcom,i2c-qup-v1.1.1";
+                               pinctrl-0 = <&i2c7_pins>;
+                               pinctrl-1 = <&i2c7_pins_sleep>;
+                               pinctrl-names = "default", "sleep";
+                               reg = <0x16680000 0x1000>;
+                               interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI7_QUP_CLK>,
+                                        <&gcc GSBI7_H_CLK>;
+                               clock-names = "core", "iface";
+                               status = "disabled";
+                       };
+               };
+               rng@1a500000 {
+                       compatible = "qcom,prng";
+                       reg = <0x1a500000 0x200>;
+                       clocks = <&gcc PRNG_CLK>;
+                       clock-names = "core";
+               };
+               ssbi@c00000 {
+                       compatible = "qcom,ssbi";
+                       reg = <0x00c00000 0x1000>;
+                       qcom,controller-type = "pmic-arbiter";
+                       pm8821: pmic {
+                               compatible = "qcom,pm8821";
+                               interrupt-parent = <&tlmm_pinmux>;
+                               interrupts = <76 IRQ_TYPE_LEVEL_LOW>;
+                               #interrupt-cells = <2>;
+                               interrupt-controller;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               pm8821_mpps: mpps@50 {
+                                       compatible = "qcom,pm8821-mpp", "qcom,ssbi-mpp";
+                                       reg = <0x50>;
+                                       interrupt-controller;
+                                       #interrupt-cells = <2>;
+                                       gpio-controller;
+                                       #gpio-cells = <2>;
+                                       gpio-ranges = <&pm8821_mpps 0 0 4>;
+                               };
+                       };
+               };
+               ssbi@500000 {
+                       compatible = "qcom,ssbi";
+                       reg = <0x00500000 0x1000>;
+                       qcom,controller-type = "pmic-arbiter";
+                       pmicintc: pmic {
+                               compatible = "qcom,pm8921";
+                               interrupt-parent = <&tlmm_pinmux>;
+                               interrupts = <74 8>;
+                               #interrupt-cells = <2>;
+                               interrupt-controller;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               pm8921_gpio: gpio@150 {
+                                       compatible = "qcom,pm8921-gpio",
+                                                    "qcom,ssbi-gpio";
+                                       reg = <0x150>;
+                                       interrupt-controller;
+                                       #interrupt-cells = <2>;
+                                       gpio-controller;
+                                       gpio-ranges = <&pm8921_gpio 0 0 44>;
+                                       #gpio-cells = <2>;
+                               };
+                               pm8921_mpps: mpps@50 {
+                                       compatible = "qcom,pm8921-mpp",
+                                                    "qcom,ssbi-mpp";
+                                       reg = <0x50>;
+                                       gpio-controller;
+                                       #gpio-cells = <2>;
+                                       gpio-ranges = <&pm8921_mpps 0 0 12>;
+                                       interrupt-controller;
+                                       #interrupt-cells = <2>;
+                               };
+                               rtc@11d {
+                                       compatible = "qcom,pm8921-rtc";
+                                       interrupt-parent = <&pmicintc>;
+                                       interrupts = <39 1>;
+                                       reg = <0x11d>;
+                                       allow-set-time;
+                               };
+                               pwrkey@1c {
+                                       compatible = "qcom,pm8921-pwrkey";
+                                       reg = <0x1c>;
+                                       interrupt-parent = <&pmicintc>;
+                                       interrupts = <50 1>, <51 1>;
+                                       debounce = <15625>;
+                                       pull-up;
+                               };
+                               xoadc: xoadc@197 {
+                                       compatible = "qcom,pm8921-adc";
+                                       reg = <197>;
+                                       interrupts-extended = <&pmicintc 78 IRQ_TYPE_EDGE_RISING>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+                                       #io-channel-cells = <2>;
+                                       vcoin: adc-channel@0 {
+                                               reg = <0x00 0x00>;
+                                       };
+                                       vbat: adc-channel@1 {
+                                               reg = <0x00 0x01>;
+                                       };
+                                       dcin: adc-channel@2 {
+                                               reg = <0x00 0x02>;
+                                       };
+                                       vph_pwr: adc-channel@4 {
+                                               reg = <0x00 0x04>;
+                                       };
+                                       batt_therm: adc-channel@8 {
+                                               reg = <0x00 0x08>;
+                                       };
+                                       batt_id: adc-channel@9 {
+                                               reg = <0x00 0x09>;
+                                       };
+                                       usb_vbus: adc-channel@a {
+                                               reg = <0x00 0x0a>;
+                                       };
+                                       die_temp: adc-channel@b {
+                                               reg = <0x00 0x0b>;
+                                       };
+                                       ref_625mv: adc-channel@c {
+                                               reg = <0x00 0x0c>;
+                                       };
+                                       ref_1250mv: adc-channel@d {
+                                               reg = <0x00 0x0d>;
+                                       };
+                                       chg_temp: adc-channel@e {
+                                               reg = <0x00 0x0e>;
+                                       };
+                                       ref_muxoff: adc-channel@f {
+                                               reg = <0x00 0x0f>;
+                                       };
+                               };
+                       };
+               };
+               qfprom: qfprom@700000 {
+                       compatible = "qcom,apq8064-qfprom", "qcom,qfprom";
+                       reg = <0x00700000 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       tsens_calib: calib@404 {
+                               reg = <0x404 0x10>;
+                       };
+                       tsens_backup: backup_calib@414 {
+                               reg = <0x414 0x10>;
+                       };
+               };
+               gcc: clock-controller@900000 {
+                       compatible = "qcom,gcc-apq8064", "syscon";
+                       reg = <0x00900000 0x4000>;
+                       #clock-cells = <1>;
+                       #power-domain-cells = <1>;
+                       #reset-cells = <1>;
+                       clocks = <&cxo_board>,
+                                <&pxo_board>,
+                                <&lcc PLL4>;
+                       clock-names = "cxo", "pxo", "pll4";
+                       tsens: thermal-sensor {
+                               compatible = "qcom,msm8960-tsens";
+                               nvmem-cells = <&tsens_calib>, <&tsens_backup>;
+                               nvmem-cell-names = "calib", "calib_backup";
+                               interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "uplow";
+                               #qcom,sensors = <11>;
+                               #thermal-sensor-cells = <1>;
+                       };
+               };
+               lcc: clock-controller@28000000 {
+                       compatible = "qcom,lcc-apq8064";
+                       reg = <0x28000000 0x1000>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       clocks = <&pxo_board>,
+                                <&gcc PLL4_VOTE>,
+                                <0>,
+                                <0>, <0>,
+                                <0>, <0>,
+                                <0>;
+                       clock-names = "pxo",
+                                     "pll4_vote",
+                                     "mi2s_codec_clk",
+                                     "codec_i2s_mic_codec_clk",
+                                     "spare_i2s_mic_codec_clk",
+                                     "codec_i2s_spkr_codec_clk",
+                                     "spare_i2s_spkr_codec_clk",
+                                     "pcm_codec_clk";
+               };
+               mmcc: clock-controller@4000000 {
+                       compatible = "qcom,mmcc-apq8064";
+                       reg = <0x4000000 0x1000>;
+                       #clock-cells = <1>;
+                       #power-domain-cells = <1>;
+                       #reset-cells = <1>;
+                       clocks = <&pxo_board>,
+                                <&gcc PLL3>,
+                                <&gcc PLL8_VOTE>,
+                                <&dsi0_phy 1>,
+                                <&dsi0_phy 0>,
+                                <&dsi1_phy 1>,
+                                <&dsi1_phy 0>,
+                                <&hdmi_phy>;
+                       clock-names = "pxo",
+                                     "pll3",
+                                     "pll8_vote",
+                                     "dsi1pll",
+                                     "dsi1pllbyte",
+                                     "dsi2pll",
+                                     "dsi2pllbyte",
+                                     "hdmipll";
+               };
+               l2cc: clock-controller@2011000 {
+                       compatible = "qcom,kpss-gcc-apq8064", "qcom,kpss-gcc", "syscon";
+                       reg = <0x2011000 0x1000>;
+                       clocks = <&gcc PLL8_VOTE>, <&pxo_board>;
+                       clock-names = "pll8_vote", "pxo";
+                       #clock-cells = <0>;
+               };
+               rpm: rpm@108000 {
+                       compatible = "qcom,rpm-apq8064";
+                       reg = <0x108000 0x1000>;
+                       qcom,ipc = <&l2cc 0x8 2>;
+                       interrupts = <GIC_SPI 19 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "ack", "err", "wakeup";
+                       rpmcc: clock-controller {
+                               compatible = "qcom,rpmcc-apq8064", "qcom,rpmcc";
+                               #clock-cells = <1>;
+                               clocks = <&pxo_board>, <&cxo_board>;
+                               clock-names = "pxo", "cxo";
+                       };
+                       regulators {
+                               compatible = "qcom,rpm-pm8921-regulators";
+                               pm8921_s1: s1 {};
+                               pm8921_s2: s2 {};
+                               pm8921_s3: s3 {};
+                               pm8921_s4: s4 {};
+                               pm8921_s7: s7 {};
+                               pm8921_s8: s8 {};
+                               pm8921_l1: l1 {};
+                               pm8921_l2: l2 {};
+                               pm8921_l3: l3 {};
+                               pm8921_l4: l4 {};
+                               pm8921_l5: l5 {};
+                               pm8921_l6: l6 {};
+                               pm8921_l7: l7 {};
+                               pm8921_l8: l8 {};
+                               pm8921_l9: l9 {};
+                               pm8921_l10: l10 {};
+                               pm8921_l11: l11 {};
+                               pm8921_l12: l12 {};
+                               pm8921_l14: l14 {};
+                               pm8921_l15: l15 {};
+                               pm8921_l16: l16 {};
+                               pm8921_l17: l17 {};
+                               pm8921_l18: l18 {};
+                               pm8921_l21: l21 {};
+                               pm8921_l22: l22 {};
+                               pm8921_l23: l23 {};
+                               pm8921_l24: l24 {};
+                               pm8921_l25: l25 {};
+                               pm8921_l26: l26 {};
+                               pm8921_l27: l27 {};
+                               pm8921_l28: l28 {};
+                               pm8921_l29: l29 {};
+                               pm8921_lvs1: lvs1 {};
+                               pm8921_lvs2: lvs2 {};
+                               pm8921_lvs3: lvs3 {};
+                               pm8921_lvs4: lvs4 {};
+                               pm8921_lvs5: lvs5 {};
+                               pm8921_lvs6: lvs6 {};
+                               pm8921_lvs7: lvs7 {};
+                               pm8921_usb_switch: usb-switch {};
+                               pm8921_hdmi_switch: hdmi-switch {
+                                       bias-pull-down;
+                               };
+                               pm8921_ncp: ncp {};
+                       };
+               };
+               usb1: usb@12500000 {
+                       compatible = "qcom,ci-hdrc";
+                       reg = <0x12500000 0x200>,
+                             <0x12500200 0x200>;
+                       interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc USB_HS1_XCVR_CLK>, <&gcc USB_HS1_H_CLK>;
+                       clock-names = "core", "iface";
+                       assigned-clocks = <&gcc USB_HS1_XCVR_CLK>;
+                       assigned-clock-rates = <60000000>;
+                       resets = <&gcc USB_HS1_RESET>;
+                       reset-names = "core";
+                       phy_type = "ulpi";
+                       ahb-burst-config = <0>;
+                       phys = <&usb_hs1_phy>;
+                       phy-names = "usb-phy";
+                       status = "disabled";
+                       #reset-cells = <1>;
+                       ulpi {
+                               usb_hs1_phy: phy {
+                                       compatible = "qcom,usb-hs-phy-apq8064",
+                                                    "qcom,usb-hs-phy";
+                                       clocks = <&sleep_clk>, <&cxo_board>;
+                                       clock-names = "sleep", "ref";
+                                       resets = <&usb1 0>;
+                                       reset-names = "por";
+                                       #phy-cells = <0>;
+                               };
+                       };
+               };
+               usb3: usb@12520000 {
+                       compatible = "qcom,ci-hdrc";
+                       reg = <0x12520000 0x200>,
+                             <0x12520200 0x200>;
+                       interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc USB_HS3_XCVR_CLK>, <&gcc USB_HS3_H_CLK>;
+                       clock-names = "core", "iface";
+                       assigned-clocks = <&gcc USB_HS3_XCVR_CLK>;
+                       assigned-clock-rates = <60000000>;
+                       resets = <&gcc USB_HS3_RESET>;
+                       reset-names = "core";
+                       phy_type = "ulpi";
+                       ahb-burst-config = <0>;
+                       phys = <&usb_hs3_phy>;
+                       phy-names = "usb-phy";
+                       status = "disabled";
+                       #reset-cells = <1>;
+                       ulpi {
+                               usb_hs3_phy: phy {
+                                       compatible = "qcom,usb-hs-phy-apq8064",
+                                                    "qcom,usb-hs-phy";
+                                       #phy-cells = <0>;
+                                       clocks = <&sleep_clk>, <&cxo_board>;
+                                       clock-names = "sleep", "ref";
+                                       resets = <&usb3 0>;
+                                       reset-names = "por";
+                               };
+                       };
+               };
+               usb4: usb@12530000 {
+                       compatible = "qcom,ci-hdrc";
+                       reg = <0x12530000 0x200>,
+                             <0x12530200 0x200>;
+                       interrupts = <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc USB_HS4_XCVR_CLK>, <&gcc USB_HS4_H_CLK>;
+                       clock-names = "core", "iface";
+                       assigned-clocks = <&gcc USB_HS4_XCVR_CLK>;
+                       assigned-clock-rates = <60000000>;
+                       resets = <&gcc USB_HS4_RESET>;
+                       reset-names = "core";
+                       phy_type = "ulpi";
+                       ahb-burst-config = <0>;
+                       phys = <&usb_hs4_phy>;
+                       phy-names = "usb-phy";
+                       status = "disabled";
+                       #reset-cells = <1>;
+                       ulpi {
+                               usb_hs4_phy: phy {
+                                       compatible = "qcom,usb-hs-phy-apq8064",
+                                                    "qcom,usb-hs-phy";
+                                       #phy-cells = <0>;
+                                       clocks = <&sleep_clk>, <&cxo_board>;
+                                       clock-names = "sleep", "ref";
+                                       resets = <&usb4 0>;
+                                       reset-names = "por";
+                               };
+                       };
+               };
+               sata_phy0: phy@1b400000 {
+                       compatible = "qcom,apq8064-sata-phy";
+                       status = "disabled";
+                       reg = <0x1b400000 0x200>;
+                       reg-names = "phy_mem";
+                       clocks = <&gcc SATA_PHY_CFG_CLK>;
+                       clock-names = "cfg";
+                       #phy-cells = <0>;
+               };
+               sata0: sata@29000000 {
+                       compatible = "qcom,apq8064-ahci", "generic-ahci";
+                       status   = "disabled";
+                       reg      = <0x29000000 0x180>;
+                       interrupts = <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc SFAB_SATA_S_H_CLK>,
+                                <&gcc SATA_H_CLK>,
+                                <&gcc SATA_A_CLK>,
+                                <&gcc SATA_RXOOB_CLK>,
+                                <&gcc SATA_PMALIVE_CLK>;
+                       clock-names = "slave_iface",
+                                     "iface",
+                                     "bus",
+                                     "rxoob",
+                                     "core_pmalive";
+                       assigned-clocks = <&gcc SATA_RXOOB_CLK>,
+                                         <&gcc SATA_PMALIVE_CLK>;
+                       assigned-clock-rates = <100000000>, <100000000>;
+                       phys = <&sata_phy0>;
+                       phy-names = "sata-phy";
+                       ports-implemented = <0x1>;
+               };
+               sdcc3: mmc@12180000 {
+                       compatible = "arm,pl18x", "arm,primecell";
+                       arm,primecell-periphid = <0x00051180>;
+                       status = "disabled";
+                       reg = <0x12180000 0x2000>;
+                       interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc SDC3_CLK>, <&gcc SDC3_H_CLK>;
+                       clock-names = "mclk", "apb_pclk";
+                       bus-width = <4>;
+                       cap-sd-highspeed;
+                       cap-mmc-highspeed;
+                       max-frequency = <192000000>;
+                       no-1-8-v;
+                       dmas = <&sdcc3bam 2>, <&sdcc3bam 1>;
+                       dma-names = "tx", "rx";
+               };
+               sdcc3bam: dma-controller@12182000 {
+                       compatible = "qcom,bam-v1.3.0";
+                       reg = <0x12182000 0x8000>;
+                       interrupts = <0 96 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc SDC3_H_CLK>;
+                       clock-names = "bam_clk";
+                       #dma-cells = <1>;
+                       qcom,ee = <0>;
+               };
+               sdcc4: mmc@121c0000 {
+                       compatible = "arm,pl18x", "arm,primecell";
+                       arm,primecell-periphid = <0x00051180>;
+                       status = "disabled";
+                       reg = <0x121c0000 0x2000>;
+                       interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc SDC4_CLK>, <&gcc SDC4_H_CLK>;
+                       clock-names = "mclk", "apb_pclk";
+                       bus-width = <4>;
+                       cap-sd-highspeed;
+                       cap-mmc-highspeed;
+                       max-frequency = <48000000>;
+                       dmas = <&sdcc4bam 2>, <&sdcc4bam 1>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&sdc4_gpios>;
+               };
+               sdcc4bam: dma-controller@121c2000 {
+                       compatible = "qcom,bam-v1.3.0";
+                       reg = <0x121c2000 0x8000>;
+                       interrupts = <0 95 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc SDC4_H_CLK>;
+                       clock-names = "bam_clk";
+                       #dma-cells = <1>;
+                       qcom,ee = <0>;
+               };
+               sdcc1: mmc@12400000 {
+                       status = "disabled";
+                       compatible = "arm,pl18x", "arm,primecell";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&sdcc1_pins>;
+                       arm,primecell-periphid = <0x00051180>;
+                       reg = <0x12400000 0x2000>;
+                       interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc SDC1_CLK>, <&gcc SDC1_H_CLK>;
+                       clock-names = "mclk", "apb_pclk";
+                       bus-width = <8>;
+                       max-frequency = <96000000>;
+                       non-removable;
+                       cap-sd-highspeed;
+                       cap-mmc-highspeed;
+                       dmas = <&sdcc1bam 2>, <&sdcc1bam 1>;
+                       dma-names = "tx", "rx";
+               };
+               sdcc1bam: dma-controller@12402000 {
+                       compatible = "qcom,bam-v1.3.0";
+                       reg = <0x12402000 0x8000>;
+                       interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc SDC1_H_CLK>;
+                       clock-names = "bam_clk";
+                       #dma-cells = <1>;
+                       qcom,ee = <0>;
+               };
+               tcsr: syscon@1a400000 {
+                       compatible = "qcom,tcsr-apq8064", "syscon";
+                       reg = <0x1a400000 0x100>;
+               };
+               gpu: adreno-3xx@4300000 {
+                       compatible = "qcom,adreno-320.2", "qcom,adreno";
+                       reg = <0x04300000 0x20000>;
+                       reg-names = "kgsl_3d0_reg_memory";
+                       interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "kgsl_3d0_irq";
+                       clock-names =
+                           "core",
+                           "iface",
+                           "mem",
+                           "mem_iface";
+                       clocks =
+                           <&mmcc GFX3D_CLK>,
+                           <&mmcc GFX3D_AHB_CLK>,
+                           <&mmcc GFX3D_AXI_CLK>,
+                           <&mmcc MMSS_IMEM_AHB_CLK>;
+                       iommus = <&gfx3d 0
+                                 &gfx3d 1
+                                 &gfx3d 2
+                                 &gfx3d 3
+                                 &gfx3d 4
+                                 &gfx3d 5
+                                 &gfx3d 6
+                                 &gfx3d 7
+                                 &gfx3d 8
+                                 &gfx3d 9
+                                 &gfx3d 10
+                                 &gfx3d 11
+                                 &gfx3d 12
+                                 &gfx3d 13
+                                 &gfx3d 14
+                                 &gfx3d 15
+                                 &gfx3d 16
+                                 &gfx3d 17
+                                 &gfx3d 18
+                                 &gfx3d 19
+                                 &gfx3d 20
+                                 &gfx3d 21
+                                 &gfx3d 22
+                                 &gfx3d 23
+                                 &gfx3d 24
+                                 &gfx3d 25
+                                 &gfx3d 26
+                                 &gfx3d 27
+                                 &gfx3d 28
+                                 &gfx3d 29
+                                 &gfx3d 30
+                                 &gfx3d 31
+                                 &gfx3d1 0
+                                 &gfx3d1 1
+                                 &gfx3d1 2
+                                 &gfx3d1 3
+                                 &gfx3d1 4
+                                 &gfx3d1 5
+                                 &gfx3d1 6
+                                 &gfx3d1 7
+                                 &gfx3d1 8
+                                 &gfx3d1 9
+                                 &gfx3d1 10
+                                 &gfx3d1 11
+                                 &gfx3d1 12
+                                 &gfx3d1 13
+                                 &gfx3d1 14
+                                 &gfx3d1 15
+                                 &gfx3d1 16
+                                 &gfx3d1 17
+                                 &gfx3d1 18
+                                 &gfx3d1 19
+                                 &gfx3d1 20
+                                 &gfx3d1 21
+                                 &gfx3d1 22
+                                 &gfx3d1 23
+                                 &gfx3d1 24
+                                 &gfx3d1 25
+                                 &gfx3d1 26
+                                 &gfx3d1 27
+                                 &gfx3d1 28
+                                 &gfx3d1 29
+                                 &gfx3d1 30
+                                 &gfx3d1 31>;
+                       operating-points-v2 = <&gpu_opp_table>;
+                       gpu_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+                               opp-450000000 {
+                                       opp-hz = /bits/ 64 <450000000>;
+                               };
+                               opp-27000000 {
+                                       opp-hz = /bits/ 64 <27000000>;
+                               };
+                       };
+               };
+               mmss_sfpb: syscon@5700000 {
+                       compatible = "syscon";
+                       reg = <0x5700000 0x70>;
+               };
+               dsi0: dsi@4700000 {
+                       compatible = "qcom,apq8064-dsi-ctrl",
+                                    "qcom,mdss-dsi-ctrl";
+                       label = "MDSS DSI CTRL->0";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
+                       reg = <0x04700000 0x200>;
+                       reg-names = "dsi_ctrl";
+                       clocks = <&mmcc DSI_M_AHB_CLK>,
+                               <&mmcc DSI_S_AHB_CLK>,
+                               <&mmcc AMP_AHB_CLK>,
+                               <&mmcc DSI_CLK>,
+                               <&mmcc DSI1_BYTE_CLK>,
+                               <&mmcc DSI_PIXEL_CLK>,
+                               <&mmcc DSI1_ESC_CLK>;
+                       clock-names = "iface", "bus", "core_mmss",
+                                       "src", "byte", "pixel",
+                                       "core";
+                       assigned-clocks = <&mmcc DSI1_BYTE_SRC>,
+                                       <&mmcc DSI1_ESC_SRC>,
+                                       <&mmcc DSI_SRC>,
+                                       <&mmcc DSI_PIXEL_SRC>;
+                       assigned-clock-parents = <&dsi0_phy 0>,
+                                               <&dsi0_phy 0>,
+                                               <&dsi0_phy 1>,
+                                               <&dsi0_phy 1>;
+                       syscon-sfpb = <&mmss_sfpb>;
+                       phys = <&dsi0_phy>;
+                       status = "disabled";
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       dsi0_in: endpoint {
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       dsi0_out: endpoint {
+                                       };
+                               };
+                       };
+               };
+               dsi0_phy: phy@4700200 {
+                       compatible = "qcom,dsi-phy-28nm-8960";
+                       #clock-cells = <1>;
+                       #phy-cells = <0>;
+                       reg = <0x04700200 0x100>,
+                               <0x04700300 0x200>,
+                               <0x04700500 0x5c>;
+                       reg-names = "dsi_pll", "dsi_phy", "dsi_phy_regulator";
+                       clock-names = "iface", "ref";
+                       clocks = <&mmcc DSI_M_AHB_CLK>,
+                                <&pxo_board>;
+                       status = "disabled";
+               };
+               dsi1: dsi@5800000 {
+                       compatible = "qcom,mdss-dsi-ctrl";
+                       interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>;
+                       reg = <0x05800000 0x200>;
+                       reg-names = "dsi_ctrl";
+                       clocks = <&mmcc DSI2_M_AHB_CLK>,
+                                <&mmcc DSI2_S_AHB_CLK>,
+                                <&mmcc AMP_AHB_CLK>,
+                                <&mmcc DSI2_CLK>,
+                                <&mmcc DSI2_BYTE_CLK>,
+                                <&mmcc DSI2_PIXEL_CLK>,
+                                <&mmcc DSI2_ESC_CLK>;
+                       clock-names = "iface",
+                                     "bus",
+                                     "core_mmss",
+                                     "src",
+                                     "byte",
+                                     "pixel",
+                                     "core";
+                       assigned-clocks = <&mmcc DSI2_BYTE_SRC>,
+                                         <&mmcc DSI2_ESC_SRC>,
+                                         <&mmcc DSI2_SRC>,
+                                         <&mmcc DSI2_PIXEL_SRC>;
+                       assigned-clock-parents = <&dsi1_phy 0>,
+                                                <&dsi1_phy 0>,
+                                                <&dsi1_phy 1>,
+                                                <&dsi1_phy 1>;
+                       syscon-sfpb = <&mmss_sfpb>;
+                       phys = <&dsi1_phy>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       dsi1_in: endpoint {
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       dsi1_out: endpoint {
+                                       };
+                               };
+                       };
+               };
+               dsi1_phy: dsi-phy@5800200 {
+                       compatible = "qcom,dsi-phy-28nm-8960";
+                       reg = <0x05800200 0x100>,
+                             <0x05800300 0x200>,
+                             <0x05800500 0x5c>;
+                       reg-names = "dsi_pll",
+                                   "dsi_phy",
+                                   "dsi_phy_regulator";
+                       clock-names = "iface",
+                                     "ref";
+                       clocks = <&mmcc DSI2_M_AHB_CLK>,
+                                <&pxo_board>;
+                       #clock-cells = <1>;
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+               mdp_port0: iommu@7500000 {
+                       compatible = "qcom,apq8064-iommu";
+                       #iommu-cells = <1>;
+                       clock-names =
+                           "smmu_pclk",
+                           "iommu_clk";
+                       clocks =
+                           <&mmcc SMMU_AHB_CLK>,
+                           <&mmcc MDP_AXI_CLK>;
+                       reg = <0x07500000 0x100000>;
+                       interrupts =
+                           <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>,
+                           <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
+                       qcom,ncb = <2>;
+               };
+               mdp_port1: iommu@7600000 {
+                       compatible = "qcom,apq8064-iommu";
+                       #iommu-cells = <1>;
+                       clock-names =
+                           "smmu_pclk",
+                           "iommu_clk";
+                       clocks =
+                           <&mmcc SMMU_AHB_CLK>,
+                           <&mmcc MDP_AXI_CLK>;
+                       reg = <0x07600000 0x100000>;
+                       interrupts =
+                           <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>,
+                           <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
+                       qcom,ncb = <2>;
+               };
+               gfx3d: iommu@7c00000 {
+                       compatible = "qcom,apq8064-iommu";
+                       #iommu-cells = <1>;
+                       clock-names =
+                           "smmu_pclk",
+                           "iommu_clk";
+                       clocks =
+                           <&mmcc SMMU_AHB_CLK>,
+                           <&mmcc GFX3D_AXI_CLK>;
+                       reg = <0x07c00000 0x100000>;
+                       interrupts =
+                           <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
+                           <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
+                       qcom,ncb = <3>;
+               };
+               gfx3d1: iommu@7d00000 {
+                       compatible = "qcom,apq8064-iommu";
+                       #iommu-cells = <1>;
+                       clock-names =
+                           "smmu_pclk",
+                           "iommu_clk";
+                       clocks =
+                           <&mmcc SMMU_AHB_CLK>,
+                           <&mmcc GFX3D_AXI_CLK>;
+                       reg = <0x07d00000 0x100000>;
+                       interrupts =
+                           <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>,
+                           <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>;
+                       qcom,ncb = <3>;
+               };
+               pcie: pci@1b500000 {
+                       compatible = "qcom,pcie-apq8064";
+                       reg = <0x1b500000 0x1000>,
+                             <0x1b502000 0x80>,
+                             <0x1b600000 0x100>,
+                             <0x0ff00000 0x100000>;
+                       reg-names = "dbi", "elbi", "parf", "config";
+                       device_type = "pci";
+                       linux,pci-domain = <0>;
+                       bus-range = <0x00 0xff>;
+                       num-lanes = <1>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges = <0x81000000 0x0 0x00000000 0x0fe00000 0x0 0x00100000>, /* I/O */
+                                <0x82000000 0x0 0x08000000 0x08000000 0x0 0x07e00000>; /* mem */
+                       interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "msi";
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 0x7>;
+                       interrupt-map = <0 0 0 1 &intc 0 36 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
+                                       <0 0 0 2 &intc 0 37 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
+                                       <0 0 0 3 &intc 0 38 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
+                                       <0 0 0 4 &intc 0 39 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
+                       clocks = <&gcc PCIE_A_CLK>,
+                                <&gcc PCIE_H_CLK>,
+                                <&gcc PCIE_PHY_REF_CLK>;
+                       clock-names = "core", "iface", "phy";
+                       resets = <&gcc PCIE_ACLK_RESET>,
+                                <&gcc PCIE_HCLK_RESET>,
+                                <&gcc PCIE_POR_RESET>,
+                                <&gcc PCIE_PCI_RESET>,
+                                <&gcc PCIE_PHY_RESET>;
+                       reset-names = "axi", "ahb", "por", "pci", "phy";
+                       status = "disabled";
+               };
+               hdmi: hdmi-tx@4a00000 {
+                       compatible = "qcom,hdmi-tx-8960";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&hdmi_pinctrl>;
+                       reg = <0x04a00000 0x2f0>;
+                       reg-names = "core_physical";
+                       interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&mmcc HDMI_APP_CLK>,
+                                <&mmcc HDMI_M_AHB_CLK>,
+                                <&mmcc HDMI_S_AHB_CLK>;
+                       clock-names = "core",
+                                     "master_iface",
+                                     "slave_iface";
+                       phys = <&hdmi_phy>;
+                       status = "disabled";
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       hdmi_in: endpoint {
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       hdmi_out: endpoint {
+                                       };
+                               };
+                       };
+               };
+               hdmi_phy: phy@4a00400 {
+                       compatible = "qcom,hdmi-phy-8960";
+                       reg = <0x4a00400 0x60>,
+                             <0x4a00500 0x100>;
+                       reg-names = "hdmi_phy",
+                                   "hdmi_pll";
+                       clocks = <&mmcc HDMI_S_AHB_CLK>;
+                       clock-names = "slave_iface";
+                       #phy-cells = <0>;
+                       #clock-cells = <0>;
+                       status = "disabled";
+               };
+               mdp: display-controller@5100000 {
+                       compatible = "qcom,mdp4";
+                       reg = <0x05100000 0xf0000>;
+                       interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&mmcc MDP_CLK>,
+                                <&mmcc MDP_AHB_CLK>,
+                                <&mmcc MDP_AXI_CLK>,
+                                <&mmcc MDP_LUT_CLK>,
+                                <&mmcc HDMI_TV_CLK>,
+                                <&mmcc MDP_TV_CLK>;
+                       clock-names = "core_clk",
+                                     "iface_clk",
+                                     "bus_clk",
+                                     "lut_clk",
+                                     "hdmi_clk",
+                                     "tv_clk";
+                       iommus = <&mdp_port0 0
+                                 &mdp_port0 2
+                                 &mdp_port1 0
+                                 &mdp_port1 2>;
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       mdp_lvds_out: endpoint {
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       mdp_dsi1_out: endpoint {
+                                       };
+                               };
+                               port@2 {
+                                       reg = <2>;
+                                       mdp_dsi2_out: endpoint {
+                                       };
+                               };
+                               port@3 {
+                                       reg = <3>;
+                                       mdp_dtv_out: endpoint {
+                                       };
+                               };
+                       };
+               };
+               riva: riva-pil@3200800 {
+                       compatible = "qcom,riva-pil";
+                       reg = <0x03200800 0x1000>, <0x03202000 0x2000>, <0x03204000 0x100>;
+                       reg-names = "ccu", "dxe", "pmu";
+                       interrupts-extended = <&intc GIC_SPI 199 IRQ_TYPE_EDGE_RISING>,
+                                             <&wcnss_smsm 6 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog", "fatal";
+                       memory-region = <&wcnss_mem>;
+                       vddcx-supply = <&pm8921_s3>;
+                       vddmx-supply = <&pm8921_l24>;
+                       vddpx-supply = <&pm8921_s4>;
+                       status = "disabled";
+                       iris {
+                               compatible = "qcom,wcn3660";
+                               clocks = <&cxo_board>;
+                               clock-names = "xo";
+                               vddxo-supply = <&pm8921_l4>;
+                               vddrfa-supply = <&pm8921_s2>;
+                               vddpa-supply = <&pm8921_l10>;
+                               vdddig-supply = <&pm8921_lvs2>;
+                       };
+                       smd-edge {
+                               interrupts = <GIC_SPI 198 IRQ_TYPE_EDGE_RISING>;
+                               qcom,ipc = <&l2cc 8 25>;
+                               qcom,smd-edge = <6>;
+                               label = "riva";
+                               wcnss {
+                                       compatible = "qcom,wcnss";
+                                       qcom,smd-channels = "WCNSS_CTRL";
+                                       qcom,mmio = <&riva>;
+                                       bluetooth {
+                                               compatible = "qcom,wcnss-bt";
+                                       };
+                                       wifi {
+                                               compatible = "qcom,wcnss-wlan";
+                                               interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>,
+                                                            <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>;
+                                               interrupt-names = "tx", "rx";
+                                               qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
+                                               qcom,smem-state-names = "tx-enable", "tx-rings-empty";
+                                       };
+                               };
+                       };
+               };
+               etb@1a01000 {
+                       compatible = "arm,coresight-etb10", "arm,primecell";
+                       reg = <0x1a01000 0x1000>;
+                       clocks = <&rpmcc RPM_QDSS_CLK>;
+                       clock-names = "apb_pclk";
+                       in-ports {
+                               port {
+                                       etb_in: endpoint {
+                                               remote-endpoint = <&replicator_out0>;
+                                       };
+                               };
+                       };
+               };
+               tpiu@1a03000 {
+                       compatible = "arm,coresight-tpiu", "arm,primecell";
+                       reg = <0x1a03000 0x1000>;
+                       clocks = <&rpmcc RPM_QDSS_CLK>;
+                       clock-names = "apb_pclk";
+                       in-ports {
+                               port {
+                                       tpiu_in: endpoint {
+                                               remote-endpoint = <&replicator_out1>;
+                                       };
+                               };
+                       };
+               };
+               replicator {
+                       compatible = "arm,coresight-static-replicator";
+                       clocks = <&rpmcc RPM_QDSS_CLK>;
+                       clock-names = "apb_pclk";
+                       out-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       replicator_out0: endpoint {
+                                               remote-endpoint = <&etb_in>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       replicator_out1: endpoint {
+                                               remote-endpoint = <&tpiu_in>;
+                                       };
+                               };
+                       };
+                       in-ports {
+                               port {
+                                       replicator_in: endpoint {
+                                               remote-endpoint = <&funnel_out>;
+                                       };
+                               };
+                       };
+               };
+               funnel@1a04000 {
+                       compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
+                       reg = <0x1a04000 0x1000>;
+                       clocks = <&rpmcc RPM_QDSS_CLK>;
+                       clock-names = "apb_pclk";
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               /*
+                                * Not described input ports:
+                                * 2 - connected to STM component
+                                * 3 - not-connected
+                                * 6 - not-connected
+                                * 7 - not-connected
+                                */
+                               port@0 {
+                                       reg = <0>;
+                                       funnel_in0: endpoint {
+                                               remote-endpoint = <&etm0_out>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       funnel_in1: endpoint {
+                                               remote-endpoint = <&etm1_out>;
+                                       };
+                               };
+                               port@4 {
+                                       reg = <4>;
+                                       funnel_in4: endpoint {
+                                               remote-endpoint = <&etm2_out>;
+                                       };
+                               };
+                               port@5 {
+                                       reg = <5>;
+                                       funnel_in5: endpoint {
+                                               remote-endpoint = <&etm3_out>;
+                                       };
+                               };
+                       };
+                       out-ports {
+                               port {
+                                       funnel_out: endpoint {
+                                               remote-endpoint = <&replicator_in>;
+                                       };
+                               };
+                       };
+               };
+               etm@1a1c000 {
+                       compatible = "arm,coresight-etm3x", "arm,primecell";
+                       reg = <0x1a1c000 0x1000>;
+                       clocks = <&rpmcc RPM_QDSS_CLK>;
+                       clock-names = "apb_pclk";
+                       cpu = <&CPU0>;
+                       out-ports {
+                               port {
+                                       etm0_out: endpoint {
+                                               remote-endpoint = <&funnel_in0>;
+                                       };
+                               };
+                       };
+               };
+               etm@1a1d000 {
+                       compatible = "arm,coresight-etm3x", "arm,primecell";
+                       reg = <0x1a1d000 0x1000>;
+                       clocks = <&rpmcc RPM_QDSS_CLK>;
+                       clock-names = "apb_pclk";
+                       cpu = <&CPU1>;
+                       out-ports {
+                               port {
+                                       etm1_out: endpoint {
+                                               remote-endpoint = <&funnel_in1>;
+                                       };
+                               };
+                       };
+               };
+               etm@1a1e000 {
+                       compatible = "arm,coresight-etm3x", "arm,primecell";
+                       reg = <0x1a1e000 0x1000>;
+                       clocks = <&rpmcc RPM_QDSS_CLK>;
+                       clock-names = "apb_pclk";
+                       cpu = <&CPU2>;
+                       out-ports {
+                               port {
+                                       etm2_out: endpoint {
+                                               remote-endpoint = <&funnel_in4>;
+                                       };
+                               };
+                       };
+               };
+               etm@1a1f000 {
+                       compatible = "arm,coresight-etm3x", "arm,primecell";
+                       reg = <0x1a1f000 0x1000>;
+                       clocks = <&rpmcc RPM_QDSS_CLK>;
+                       clock-names = "apb_pclk";
+                       cpu = <&CPU3>;
+                       out-ports {
+                               port {
+                                       etm3_out: endpoint {
+                                               remote-endpoint = <&funnel_in5>;
+                                       };
+                               };
+                       };
+               };
+       };
+ };
+ #include "qcom-apq8064-pins.dtsi"
index 0000000,207124d..8f178bc
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,852 +1,853 @@@
+ // SPDX-License-Identifier: GPL-2.0
+ /dts-v1/;
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/clock/qcom,gcc-apq8084.h>
+ #include <dt-bindings/gpio/gpio.h>
+ / {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       model = "Qualcomm APQ 8084";
+       compatible = "qcom,apq8084";
+       interrupt-parent = <&intc>;
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+               smem_mem: smem_region@fa00000 {
+                       reg = <0xfa00000 0x200000>;
+                       no-map;
+               };
+       };
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               cpu@0 {
+                       device_type = "cpu";
+                       compatible = "qcom,krait";
+                       reg = <0>;
+                       enable-method = "qcom,kpss-acc-v2";
+                       next-level-cache = <&L2>;
+                       qcom,acc = <&acc0>;
+                       qcom,saw = <&saw0>;
+                       cpu-idle-states = <&CPU_SPC>;
+               };
+               cpu@1 {
+                       device_type = "cpu";
+                       compatible = "qcom,krait";
+                       reg = <1>;
+                       enable-method = "qcom,kpss-acc-v2";
+                       next-level-cache = <&L2>;
+                       qcom,acc = <&acc1>;
+                       qcom,saw = <&saw1>;
+                       cpu-idle-states = <&CPU_SPC>;
+               };
+               cpu@2 {
+                       device_type = "cpu";
+                       compatible = "qcom,krait";
+                       reg = <2>;
+                       enable-method = "qcom,kpss-acc-v2";
+                       next-level-cache = <&L2>;
+                       qcom,acc = <&acc2>;
+                       qcom,saw = <&saw2>;
+                       cpu-idle-states = <&CPU_SPC>;
+               };
+               cpu@3 {
+                       device_type = "cpu";
+                       compatible = "qcom,krait";
+                       reg = <3>;
+                       enable-method = "qcom,kpss-acc-v2";
+                       next-level-cache = <&L2>;
+                       qcom,acc = <&acc3>;
+                       qcom,saw = <&saw3>;
+                       cpu-idle-states = <&CPU_SPC>;
+               };
+               L2: l2-cache {
+                       compatible = "cache";
+                       cache-level = <2>;
++                      cache-unified;
+                       qcom,saw = <&saw_l2>;
+               };
+               idle-states {
+                       CPU_SPC: spc {
+                               compatible = "qcom,idle-state-spc",
+                                               "arm,idle-state";
+                               entry-latency-us = <150>;
+                               exit-latency-us = <200>;
+                               min-residency-us = <2000>;
+                       };
+               };
+       };
+       memory {
+               device_type = "memory";
+               reg = <0x0 0x0>;
+       };
+       firmware {
+               scm {
+                       compatible = "qcom,scm-apq8084", "qcom,scm";
+                       clocks = <&gcc GCC_CE1_CLK> , <&gcc GCC_CE1_AXI_CLK>, <&gcc GCC_CE1_AHB_CLK>;
+                       clock-names = "core", "bus", "iface";
+               };
+       };
+       thermal-zones {
+               cpu0-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsens 5>;
+                       trips {
+                               cpu_alert0: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit0: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+               cpu1-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsens 6>;
+                       trips {
+                               cpu_alert1: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit1: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+               cpu2-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsens 7>;
+                       trips {
+                               cpu_alert2: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit2: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+               cpu3-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsens 8>;
+                       trips {
+                               cpu_alert3: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit3: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+       cpu-pmu {
+               compatible = "qcom,krait-pmu";
+               interrupts = <GIC_PPI 7 0xf04>;
+       };
+       clocks {
+               xo_board: xo_board {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <19200000>;
+               };
+               sleep_clk: sleep_clk {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <32768>;
+               };
+       };
+       timer {
+               compatible = "arm,armv7-timer";
+               interrupts = <GIC_PPI 2 0xf08>,
+                            <GIC_PPI 3 0xf08>,
+                            <GIC_PPI 4 0xf08>,
+                            <GIC_PPI 1 0xf08>;
+               clock-frequency = <19200000>;
+       };
+       smem {
+               compatible = "qcom,smem";
+               qcom,rpm-msg-ram = <&rpm_msg_ram>;
+               memory-region = <&smem_mem>;
+               hwlocks = <&tcsr_mutex 3>;
+       };
+       soc: soc {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+               compatible = "simple-bus";
+               intc: interrupt-controller@f9000000 {
+                       compatible = "qcom,msm-qgic2";
+                       interrupt-controller;
+                       #interrupt-cells = <3>;
+                       reg = <0xf9000000 0x1000>,
+                             <0xf9002000 0x1000>;
+               };
+               apcs: syscon@f9011000 {
+                       compatible = "syscon";
+                       reg = <0xf9011000 0x1000>;
+               };
+               sram@fc190000 {
+                       compatible = "qcom,apq8084-rpm-stats";
+                       reg = <0xfc190000 0x10000>;
+               };
+               qfprom: qfprom@fc4bc000 {
+                       compatible = "qcom,apq8084-qfprom", "qcom,qfprom";
+                       reg = <0xfc4bc000 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       tsens_base1: base1@d0 {
+                               reg = <0xd0 0x1>;
+                               bits = <0 8>;
+                       };
+                       tsens_s0_p1: s0-p1@d1 {
+                               reg = <0xd1 0x1>;
+                               bits = <0 6>;
+                       };
+                       tsens_s1_p1: s1-p1@d2 {
+                               reg = <0xd1 0x2>;
+                               bits = <6 6>;
+                       };
+                       tsens_s2_p1: s2-p1@d2 {
+                               reg = <0xd2 0x2>;
+                               bits = <4 6>;
+                       };
+                       tsens_s3_p1: s3-p1@d3 {
+                               reg = <0xd3 0x1>;
+                               bits = <2 6>;
+                       };
+                       tsens_s4_p1: s4-p1@d4 {
+                               reg = <0xd4 0x1>;
+                               bits = <0 6>;
+                       };
+                       tsens_s5_p1: s5-p1@d4 {
+                               reg = <0xd4 0x2>;
+                               bits = <6 6>;
+                       };
+                       tsens_s6_p1: s6-p1@d5 {
+                               reg = <0xd5 0x2>;
+                               bits = <4 6>;
+                       };
+                       tsens_s7_p1: s7-p1@d6 {
+                               reg = <0xd6 0x1>;
+                               bits = <2 6>;
+                       };
+                       tsens_s8_p1: s8-p1@d7 {
+                               reg = <0xd7 0x1>;
+                               bits = <0 6>;
+                       };
+                       tsens_mode: mode@d7 {
+                               reg = <0xd7 0x1>;
+                               bits = <6 2>;
+                       };
+                       tsens_s9_p1: s9-p1@d8 {
+                               reg = <0xd8 0x1>;
+                               bits = <0 6>;
+                       };
+                       tsens_s10_p1: s10_p1@d8 {
+                               reg = <0xd8 0x2>;
+                               bits = <6 6>;
+                       };
+                       tsens_base2: base2@d9 {
+                               reg = <0xd9 0x2>;
+                               bits = <4 8>;
+                       };
+                       tsens_s0_p2: s0-p2@da {
+                               reg = <0xda 0x2>;
+                               bits = <4 6>;
+                       };
+                       tsens_s1_p2: s1-p2@db {
+                               reg = <0xdb 0x1>;
+                               bits = <2 6>;
+                       };
+                       tsens_s2_p2: s2-p2@dc {
+                               reg = <0xdc 0x1>;
+                               bits = <0 6>;
+                       };
+                       tsens_s3_p2: s3-p2@dc {
+                               reg = <0xdc 0x2>;
+                               bits = <6 6>;
+                       };
+                       tsens_s4_p2: s4-p2@dd {
+                               reg = <0xdd 0x2>;
+                               bits = <4 6>;
+                       };
+                       tsens_s5_p2: s5-p2@de {
+                               reg = <0xde 0x2>;
+                               bits = <2 6>;
+                       };
+                       tsens_s6_p2: s6-p2@df {
+                               reg = <0xdf 0x1>;
+                               bits = <0 6>;
+                       };
+                       tsens_s7_p2: s7-p2@e0 {
+                               reg = <0xe0 0x1>;
+                               bits = <0 6>;
+                       };
+                       tsens_s8_p2: s8-p2@e0 {
+                               reg = <0xe0 0x2>;
+                               bits = <6 6>;
+                       };
+                       tsens_s9_p2: s9-p2@e1 {
+                               reg = <0xe1 0x2>;
+                               bits = <4 6>;
+                       };
+                       tsens_s10_p2: s10_p2@e2 {
+                               reg = <0xe2 0x2>;
+                               bits = <2 6>;
+                       };
+                       tsens_s5_p2_backup: s5-p2_backup@e3 {
+                               reg = <0xe3 0x2>;
+                               bits = <0 6>;
+                       };
+                       tsens_mode_backup: mode_backup@e3 {
+                               reg = <0xe3 0x1>;
+                               bits = <6 2>;
+                       };
+                       tsens_s6_p2_backup: s6-p2_backup@e4 {
+                               reg = <0xe4 0x1>;
+                               bits = <0 6>;
+                       };
+                       tsens_s7_p2_backup: s7-p2_backup@e4 {
+                               reg = <0xe4 0x2>;
+                               bits = <6 6>;
+                       };
+                       tsens_s8_p2_backup: s8-p2_backup@e5 {
+                               reg = <0xe5 0x2>;
+                               bits = <4 6>;
+                       };
+                       tsens_s9_p2_backup: s9-p2_backup@e6 {
+                               reg = <0xe6 0x2>;
+                               bits = <2 6>;
+                       };
+                       tsens_s10_p2_backup: s10_p2_backup@e7 {
+                               reg = <0xe7 0x1>;
+                               bits = <0 6>;
+                       };
+                       tsens_base1_backup: base1_backup@440 {
+                               reg = <0x440 0x1>;
+                               bits = <0 8>;
+                       };
+                       tsens_s0_p1_backup: s0-p1_backup@441 {
+                               reg = <0x441 0x1>;
+                               bits = <0 6>;
+                       };
+                       tsens_s1_p1_backup: s1-p1_backup@442 {
+                               reg = <0x441 0x2>;
+                               bits = <6 6>;
+                       };
+                       tsens_s2_p1_backup: s2-p1_backup@442 {
+                               reg = <0x442 0x2>;
+                               bits = <4 6>;
+                       };
+                       tsens_s3_p1_backup: s3-p1_backup@443 {
+                               reg = <0x443 0x1>;
+                               bits = <2 6>;
+                       };
+                       tsens_s4_p1_backup: s4-p1_backup@444 {
+                               reg = <0x444 0x1>;
+                               bits = <0 6>;
+                       };
+                       tsens_s5_p1_backup: s5-p1_backup@444 {
+                               reg = <0x444 0x2>;
+                               bits = <6 6>;
+                       };
+                       tsens_s6_p1_backup: s6-p1_backup@445 {
+                               reg = <0x445 0x2>;
+                               bits = <4 6>;
+                       };
+                       tsens_s7_p1_backup: s7-p1_backup@446 {
+                               reg = <0x446 0x1>;
+                               bits = <2 6>;
+                       };
+                       tsens_use_backup: use_backup@447 {
+                               reg = <0x447 0x1>;
+                               bits = <5 3>;
+                       };
+                       tsens_s8_p1_backup: s8-p1_backup@448 {
+                               reg = <0x448 0x1>;
+                               bits = <0 6>;
+                       };
+                       tsens_s9_p1_backup: s9-p1_backup@448 {
+                               reg = <0x448 0x2>;
+                               bits = <6 6>;
+                       };
+                       tsens_s10_p1_backup: s10_p1_backup@449 {
+                               reg = <0x449 0x2>;
+                               bits = <4 6>;
+                       };
+                       tsens_base2_backup: base2_backup@44a {
+                               reg = <0x44a 0x2>;
+                               bits = <2 8>;
+                       };
+                       tsens_s0_p2_backup: s0-p2_backup@44b {
+                               reg = <0x44b 0x3>;
+                               bits = <2 6>;
+                       };
+                       tsens_s1_p2_backup: s1-p2_backup@44c {
+                               reg = <0x44c 0x1>;
+                               bits = <0 6>;
+                       };
+                       tsens_s2_p2_backup: s2-p2_backup@44c {
+                               reg = <0x44c 0x2>;
+                               bits = <6 6>;
+                       };
+                       tsens_s3_p2_backup: s3-p2_backup@44d {
+                               reg = <0x44d 0x2>;
+                               bits = <4 6>;
+                       };
+                       tsens_s4_p2_backup: s4-p2_backup@44e {
+                               reg = <0x44e 0x1>;
+                               bits = <2 6>;
+                       };
+               };
+               tsens: thermal-sensor@fc4a9000 {
+                       compatible = "qcom,msm8974-tsens", "qcom,tsens-v0_1";
+                       reg = <0xfc4a9000 0x1000>, /* TM */
+                             <0xfc4a8000 0x1000>; /* SROT */
+                       nvmem-cells = <&tsens_mode>,
+                                     <&tsens_base1>, <&tsens_base2>,
+                                     <&tsens_use_backup>,
+                                     <&tsens_mode_backup>,
+                                     <&tsens_base1_backup>, <&tsens_base2_backup>,
+                                     <&tsens_s0_p1>, <&tsens_s0_p2>,
+                                     <&tsens_s1_p1>, <&tsens_s1_p2>,
+                                     <&tsens_s2_p1>, <&tsens_s2_p2>,
+                                     <&tsens_s3_p1>, <&tsens_s3_p2>,
+                                     <&tsens_s4_p1>, <&tsens_s4_p2>,
+                                     <&tsens_s5_p1>, <&tsens_s5_p2>,
+                                     <&tsens_s6_p1>, <&tsens_s6_p2>,
+                                     <&tsens_s7_p1>, <&tsens_s7_p2>,
+                                     <&tsens_s8_p1>, <&tsens_s8_p2>,
+                                     <&tsens_s9_p1>, <&tsens_s9_p2>,
+                                     <&tsens_s10_p1>, <&tsens_s10_p2>,
+                                     <&tsens_s0_p1_backup>, <&tsens_s0_p2_backup>,
+                                     <&tsens_s1_p1_backup>, <&tsens_s1_p2_backup>,
+                                     <&tsens_s2_p1_backup>, <&tsens_s2_p2_backup>,
+                                     <&tsens_s3_p1_backup>, <&tsens_s3_p2_backup>,
+                                     <&tsens_s4_p1_backup>, <&tsens_s4_p2_backup>,
+                                     <&tsens_s5_p1_backup>, <&tsens_s5_p2_backup>,
+                                     <&tsens_s6_p1_backup>, <&tsens_s6_p2_backup>,
+                                     <&tsens_s7_p1_backup>, <&tsens_s7_p2_backup>,
+                                     <&tsens_s8_p1_backup>, <&tsens_s8_p2_backup>,
+                                     <&tsens_s9_p1_backup>, <&tsens_s9_p2_backup>,
+                                     <&tsens_s10_p1_backup>, <&tsens_s10_p2_backup>;
+                       nvmem-cell-names = "mode",
+                                          "base1", "base2",
+                                          "use_backup",
+                                          "mode_backup",
+                                          "base1_backup", "base2_backup",
+                                          "s0_p1", "s0_p2",
+                                          "s1_p1", "s1_p2",
+                                          "s2_p1", "s2_p2",
+                                          "s3_p1", "s3_p2",
+                                          "s4_p1", "s4_p2",
+                                          "s5_p1", "s5_p2",
+                                          "s6_p1", "s6_p2",
+                                          "s7_p1", "s7_p2",
+                                          "s8_p1", "s8_p2",
+                                          "s9_p1", "s9_p2",
+                                          "s10_p1", "s10_p2",
+                                          "s0_p1_backup", "s0_p2_backup",
+                                          "s1_p1_backup", "s1_p2_backup",
+                                          "s2_p1_backup", "s2_p2_backup",
+                                          "s3_p1_backup", "s3_p2_backup",
+                                          "s4_p1_backup", "s4_p2_backup",
+                                          "s5_p1_backup", "s5_p2_backup",
+                                          "s6_p1_backup", "s6_p2_backup",
+                                          "s7_p1_backup", "s7_p2_backup",
+                                          "s8_p1_backup", "s8_p2_backup",
+                                          "s9_p1_backup", "s9_p2_backup",
+                                          "s10_p1_backup", "s10_p2_backup";
+                       #qcom,sensors = <11>;
+                       interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "uplow";
+                       #thermal-sensor-cells = <1>;
+               };
+               timer@f9020000 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       compatible = "arm,armv7-timer-mem";
+                       reg = <0xf9020000 0x1000>;
+                       clock-frequency = <19200000>;
+                       frame@f9021000 {
+                               frame-number = <0>;
+                               interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0xf9021000 0x1000>,
+                                     <0xf9022000 0x1000>;
+                       };
+                       frame@f9023000 {
+                               frame-number = <1>;
+                               interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0xf9023000 0x1000>;
+                               status = "disabled";
+                       };
+                       frame@f9024000 {
+                               frame-number = <2>;
+                               interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0xf9024000 0x1000>;
+                               status = "disabled";
+                       };
+                       frame@f9025000 {
+                               frame-number = <3>;
+                               interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0xf9025000 0x1000>;
+                               status = "disabled";
+                       };
+                       frame@f9026000 {
+                               frame-number = <4>;
+                               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0xf9026000 0x1000>;
+                               status = "disabled";
+                       };
+                       frame@f9027000 {
+                               frame-number = <5>;
+                               interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0xf9027000 0x1000>;
+                               status = "disabled";
+                       };
+                       frame@f9028000 {
+                               frame-number = <6>;
+                               interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0xf9028000 0x1000>;
+                               status = "disabled";
+                       };
+               };
+               saw0: power-controller@f9089000 {
+                       compatible = "qcom,apq8084-saw2-v2.1-cpu", "qcom,saw2";
+                       reg = <0xf9089000 0x1000>, <0xf9009000 0x1000>;
+               };
+               saw1: power-controller@f9099000 {
+                       compatible = "qcom,apq8084-saw2-v2.1-cpu", "qcom,saw2";
+                       reg = <0xf9099000 0x1000>, <0xf9009000 0x1000>;
+               };
+               saw2: power-controller@f90a9000 {
+                       compatible = "qcom,apq8084-saw2-v2.1-cpu", "qcom,saw2";
+                       reg = <0xf90a9000 0x1000>, <0xf9009000 0x1000>;
+               };
+               saw3: power-controller@f90b9000 {
+                       compatible = "qcom,apq8084-saw2-v2.1-cpu", "qcom,saw2";
+                       reg = <0xf90b9000 0x1000>, <0xf9009000 0x1000>;
+               };
+               saw_l2: power-controller@f9012000 {
+                       compatible = "qcom,saw2";
+                       reg = <0xf9012000 0x1000>;
+                       regulator;
+               };
+               acc0: power-manager@f9088000 {
+                       compatible = "qcom,kpss-acc-v2";
+                       reg = <0xf9088000 0x1000>,
+                             <0xf9008000 0x1000>;
+               };
+               acc1: power-manager@f9098000 {
+                       compatible = "qcom,kpss-acc-v2";
+                       reg = <0xf9098000 0x1000>,
+                             <0xf9008000 0x1000>;
+               };
+               acc2: power-manager@f90a8000 {
+                       compatible = "qcom,kpss-acc-v2";
+                       reg = <0xf90a8000 0x1000>,
+                             <0xf9008000 0x1000>;
+               };
+               acc3: power-manager@f90b8000 {
+                       compatible = "qcom,kpss-acc-v2";
+                       reg = <0xf90b8000 0x1000>,
+                             <0xf9008000 0x1000>;
+               };
+               restart@fc4ab000 {
+                       compatible = "qcom,pshold";
+                       reg = <0xfc4ab000 0x4>;
+               };
+               gcc: clock-controller@fc400000 {
+                       compatible = "qcom,gcc-apq8084";
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+                       reg = <0xfc400000 0x4000>;
+                       clocks = <&xo_board>,
+                                <&sleep_clk>,
+                                <0>, /* ufs */
+                                <0>,
+                                <0>,
+                                <0>,
+                                <0>, /* sata */
+                                <0>,
+                                <0>; /* pcie */
+                       clock-names = "xo",
+                                     "sleep_clk",
+                                     "ufs_rx_symbol_0_clk_src",
+                                     "ufs_rx_symbol_1_clk_src",
+                                     "ufs_tx_symbol_0_clk_src",
+                                     "ufs_tx_symbol_1_clk_src",
+                                     "sata_asic0_clk",
+                                     "sata_rx_clk",
+                                     "pcie_pipe";
+               };
+               tcsr_mutex: hwlock@fd484000 {
+                       compatible = "qcom,apq8084-tcsr-mutex", "qcom,tcsr-mutex";
+                       reg = <0xfd484000 0x1000>;
+                       #hwlock-cells = <1>;
+               };
+               rpm_msg_ram: sram@fc428000 {
+                       compatible = "qcom,rpm-msg-ram";
+                       reg = <0xfc428000 0x4000>;
+               };
+               tlmm: pinctrl@fd510000 {
+                       compatible = "qcom,apq8084-pinctrl";
+                       reg = <0xfd510000 0x4000>;
+                       gpio-controller;
+                       gpio-ranges = <&tlmm 0 0 147>;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
+               };
+               blsp2_uart2: serial@f995e000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0xf995e000 0x1000>;
+                       interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP2_UART2_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       status = "disabled";
+               };
+               sdhc_1: mmc@f9824900 {
+                       compatible = "qcom,apq8084-sdhci", "qcom,sdhci-msm-v4";
+                       reg = <0xf9824900 0x11c>, <0xf9824000 0x800>;
+                       reg-names = "hc", "core";
+                       interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hc_irq", "pwr_irq";
+                       clocks = <&gcc GCC_SDCC1_AHB_CLK>,
+                                <&gcc GCC_SDCC1_APPS_CLK>,
+                                <&xo_board>;
+                       clock-names = "iface", "core", "xo";
+                       status = "disabled";
+               };
+               sdhc_2: mmc@f98a4900 {
+                       compatible = "qcom,apq8084-sdhci", "qcom,sdhci-msm-v4";
+                       reg = <0xf98a4900 0x11c>, <0xf98a4000 0x800>;
+                       reg-names = "hc", "core";
+                       interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hc_irq", "pwr_irq";
+                       clocks = <&gcc GCC_SDCC2_AHB_CLK>,
+                                <&gcc GCC_SDCC2_APPS_CLK>,
+                                <&xo_board>;
+                       clock-names = "iface", "core", "xo";
+                       status = "disabled";
+               };
+               spmi_bus: spmi@fc4cf000 {
+                       compatible = "qcom,spmi-pmic-arb";
+                       reg-names = "core", "intr", "cnfg";
+                       reg = <0xfc4cf000 0x1000>,
+                             <0xfc4cb000 0x1000>,
+                             <0xfc4ca000 0x1000>;
+                       interrupt-names = "periph_irq";
+                       interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
+                       qcom,ee = <0>;
+                       qcom,channel = <0>;
+                       #address-cells = <2>;
+                       #size-cells = <0>;
+                       interrupt-controller;
+                       #interrupt-cells = <4>;
+               };
+       };
+       smd {
+               compatible = "qcom,smd";
+               rpm {
+                       interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
+                       qcom,ipc = <&apcs 8 0>;
+                       qcom,smd-edge = <15>;
+                       rpm-requests {
+                               compatible = "qcom,rpm-apq8084";
+                               qcom,smd-channels = "rpm_requests";
+                               regulators-0 {
+                                       compatible = "qcom,rpm-pma8084-regulators";
+                                       pma8084_s1: s1 {};
+                                       pma8084_s2: s2 {};
+                                       pma8084_s3: s3 {};
+                                       pma8084_s4: s4 {};
+                                       pma8084_s5: s5 {};
+                                       pma8084_s6: s6 {};
+                                       pma8084_s7: s7 {};
+                                       pma8084_s8: s8 {};
+                                       pma8084_s9: s9 {};
+                                       pma8084_s10: s10 {};
+                                       pma8084_s11: s11 {};
+                                       pma8084_s12: s12 {};
+                                       pma8084_l1: l1 {};
+                                       pma8084_l2: l2 {};
+                                       pma8084_l3: l3 {};
+                                       pma8084_l4: l4 {};
+                                       pma8084_l5: l5 {};
+                                       pma8084_l6: l6 {};
+                                       pma8084_l7: l7 {};
+                                       pma8084_l8: l8 {};
+                                       pma8084_l9: l9 {};
+                                       pma8084_l10: l10 {};
+                                       pma8084_l11: l11 {};
+                                       pma8084_l12: l12 {};
+                                       pma8084_l13: l13 {};
+                                       pma8084_l14: l14 {};
+                                       pma8084_l15: l15 {};
+                                       pma8084_l16: l16 {};
+                                       pma8084_l17: l17 {};
+                                       pma8084_l18: l18 {};
+                                       pma8084_l19: l19 {};
+                                       pma8084_l20: l20 {};
+                                       pma8084_l21: l21 {};
+                                       pma8084_l22: l22 {};
+                                       pma8084_l23: l23 {};
+                                       pma8084_l24: l24 {};
+                                       pma8084_l25: l25 {};
+                                       pma8084_l26: l26 {};
+                                       pma8084_l27: l27 {};
+                                       pma8084_lvs1: lvs1 {};
+                                       pma8084_lvs2: lvs2 {};
+                                       pma8084_lvs3: lvs3 {};
+                                       pma8084_lvs4: lvs4 {};
+                                       pma8084_5vs1: 5vs1 {};
+                               };
+                       };
+               };
+       };
+ };
index 0000000,dfcfb33..f0ef86f
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,697 +1,698 @@@
+ // SPDX-License-Identifier: GPL-2.0-only
+ /*
+  * Copyright (c) 2015, The Linux Foundation. All rights reserved.
+  */
+ /dts-v1/;
+ #include <dt-bindings/clock/qcom,gcc-ipq4019.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+ / {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       model = "Qualcomm Technologies, Inc. IPQ4019";
+       compatible = "qcom,ipq4019";
+       interrupt-parent = <&intc>;
+       reserved-memory {
+               #address-cells = <0x1>;
+               #size-cells = <0x1>;
+               ranges;
+               smem_region: smem@87e00000 {
+                       reg = <0x87e00000 0x080000>;
+                       no-map;
+               };
+               tz@87e80000 {
+                       reg = <0x87e80000 0x180000>;
+                       no-map;
+               };
+       };
+       aliases {
+               spi0 = &blsp1_spi1;
+               spi1 = &blsp1_spi2;
+               i2c0 = &blsp1_i2c3;
+               i2c1 = &blsp1_i2c4;
+       };
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       enable-method = "qcom,kpss-acc-v2";
+                       next-level-cache = <&L2>;
+                       qcom,acc = <&acc0>;
+                       qcom,saw = <&saw0>;
+                       reg = <0x0>;
+                       clocks = <&gcc GCC_APPS_CLK_SRC>;
+                       clock-frequency = <0>;
+                       clock-latency = <256000>;
+                       operating-points-v2 = <&cpu0_opp_table>;
+               };
+               cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       enable-method = "qcom,kpss-acc-v2";
+                       next-level-cache = <&L2>;
+                       qcom,acc = <&acc1>;
+                       qcom,saw = <&saw1>;
+                       reg = <0x1>;
+                       clocks = <&gcc GCC_APPS_CLK_SRC>;
+                       clock-frequency = <0>;
+                       clock-latency = <256000>;
+                       operating-points-v2 = <&cpu0_opp_table>;
+               };
+               cpu@2 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       enable-method = "qcom,kpss-acc-v2";
+                       next-level-cache = <&L2>;
+                       qcom,acc = <&acc2>;
+                       qcom,saw = <&saw2>;
+                       reg = <0x2>;
+                       clocks = <&gcc GCC_APPS_CLK_SRC>;
+                       clock-frequency = <0>;
+                       clock-latency = <256000>;
+                       operating-points-v2 = <&cpu0_opp_table>;
+               };
+               cpu@3 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       enable-method = "qcom,kpss-acc-v2";
+                       next-level-cache = <&L2>;
+                       qcom,acc = <&acc3>;
+                       qcom,saw = <&saw3>;
+                       reg = <0x3>;
+                       clocks = <&gcc GCC_APPS_CLK_SRC>;
+                       clock-frequency = <0>;
+                       clock-latency = <256000>;
+                       operating-points-v2 = <&cpu0_opp_table>;
+               };
+               L2: l2-cache {
+                       compatible = "cache";
+                       cache-level = <2>;
++                      cache-unified;
+                       qcom,saw = <&saw_l2>;
+               };
+       };
+       cpu0_opp_table: opp-table {
+               compatible = "operating-points-v2";
+               opp-shared;
+               opp-48000000 {
+                       opp-hz = /bits/ 64 <48000000>;
+                       clock-latency-ns = <256000>;
+               };
+               opp-200000000 {
+                       opp-hz = /bits/ 64 <200000000>;
+                       clock-latency-ns = <256000>;
+               };
+               opp-500000000 {
+                       opp-hz = /bits/ 64 <500000000>;
+                       clock-latency-ns = <256000>;
+               };
+               opp-716000000 {
+                       opp-hz = /bits/ 64 <716000000>;
+                       clock-latency-ns = <256000>;
+               };
+       };
+       memory {
+               device_type = "memory";
+               reg = <0x0 0x0>;
+       };
+       pmu {
+               compatible = "arm,cortex-a7-pmu";
+               interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) |
+                                        IRQ_TYPE_LEVEL_HIGH)>;
+       };
+       clocks {
+               sleep_clk: sleep_clk {
+                       compatible = "fixed-clock";
+                       clock-frequency = <32000>;
+                       #clock-cells = <0>;
+               };
+               xo: xo {
+                       compatible = "fixed-clock";
+                       clock-frequency = <48000000>;
+                       #clock-cells = <0>;
+               };
+       };
+       firmware {
+               scm {
+                       compatible = "qcom,scm-ipq4019", "qcom,scm";
+               };
+       };
+       timer {
+               compatible = "arm,armv7-timer";
+               interrupts = <1 2 0xf08>,
+                            <1 3 0xf08>,
+                            <1 4 0xf08>,
+                            <1 1 0xf08>;
+               clock-frequency = <48000000>;
+               always-on;
+       };
+       soc {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+               compatible = "simple-bus";
+               intc: interrupt-controller@b000000 {
+                       compatible = "qcom,msm-qgic2";
+                       interrupt-controller;
+                       #interrupt-cells = <3>;
+                       reg = <0x0b000000 0x1000>,
+                       <0x0b002000 0x1000>;
+               };
+               gcc: clock-controller@1800000 {
+                       compatible = "qcom,gcc-ipq4019";
+                       #clock-cells = <1>;
+                       #power-domain-cells = <1>;
+                       #reset-cells = <1>;
+                       reg = <0x1800000 0x60000>;
+                       clocks = <&xo>, <&sleep_clk>;
+                       clock-names = "xo", "sleep_clk";
+               };
+               prng: rng@22000 {
+                       compatible = "qcom,prng";
+                       reg = <0x22000 0x140>;
+                       clocks = <&gcc GCC_PRNG_AHB_CLK>;
+                       clock-names = "core";
+                       status = "disabled";
+               };
+               tlmm: pinctrl@1000000 {
+                       compatible = "qcom,ipq4019-pinctrl";
+                       reg = <0x01000000 0x300000>;
+                       gpio-controller;
+                       gpio-ranges = <&tlmm 0 0 100>;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
+               };
+               vqmmc: regulator@1948000 {
+                       compatible = "qcom,vqmmc-ipq4019-regulator";
+                       reg = <0x01948000 0x4>;
+                       regulator-name = "vqmmc";
+                       regulator-min-microvolt = <1500000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-always-on;
+                       status = "disabled";
+               };
+               sdhci: mmc@7824900 {
+                       compatible = "qcom,sdhci-msm-v4";
+                       reg = <0x7824900 0x11c>, <0x7824000 0x800>;
+                       reg-names = "hc", "core";
+                       interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hc_irq", "pwr_irq";
+                       bus-width = <8>;
+                       clocks = <&gcc GCC_SDCC1_AHB_CLK>, <&gcc GCC_SDCC1_APPS_CLK>,
+                                <&gcc GCC_DCD_XO_CLK>;
+                       clock-names = "iface", "core", "xo";
+                       status = "disabled";
+               };
+               blsp_dma: dma-controller@7884000 {
+                       compatible = "qcom,bam-v1.7.0";
+                       reg = <0x07884000 0x23000>;
+                       interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "bam_clk";
+                       #dma-cells = <1>;
+                       qcom,ee = <0>;
+                       status = "disabled";
+               };
+               blsp1_spi1: spi@78b5000 { /* BLSP1 QUP1 */
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x78b5000 0x600>;
+                       interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       dmas = <&blsp_dma 4>, <&blsp_dma 5>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+               blsp1_spi2: spi@78b6000 { /* BLSP1 QUP2 */
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       reg = <0x78b6000 0x600>;
+                       interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
+                               <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       dmas = <&blsp_dma 6>, <&blsp_dma 7>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+               blsp1_i2c3: i2c@78b7000 { /* BLSP1 QUP3 */
+                       compatible = "qcom,i2c-qup-v2.2.1";
+                       reg = <0x78b7000 0x600>;
+                       interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       dmas = <&blsp_dma 8>, <&blsp_dma 9>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+               blsp1_i2c4: i2c@78b8000 { /* BLSP1 QUP4 */
+                       compatible = "qcom,i2c-qup-v2.2.1";
+                       reg = <0x78b8000 0x600>;
+                       interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       dmas = <&blsp_dma 10>, <&blsp_dma 11>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+               cryptobam: dma-controller@8e04000 {
+                       compatible = "qcom,bam-v1.7.0";
+                       reg = <0x08e04000 0x20000>;
+                       interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_CRYPTO_AHB_CLK>;
+                       clock-names = "bam_clk";
+                       #dma-cells = <1>;
+                       qcom,ee = <1>;
+                       qcom,controlled-remotely;
+                       status = "disabled";
+               };
+               crypto: crypto@8e3a000 {
+                       compatible = "qcom,crypto-v5.1";
+                       reg = <0x08e3a000 0x6000>;
+                       clocks = <&gcc GCC_CRYPTO_AHB_CLK>,
+                                <&gcc GCC_CRYPTO_AXI_CLK>,
+                                <&gcc GCC_CRYPTO_CLK>;
+                       clock-names = "iface", "bus", "core";
+                       dmas = <&cryptobam 2>, <&cryptobam 3>;
+                       dma-names = "rx", "tx";
+                       status = "disabled";
+               };
+               acc0: power-manager@b088000 {
+                       compatible = "qcom,kpss-acc-v2";
+                       reg = <0x0b088000 0x1000>, <0xb008000 0x1000>;
+               };
+               acc1: power-manager@b098000 {
+                       compatible = "qcom,kpss-acc-v2";
+                       reg = <0x0b098000 0x1000>, <0xb008000 0x1000>;
+               };
+               acc2: power-manager@b0a8000 {
+                       compatible = "qcom,kpss-acc-v2";
+                       reg = <0x0b0a8000 0x1000>, <0xb008000 0x1000>;
+               };
+               acc3: power-manager@b0b8000 {
+                       compatible = "qcom,kpss-acc-v2";
+                       reg = <0x0b0b8000 0x1000>, <0xb008000 0x1000>;
+               };
+               saw0: regulator@b089000 {
+                       compatible = "qcom,saw2";
+                       reg = <0x0b089000 0x1000>, <0x0b009000 0x1000>;
+                       regulator;
+               };
+               saw1: regulator@b099000 {
+                       compatible = "qcom,saw2";
+                       reg = <0x0b099000 0x1000>, <0x0b009000 0x1000>;
+                       regulator;
+               };
+               saw2: regulator@b0a9000 {
+                       compatible = "qcom,saw2";
+                       reg = <0x0b0a9000 0x1000>, <0x0b009000 0x1000>;
+                       regulator;
+               };
+               saw3: regulator@b0b9000 {
+                       compatible = "qcom,saw2";
+                       reg = <0x0b0b9000 0x1000>, <0x0b009000 0x1000>;
+                       regulator;
+               };
+               saw_l2: regulator@b012000 {
+                       compatible = "qcom,saw2";
+                       reg = <0xb012000 0x1000>;
+                       regulator;
+               };
+               blsp1_uart1: serial@78af000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0x78af000 0x200>;
+                       interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+                       clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>,
+                               <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp_dma 0>, <&blsp_dma 1>;
+                       dma-names = "tx", "rx";
+               };
+               blsp1_uart2: serial@78b0000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0x78b0000 0x200>;
+                       interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+                       clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>,
+                               <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp_dma 2>, <&blsp_dma 3>;
+                       dma-names = "tx", "rx";
+               };
+               watchdog: watchdog@b017000 {
+                       compatible = "qcom,kpss-wdt-ipq4019", "qcom,kpss-wdt";
+                       reg = <0xb017000 0x40>;
+                       clocks = <&sleep_clk>;
+                       timeout-sec = <10>;
+                       status = "disabled";
+               };
+               restart@4ab000 {
+                       compatible = "qcom,pshold";
+                       reg = <0x4ab000 0x4>;
+               };
+               pcie0: pci@40000000 {
+                       compatible = "qcom,pcie-ipq4019";
+                       reg =  <0x40000000 0xf1d
+                               0x40000f20 0xa8
+                               0x80000 0x2000
+                               0x40100000 0x1000>;
+                       reg-names = "dbi", "elbi", "parf", "config";
+                       device_type = "pci";
+                       linux,pci-domain = <0>;
+                       bus-range = <0x00 0xff>;
+                       num-lanes = <1>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges = <0x81000000 0x0 0x00000000 0x40200000 0x0 0x00100000>,
+                                <0x82000000 0x0 0x40300000 0x40300000 0x0 0x00d00000>;
+                       interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "msi";
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 0x7>;
+                       interrupt-map = <0 0 0 1 &intc 0 142 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
+                                       <0 0 0 2 &intc 0 143 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
+                                       <0 0 0 3 &intc 0 144 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
+                                       <0 0 0 4 &intc 0 145 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
+                       clocks = <&gcc GCC_PCIE_AHB_CLK>,
+                                <&gcc GCC_PCIE_AXI_M_CLK>,
+                                <&gcc GCC_PCIE_AXI_S_CLK>;
+                       clock-names = "aux",
+                                     "master_bus",
+                                     "slave_bus";
+                       resets = <&gcc PCIE_AXI_M_ARES>,
+                                <&gcc PCIE_AXI_S_ARES>,
+                                <&gcc PCIE_PIPE_ARES>,
+                                <&gcc PCIE_AXI_M_VMIDMT_ARES>,
+                                <&gcc PCIE_AXI_S_XPU_ARES>,
+                                <&gcc PCIE_PARF_XPU_ARES>,
+                                <&gcc PCIE_PHY_ARES>,
+                                <&gcc PCIE_AXI_M_STICKY_ARES>,
+                                <&gcc PCIE_PIPE_STICKY_ARES>,
+                                <&gcc PCIE_PWR_ARES>,
+                                <&gcc PCIE_AHB_ARES>,
+                                <&gcc PCIE_PHY_AHB_ARES>;
+                       reset-names = "axi_m",
+                                     "axi_s",
+                                     "pipe",
+                                     "axi_m_vmid",
+                                     "axi_s_xpu",
+                                     "parf",
+                                     "phy",
+                                     "axi_m_sticky",
+                                     "pipe_sticky",
+                                     "pwr",
+                                     "ahb",
+                                     "phy_ahb";
+                       status = "disabled";
+               };
+               qpic_bam: dma-controller@7984000 {
+                       compatible = "qcom,bam-v1.7.0";
+                       reg = <0x7984000 0x1a000>;
+                       interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_QPIC_CLK>;
+                       clock-names = "bam_clk";
+                       #dma-cells = <1>;
+                       qcom,ee = <0>;
+                       status = "disabled";
+               };
+               nand: nand-controller@79b0000 {
+                       compatible = "qcom,ipq4019-nand";
+                       reg = <0x79b0000 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&gcc GCC_QPIC_CLK>,
+                                <&gcc GCC_QPIC_AHB_CLK>;
+                       clock-names = "core", "aon";
+                       dmas = <&qpic_bam 0>,
+                              <&qpic_bam 1>,
+                              <&qpic_bam 2>;
+                       dma-names = "tx", "rx", "cmd";
+                       status = "disabled";
+                       nand@0 {
+                               reg = <0>;
+                               nand-ecc-strength = <4>;
+                               nand-ecc-step-size = <512>;
+                               nand-bus-width = <8>;
+                       };
+               };
+               wifi0: wifi@a000000 {
+                       compatible = "qcom,ipq4019-wifi";
+                       reg = <0xa000000 0x200000>;
+                       resets = <&gcc WIFI0_CPU_INIT_RESET>,
+                                <&gcc WIFI0_RADIO_SRIF_RESET>,
+                                <&gcc WIFI0_RADIO_WARM_RESET>,
+                                <&gcc WIFI0_RADIO_COLD_RESET>,
+                                <&gcc WIFI0_CORE_WARM_RESET>,
+                                <&gcc WIFI0_CORE_COLD_RESET>;
+                       reset-names = "wifi_cpu_init", "wifi_radio_srif",
+                                     "wifi_radio_warm", "wifi_radio_cold",
+                                     "wifi_core_warm", "wifi_core_cold";
+                       clocks = <&gcc GCC_WCSS2G_CLK>,
+                                <&gcc GCC_WCSS2G_REF_CLK>,
+                                <&gcc GCC_WCSS2G_RTC_CLK>;
+                       clock-names = "wifi_wcss_cmd", "wifi_wcss_ref",
+                                     "wifi_wcss_rtc";
+                       interrupts = <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 33 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 34 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 36 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 37 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 38 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 40 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 41 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 42 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 43 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 44 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 45 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 46 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 47 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names =  "msi0",  "msi1",  "msi2",  "msi3",
+                                          "msi4",  "msi5",  "msi6",  "msi7",
+                                          "msi8",  "msi9", "msi10", "msi11",
+                                         "msi12", "msi13", "msi14", "msi15",
+                                         "legacy";
+                       status = "disabled";
+               };
+               wifi1: wifi@a800000 {
+                       compatible = "qcom,ipq4019-wifi";
+                       reg = <0xa800000 0x200000>;
+                       resets = <&gcc WIFI1_CPU_INIT_RESET>,
+                                <&gcc WIFI1_RADIO_SRIF_RESET>,
+                                <&gcc WIFI1_RADIO_WARM_RESET>,
+                                <&gcc WIFI1_RADIO_COLD_RESET>,
+                                <&gcc WIFI1_CORE_WARM_RESET>,
+                                <&gcc WIFI1_CORE_COLD_RESET>;
+                       reset-names = "wifi_cpu_init", "wifi_radio_srif",
+                                     "wifi_radio_warm", "wifi_radio_cold",
+                                     "wifi_core_warm", "wifi_core_cold";
+                       clocks = <&gcc GCC_WCSS5G_CLK>,
+                                <&gcc GCC_WCSS5G_REF_CLK>,
+                                <&gcc GCC_WCSS5G_RTC_CLK>;
+                       clock-names = "wifi_wcss_cmd", "wifi_wcss_ref",
+                                     "wifi_wcss_rtc";
+                       interrupts = <GIC_SPI 48 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 49 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 51 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 52 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 53 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 54 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 55 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 56 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 58 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 59 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 60 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 61 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 62 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 63 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names =  "msi0",  "msi1",  "msi2",  "msi3",
+                                          "msi4",  "msi5",  "msi6",  "msi7",
+                                          "msi8",  "msi9", "msi10", "msi11",
+                                         "msi12", "msi13", "msi14", "msi15",
+                                         "legacy";
+                       status = "disabled";
+               };
+               mdio: mdio@90000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "qcom,ipq4019-mdio";
+                       reg = <0x90000 0x64>;
+                       status = "disabled";
+                       ethphy0: ethernet-phy@0 {
+                               reg = <0>;
+                       };
+                       ethphy1: ethernet-phy@1 {
+                               reg = <1>;
+                       };
+                       ethphy2: ethernet-phy@2 {
+                               reg = <2>;
+                       };
+                       ethphy3: ethernet-phy@3 {
+                               reg = <3>;
+                       };
+                       ethphy4: ethernet-phy@4 {
+                               reg = <4>;
+                       };
+               };
+               usb3_ss_phy: ssphy@9a000 {
+                       compatible = "qcom,usb-ss-ipq4019-phy";
+                       #phy-cells = <0>;
+                       reg = <0x9a000 0x800>;
+                       reg-names = "phy_base";
+                       resets = <&gcc USB3_UNIPHY_PHY_ARES>;
+                       reset-names = "por_rst";
+                       status = "disabled";
+               };
+               usb3_hs_phy: hsphy@a6000 {
+                       compatible = "qcom,usb-hs-ipq4019-phy";
+                       #phy-cells = <0>;
+                       reg = <0xa6000 0x40>;
+                       reg-names = "phy_base";
+                       resets = <&gcc USB3_HSPHY_POR_ARES>, <&gcc USB3_HSPHY_S_ARES>;
+                       reset-names = "por_rst", "srif_rst";
+                       status = "disabled";
+               };
+               usb3: usb3@8af8800 {
+                       compatible = "qcom,ipq4019-dwc3", "qcom,dwc3";
+                       reg = <0x8af8800 0x100>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&gcc GCC_USB3_MASTER_CLK>,
+                                <&gcc GCC_USB3_SLEEP_CLK>,
+                                <&gcc GCC_USB3_MOCK_UTMI_CLK>;
+                       clock-names = "core", "sleep", "mock_utmi";
+                       ranges;
+                       status = "disabled";
+                       dwc3@8a00000 {
+                               compatible = "snps,dwc3";
+                               reg = <0x8a00000 0xf8000>;
+                               interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>;
+                               phys = <&usb3_hs_phy>, <&usb3_ss_phy>;
+                               phy-names = "usb2-phy", "usb3-phy";
+                               dr_mode = "host";
+                       };
+               };
+               usb2_hs_phy: hsphy@a8000 {
+                       compatible = "qcom,usb-hs-ipq4019-phy";
+                       #phy-cells = <0>;
+                       reg = <0xa8000 0x40>;
+                       reg-names = "phy_base";
+                       resets = <&gcc USB2_HSPHY_POR_ARES>, <&gcc USB2_HSPHY_S_ARES>;
+                       reset-names = "por_rst", "srif_rst";
+                       status = "disabled";
+               };
+               usb2: usb2@60f8800 {
+                       compatible = "qcom,ipq4019-dwc3", "qcom,dwc3";
+                       reg = <0x60f8800 0x100>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&gcc GCC_USB2_MASTER_CLK>,
+                                <&gcc GCC_USB2_SLEEP_CLK>,
+                                <&gcc GCC_USB2_MOCK_UTMI_CLK>;
+                       clock-names = "master", "sleep", "mock_utmi";
+                       ranges;
+                       status = "disabled";
+                       dwc3@6000000 {
+                               compatible = "snps,dwc3";
+                               reg = <0x6000000 0xf8000>;
+                               interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
+                               phys = <&usb2_hs_phy>;
+                               phy-names = "usb2-phy";
+                               dr_mode = "host";
+                       };
+               };
+       };
+ };
index 0000000,5ef5026..6198f42
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,1376 +1,1377 @@@
+ // SPDX-License-Identifier: GPL-2.0
+ /dts-v1/;
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/mfd/qcom-rpm.h>
+ #include <dt-bindings/clock/qcom,rpmcc.h>
+ #include <dt-bindings/clock/qcom,gcc-ipq806x.h>
+ #include <dt-bindings/clock/qcom,lcc-ipq806x.h>
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/reset/qcom,gcc-ipq806x.h>
+ #include <dt-bindings/soc/qcom,gsbi.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ / {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       model = "Qualcomm IPQ8064";
+       compatible = "qcom,ipq8064";
+       interrupt-parent = <&intc>;
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               cpu0: cpu@0 {
+                       compatible = "qcom,krait";
+                       enable-method = "qcom,kpss-acc-v1";
+                       device_type = "cpu";
+                       reg = <0>;
+                       next-level-cache = <&L2>;
+                       qcom,acc = <&acc0>;
+                       qcom,saw = <&saw0>;
+               };
+               cpu1: cpu@1 {
+                       compatible = "qcom,krait";
+                       enable-method = "qcom,kpss-acc-v1";
+                       device_type = "cpu";
+                       reg = <1>;
+                       next-level-cache = <&L2>;
+                       qcom,acc = <&acc1>;
+                       qcom,saw = <&saw1>;
+               };
+               L2: l2-cache {
+                       compatible = "cache";
+                       cache-level = <2>;
++                      cache-unified;
+               };
+       };
+       thermal-zones {
+               sensor0-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens 0>;
+                       trips {
+                               cpu-critical {
+                                       temperature = <105000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                               cpu-hot {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+               sensor1-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens 1>;
+                       trips {
+                               cpu-critical {
+                                       temperature = <105000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                               cpu-hot {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+               sensor2-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens 2>;
+                       trips {
+                               cpu-critical {
+                                       temperature = <105000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                               cpu-hot {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+               sensor3-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens 3>;
+                       trips {
+                               cpu-critical {
+                                       temperature = <105000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                               cpu-hot {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+               sensor4-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens 4>;
+                       trips {
+                               cpu-critical {
+                                       temperature = <105000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                               cpu-hot {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+               sensor5-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens 5>;
+                       trips {
+                               cpu-critical {
+                                       temperature = <105000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                               cpu-hot {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+               sensor6-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens 6>;
+                       trips {
+                               cpu-critical {
+                                       temperature = <105000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                               cpu-hot {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+               sensor7-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens 7>;
+                       trips {
+                               cpu-critical {
+                                       temperature = <105000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                               cpu-hot {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+               sensor8-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens 8>;
+                       trips {
+                               cpu-critical {
+                                       temperature = <105000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                               cpu-hot {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+               sensor9-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens 9>;
+                       trips {
+                               cpu-critical {
+                                       temperature = <105000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                               cpu-hot {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+               sensor10-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens 10>;
+                       trips {
+                               cpu-critical {
+                                       temperature = <105000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                               cpu-hot {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+       };
+       memory {
+               device_type = "memory";
+               reg = <0x0 0x0>;
+       };
+       cpu-pmu {
+               compatible = "qcom,krait-pmu";
+               interrupts = <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) |
+                                         IRQ_TYPE_LEVEL_HIGH)>;
+       };
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+               nss@40000000 {
+                       reg = <0x40000000 0x1000000>;
+                       no-map;
+               };
+               smem: smem@41000000 {
+                       compatible = "qcom,smem";
+                       reg = <0x41000000 0x200000>;
+                       no-map;
+                       hwlocks = <&sfpb_mutex 3>;
+               };
+       };
+       clocks {
+               cxo_board: cxo_board {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <25000000>;
+               };
+               pxo_board: pxo_board {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <25000000>;
+               };
+               sleep_clk: sleep_clk {
+                       compatible = "fixed-clock";
+                       clock-frequency = <32768>;
+                       #clock-cells = <0>;
+               };
+       };
+       firmware {
+               scm {
+                       compatible = "qcom,scm-ipq806x", "qcom,scm";
+               };
+       };
+       stmmac_axi_setup: stmmac-axi-config {
+               snps,wr_osr_lmt = <7>;
+               snps,rd_osr_lmt = <7>;
+               snps,blen = <16 0 0 0 0 0 0>;
+       };
+       vsdcc_fixed: vsdcc-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "SDCC Power";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+       soc: soc {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+               compatible = "simple-bus";
+               rpm: rpm@108000 {
+                       compatible = "qcom,rpm-ipq8064";
+                       reg = <0x00108000 0x1000>;
+                       qcom,ipc = <&l2cc 0x8 2>;
+                       interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "ack", "err", "wakeup";
+                       clocks = <&gcc RPM_MSG_RAM_H_CLK>;
+                       clock-names = "ram";
+                       rpmcc: clock-controller {
+                               compatible = "qcom,rpmcc-ipq806x", "qcom,rpmcc";
+                               #clock-cells = <1>;
+                       };
+               };
+               qcom,ssbi@500000 {
+                       compatible = "qcom,ssbi";
+                       reg = <0x00500000 0x1000>;
+                       qcom,controller-type = "pmic-arbiter";
+               };
+               qfprom: qfprom@700000 {
+                       compatible = "qcom,ipq8064-qfprom", "qcom,qfprom";
+                       reg = <0x00700000 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       speedbin_efuse: speedbin@c0 {
+                               reg = <0xc0 0x4>;
+                       };
+                       tsens_calib: calib@400 {
+                               reg = <0x400 0xb>;
+                       };
+                       tsens_calib_backup: calib_backup@410 {
+                               reg = <0x410 0xb>;
+                       };
+               };
+               qcom_pinmux: pinmux@800000 {
+                       compatible = "qcom,ipq8064-pinctrl";
+                       reg = <0x00800000 0x4000>;
+                       gpio-controller;
+                       gpio-ranges = <&qcom_pinmux 0 0 69>;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
+                       pcie0_pins: pcie0_pinmux {
+                               mux {
+                                       pins = "gpio3";
+                                       function = "pcie1_rst";
+                                       drive-strength = <12>;
+                                       bias-disable;
+                               };
+                       };
+                       pcie1_pins: pcie1_pinmux {
+                               mux {
+                                       pins = "gpio48";
+                                       function = "pcie2_rst";
+                                       drive-strength = <12>;
+                                       bias-disable;
+                               };
+                       };
+                       pcie2_pins: pcie2_pinmux {
+                               mux {
+                                       pins = "gpio63";
+                                       function = "pcie3_rst";
+                                       drive-strength = <12>;
+                                       bias-disable;
+                               };
+                       };
+                       i2c4_pins: i2c4-default {
+                               pins = "gpio12", "gpio13";
+                               function = "gsbi4";
+                               drive-strength = <12>;
+                               bias-disable;
+                       };
+                       spi_pins: spi_pins {
+                               mux {
+                                       pins = "gpio18", "gpio19", "gpio21";
+                                       function = "gsbi5";
+                                       drive-strength = <10>;
+                                       bias-none;
+                               };
+                       };
+                       leds_pins: leds_pins {
+                               mux {
+                                       pins = "gpio7", "gpio8", "gpio9",
+                                              "gpio26", "gpio53";
+                                       function = "gpio";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                                       output-low;
+                               };
+                       };
+                       buttons_pins: buttons_pins {
+                               mux {
+                                       pins = "gpio54";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+                       };
+                       nand_pins: nand_pins {
+                               mux {
+                                       pins = "gpio34", "gpio35", "gpio36",
+                                              "gpio37", "gpio38", "gpio39",
+                                              "gpio40", "gpio41", "gpio42",
+                                              "gpio43", "gpio44", "gpio45",
+                                              "gpio46", "gpio47";
+                                       function = "nand";
+                                       drive-strength = <10>;
+                                       bias-disable;
+                               };
+                               pullups {
+                                       pins = "gpio39";
+                                       function = "nand";
+                                       drive-strength = <10>;
+                                       bias-pull-up;
+                               };
+                               hold {
+                                       pins = "gpio40", "gpio41", "gpio42",
+                                              "gpio43", "gpio44", "gpio45",
+                                              "gpio46", "gpio47";
+                                       function = "nand";
+                                       drive-strength = <10>;
+                                       bias-bus-hold;
+                               };
+                       };
+                       mdio0_pins: mdio0-pins {
+                               mux {
+                                       pins = "gpio0", "gpio1";
+                                       function = "mdio";
+                                       drive-strength = <8>;
+                                       bias-disable;
+                               };
+                       };
+                       rgmii2_pins: rgmii2-pins {
+                               mux {
+                                       pins = "gpio27", "gpio28", "gpio29",
+                                              "gpio30", "gpio31", "gpio32",
+                                              "gpio51", "gpio52", "gpio59",
+                                              "gpio60", "gpio61", "gpio62";
+                                       function = "rgmii2";
+                                       drive-strength = <8>;
+                                       bias-disable;
+                               };
+                       };
+               };
+               gcc: clock-controller@900000 {
+                       compatible = "qcom,gcc-ipq8064", "syscon";
+                       clocks = <&pxo_board>, <&cxo_board>, <&lcc PLL4>;
+                       clock-names = "pxo", "cxo", "pll4";
+                       reg = <0x00900000 0x4000>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+                       tsens: thermal-sensor {
+                               compatible = "qcom,ipq8064-tsens";
+                               nvmem-cells = <&tsens_calib>, <&tsens_calib_backup>;
+                               nvmem-cell-names = "calib", "calib_backup";
+                               interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "uplow";
+                               #qcom,sensors = <11>;
+                               #thermal-sensor-cells = <1>;
+                       };
+               };
+               sfpb_mutex: hwlock@1200600 {
+                       compatible = "qcom,sfpb-mutex";
+                       reg = <0x01200600 0x100>;
+                       #hwlock-cells = <1>;
+               };
+               intc: interrupt-controller@2000000 {
+                       compatible = "qcom,msm-qgic2";
+                       interrupt-controller;
+                       #interrupt-cells = <3>;
+                       reg = <0x02000000 0x1000>,
+                             <0x02002000 0x1000>;
+               };
+               timer@200a000 {
+                       compatible = "qcom,kpss-wdt-ipq8064", "qcom,kpss-timer",
+                                    "qcom,msm-timer";
+                       interrupts = <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(2) |
+                                                IRQ_TYPE_EDGE_RISING)>,
+                                    <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(2) |
+                                                IRQ_TYPE_EDGE_RISING)>,
+                                    <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(2) |
+                                                IRQ_TYPE_EDGE_RISING)>,
+                                    <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(2) |
+                                                IRQ_TYPE_EDGE_RISING)>,
+                                    <GIC_PPI 5 (GIC_CPU_MASK_SIMPLE(2) |
+                                                IRQ_TYPE_EDGE_RISING)>;
+                       reg = <0x0200a000 0x100>;
+                       clock-frequency = <25000000>;
+                       clocks = <&sleep_clk>;
+                       clock-names = "sleep";
+                       cpu-offset = <0x80000>;
+               };
+               l2cc: clock-controller@2011000 {
+                       compatible = "qcom,kpss-gcc-ipq8064", "qcom,kpss-gcc", "syscon";
+                       reg = <0x02011000 0x1000>;
+                       clocks = <&gcc PLL8_VOTE>, <&pxo_board>;
+                       clock-names = "pll8_vote", "pxo";
+                       #clock-cells = <0>;
+               };
+               acc0: clock-controller@2088000 {
+                       compatible = "qcom,kpss-acc-v1";
+                       reg = <0x02088000 0x1000>, <0x02008000 0x1000>;
+                       clocks = <&gcc PLL8_VOTE>, <&pxo_board>;
+                       clock-names = "pll8_vote", "pxo";
+                       clock-output-names = "acpu0_aux";
+                       #clock-cells = <0>;
+               };
+               saw0: regulator@2089000 {
+                       compatible = "qcom,saw2";
+                       reg = <0x02089000 0x1000>, <0x02009000 0x1000>;
+                       regulator;
+               };
+               acc1: clock-controller@2098000 {
+                       compatible = "qcom,kpss-acc-v1";
+                       reg = <0x02098000 0x1000>, <0x02008000 0x1000>;
+                       clocks = <&gcc PLL8_VOTE>, <&pxo_board>;
+                       clock-names = "pll8_vote", "pxo";
+                       clock-output-names = "acpu1_aux";
+                       #clock-cells = <0>;
+               };
+               saw1: regulator@2099000 {
+                       compatible = "qcom,saw2";
+                       reg = <0x02099000 0x1000>, <0x02009000 0x1000>;
+                       regulator;
+               };
+               nss_common: syscon@3000000 {
+                       compatible = "syscon";
+                       reg = <0x03000000 0x0000FFFF>;
+               };
+               usb3_0: usb@100f8800 {
+                       compatible = "qcom,ipq8064-dwc3", "qcom,dwc3";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = <0x100f8800 0x8000>;
+                       clocks = <&gcc USB30_0_MASTER_CLK>;
+                       clock-names = "core";
+                       ranges;
+                       resets = <&gcc USB30_0_MASTER_RESET>;
+                       reset-names = "master";
+                       status = "disabled";
+                       dwc3_0: usb@10000000 {
+                               compatible = "snps,dwc3";
+                               reg = <0x10000000 0xcd00>;
+                               interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;
+                               phys = <&hs_phy_0>, <&ss_phy_0>;
+                               phy-names = "usb2-phy", "usb3-phy";
+                               dr_mode = "host";
+                               snps,dis_u3_susphy_quirk;
+                       };
+               };
+               hs_phy_0: phy@100f8800 {
+                       compatible = "qcom,ipq806x-usb-phy-hs";
+                       reg = <0x100f8800 0x30>;
+                       clocks = <&gcc USB30_0_UTMI_CLK>;
+                       clock-names = "ref";
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+               ss_phy_0: phy@100f8830 {
+                       compatible = "qcom,ipq806x-usb-phy-ss";
+                       reg = <0x100f8830 0x30>;
+                       clocks = <&gcc USB30_0_MASTER_CLK>;
+                       clock-names = "ref";
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+               usb3_1: usb@110f8800 {
+                       compatible = "qcom,ipq8064-dwc3", "qcom,dwc3";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = <0x110f8800 0x8000>;
+                       clocks = <&gcc USB30_1_MASTER_CLK>;
+                       clock-names = "core";
+                       ranges;
+                       resets = <&gcc USB30_1_MASTER_RESET>;
+                       reset-names = "master";
+                       status = "disabled";
+                       dwc3_1: usb@11000000 {
+                               compatible = "snps,dwc3";
+                               reg = <0x11000000 0xcd00>;
+                               interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
+                               phys = <&hs_phy_1>, <&ss_phy_1>;
+                               phy-names = "usb2-phy", "usb3-phy";
+                               dr_mode = "host";
+                               snps,dis_u3_susphy_quirk;
+                       };
+               };
+               hs_phy_1: phy@110f8800 {
+                       compatible = "qcom,ipq806x-usb-phy-hs";
+                       reg = <0x110f8800 0x30>;
+                       clocks = <&gcc USB30_1_UTMI_CLK>;
+                       clock-names = "ref";
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+               ss_phy_1: phy@110f8830 {
+                       compatible = "qcom,ipq806x-usb-phy-ss";
+                       reg = <0x110f8830 0x30>;
+                       clocks = <&gcc USB30_1_MASTER_CLK>;
+                       clock-names = "ref";
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+               sdcc3bam: dma-controller@12182000 {
+                       compatible = "qcom,bam-v1.3.0";
+                       reg = <0x12182000 0x8000>;
+                       interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc SDC3_H_CLK>;
+                       clock-names = "bam_clk";
+                       #dma-cells = <1>;
+                       qcom,ee = <0>;
+               };
+               sdcc1bam: dma-controller@12402000 {
+                       compatible = "qcom,bam-v1.3.0";
+                       reg = <0x12402000 0x8000>;
+                       interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc SDC1_H_CLK>;
+                       clock-names = "bam_clk";
+                       #dma-cells = <1>;
+                       qcom,ee = <0>;
+               };
+               amba: amba {
+                       compatible = "simple-bus";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       sdcc3: mmc@12180000 {
+                               compatible = "arm,pl18x", "arm,primecell";
+                               arm,primecell-periphid = <0x00051180>;
+                               status = "disabled";
+                               reg = <0x12180000 0x2000>;
+                               interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc SDC3_CLK>, <&gcc SDC3_H_CLK>;
+                               clock-names = "mclk", "apb_pclk";
+                               bus-width = <8>;
+                               cap-sd-highspeed;
+                               cap-mmc-highspeed;
+                               max-frequency = <192000000>;
+                               sd-uhs-sdr104;
+                               sd-uhs-ddr50;
+                               vqmmc-supply = <&vsdcc_fixed>;
+                               dmas = <&sdcc3bam 2>, <&sdcc3bam 1>;
+                               dma-names = "tx", "rx";
+                       };
+                       sdcc1: mmc@12400000 {
+                               status = "disabled";
+                               compatible = "arm,pl18x", "arm,primecell";
+                               arm,primecell-periphid = <0x00051180>;
+                               reg = <0x12400000 0x2000>;
+                               interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc SDC1_CLK>, <&gcc SDC1_H_CLK>;
+                               clock-names = "mclk", "apb_pclk";
+                               bus-width = <8>;
+                               max-frequency = <96000000>;
+                               non-removable;
+                               cap-sd-highspeed;
+                               cap-mmc-highspeed;
+                               vmmc-supply = <&vsdcc_fixed>;
+                               dmas = <&sdcc1bam 2>, <&sdcc1bam 1>;
+                               dma-names = "tx", "rx";
+                       };
+               };
+               gsbi1: gsbi@12440000 {
+                       compatible = "qcom,gsbi-v1.0.0";
+                       reg = <0x12440000 0x100>;
+                       cell-index = <1>;
+                       clocks = <&gcc GSBI1_H_CLK>;
+                       clock-names = "iface";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       syscon-tcsr = <&tcsr>;
+                       status = "disabled";
+                       gsbi1_serial: serial@12450000 {
+                               compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
+                               reg = <0x12450000 0x100>,
+                                     <0x12400000 0x03>;
+                               interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI1_UART_CLK>, <&gcc GSBI1_H_CLK>;
+                               clock-names = "core", "iface";
+                               status = "disabled";
+                       };
+                       gsbi1_i2c: i2c@12460000 {
+                               compatible = "qcom,i2c-qup-v1.1.1";
+                               reg = <0x12460000 0x1000>;
+                               interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI1_QUP_CLK>, <&gcc GSBI1_H_CLK>;
+                               clock-names = "core", "iface";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+               gsbi2: gsbi@12480000 {
+                       compatible = "qcom,gsbi-v1.0.0";
+                       cell-index = <2>;
+                       reg = <0x12480000 0x100>;
+                       clocks = <&gcc GSBI2_H_CLK>;
+                       clock-names = "iface";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       status = "disabled";
+                       syscon-tcsr = <&tcsr>;
+                       gsbi2_serial: serial@12490000 {
+                               compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
+                               reg = <0x12490000 0x1000>,
+                                     <0x12480000 0x1000>;
+                               interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI2_UART_CLK>, <&gcc GSBI2_H_CLK>;
+                               clock-names = "core", "iface";
+                               status = "disabled";
+                       };
+                       gsbi2_i2c: i2c@124a0000 {
+                               compatible = "qcom,i2c-qup-v1.1.1";
+                               reg = <0x124a0000 0x1000>;
+                               interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI2_QUP_CLK>, <&gcc GSBI2_H_CLK>;
+                               clock-names = "core", "iface";
+                               status = "disabled";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+               gsbi4: gsbi@16300000 {
+                       compatible = "qcom,gsbi-v1.0.0";
+                       cell-index = <4>;
+                       reg = <0x16300000 0x100>;
+                       clocks = <&gcc GSBI4_H_CLK>;
+                       clock-names = "iface";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       status = "disabled";
+                       syscon-tcsr = <&tcsr>;
+                       gsbi4_serial: serial@16340000 {
+                               compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
+                               reg = <0x16340000 0x1000>,
+                                     <0x16300000 0x1000>;
+                               interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI4_UART_CLK>, <&gcc GSBI4_H_CLK>;
+                               clock-names = "core", "iface";
+                               status = "disabled";
+                       };
+                       i2c@16380000 {
+                               compatible = "qcom,i2c-qup-v1.1.1";
+                               reg = <0x16380000 0x1000>;
+                               interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI4_QUP_CLK>, <&gcc GSBI4_H_CLK>;
+                               clock-names = "core", "iface";
+                               status = "disabled";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+               gsbi6: gsbi@16500000 {
+                       compatible = "qcom,gsbi-v1.0.0";
+                       reg = <0x16500000 0x100>;
+                       cell-index = <6>;
+                       clocks = <&gcc GSBI6_H_CLK>;
+                       clock-names = "iface";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       syscon-tcsr = <&tcsr>;
+                       status = "disabled";
+                       gsbi6_i2c: i2c@16580000 {
+                               compatible = "qcom,i2c-qup-v1.1.1";
+                               reg = <0x16580000 0x1000>;
+                               interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI6_QUP_CLK>, <&gcc GSBI6_H_CLK>;
+                               clock-names = "core", "iface";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+                       gsbi6_spi: spi@16580000 {
+                               compatible = "qcom,spi-qup-v1.1.1";
+                               reg = <0x16580000 0x1000>;
+                               interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI6_QUP_CLK>, <&gcc GSBI6_H_CLK>;
+                               clock-names = "core", "iface";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+               gsbi7: gsbi@16600000 {
+                       status = "disabled";
+                       compatible = "qcom,gsbi-v1.0.0";
+                       cell-index = <7>;
+                       reg = <0x16600000 0x100>;
+                       clocks = <&gcc GSBI7_H_CLK>;
+                       clock-names = "iface";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       syscon-tcsr = <&tcsr>;
+                       gsbi7_serial: serial@16640000 {
+                               compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
+                               reg = <0x16640000 0x1000>,
+                                     <0x16600000 0x1000>;
+                               interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI7_UART_CLK>, <&gcc GSBI7_H_CLK>;
+                               clock-names = "core", "iface";
+                               status = "disabled";
+                       };
+                       gsbi7_i2c: i2c@16680000 {
+                               compatible = "qcom,i2c-qup-v1.1.1";
+                               reg = <0x16680000 0x1000>;
+                               interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI7_QUP_CLK>, <&gcc GSBI7_H_CLK>;
+                               clock-names = "core", "iface";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+               adm_dma: dma-controller@18300000 {
+                       compatible = "qcom,adm";
+                       reg = <0x18300000 0x100000>;
+                       interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
+                       #dma-cells = <1>;
+                       clocks = <&gcc ADM0_CLK>, <&gcc ADM0_PBUS_CLK>;
+                       clock-names = "core", "iface";
+                       resets = <&gcc ADM0_RESET>,
+                                <&gcc ADM0_PBUS_RESET>,
+                                <&gcc ADM0_C0_RESET>,
+                                <&gcc ADM0_C1_RESET>,
+                                <&gcc ADM0_C2_RESET>;
+                       reset-names = "clk", "pbus", "c0", "c1", "c2";
+                       qcom,ee = <0>;
+                       status = "disabled";
+               };
+               gsbi5: gsbi@1a200000 {
+                       compatible = "qcom,gsbi-v1.0.0";
+                       cell-index = <5>;
+                       reg = <0x1a200000 0x100>;
+                       clocks = <&gcc GSBI5_H_CLK>;
+                       clock-names = "iface";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       status = "disabled";
+                       syscon-tcsr = <&tcsr>;
+                       gsbi5_serial: serial@1a240000 {
+                               compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
+                               reg = <0x1a240000 0x1000>,
+                                     <0x1a200000 0x1000>;
+                               interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI5_UART_CLK>, <&gcc GSBI5_H_CLK>;
+                               clock-names = "core", "iface";
+                               status = "disabled";
+                       };
+                       i2c@1a280000 {
+                               compatible = "qcom,i2c-qup-v1.1.1";
+                               reg = <0x1a280000 0x1000>;
+                               interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI5_QUP_CLK>, <&gcc GSBI5_H_CLK>;
+                               clock-names = "core", "iface";
+                               status = "disabled";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+                       spi@1a280000 {
+                               compatible = "qcom,spi-qup-v1.1.1";
+                               reg = <0x1a280000 0x1000>;
+                               interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI5_QUP_CLK>, <&gcc GSBI5_H_CLK>;
+                               clock-names = "core", "iface";
+                               status = "disabled";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+               tcsr: syscon@1a400000 {
+                       compatible = "qcom,tcsr-ipq8064", "syscon";
+                       reg = <0x1a400000 0x100>;
+               };
+               rng@1a500000 {
+                       compatible = "qcom,prng";
+                       reg = <0x1a500000 0x200>;
+                       clocks = <&gcc PRNG_CLK>;
+                       clock-names = "core";
+               };
+               nand: nand-controller@1ac00000 {
+                       compatible = "qcom,ipq806x-nand";
+                       reg = <0x1ac00000 0x800>;
+                       pinctrl-0 = <&nand_pins>;
+                       pinctrl-names = "default";
+                       clocks = <&gcc EBI2_CLK>,
+                                <&gcc EBI2_AON_CLK>;
+                       clock-names = "core", "aon";
+                       dmas = <&adm_dma 3>;
+                       dma-names = "rxtx";
+                       qcom,cmd-crci = <15>;
+                       qcom,data-crci = <3>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+               sata_phy: sata-phy@1b400000 {
+                       compatible = "qcom,ipq806x-sata-phy";
+                       reg = <0x1b400000 0x200>;
+                       clocks = <&gcc SATA_PHY_CFG_CLK>;
+                       clock-names = "cfg";
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+               pcie0: pci@1b500000 {
+                       compatible = "qcom,pcie-ipq8064";
+                       reg = <0x1b500000 0x1000
+                              0x1b502000 0x80
+                              0x1b600000 0x100
+                              0x0ff00000 0x100000>;
+                       reg-names = "dbi", "elbi", "parf", "config";
+                       device_type = "pci";
+                       linux,pci-domain = <0>;
+                       bus-range = <0x00 0xff>;
+                       num-lanes = <1>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges = <0x81000000 0x0 0x00000000 0x0fe00000 0x0 0x00010000   /* I/O */
+                                 0x82000000 0x0 0x08000000 0x08000000 0x0 0x07e00000>; /* MEM */
+                       interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "msi";
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 0x7>;
+                       interrupt-map = <0 0 0 1 &intc 0 36 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
+                                       <0 0 0 2 &intc 0 37 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
+                                       <0 0 0 3 &intc 0 38 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
+                                       <0 0 0 4 &intc 0 39 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
+                       clocks = <&gcc PCIE_A_CLK>,
+                                <&gcc PCIE_H_CLK>,
+                                <&gcc PCIE_PHY_CLK>,
+                                <&gcc PCIE_AUX_CLK>,
+                                <&gcc PCIE_ALT_REF_CLK>;
+                       clock-names = "core", "iface", "phy", "aux", "ref";
+                       assigned-clocks = <&gcc PCIE_ALT_REF_CLK>;
+                       assigned-clock-rates = <100000000>;
+                       resets = <&gcc PCIE_ACLK_RESET>,
+                                <&gcc PCIE_HCLK_RESET>,
+                                <&gcc PCIE_POR_RESET>,
+                                <&gcc PCIE_PCI_RESET>,
+                                <&gcc PCIE_PHY_RESET>,
+                                <&gcc PCIE_EXT_RESET>;
+                       reset-names = "axi", "ahb", "por", "pci", "phy", "ext";
+                       pinctrl-0 = <&pcie0_pins>;
+                       pinctrl-names = "default";
+                       status = "disabled";
+                       perst-gpios = <&qcom_pinmux 3 GPIO_ACTIVE_LOW>;
+               };
+               pcie1: pci@1b700000 {
+                       compatible = "qcom,pcie-ipq8064";
+                       reg = <0x1b700000 0x1000
+                              0x1b702000 0x80
+                              0x1b800000 0x100
+                              0x31f00000 0x100000>;
+                       reg-names = "dbi", "elbi", "parf", "config";
+                       device_type = "pci";
+                       linux,pci-domain = <1>;
+                       bus-range = <0x00 0xff>;
+                       num-lanes = <1>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges = <0x81000000 0x0 0x00000000 0x31e00000 0x0 0x00010000   /* I/O */
+                                 0x82000000 0x0 0x2e000000 0x2e000000 0x0 0x03e00000>; /* MEM */
+                       interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "msi";
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 0x7>;
+                       interrupt-map = <0 0 0 1 &intc 0 58 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
+                                       <0 0 0 2 &intc 0 59 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
+                                       <0 0 0 3 &intc 0 60 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
+                                       <0 0 0 4 &intc 0 61 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
+                       clocks = <&gcc PCIE_1_A_CLK>,
+                                <&gcc PCIE_1_H_CLK>,
+                                <&gcc PCIE_1_PHY_CLK>,
+                                <&gcc PCIE_1_AUX_CLK>,
+                                <&gcc PCIE_1_ALT_REF_CLK>;
+                       clock-names = "core", "iface", "phy", "aux", "ref";
+                       assigned-clocks = <&gcc PCIE_1_ALT_REF_CLK>;
+                       assigned-clock-rates = <100000000>;
+                       resets = <&gcc PCIE_1_ACLK_RESET>,
+                                <&gcc PCIE_1_HCLK_RESET>,
+                                <&gcc PCIE_1_POR_RESET>,
+                                <&gcc PCIE_1_PCI_RESET>,
+                                <&gcc PCIE_1_PHY_RESET>,
+                                <&gcc PCIE_1_EXT_RESET>;
+                       reset-names = "axi", "ahb", "por", "pci", "phy", "ext";
+                       pinctrl-0 = <&pcie1_pins>;
+                       pinctrl-names = "default";
+                       status = "disabled";
+                       perst-gpios = <&qcom_pinmux 48 GPIO_ACTIVE_LOW>;
+               };
+               pcie2: pci@1b900000 {
+                       compatible = "qcom,pcie-ipq8064";
+                       reg = <0x1b900000 0x1000
+                              0x1b902000 0x80
+                              0x1ba00000 0x100
+                              0x35f00000 0x100000>;
+                       reg-names = "dbi", "elbi", "parf", "config";
+                       device_type = "pci";
+                       linux,pci-domain = <2>;
+                       bus-range = <0x00 0xff>;
+                       num-lanes = <1>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges = <0x81000000 0x0 0x00000000 0x35e00000 0x0 0x00010000   /* I/O */
+                                 0x82000000 0x0 0x32000000 0x32000000 0x0 0x03e00000>; /* MEM */
+                       interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "msi";
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 0x7>;
+                       interrupt-map = <0 0 0 1 &intc 0 72 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
+                                       <0 0 0 2 &intc 0 73 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
+                                       <0 0 0 3 &intc 0 74 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
+                                       <0 0 0 4 &intc 0 75 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
+                       clocks = <&gcc PCIE_2_A_CLK>,
+                                <&gcc PCIE_2_H_CLK>,
+                                <&gcc PCIE_2_PHY_CLK>,
+                                <&gcc PCIE_2_AUX_CLK>,
+                                <&gcc PCIE_2_ALT_REF_CLK>;
+                       clock-names = "core", "iface", "phy", "aux", "ref";
+                       assigned-clocks = <&gcc PCIE_2_ALT_REF_CLK>;
+                       assigned-clock-rates = <100000000>;
+                       resets = <&gcc PCIE_2_ACLK_RESET>,
+                                <&gcc PCIE_2_HCLK_RESET>,
+                                <&gcc PCIE_2_POR_RESET>,
+                                <&gcc PCIE_2_PCI_RESET>,
+                                <&gcc PCIE_2_PHY_RESET>,
+                                <&gcc PCIE_2_EXT_RESET>;
+                       reset-names = "axi", "ahb", "por", "pci", "phy", "ext";
+                       pinctrl-0 = <&pcie2_pins>;
+                       pinctrl-names = "default";
+                       status = "disabled";
+                       perst-gpios = <&qcom_pinmux 63 GPIO_ACTIVE_LOW>;
+               };
+               qsgmii_csr: syscon@1bb00000 {
+                       compatible = "syscon";
+                       reg = <0x1bb00000 0x000001FF>;
+               };
+               lcc: clock-controller@28000000 {
+                       compatible = "qcom,lcc-ipq8064";
+                       reg = <0x28000000 0x1000>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+               };
+               lpass@28100000 {
+                       compatible = "qcom,lpass-cpu";
+                       status = "disabled";
+                       clocks = <&lcc AHBIX_CLK>,
+                                       <&lcc MI2S_OSR_CLK>,
+                                       <&lcc MI2S_BIT_CLK>;
+                       clock-names = "ahbix-clk",
+                                       "mi2s-osr-clk",
+                                       "mi2s-bit-clk";
+                       interrupts = <GIC_SPI 85 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "lpass-irq-lpaif";
+                       reg = <0x28100000 0x10000>;
+                       reg-names = "lpass-lpaif";
+               };
+               sata: sata@29000000 {
+                       compatible = "qcom,ipq806x-ahci", "generic-ahci";
+                       reg = <0x29000000 0x180>;
+                       interrupts = <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc SFAB_SATA_S_H_CLK>,
+                                <&gcc SATA_H_CLK>,
+                                <&gcc SATA_A_CLK>,
+                                <&gcc SATA_RXOOB_CLK>,
+                                <&gcc SATA_PMALIVE_CLK>;
+                       clock-names = "slave_face", "iface", "core",
+                                       "rxoob", "pmalive";
+                       assigned-clocks = <&gcc SATA_RXOOB_CLK>, <&gcc SATA_PMALIVE_CLK>;
+                       assigned-clock-rates = <100000000>, <100000000>;
+                       phys = <&sata_phy>;
+                       phy-names = "sata-phy";
+                       status = "disabled";
+               };
+               gmac0: ethernet@37000000 {
+                       device_type = "network";
+                       compatible = "qcom,ipq806x-gmac", "snps,dwmac";
+                       reg = <0x37000000 0x200000>;
+                       interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "macirq";
+                       snps,axi-config = <&stmmac_axi_setup>;
+                       snps,pbl = <32>;
+                       snps,aal;
+                       qcom,nss-common = <&nss_common>;
+                       qcom,qsgmii-csr = <&qsgmii_csr>;
+                       clocks = <&gcc GMAC_CORE1_CLK>;
+                       clock-names = "stmmaceth";
+                       resets = <&gcc GMAC_CORE1_RESET>,
+                                <&gcc GMAC_AHB_RESET>;
+                       reset-names = "stmmaceth", "ahb";
+                       status = "disabled";
+               };
+               gmac1: ethernet@37200000 {
+                       device_type = "network";
+                       compatible = "qcom,ipq806x-gmac", "snps,dwmac";
+                       reg = <0x37200000 0x200000>;
+                       interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "macirq";
+                       snps,axi-config = <&stmmac_axi_setup>;
+                       snps,pbl = <32>;
+                       snps,aal;
+                       qcom,nss-common = <&nss_common>;
+                       qcom,qsgmii-csr = <&qsgmii_csr>;
+                       clocks = <&gcc GMAC_CORE2_CLK>;
+                       clock-names = "stmmaceth";
+                       resets = <&gcc GMAC_CORE2_RESET>,
+                                <&gcc GMAC_AHB_RESET>;
+                       reset-names = "stmmaceth", "ahb";
+                       status = "disabled";
+               };
+               gmac2: ethernet@37400000 {
+                       device_type = "network";
+                       compatible = "qcom,ipq806x-gmac", "snps,dwmac";
+                       reg = <0x37400000 0x200000>;
+                       interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "macirq";
+                       snps,axi-config = <&stmmac_axi_setup>;
+                       snps,pbl = <32>;
+                       snps,aal;
+                       qcom,nss-common = <&nss_common>;
+                       qcom,qsgmii-csr = <&qsgmii_csr>;
+                       clocks = <&gcc GMAC_CORE3_CLK>;
+                       clock-names = "stmmaceth";
+                       resets = <&gcc GMAC_CORE3_RESET>,
+                                <&gcc GMAC_AHB_RESET>;
+                       reset-names = "stmmaceth", "ahb";
+                       status = "disabled";
+               };
+               gmac3: ethernet@37600000 {
+                       device_type = "network";
+                       compatible = "qcom,ipq806x-gmac", "snps,dwmac";
+                       reg = <0x37600000 0x200000>;
+                       interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "macirq";
+                       snps,axi-config = <&stmmac_axi_setup>;
+                       snps,pbl = <32>;
+                       snps,aal;
+                       qcom,nss-common = <&nss_common>;
+                       qcom,qsgmii-csr = <&qsgmii_csr>;
+                       clocks = <&gcc GMAC_CORE4_CLK>;
+                       clock-names = "stmmaceth";
+                       resets = <&gcc GMAC_CORE4_RESET>,
+                                <&gcc GMAC_AHB_RESET>;
+                       reset-names = "stmmaceth", "ahb";
+                       status = "disabled";
+               };
+       };
+ };
index 0000000,a830476..b269fdc
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,244 +1,243 @@@
 -                      input-enable;
+ // SPDX-License-Identifier: GPL-2.0+ OR MIT
+ /*
+  * Device Tree Source for mangOH Green Board with WP8548 Module
+  *
+  * Copyright (C) 2016 BayLibre, SAS.
+  * Author : Neil Armstrong <narmstrong@baylibre.com>
+  */
+ #include <dt-bindings/input/input.h>
+ #include "qcom-mdm9615-wp8548.dtsi"
+ #include <dt-bindings/interrupt-controller/irq.h>
+ #include <dt-bindings/gpio/gpio.h>
+ / {
+       model = "MangOH Green with WP8548 Module";
+       compatible = "swir,mangoh-green-wp8548", "swir,wp8548", "qcom,mdm9615";
+       aliases {
+               spi0 = &gsbi3_spi;
+               serial0 = &gsbi4_serial;
+               serial1 = &gsbi5_serial;
+               i2c0 = &gsbi5_i2c;
+               mmc0 = &sdcc1;
+       };
+       chosen {
+               stdout-path = "serial1:115200n8";
+       };
+ };
+ &msmgpio {
+       /* MangOH GPIO Mapping :
+        * - 2 : GPIOEXP_INT2
+        * - 7 : IOT1_GPIO2
+        * - 8 : IOT0_GPIO4
+        * - 13: IOT0_GPIO3
+        * - 21: IOT1_GPIO4
+        * - 22: IOT2_GPIO1
+        * - 23: IOT2_GPIO2
+        * - 24: IOT2_GPIO3
+        * - 25: IOT1_GPIO1
+        * - 32: IOT1_GPIO3
+        * - 33: IOT0_GPIO2
+        * - 42: IOT0_GPIO1 and SD Card Detect
+        */
+       gpioext1_pins: gpioext1-state {
+               gpioext1-pins {
+                       pins = "gpio2";
+                       function = "gpio";
+                       bias-disable;
+               };
+       };
+       sdc_cd_pins: sdc-cd-state {
+               sdc-cd-pins {
+                       pins = "gpio42";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
+ };
+ &gsbi3_spi {
+       spi@0 {
+               compatible = "swir,mangoh-iotport-spi";
+               spi-max-frequency = <24000000>;
+               reg = <0>;
+       };
+ };
+ &gsbi5_i2c {
+       mux@71 {
+               compatible = "nxp,pca9548";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x71>;
+               i2c_iot0: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+               i2c_iot1: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+               i2c_iot2: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+               i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+                       usbhub: hub@8 {
+                               compatible = "smsc,usb3503a";
+                               reg = <0x8>;
+                               connect-gpios = <&gpioext2 1 GPIO_ACTIVE_HIGH>;
+                               intn-gpios = <&gpioext2 0 GPIO_ACTIVE_HIGH>;
+                               initial-mode = <1>;
+                       };
+               };
+               i2c@4 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <4>;
+                       gpioext0: pinctrl@3e {
+                               /* GPIO Expander 0 Mapping :
+                                * - 0: ARDUINO_RESET_Level shift
+                                * - 1: BattChrgr_PG_N
+                                * - 2: BattGauge_GPIO
+                                * - 3: LED_ON (out active high)
+                                * - 4: ATmega_reset_GPIO
+                                * - 5: X
+                                * - 6: PCM_ANALOG_SELECT (out active high)
+                                * - 7: X
+                                * - 8: Board_rev_res1 (in)
+                                * - 9: Board_rev_res2 (in)
+                                * - 10: UART_EXP1_ENn (out active low / pull-down)
+                                * - 11: UART_EXP1_IN (out pull-down)
+                                * - 12: UART_EXP2_IN (out pull-down)
+                                * - 13: SDIO_SEL (out pull-down)
+                                * - 14: SPI_EXP1_ENn (out active low / pull-down)
+                                * - 15: SPI_EXP1_IN (out pull-down)
+                                */
+                               #gpio-cells = <2>;
+                               #interrupt-cells = <2>;
+                               compatible = "semtech,sx1509q";
+                               reg = <0x3e>;
+                               interrupt-parent = <&gpioext1>;
+                               interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
+                               semtech,probe-reset;
+                               gpio-controller;
+                               interrupt-controller;
+                       };
+               };
+               i2c@5 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <5>;
+                       gpioext1: pinctrl@3f {
+                               /* GPIO Expander 1 Mapping :
+                                * - 0: GPIOEXP_INT1
+                                * - 1: Battery detect
+                                * - 2: GPIO_SCF3_RESET
+                                * - 3: LED_CARD_DETECT_IOT0 (in)
+                                * - 4: LED_CARD_DETECT_IOT1 (in)
+                                * - 5: LED_CARD_DETECT_IOT2 (in)
+                                * - 6: UIM2_PWM_SELECT
+                                * - 7: UIM2_M2_S_SELECT
+                                * - 8: TP900
+                                * - 9: SENSOR_INT1 (in)
+                                * - 10: SENSOR_INT2 (in)
+                                * - 11: CARD_DETECT_IOT0 (in pull-up)
+                                * - 12: CARD_DETECT_IOT2 (in pull-up)
+                                * - 13: CARD_DETECT_IOT1 (in pull-up)
+                                * - 14: GPIOEXP_INT3 (in active low / pull-up)
+                                * - 15: BattChrgr_INT_N
+                                */
+                               pinctrl-0 = <&gpioext1_pins>;
+                               pinctrl-names = "default";
+                               #gpio-cells = <2>;
+                               #interrupt-cells = <2>;
+                               compatible = "semtech,sx1509q";
+                               reg = <0x3f>;
+                               interrupt-parent = <&msmgpio>;
+                               interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
+                               semtech,probe-reset;
+                               gpio-controller;
+                               interrupt-controller;
+                       };
+               };
+               i2c@6 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <6>;
+                       gpioext2: pinctrl@70 {
+                               /* GPIO Expander 2 Mapping :
+                                * - 0: USB_HUB_INTn
+                                * - 1: HUB_CONNECT
+                                * - 2: GPIO_IOT2_RESET (out active low / pull-up)
+                                * - 3: GPIO_IOT1_RESET (out active low / pull-up)
+                                * - 4: GPIO_IOT0_RESET (out active low / pull-up)
+                                * - 5: TP901
+                                * - 6: TP902
+                                * - 7: TP903
+                                * - 8: UART_EXP2_ENn (out active low / pull-down)
+                                * - 9: PCM_EXP1_ENn (out active low)
+                                * - 10: PCM_EXP1_SEL (out)
+                                * - 11: ARD_FTDI
+                                * - 12: TP904
+                                * - 13: TP905
+                                * - 14: TP906
+                                * - 15: RS232_Enable (out active high / pull-up)
+                                */
+                               #gpio-cells = <2>;
+                               #interrupt-cells = <2>;
+                               compatible = "semtech,sx1509q";
+                               reg = <0x70>;
+                               interrupt-parent = <&gpioext1>;
+                               interrupts = <14 IRQ_TYPE_EDGE_FALLING>;
+                               semtech,probe-reset;
+                               gpio-controller;
+                               interrupt-controller;
+                       };
+               };
+               i2c@7 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <7>;
+               };
+       };
+ };
+ &sdcc1 {
+       pinctrl-0 = <&sdc_cd_pins>;
+       pinctrl-names = "default";
+       disable-wp;
+       cd-gpios = <&msmgpio 42 GPIO_ACTIVE_LOW>; /* Active low CD */
+ };
index 0000000,f601b40..78023ed
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,650 +1,651 @@@
+ // SPDX-License-Identifier: GPL-2.0
+ /dts-v1/;
+ #include <dt-bindings/interrupt-controller/irq.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/clock/qcom,gcc-msm8660.h>
+ #include <dt-bindings/soc/qcom,gsbi.h>
+ / {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       model = "Qualcomm MSM8660";
+       compatible = "qcom,msm8660";
+       interrupt-parent = <&intc>;
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               cpu@0 {
+                       compatible = "qcom,scorpion";
+                       enable-method = "qcom,gcc-msm8660";
+                       device_type = "cpu";
+                       reg = <0>;
+                       next-level-cache = <&L2>;
+               };
+               cpu@1 {
+                       compatible = "qcom,scorpion";
+                       enable-method = "qcom,gcc-msm8660";
+                       device_type = "cpu";
+                       reg = <1>;
+                       next-level-cache = <&L2>;
+               };
+               L2: l2-cache {
+                       compatible = "cache";
+                       cache-level = <2>;
++                      cache-unified;
+               };
+       };
+       memory {
+               device_type = "memory";
+               reg = <0x0 0x0>;
+       };
+       cpu-pmu {
+               compatible = "qcom,scorpion-mp-pmu";
+               interrupts = <1 9 0x304>;
+       };
+       clocks {
+               cxo_board: cxo-board-clk {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <19200000>;
+                       clock-output-names = "cxo_board";
+               };
+               pxo_board: pxo-board-clk {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <27000000>;
+                       clock-output-names = "pxo_board";
+               };
+               sleep-clk {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <32768>;
+                       clock-output-names = "sleep_clk";
+               };
+       };
+       /*
+        * These channels from the ADC are simply hardware monitors.
+        * That is why the ADC is referred to as "HKADC" - HouseKeeping
+        * ADC.
+        */
+       iio-hwmon {
+               compatible = "iio-hwmon";
+               io-channels = <&xoadc 0x00 0x01>, /* Battery */
+                           <&xoadc 0x00 0x02>, /* DC in (charger) */
+                           <&xoadc 0x00 0x04>, /* VPH the main system voltage */
+                           <&xoadc 0x00 0x0b>, /* Die temperature */
+                           <&xoadc 0x00 0x0c>, /* Reference voltage 1.25V */
+                           <&xoadc 0x00 0x0d>, /* Reference voltage 0.625V */
+                           <&xoadc 0x00 0x0e>; /* Reference voltage 0.325V */
+       };
+       soc: soc {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+               compatible = "simple-bus";
+               intc: interrupt-controller@2080000 {
+                       compatible = "qcom,msm-8660-qgic";
+                       interrupt-controller;
+                       #interrupt-cells = <3>;
+                       reg = < 0x02080000 0x1000 >,
+                             < 0x02081000 0x1000 >;
+               };
+               timer@2000000 {
+                       compatible = "qcom,scss-timer", "qcom,msm-timer";
+                       interrupts = <1 0 0x301>,
+                                    <1 1 0x301>,
+                                    <1 2 0x301>;
+                       reg = <0x02000000 0x100>;
+                       clock-frequency = <27000000>,
+                                         <32768>;
+                       cpu-offset = <0x40000>;
+               };
+               tlmm: pinctrl@800000 {
+                       compatible = "qcom,msm8660-pinctrl";
+                       reg = <0x800000 0x4000>;
+                       gpio-controller;
+                       gpio-ranges = <&tlmm 0 0 173>;
+                       #gpio-cells = <2>;
+                       interrupts = <0 16 0x4>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+               gcc: clock-controller@900000 {
+                       compatible = "qcom,gcc-msm8660";
+                       #clock-cells = <1>;
+                       #power-domain-cells = <1>;
+                       #reset-cells = <1>;
+                       reg = <0x900000 0x4000>;
+                       clocks = <&pxo_board>, <&cxo_board>;
+                       clock-names = "pxo", "cxo";
+               };
+               gsbi1: gsbi@16000000 {
+                       compatible = "qcom,gsbi-v1.0.0";
+                       cell-index = <12>;
+                       reg = <0x16000000 0x100>;
+                       clocks = <&gcc GSBI1_H_CLK>;
+                       clock-names = "iface";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       syscon-tcsr = <&tcsr>;
+                       status = "disabled";
+                       gsbi1_spi: spi@16080000 {
+                               compatible = "qcom,spi-qup-v1.1.1";
+                               reg = <0x16080000 0x1000>;
+                               interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI1_QUP_CLK>, <&gcc GSBI1_H_CLK>;
+                               clock-names = "core", "iface";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+               gsbi3: gsbi@16200000 {
+                       compatible = "qcom,gsbi-v1.0.0";
+                       cell-index = <12>;
+                       reg = <0x16200000 0x100>;
+                       clocks = <&gcc GSBI3_H_CLK>;
+                       clock-names = "iface";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       syscon-tcsr = <&tcsr>;
+                       status = "disabled";
+                       gsbi3_i2c: i2c@16280000 {
+                               compatible = "qcom,i2c-qup-v1.1.1";
+                               reg = <0x16280000 0x1000>;
+                               interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI3_QUP_CLK>, <&gcc GSBI3_H_CLK>;
+                               clock-names = "core", "iface";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+               gsbi6: gsbi@16500000 {
+                       compatible = "qcom,gsbi-v1.0.0";
+                       cell-index = <12>;
+                       reg = <0x16500000 0x100>;
+                       clocks = <&gcc GSBI6_H_CLK>;
+                       clock-names = "iface";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       status = "disabled";
+                       syscon-tcsr = <&tcsr>;
+                       gsbi6_serial: serial@16540000 {
+                               compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
+                               reg = <0x16540000 0x1000>,
+                                     <0x16500000 0x1000>;
+                               interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI6_UART_CLK>, <&gcc GSBI6_H_CLK>;
+                               clock-names = "core", "iface";
+                               status = "disabled";
+                       };
+                       gsbi6_i2c: i2c@16580000 {
+                               compatible = "qcom,i2c-qup-v1.1.1";
+                               reg = <0x16580000 0x1000>;
+                               interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI6_QUP_CLK>, <&gcc GSBI6_H_CLK>;
+                               clock-names = "core", "iface";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+               gsbi7: gsbi@16600000 {
+                       compatible = "qcom,gsbi-v1.0.0";
+                       cell-index = <12>;
+                       reg = <0x16600000 0x100>;
+                       clocks = <&gcc GSBI7_H_CLK>;
+                       clock-names = "iface";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       status = "disabled";
+                       syscon-tcsr = <&tcsr>;
+                       gsbi7_serial: serial@16640000 {
+                               compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
+                               reg = <0x16640000 0x1000>,
+                                     <0x16600000 0x1000>;
+                               interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI7_UART_CLK>, <&gcc GSBI7_H_CLK>;
+                               clock-names = "core", "iface";
+                               status = "disabled";
+                       };
+                       gsbi7_i2c: i2c@16680000 {
+                               compatible = "qcom,i2c-qup-v1.1.1";
+                               reg = <0x16680000 0x1000>;
+                               interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI7_QUP_CLK>, <&gcc GSBI7_H_CLK>;
+                               clock-names = "core", "iface";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+               gsbi8: gsbi@19800000 {
+                       compatible = "qcom,gsbi-v1.0.0";
+                       cell-index = <12>;
+                       reg = <0x19800000 0x100>;
+                       clocks = <&gcc GSBI8_H_CLK>;
+                       clock-names = "iface";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       syscon-tcsr = <&tcsr>;
+                       status = "disabled";
+                       gsbi8_i2c: i2c@19880000 {
+                               compatible = "qcom,i2c-qup-v1.1.1";
+                               reg = <0x19880000 0x1000>;
+                               interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI8_QUP_CLK>, <&gcc GSBI8_H_CLK>;
+                               clock-names = "core", "iface";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+               gsbi12: gsbi@19c00000 {
+                       compatible = "qcom,gsbi-v1.0.0";
+                       cell-index = <12>;
+                       reg = <0x19c00000 0x100>;
+                       clocks = <&gcc GSBI12_H_CLK>;
+                       clock-names = "iface";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       syscon-tcsr = <&tcsr>;
+                       gsbi12_serial: serial@19c40000 {
+                               compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
+                               reg = <0x19c40000 0x1000>,
+                                     <0x19c00000 0x1000>;
+                               interrupts = <0 195 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI12_UART_CLK>, <&gcc GSBI12_H_CLK>;
+                               clock-names = "core", "iface";
+                               status = "disabled";
+                       };
+                       gsbi12_i2c: i2c@19c80000 {
+                               compatible = "qcom,i2c-qup-v1.1.1";
+                               reg = <0x19c80000 0x1000>;
+                               interrupts = <0 196 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI12_QUP_CLK>, <&gcc GSBI12_H_CLK>;
+                               clock-names = "core", "iface";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+               ebi2: external-bus@1a100000 {
+                       compatible = "qcom,msm8660-ebi2";
+                       #address-cells = <2>;
+                       #size-cells = <1>;
+                       ranges = <0 0x0 0x1a800000 0x00800000>,
+                                <1 0x0 0x1b000000 0x00800000>,
+                                <2 0x0 0x1b800000 0x00800000>,
+                                <3 0x0 0x1d000000 0x08000000>,
+                                <4 0x0 0x1c800000 0x00800000>,
+                                <5 0x0 0x1c000000 0x00800000>;
+                       reg = <0x1a100000 0x1000>, <0x1a110000 0x1000>;
+                       reg-names = "ebi2", "xmem";
+                       clocks = <&gcc EBI2_2X_CLK>, <&gcc EBI2_CLK>;
+                       clock-names = "ebi2x", "ebi2";
+                       status = "disabled";
+               };
+               ssbi@500000 {
+                       compatible = "qcom,ssbi";
+                       reg = <0x500000 0x1000>;
+                       qcom,controller-type = "pmic-arbiter";
+                       pm8058: pmic {
+                               compatible = "qcom,pm8058";
+                               interrupt-parent = <&tlmm>;
+                               interrupts = <88 8>;
+                               #interrupt-cells = <2>;
+                               interrupt-controller;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               pm8058_gpio: gpio@150 {
+                                       compatible = "qcom,pm8058-gpio",
+                                                    "qcom,ssbi-gpio";
+                                       reg = <0x150>;
+                                       interrupt-controller;
+                                       #interrupt-cells = <2>;
+                                       gpio-controller;
+                                       gpio-ranges = <&pm8058_gpio 0 0 44>;
+                                       #gpio-cells = <2>;
+                               };
+                               pm8058_mpps: mpps@50 {
+                                       compatible = "qcom,pm8058-mpp",
+                                                    "qcom,ssbi-mpp";
+                                       reg = <0x50>;
+                                       gpio-controller;
+                                       #gpio-cells = <2>;
+                                       gpio-ranges = <&pm8058_mpps 0 0 12>;
+                                       interrupt-controller;
+                                       #interrupt-cells = <2>;
+                               };
+                               pwrkey@1c {
+                                       compatible = "qcom,pm8058-pwrkey";
+                                       reg = <0x1c>;
+                                       interrupt-parent = <&pm8058>;
+                                       interrupts = <50 1>, <51 1>;
+                                       debounce = <15625>;
+                                       pull-up;
+                               };
+                               pm8058_keypad: keypad@148 {
+                                       compatible = "qcom,pm8058-keypad";
+                                       reg = <0x148>;
+                                       interrupt-parent = <&pm8058>;
+                                       interrupts = <74 1>, <75 1>;
+                                       debounce = <15>;
+                                       scan-delay = <32>;
+                                       row-hold = <91500>;
+                               };
+                               xoadc: xoadc@197 {
+                                       compatible = "qcom,pm8058-adc";
+                                       reg = <0x197>;
+                                       interrupts-extended = <&pm8058 76 IRQ_TYPE_EDGE_RISING>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+                                       #io-channel-cells = <2>;
+                                       vcoin: adc-channel@0 {
+                                               reg = <0x00 0x00>;
+                                       };
+                                       vbat: adc-channel@1 {
+                                               reg = <0x00 0x01>;
+                                       };
+                                       dcin: adc-channel@2 {
+                                               reg = <0x00 0x02>;
+                                       };
+                                       ichg: adc-channel@3 {
+                                               reg = <0x00 0x03>;
+                                       };
+                                       vph_pwr: adc-channel@4 {
+                                               reg = <0x00 0x04>;
+                                       };
+                                       usb_vbus: adc-channel@a {
+                                               reg = <0x00 0x0a>;
+                                       };
+                                       die_temp: adc-channel@b {
+                                               reg = <0x00 0x0b>;
+                                       };
+                                       ref_625mv: adc-channel@c {
+                                               reg = <0x00 0x0c>;
+                                       };
+                                       ref_1250mv: adc-channel@d {
+                                               reg = <0x00 0x0d>;
+                                       };
+                                       ref_325mv: adc-channel@e {
+                                               reg = <0x00 0x0e>;
+                                       };
+                                       ref_muxoff: adc-channel@f {
+                                               reg = <0x00 0x0f>;
+                                       };
+                               };
+                               rtc@1e8 {
+                                       compatible = "qcom,pm8058-rtc";
+                                       reg = <0x1e8>;
+                                       interrupt-parent = <&pm8058>;
+                                       interrupts = <39 1>;
+                                       allow-set-time;
+                               };
+                               vibrator@4a {
+                                       compatible = "qcom,pm8058-vib";
+                                       reg = <0x4a>;
+                               };
+                               pm8058_led48: led@48 {
+                                       compatible = "qcom,pm8058-keypad-led";
+                                       reg = <0x48>;
+                                       status = "disabled";
+                               };
+                               pm8058_led131: led@131 {
+                                       compatible = "qcom,pm8058-led";
+                                       reg = <0x131>;
+                                       status = "disabled";
+                               };
+                               pm8058_led132: led@132 {
+                                       compatible = "qcom,pm8058-led";
+                                       reg = <0x132>;
+                                       status = "disabled";
+                               };
+                               pm8058_led133: led@133 {
+                                       compatible = "qcom,pm8058-led";
+                                       reg = <0x133>;
+                                       status = "disabled";
+                               };
+                       };
+               };
+               l2cc: clock-controller@2082000 {
+                       compatible = "qcom,kpss-gcc-msm8660", "qcom,kpss-gcc", "syscon";
+                       reg = <0x02082000 0x1000>;
+               };
+               rpm: rpm@104000 {
+                       compatible = "qcom,rpm-msm8660";
+                       reg = <0x00104000 0x1000>;
+                       qcom,ipc = <&l2cc 0x8 2>;
+                       interrupts = <GIC_SPI 19 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "ack", "err", "wakeup";
+                       clocks = <&gcc RPM_MSG_RAM_H_CLK>;
+                       clock-names = "ram";
+                       rpmcc: clock-controller {
+                               compatible = "qcom,rpmcc-msm8660", "qcom,rpmcc";
+                               #clock-cells = <1>;
+                               clocks = <&pxo_board>;
+                               clock-names = "pxo";
+                       };
+                       regulators-0 {
+                               compatible = "qcom,rpm-pm8901-regulators";
+                               pm8901_l0: l0 {};
+                               pm8901_l1: l1 {};
+                               pm8901_l2: l2 {};
+                               pm8901_l3: l3 {};
+                               pm8901_l4: l4 {};
+                               pm8901_l5: l5 {};
+                               pm8901_l6: l6 {};
+                               /* S0 and S1 Handled as SAW regulators by SPM */
+                               pm8901_s2: s2 {};
+                               pm8901_s3: s3 {};
+                               pm8901_s4: s4 {};
+                               pm8901_lvs0: lvs0 {};
+                               pm8901_lvs1: lvs1 {};
+                               pm8901_lvs2: lvs2 {};
+                               pm8901_lvs3: lvs3 {};
+                               pm8901_mvs: mvs {};
+                       };
+                       regulators-1 {
+                               compatible = "qcom,rpm-pm8058-regulators";
+                               pm8058_l0: l0 {};
+                               pm8058_l1: l1 {};
+                               pm8058_l2: l2 {};
+                               pm8058_l3: l3 {};
+                               pm8058_l4: l4 {};
+                               pm8058_l5: l5 {};
+                               pm8058_l6: l6 {};
+                               pm8058_l7: l7 {};
+                               pm8058_l8: l8 {};
+                               pm8058_l9: l9 {};
+                               pm8058_l10: l10 {};
+                               pm8058_l11: l11 {};
+                               pm8058_l12: l12 {};
+                               pm8058_l13: l13 {};
+                               pm8058_l14: l14 {};
+                               pm8058_l15: l15 {};
+                               pm8058_l16: l16 {};
+                               pm8058_l17: l17 {};
+                               pm8058_l18: l18 {};
+                               pm8058_l19: l19 {};
+                               pm8058_l20: l20 {};
+                               pm8058_l21: l21 {};
+                               pm8058_l22: l22 {};
+                               pm8058_l23: l23 {};
+                               pm8058_l24: l24 {};
+                               pm8058_l25: l25 {};
+                               pm8058_s0: s0 {};
+                               pm8058_s1: s1 {};
+                               pm8058_s2: s2 {};
+                               pm8058_s3: s3 {};
+                               pm8058_s4: s4 {};
+                               pm8058_lvs0: lvs0 {};
+                               pm8058_lvs1: lvs1 {};
+                               pm8058_ncp: ncp {};
+                       };
+               };
+               amba {
+                       compatible = "simple-bus";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       sdcc1: mmc@12400000 {
+                               status = "disabled";
+                               compatible = "arm,pl18x", "arm,primecell";
+                               arm,primecell-periphid = <0x00051180>;
+                               reg = <0x12400000 0x8000>;
+                               interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc SDC1_CLK>, <&gcc SDC1_H_CLK>;
+                               clock-names = "mclk", "apb_pclk";
+                               bus-width = <8>;
+                               max-frequency = <48000000>;
+                               non-removable;
+                               cap-sd-highspeed;
+                               cap-mmc-highspeed;
+                       };
+                       sdcc2: mmc@12140000 {
+                               status = "disabled";
+                               compatible = "arm,pl18x", "arm,primecell";
+                               arm,primecell-periphid = <0x00051180>;
+                               reg = <0x12140000 0x8000>;
+                               interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc SDC2_CLK>, <&gcc SDC2_H_CLK>;
+                               clock-names = "mclk", "apb_pclk";
+                               bus-width = <8>;
+                               max-frequency = <48000000>;
+                               cap-sd-highspeed;
+                               cap-mmc-highspeed;
+                       };
+                       sdcc3: mmc@12180000 {
+                               compatible = "arm,pl18x", "arm,primecell";
+                               arm,primecell-periphid = <0x00051180>;
+                               status = "disabled";
+                               reg = <0x12180000 0x8000>;
+                               interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc SDC3_CLK>, <&gcc SDC3_H_CLK>;
+                               clock-names = "mclk", "apb_pclk";
+                               bus-width = <4>;
+                               cap-sd-highspeed;
+                               cap-mmc-highspeed;
+                               max-frequency = <48000000>;
+                               no-1-8-v;
+                       };
+                       sdcc4: mmc@121c0000 {
+                               compatible = "arm,pl18x", "arm,primecell";
+                               arm,primecell-periphid = <0x00051180>;
+                               status = "disabled";
+                               reg = <0x121c0000 0x8000>;
+                               interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc SDC4_CLK>, <&gcc SDC4_H_CLK>;
+                               clock-names = "mclk", "apb_pclk";
+                               bus-width = <4>;
+                               max-frequency = <48000000>;
+                               cap-sd-highspeed;
+                               cap-mmc-highspeed;
+                       };
+                       sdcc5: mmc@12200000 {
+                               compatible = "arm,pl18x", "arm,primecell";
+                               arm,primecell-periphid = <0x00051180>;
+                               status = "disabled";
+                               reg = <0x12200000 0x8000>;
+                               interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc SDC5_CLK>, <&gcc SDC5_H_CLK>;
+                               clock-names = "mclk", "apb_pclk";
+                               bus-width = <4>;
+                               cap-sd-highspeed;
+                               cap-mmc-highspeed;
+                               max-frequency = <48000000>;
+                       };
+               };
+               tcsr: syscon@1a400000 {
+                       compatible = "qcom,tcsr-msm8660", "syscon";
+                       reg = <0x1a400000 0x100>;
+               };
+       };
+ };
index 0000000,581b3ab..fa20133
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,406 +1,407 @@@
+ // SPDX-License-Identifier: GPL-2.0
+ /dts-v1/;
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/clock/qcom,gcc-msm8960.h>
+ #include <dt-bindings/reset/qcom,gcc-msm8960.h>
+ #include <dt-bindings/clock/qcom,lcc-msm8960.h>
+ #include <dt-bindings/mfd/qcom-rpm.h>
+ #include <dt-bindings/soc/qcom,gsbi.h>
+ / {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       model = "Qualcomm MSM8960";
+       compatible = "qcom,msm8960";
+       interrupt-parent = <&intc>;
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <GIC_PPI 14 0x304>;
+               cpu@0 {
+                       compatible = "qcom,krait";
+                       enable-method = "qcom,kpss-acc-v1";
+                       device_type = "cpu";
+                       reg = <0>;
+                       next-level-cache = <&L2>;
+                       qcom,acc = <&acc0>;
+                       qcom,saw = <&saw0>;
+               };
+               cpu@1 {
+                       compatible = "qcom,krait";
+                       enable-method = "qcom,kpss-acc-v1";
+                       device_type = "cpu";
+                       reg = <1>;
+                       next-level-cache = <&L2>;
+                       qcom,acc = <&acc1>;
+                       qcom,saw = <&saw1>;
+               };
+               L2: l2-cache {
+                       compatible = "cache";
+                       cache-level = <2>;
++                      cache-unified;
+               };
+       };
+       memory {
+               device_type = "memory";
+               reg = <0x0 0x0>;
+       };
+       cpu-pmu {
+               compatible = "qcom,krait-pmu";
+               interrupts = <GIC_PPI 10 0x304>;
+               qcom,no-pc-write;
+       };
+       clocks {
+               cxo_board: cxo_board {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <19200000>;
+                       clock-output-names = "cxo_board";
+               };
+               pxo_board: pxo_board {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <27000000>;
+                       clock-output-names = "pxo_board";
+               };
+               sleep_clk: sleep_clk {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <32768>;
+                       clock-output-names = "sleep_clk";
+               };
+       };
+       /* Temporary fixed regulator */
+       vsdcc_fixed: vsdcc-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "SDCC Power";
+               regulator-min-microvolt = <2700000>;
+               regulator-max-microvolt = <2700000>;
+               regulator-always-on;
+       };
+       soc: soc {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+               compatible = "simple-bus";
+               intc: interrupt-controller@2000000 {
+                       compatible = "qcom,msm-qgic2";
+                       interrupt-controller;
+                       #interrupt-cells = <3>;
+                       reg = <0x02000000 0x1000>,
+                             <0x02002000 0x1000>;
+               };
+               timer@200a000 {
+                       compatible = "qcom,kpss-wdt-msm8960", "qcom,kpss-timer",
+                                    "qcom,msm-timer";
+                       interrupts = <GIC_PPI 1 0x301>,
+                                    <GIC_PPI 2 0x301>,
+                                    <GIC_PPI 3 0x301>;
+                       reg = <0x0200a000 0x100>;
+                       clock-frequency = <27000000>;
+                       cpu-offset = <0x80000>;
+               };
+               msmgpio: pinctrl@800000 {
+                       compatible = "qcom,msm8960-pinctrl";
+                       gpio-controller;
+                       gpio-ranges = <&msmgpio 0 0 152>;
+                       #gpio-cells = <2>;
+                       interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       reg = <0x800000 0x4000>;
+               };
+               gcc: clock-controller@900000 {
+                       compatible = "qcom,gcc-msm8960";
+                       #clock-cells = <1>;
+                       #power-domain-cells = <1>;
+                       #reset-cells = <1>;
+                       reg = <0x900000 0x4000>;
+                       clocks = <&cxo_board>,
+                                <&pxo_board>,
+                                <&lcc PLL4>;
+                       clock-names = "cxo", "pxo", "pll4";
+               };
+               lcc: clock-controller@28000000 {
+                       compatible = "qcom,lcc-msm8960";
+                       reg = <0x28000000 0x1000>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       clocks = <&pxo_board>,
+                                <&gcc PLL4_VOTE>,
+                                <0>,
+                                <0>, <0>,
+                                <0>, <0>,
+                                <0>;
+                       clock-names = "pxo",
+                                     "pll4_vote",
+                                     "mi2s_codec_clk",
+                                     "codec_i2s_mic_codec_clk",
+                                     "spare_i2s_mic_codec_clk",
+                                     "codec_i2s_spkr_codec_clk",
+                                     "spare_i2s_spkr_codec_clk",
+                                     "pcm_codec_clk";
+               };
+               clock-controller@4000000 {
+                       compatible = "qcom,mmcc-msm8960";
+                       reg = <0x4000000 0x1000>;
+                       #clock-cells = <1>;
+                       #power-domain-cells = <1>;
+                       #reset-cells = <1>;
+                       clocks = <&pxo_board>,
+                                <&gcc PLL3>,
+                                <&gcc PLL8_VOTE>,
+                                <0>,
+                                <0>,
+                                <0>,
+                                <0>,
+                                <0>;
+                       clock-names = "pxo",
+                                     "pll3",
+                                     "pll8_vote",
+                                     "dsi1pll",
+                                     "dsi1pllbyte",
+                                     "dsi2pll",
+                                     "dsi2pllbyte",
+                                     "hdmipll";
+               };
+               l2cc: clock-controller@2011000 {
+                       compatible = "qcom,kpss-gcc-msm8960", "qcom,kpss-gcc", "syscon";
+                       reg = <0x2011000 0x1000>;
+                       clocks = <&gcc PLL8_VOTE>, <&pxo_board>;
+                       clock-names = "pll8_vote", "pxo";
+                       #clock-cells = <0>;
+               };
+               rpm: rpm@108000 {
+                       compatible = "qcom,rpm-msm8960";
+                       reg = <0x108000 0x1000>;
+                       qcom,ipc = <&l2cc 0x8 2>;
+                       interrupts = <GIC_SPI 19 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "ack", "err", "wakeup";
+                       regulators {
+                               compatible = "qcom,rpm-pm8921-regulators";
+                       };
+               };
+               acc0: clock-controller@2088000 {
+                       compatible = "qcom,kpss-acc-v1";
+                       reg = <0x02088000 0x1000>, <0x02008000 0x1000>;
+                       clocks = <&gcc PLL8_VOTE>, <&pxo_board>;
+                       clock-names = "pll8_vote", "pxo";
+                       clock-output-names = "acpu0_aux";
+                       #clock-cells = <0>;
+               };
+               acc1: clock-controller@2098000 {
+                       compatible = "qcom,kpss-acc-v1";
+                       reg = <0x02098000 0x1000>, <0x02008000 0x1000>;
+                       clocks = <&gcc PLL8_VOTE>, <&pxo_board>;
+                       clock-names = "pll8_vote", "pxo";
+                       clock-output-names = "acpu1_aux";
+                       #clock-cells = <0>;
+               };
+               saw0: regulator@2089000 {
+                       compatible = "qcom,saw2";
+                       reg = <0x02089000 0x1000>, <0x02009000 0x1000>;
+                       regulator;
+               };
+               saw1: regulator@2099000 {
+                       compatible = "qcom,saw2";
+                       reg = <0x02099000 0x1000>, <0x02009000 0x1000>;
+                       regulator;
+               };
+               gsbi5: gsbi@16400000 {
+                       compatible = "qcom,gsbi-v1.0.0";
+                       cell-index = <5>;
+                       reg = <0x16400000 0x100>;
+                       clocks = <&gcc GSBI5_H_CLK>;
+                       clock-names = "iface";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       syscon-tcsr = <&tcsr>;
+                       gsbi5_serial: serial@16440000 {
+                               compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
+                               reg = <0x16440000 0x1000>,
+                                     <0x16400000 0x1000>;
+                               interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI5_UART_CLK>, <&gcc GSBI5_H_CLK>;
+                               clock-names = "core", "iface";
+                               status = "disabled";
+                       };
+               };
+               ssbi@500000 {
+                       compatible = "qcom,ssbi";
+                       reg = <0x500000 0x1000>;
+                       qcom,controller-type = "pmic-arbiter";
+                       pmicintc: pmic {
+                               compatible = "qcom,pm8921";
+                               interrupt-parent = <&msmgpio>;
+                               interrupts = <104 IRQ_TYPE_LEVEL_LOW>;
+                               #interrupt-cells = <2>;
+                               interrupt-controller;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               pwrkey@1c {
+                                       compatible = "qcom,pm8921-pwrkey";
+                                       reg = <0x1c>;
+                                       interrupt-parent = <&pmicintc>;
+                                       interrupts = <50 IRQ_TYPE_EDGE_RISING>,
+                                                    <51 IRQ_TYPE_EDGE_RISING>;
+                                       debounce = <15625>;
+                                       pull-up;
+                               };
+                               keypad@148 {
+                                       compatible = "qcom,pm8921-keypad";
+                                       reg = <0x148>;
+                                       interrupt-parent = <&pmicintc>;
+                                       interrupts = <74 IRQ_TYPE_EDGE_RISING>,
+                                                    <75 IRQ_TYPE_EDGE_RISING>;
+                                       debounce = <15>;
+                                       scan-delay = <32>;
+                                       row-hold = <91500>;
+                               };
+                               rtc@11d {
+                                       compatible = "qcom,pm8921-rtc";
+                                       interrupt-parent = <&pmicintc>;
+                                       interrupts = <39 IRQ_TYPE_EDGE_RISING>;
+                                       reg = <0x11d>;
+                                       allow-set-time;
+                               };
+                       };
+               };
+               rng@1a500000 {
+                       compatible = "qcom,prng";
+                       reg = <0x1a500000 0x200>;
+                       clocks = <&gcc PRNG_CLK>;
+                       clock-names = "core";
+               };
+               sdcc3: mmc@12180000 {
+                       compatible = "arm,pl18x", "arm,primecell";
+                       arm,primecell-periphid = <0x00051180>;
+                       status = "disabled";
+                       reg = <0x12180000 0x8000>;
+                       interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc SDC3_CLK>, <&gcc SDC3_H_CLK>;
+                       clock-names = "mclk", "apb_pclk";
+                       bus-width = <4>;
+                       cap-sd-highspeed;
+                       cap-mmc-highspeed;
+                       max-frequency = <192000000>;
+                       no-1-8-v;
+                       vmmc-supply = <&vsdcc_fixed>;
+               };
+               sdcc1: mmc@12400000 {
+                       status = "disabled";
+                       compatible = "arm,pl18x", "arm,primecell";
+                       arm,primecell-periphid = <0x00051180>;
+                       reg = <0x12400000 0x8000>;
+                       interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc SDC1_CLK>, <&gcc SDC1_H_CLK>;
+                       clock-names = "mclk", "apb_pclk";
+                       bus-width = <8>;
+                       max-frequency = <96000000>;
+                       non-removable;
+                       cap-sd-highspeed;
+                       cap-mmc-highspeed;
+                       vmmc-supply = <&vsdcc_fixed>;
+               };
+               tcsr: syscon@1a400000 {
+                       compatible = "qcom,tcsr-msm8960", "syscon";
+                       reg = <0x1a400000 0x100>;
+               };
+               gsbi1: gsbi@16000000 {
+                       compatible = "qcom,gsbi-v1.0.0";
+                       cell-index = <1>;
+                       reg = <0x16000000 0x100>;
+                       clocks = <&gcc GSBI1_H_CLK>;
+                       clock-names = "iface";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       gsbi1_spi: spi@16080000 {
+                               compatible = "qcom,spi-qup-v1.1.1";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <0x16080000 0x1000>;
+                               interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+                               spi-max-frequency = <24000000>;
+                               cs-gpios = <&msmgpio 8 0>;
+                               clocks = <&gcc GSBI1_QUP_CLK>, <&gcc GSBI1_H_CLK>;
+                               clock-names = "core", "iface";
+                               status = "disabled";
+                       };
+               };
+               usb1: usb@12500000 {
+                       compatible = "qcom,ci-hdrc";
+                       reg = <0x12500000 0x200>,
+                             <0x12500200 0x200>;
+                       interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc USB_HS1_XCVR_CLK>, <&gcc USB_HS1_H_CLK>;
+                       clock-names = "core", "iface";
+                       assigned-clocks = <&gcc USB_HS1_XCVR_CLK>;
+                       assigned-clock-rates = <60000000>;
+                       resets = <&gcc USB_HS1_RESET>;
+                       reset-names = "core";
+                       phy_type = "ulpi";
+                       ahb-burst-config = <0>;
+                       phys = <&usb_hs1_phy>;
+                       phy-names = "usb-phy";
+                       #reset-cells = <1>;
+                       status = "disabled";
+                       ulpi {
+                               usb_hs1_phy: phy {
+                                       compatible = "qcom,usb-hs-phy-msm8960",
+                                                    "qcom,usb-hs-phy";
+                                       clocks = <&sleep_clk>, <&cxo_board>;
+                                       clock-names = "sleep", "ref";
+                                       resets = <&usb1 0>;
+                                       reset-names = "por";
+                                       #phy-cells = <0>;
+                               };
+                       };
+               };
+       };
+ };
index 0000000,e2a7ab7..60bdfdd
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,698 +1,696 @@@
 -              input-enable;
+ // SPDX-License-Identifier: GPL-2.0
+ #include "qcom-msm8974.dtsi"
+ #include "qcom-pm8841.dtsi"
+ #include "qcom-pm8941.dtsi"
+ #include <dt-bindings/input/input.h>
+ #include <dt-bindings/leds/common.h>
+ #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+ / {
+       model = "LGE MSM 8974 HAMMERHEAD";
+       compatible = "lge,hammerhead", "qcom,msm8974";
+       chassis-type = "handset";
+       aliases {
+               serial0 = &blsp1_uart1;
+               serial1 = &blsp2_uart4;
+       };
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_keys_pin_a>;
+               key-volume-up {
+                       label = "volume_up";
+                       gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+               key-volume-down {
+                       label = "volume_down";
+                       gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+               };
+       };
+       clk_pwm: pwm {
+               compatible = "clk-pwm";
+               clocks = <&mmcc CAMSS_GP1_CLK>;
+               pinctrl-0 = <&vibrator_pin>;
+               pinctrl-names = "default";
+               #pwm-cells = <2>;
+       };
+       vibrator {
+               compatible = "pwm-vibrator";
+               pwms = <&clk_pwm 0 100000>;
+               pwm-names = "enable";
+               vcc-supply = <&pm8941_l19>;
+               enable-gpios = <&tlmm 60 GPIO_ACTIVE_HIGH>;
+       };
+       vreg_wlan: wlan-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "wl-reg";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&tlmm 26 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               pinctrl-names = "default";
+               pinctrl-0 = <&wlan_regulator_pin>;
+       };
+ };
+ &blsp1_i2c1 {
+       status = "okay";
+       clock-frequency = <100000>;
+       charger: bq24192@6b {
+               compatible = "ti,bq24192";
+               reg = <0x6b>;
+               interrupts-extended = <&spmi_bus 0 0xd5 0 IRQ_TYPE_EDGE_FALLING>;
+               omit-battery-class;
+               usb_otg_vbus: usb-otg-vbus { };
+       };
+       fuelgauge: max17048@36 {
+               compatible = "maxim,max17048";
+               reg = <0x36>;
+               maxim,double-soc;
+               maxim,rcomp = /bits/ 8 <0x4d>;
+               interrupt-parent = <&tlmm>;
+               interrupts = <9 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&fuelgauge_pin>;
+               maxim,alert-low-soc-level = <2>;
+       };
+ };
+ &blsp1_i2c2 {
+       status = "okay";
+       clock-frequency = <355000>;
+       synaptics@70 {
+               compatible = "syna,rmi4-i2c";
+               reg = <0x70>;
+               interrupts-extended = <&tlmm 5 IRQ_TYPE_EDGE_FALLING>;
+               vdd-supply = <&pm8941_l22>;
+               vio-supply = <&pm8941_lvs3>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&touch_pin>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               rmi4-f01@1 {
+                       reg = <0x1>;
+                       syna,nosleep-mode = <1>;
+               };
+               rmi4-f12@12 {
+                       reg = <0x12>;
+                       syna,sensor-type = <1>;
+               };
+       };
+ };
+ &blsp1_i2c3 {
+       status = "okay";
+       clock-frequency = <100000>;
+       avago_apds993@39 {
+               compatible = "avago,apds9930";
+               reg = <0x39>;
+               interrupts-extended = <&tlmm 61 IRQ_TYPE_EDGE_FALLING>;
+               vdd-supply = <&pm8941_l17>;
+               vddio-supply = <&pm8941_lvs1>;
+               led-max-microamp = <100000>;
+               amstaos,proximity-diodes = <0>;
+       };
+ };
+ &blsp2_i2c5 {
+       status = "okay";
+       clock-frequency = <355000>;
+       led-controller@38 {
+               compatible = "ti,lm3630a";
+               status = "okay";
+               reg = <0x38>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               led@0 {
+                       reg = <0>;
+                       led-sources = <0 1>;
+                       label = "lcd-backlight";
+                       default-brightness = <200>;
+               };
+       };
+ };
+ &blsp2_i2c6 {
+       status = "okay";
+       clock-frequency = <100000>;
+       mpu6515@68 {
+               compatible = "invensense,mpu6515";
+               reg = <0x68>;
+               interrupts-extended = <&tlmm 73 IRQ_TYPE_EDGE_FALLING>;
+               vddio-supply = <&pm8941_lvs1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mpu6515_pin>;
+               mount-matrix = "0", "-1", "0",
+                               "-1", "0", "0",
+                               "0", "0", "1";
+               i2c-gate {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       ak8963@f {
+                               compatible = "asahi-kasei,ak8963";
+                               reg = <0x0f>;
+                               gpios = <&tlmm 67 GPIO_ACTIVE_HIGH>;
+                               vid-supply = <&pm8941_lvs1>;
+                               vdd-supply = <&pm8941_l17>;
+                       };
+                       bmp280@76 {
+                               compatible = "bosch,bmp280";
+                               reg = <0x76>;
+                               vdda-supply = <&pm8941_lvs1>;
+                               vddd-supply = <&pm8941_l17>;
+                       };
+               };
+       };
+ };
+ &blsp1_uart1 {
+       status = "okay";
+ };
+ &blsp2_uart4 {
+       status = "okay";
+       bluetooth {
+               compatible = "brcm,bcm43438-bt";
+               max-speed = <3000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&bt_pin>;
+               host-wakeup-gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>;
+               device-wakeup-gpios = <&tlmm 62 GPIO_ACTIVE_HIGH>;
+               shutdown-gpios = <&tlmm 41 GPIO_ACTIVE_HIGH>;
+       };
+ };
+ &mdss {
+       status = "okay";
+ };
+ &mdss_dsi0 {
+       status = "okay";
+       vdda-supply = <&pm8941_l2>;
+       vdd-supply = <&pm8941_lvs3>;
+       vddio-supply = <&pm8941_l12>;
+       panel: panel@0 {
+               reg = <0>;
+               compatible = "lg,acx467akm-7";
+               pinctrl-names = "default";
+               pinctrl-0 = <&panel_pin>;
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&mdss_dsi0_out>;
+                       };
+               };
+       };
+ };
+ &mdss_dsi0_out {
+       remote-endpoint = <&panel_in>;
+       data-lanes = <0 1 2 3>;
+ };
+ &mdss_dsi0_phy {
+       status = "okay";
+       vddio-supply = <&pm8941_l12>;
+ };
+ &pm8941_gpios {
+       gpio_keys_pin_a: gpio-keys-active-state {
+               pins = "gpio2", "gpio3";
+               function = "normal";
+               bias-pull-up;
+               power-source = <PM8941_GPIO_S3>;
+       };
+       fuelgauge_pin: fuelgauge-int-state {
+               pins = "gpio9";
+               function = "normal";
+               bias-disable;
+               input-enable;
+               power-source = <PM8941_GPIO_S3>;
+       };
+       wlan_sleep_clk_pin: wl-sleep-clk-state {
+               pins = "gpio16";
+               function = "func2";
+               output-high;
+               power-source = <PM8941_GPIO_S3>;
+       };
+       wlan_regulator_pin: wl-reg-active-state {
+               pins = "gpio17";
+               function = "normal";
+               bias-disable;
+               power-source = <PM8941_GPIO_S3>;
+       };
+       otg {
+               gpio-hog;
+               gpios = <35 GPIO_ACTIVE_HIGH>;
+               output-high;
+               line-name = "otg-gpio";
+       };
+ };
+ &pm8941_lpg {
+       status = "okay";
+       qcom,power-source = <1>;
+       multi-led {
+               color = <LED_COLOR_ID_RGB>;
+               function = LED_FUNCTION_STATUS;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               led@7 {
+                       reg = <7>;
+                       color = <LED_COLOR_ID_RED>;
+               };
+               led@6 {
+                       reg = <6>;
+                       color = <LED_COLOR_ID_GREEN>;
+               };
+               led@5 {
+                       reg = <5>;
+                       color = <LED_COLOR_ID_BLUE>;
+               };
+       };
+ };
+ &remoteproc_adsp {
+       cx-supply = <&pm8841_s2>;
+ };
+ &remoteproc_mss {
+       cx-supply = <&pm8841_s2>;
+       mss-supply = <&pm8841_s3>;
+       mx-supply = <&pm8841_s1>;
+       pll-supply = <&pm8941_l12>;
+ };
+ &rpm_requests {
+       regulators-0 {
+               compatible = "qcom,rpm-pm8841-regulators";
+               pm8841_s1: s1 {
+                       regulator-min-microvolt = <675000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+               pm8841_s2: s2 {
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+               pm8841_s3: s3 {
+                       regulator-min-microvolt = <1050000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+               pm8841_s4: s4 {
+                       regulator-min-microvolt = <815000>;
+                       regulator-max-microvolt = <900000>;
+               };
+       };
+       regulators-1 {
+               compatible = "qcom,rpm-pm8941-regulators";
+               vdd_l1_l3-supply = <&pm8941_s1>;
+               vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
+               vdd_l4_l11-supply = <&pm8941_s1>;
+               vdd_l5_l7-supply = <&pm8941_s2>;
+               vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
+               vdd_l8_l16_l18_l19-supply = <&vreg_vph_pwr>;
+               vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
+               vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
+               vdd_l21-supply = <&vreg_boost>;
+               pm8941_s1: s1 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1300000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+               pm8941_s2: s2 {
+                       regulator-min-microvolt = <2150000>;
+                       regulator-max-microvolt = <2150000>;
+                       regulator-boot-on;
+               };
+               pm8941_s3: s3 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+               pm8941_l1: l1 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+               pm8941_l2: l2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+               pm8941_l3: l3 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+               pm8941_l4: l4 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+               pm8941_l5: l5 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8941_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
+               };
+               pm8941_l7: l7 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
+               };
+               pm8941_l8: l8 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8941_l9: l9 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pm8941_l10: l10 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pm8941_l11: l11 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1300000>;
+               };
+               pm8941_l12: l12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+               pm8941_l13: l13 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-boot-on;
+               };
+               pm8941_l14: l14 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8941_l15: l15 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+               pm8941_l16: l16 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <2700000>;
+               };
+               pm8941_l17: l17 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+               pm8941_l18: l18 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+               pm8941_l19: l19 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+               pm8941_l20: l20 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-system-load = <200000>;
+                       regulator-allow-set-load;
+                       regulator-boot-on;
+               };
+               pm8941_l21: l21 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-boot-on;
+               };
+               pm8941_l22: l22 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+               pm8941_l23: l23 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+               pm8941_l24: l24 {
+                       regulator-min-microvolt = <3075000>;
+                       regulator-max-microvolt = <3075000>;
+                       regulator-boot-on;
+               };
+               pm8941_lvs1: lvs1 {};
+               pm8941_lvs3: lvs3 {};
+       };
+ };
+ &sdhc_1 {
+       status = "okay";
+       vmmc-supply = <&pm8941_l20>;
+       vqmmc-supply = <&pm8941_s3>;
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc1_on>;
+       pinctrl-1 = <&sdc1_off>;
+ };
+ &sdhc_2 {
+       status = "okay";
+       max-frequency = <100000000>;
+       vmmc-supply = <&vreg_wlan>;
+       vqmmc-supply = <&pm8941_s3>;
+       non-removable;
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc2_on>;
+       pinctrl-1 = <&sdc2_off>;
+       bcrmf@1 {
+               compatible = "brcm,bcm4339-fmac", "brcm,bcm4329-fmac";
+               reg = <1>;
+               brcm,drive-strength = <10>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&wlan_sleep_clk_pin>;
+       };
+ };
+ &tlmm {
+       sdc1_on: sdc1-on-state {
+               clk-pins {
+                       pins = "sdc1_clk";
+                       drive-strength = <16>;
+                       bias-disable;
+               };
+               cmd-data-pins {
+                       pins = "sdc1_cmd", "sdc1_data";
+                       drive-strength = <10>;
+                       bias-pull-up;
+               };
+       };
+       sdc2_on: sdc2-on-state {
+               clk-pins {
+                       pins = "sdc2_clk";
+                       drive-strength = <6>;
+                       bias-disable;
+               };
+               cmd-data-pins {
+                       pins = "sdc2_cmd", "sdc2_data";
+                       drive-strength = <6>;
+                       bias-pull-up;
+               };
+       };
+       mpu6515_pin: mpu6515-state {
+               pins = "gpio73";
+               function = "gpio";
+               bias-disable;
 -                      input-enable;
+       };
+       touch_pin: touch-state {
+               int-pins {
+                       pins = "gpio5";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+               reset-pins {
+                       pins = "gpio8";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
+       panel_pin: panel-state {
+               pins = "gpio12";
+               function = "mdp_vsync";
+               drive-strength = <2>;
+               bias-disable;
+       };
+       bt_pin: bt-state {
+               hostwake-pins {
+                       pins = "gpio42";
+                       function = "gpio";
+               };
+               devwake-pins {
+                       pins = "gpio62";
+                       function = "gpio";
+               };
+               shutdown-pins {
+                       pins = "gpio41";
+                       function = "gpio";
+               };
+       };
+       vibrator_pin: vibrator-state {
+               core-pins {
+                       pins = "gpio27";
+                       function = "gp1_clk";
+                       drive-strength = <6>;
+                       bias-disable;
+               };
+               enable-pins {
+                       pins = "gpio60";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+       };
+ };
+ &usb {
+       status = "okay";
+       phys = <&usb_hs1_phy>;
+       phy-select = <&tcsr 0xb000 0>;
+       extcon = <&charger>, <&usb_id>;
+       vbus-supply = <&usb_otg_vbus>;
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+ };
+ &usb_hs1_phy {
+       status = "okay";
+       v1p8-supply = <&pm8941_l6>;
+       v3p3-supply = <&pm8941_l24>;
+       qcom,init-seq = /bits/ 8 <0x1 0x64>;
+ };
index 0000000,d3bec03..68a2f90
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,496 +1,495 @@@
 -              input-enable;
+ // SPDX-License-Identifier: GPL-2.0
+ #include "qcom-msm8974.dtsi"
+ #include "qcom-pm8841.dtsi"
+ #include "qcom-pm8941.dtsi"
+ #include <dt-bindings/input/input.h>
+ #include <dt-bindings/leds/common.h>
+ #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+ / {
+       aliases {
+               serial0 = &blsp1_uart2;
+       };
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_keys_pin_a>;
+               key-volume-down {
+                       label = "volume_down";
+                       gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+               };
+               key-camera-snapshot {
+                       label = "camera_snapshot";
+                       gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_CAMERA>;
+               };
+               key-camera-focus {
+                       label = "camera_focus";
+                       gpios = <&pm8941_gpios 4 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_CAMERA_FOCUS>;
+               };
+               key-volume-up {
+                       label = "volume_up";
+                       gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+       };
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+               ramoops@3e8e0000 {
+                       compatible = "ramoops";
+                       reg = <0x3e8e0000 0x200000>;
+                       console-size = <0x100000>;
+                       record-size = <0x10000>;
+                       ftrace-size = <0x10000>;
+                       pmsg-size = <0x80000>;
+               };
+       };
+ };
+ &blsp1_i2c2 {
+       status = "okay";
+       clock-frequency = <355000>;
+       synaptics@2c {
+               compatible = "syna,rmi4-i2c";
+               reg = <0x2c>;
+               interrupts-extended = <&tlmm 61 IRQ_TYPE_EDGE_FALLING>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               vdd-supply = <&pm8941_l22>;
+               vio-supply = <&pm8941_lvs3>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&ts_int_pin>;
+               syna,startup-delay-ms = <10>;
+               rmi4-f01@1 {
+                       reg = <0x1>;
+                       syna,nosleep-mode = <1>;
+               };
+               rmi4-f11@11 {
+                       reg = <0x11>;
+                       touchscreen-inverted-x;
+                       syna,sensor-type = <1>;
+               };
+       };
+ };
+ &blsp1_i2c6 {
+       status = "okay";
+       clock-frequency = <355000>;
+       nfc@28 {
+               compatible = "nxp,pn544-i2c";
+               reg = <0x28>;
+               interrupt-parent = <&tlmm>;
+               interrupts = <59 IRQ_TYPE_EDGE_RISING>;
+               enable-gpios = <&pm8941_gpios 23 GPIO_ACTIVE_HIGH>;
+               firmware-gpios = <&tlmm 77 GPIO_ACTIVE_HIGH>;
+       };
+ };
+ &blsp1_uart2 {
+       status = "okay";
+ };
+ &blsp2_dma {
+       qcom,controlled-remotely;
+ };
+ &blsp2_i2c5 {
+       status = "okay";
+       clock-frequency = <355000>;
+       /* sii8334 MHL HDMI bridge */
+ };
+ &pm8941_coincell {
+       status = "okay";
+       qcom,rset-ohms = <2100>;
+       qcom,vset-millivolts = <3000>;
+ };
+ &pm8941_gpios {
+       gpio_keys_pin_a: gpio-keys-active-state {
+               pins = "gpio2", "gpio3", "gpio4", "gpio5";
+               function = "normal";
+               bias-pull-up;
+               power-source = <PM8941_GPIO_S3>;
+       };
+ };
+ &pm8941_lpg {
+       status = "okay";
+       qcom,power-source = <1>;
+       multi-led {
+               color = <LED_COLOR_ID_RGB>;
+               function = LED_FUNCTION_STATUS;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               led@5 {
+                       reg = <5>;
+                       color = <LED_COLOR_ID_BLUE>;
+               };
+               led@6 {
+                       reg = <6>;
+                       color = <LED_COLOR_ID_GREEN>;
+               };
+               led@7 {
+                       reg = <7>;
+                       color = <LED_COLOR_ID_RED>;
+               };
+       };
+ };
+ &pm8941_wled {
+       status = "okay";
+       qcom,cs-out;
+       qcom,current-limit = <20>;
+       qcom,current-boost-limit = <805>;
+       qcom,switching-freq = <1600>;
+       qcom,ovp = <29>;
+       qcom,num-strings = <2>;
+ };
+ &remoteproc_adsp {
+       cx-supply = <&pm8841_s2>;
+ };
+ &remoteproc_mss {
+       cx-supply = <&pm8841_s2>;
+       mss-supply = <&pm8841_s3>;
+       mx-supply = <&pm8841_s1>;
+       pll-supply = <&pm8941_l12>;
+ };
+ &rpm_requests {
+       regulators-0 {
+               compatible = "qcom,rpm-pm8841-regulators";
+               pm8841_s1: s1 {
+                       regulator-min-microvolt = <675000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+               pm8841_s2: s2 {
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+               pm8841_s3: s3 {
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+               pm8841_s4: s4 {
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+       };
+       regulators-1 {
+               compatible = "qcom,rpm-pm8941-regulators";
+               vdd_l1_l3-supply = <&pm8941_s1>;
+               vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
+               vdd_l4_l11-supply = <&pm8941_s1>;
+               vdd_l5_l7-supply = <&pm8941_s2>;
+               vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
+               vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
+               vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
+               vdd_l21-supply = <&vreg_boost>;
+               pm8941_s1: s1 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1300000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+               pm8941_s2: s2 {
+                       regulator-min-microvolt = <2150000>;
+                       regulator-max-microvolt = <2150000>;
+                       regulator-boot-on;
+               };
+               pm8941_s3: s3 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+               pm8941_s4: s4 {
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+               };
+               pm8941_l1: l1 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+               pm8941_l2: l2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+               pm8941_l3: l3 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+               pm8941_l4: l4 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+               pm8941_l5: l5 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8941_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
+               };
+               pm8941_l7: l7 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
+               };
+               pm8941_l8: l8 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8941_l9: l9 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pm8941_l11: l11 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1350000>;
+               };
+               pm8941_l12: l12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+               pm8941_l13: l13 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-boot-on;
+               };
+               pm8941_l14: l14 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8941_l15: l15 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+               pm8941_l16: l16 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <2700000>;
+               };
+               pm8941_l17: l17 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <2700000>;
+               };
+               pm8941_l18: l18 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+               pm8941_l19: l19 {
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+               pm8941_l20: l20 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-system-load = <200000>;
+                       regulator-allow-set-load;
+                       regulator-boot-on;
+               };
+               pm8941_l21: l21 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-boot-on;
+               };
+               pm8941_l22: l22 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+               pm8941_l23: l23 {
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+               };
+               pm8941_l24: l24 {
+                       regulator-min-microvolt = <3075000>;
+                       regulator-max-microvolt = <3075000>;
+                       regulator-boot-on;
+               };
+               pm8941_lvs3: lvs3 {};
+       };
+ };
+ &sdhc_1 {
+       status = "okay";
+       vmmc-supply = <&pm8941_l20>;
+       vqmmc-supply = <&pm8941_s3>;
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc1_on>;
+       pinctrl-1 = <&sdc1_off>;
+ };
+ &sdhc_2 {
+       status = "okay";
+       vmmc-supply = <&pm8941_l21>;
+       vqmmc-supply = <&pm8941_l13>;
+       cd-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>;
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc2_on>;
+       pinctrl-1 = <&sdc2_off>;
+ };
+ &smbb {
+       qcom,fast-charge-safe-current = <1500000>;
+       qcom,fast-charge-current-limit = <1500000>;
+       qcom,dc-current-limit = <1800000>;
+       qcom,fast-charge-safe-voltage = <4400000>;
+       qcom,fast-charge-high-threshold-voltage = <4350000>;
+       qcom,fast-charge-low-threshold-voltage = <3400000>;
+       qcom,auto-recharge-threshold-voltage = <4200000>;
+       qcom,minimum-input-voltage = <4300000>;
+ };
+ &tlmm {
+       ts_int_pin: touch-int-state {
+               pins = "gpio61";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+       sdc1_on: sdc1-on-state {
+               clk-pins {
+                       pins = "sdc1_clk";
+                       drive-strength = <16>;
+                       bias-disable;
+               };
+               cmd-data-pins {
+                       pins = "sdc1_cmd", "sdc1_data";
+                       drive-strength = <10>;
+                       bias-pull-up;
+               };
+       };
+       sdc2_on: sdc-on-state {
+               clk-pins {
+                       pins = "sdc2_clk";
+                       drive-strength = <10>;
+                       bias-disable;
+               };
+               cmd-data-pins {
+                       pins = "sdc2_cmd", "sdc2_data";
+                       drive-strength = <6>;
+                       bias-pull-up;
+               };
+               cd-pins {
+                       pins = "gpio62";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+       };
+ };
+ &usb {
+       status = "okay";
+       phys = <&usb_hs1_phy>;
+       phy-select = <&tcsr 0xb000 0>;
+       extcon = <&smbb>, <&usb_id>;
+       vbus-supply = <&chg_otg>;
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+ };
+ &usb_hs1_phy {
+       status = "okay";
+       v1p8-supply = <&pm8941_l6>;
+       v3p3-supply = <&pm8941_l24>;
+       extcon = <&smbb>;
+       qcom,init-seq = /bits/ 8 <0x1 0x64>;
+ };
index 0000000,21fae1f..aeca504
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,2405 +1,2406 @@@
+ // SPDX-License-Identifier: GPL-2.0
+ /dts-v1/;
+ #include <dt-bindings/interconnect/qcom,msm8974.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/clock/qcom,gcc-msm8974.h>
+ #include <dt-bindings/clock/qcom,mmcc-msm8974.h>
+ #include <dt-bindings/clock/qcom,rpmcc.h>
+ #include <dt-bindings/reset/qcom,gcc-msm8974.h>
+ #include <dt-bindings/gpio/gpio.h>
+ / {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       interrupt-parent = <&intc>;
+       clocks {
+               xo_board: xo_board {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <19200000>;
+               };
+               sleep_clk: sleep_clk {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <32768>;
+               };
+       };
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <GIC_PPI 9 0xf04>;
+               CPU0: cpu@0 {
+                       compatible = "qcom,krait";
+                       enable-method = "qcom,kpss-acc-v2";
+                       device_type = "cpu";
+                       reg = <0>;
+                       next-level-cache = <&L2>;
+                       qcom,acc = <&acc0>;
+                       qcom,saw = <&saw0>;
+                       cpu-idle-states = <&CPU_SPC>;
+               };
+               CPU1: cpu@1 {
+                       compatible = "qcom,krait";
+                       enable-method = "qcom,kpss-acc-v2";
+                       device_type = "cpu";
+                       reg = <1>;
+                       next-level-cache = <&L2>;
+                       qcom,acc = <&acc1>;
+                       qcom,saw = <&saw1>;
+                       cpu-idle-states = <&CPU_SPC>;
+               };
+               CPU2: cpu@2 {
+                       compatible = "qcom,krait";
+                       enable-method = "qcom,kpss-acc-v2";
+                       device_type = "cpu";
+                       reg = <2>;
+                       next-level-cache = <&L2>;
+                       qcom,acc = <&acc2>;
+                       qcom,saw = <&saw2>;
+                       cpu-idle-states = <&CPU_SPC>;
+               };
+               CPU3: cpu@3 {
+                       compatible = "qcom,krait";
+                       enable-method = "qcom,kpss-acc-v2";
+                       device_type = "cpu";
+                       reg = <3>;
+                       next-level-cache = <&L2>;
+                       qcom,acc = <&acc3>;
+                       qcom,saw = <&saw3>;
+                       cpu-idle-states = <&CPU_SPC>;
+               };
+               L2: l2-cache {
+                       compatible = "cache";
+                       cache-level = <2>;
++                      cache-unified;
+                       qcom,saw = <&saw_l2>;
+               };
+               idle-states {
+                       CPU_SPC: spc {
+                               compatible = "qcom,idle-state-spc",
+                                               "arm,idle-state";
+                               entry-latency-us = <150>;
+                               exit-latency-us = <200>;
+                               min-residency-us = <2000>;
+                       };
+               };
+       };
+       firmware {
+               scm {
+                       compatible = "qcom,scm-msm8974", "qcom,scm";
+                       clocks = <&gcc GCC_CE1_CLK>, <&gcc GCC_CE1_AXI_CLK>, <&gcc GCC_CE1_AHB_CLK>;
+                       clock-names = "core", "bus", "iface";
+               };
+       };
+       memory {
+               device_type = "memory";
+               reg = <0x0 0x0>;
+       };
+       pmu {
+               compatible = "qcom,krait-pmu";
+               interrupts = <GIC_PPI 7 0xf04>;
+       };
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+               mpss_region: mpss@8000000 {
+                       reg = <0x08000000 0x5100000>;
+                       no-map;
+               };
+               mba_region: mba@d100000 {
+                       reg = <0x0d100000 0x100000>;
+                       no-map;
+               };
+               wcnss_region: wcnss@d200000 {
+                       reg = <0x0d200000 0xa00000>;
+                       no-map;
+               };
+               adsp_region: adsp@dc00000 {
+                       reg = <0x0dc00000 0x1900000>;
+                       no-map;
+               };
+               venus_region: memory@f500000 {
+                       reg = <0x0f500000 0x500000>;
+                       no-map;
+               };
+               smem_region: smem@fa00000 {
+                       reg = <0xfa00000 0x200000>;
+                       no-map;
+               };
+               tz_region: memory@fc00000 {
+                       reg = <0x0fc00000 0x160000>;
+                       no-map;
+               };
+               rfsa_mem: memory@fd60000 {
+                       reg = <0x0fd60000 0x20000>;
+                       no-map;
+               };
+               rmtfs@fd80000 {
+                       compatible = "qcom,rmtfs-mem";
+                       reg = <0x0fd80000 0x180000>;
+                       no-map;
+                       qcom,client-id = <1>;
+               };
+       };
+       smem {
+               compatible = "qcom,smem";
+               memory-region = <&smem_region>;
+               qcom,rpm-msg-ram = <&rpm_msg_ram>;
+               hwlocks = <&tcsr_mutex 3>;
+       };
+       smp2p-adsp {
+               compatible = "qcom,smp2p";
+               qcom,smem = <443>, <429>;
+               interrupt-parent = <&intc>;
+               interrupts = <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
+               qcom,ipc = <&apcs 8 10>;
+               qcom,local-pid = <0>;
+               qcom,remote-pid = <2>;
+               adsp_smp2p_out: master-kernel {
+                       qcom,entry-name = "master-kernel";
+                       #qcom,smem-state-cells = <1>;
+               };
+               adsp_smp2p_in: slave-kernel {
+                       qcom,entry-name = "slave-kernel";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+       smp2p-modem {
+               compatible = "qcom,smp2p";
+               qcom,smem = <435>, <428>;
+               interrupt-parent = <&intc>;
+               interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
+               qcom,ipc = <&apcs 8 14>;
+               qcom,local-pid = <0>;
+               qcom,remote-pid = <1>;
+               modem_smp2p_out: master-kernel {
+                       qcom,entry-name = "master-kernel";
+                       #qcom,smem-state-cells = <1>;
+               };
+               modem_smp2p_in: slave-kernel {
+                       qcom,entry-name = "slave-kernel";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+       smp2p-wcnss {
+               compatible = "qcom,smp2p";
+               qcom,smem = <451>, <431>;
+               interrupt-parent = <&intc>;
+               interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;
+               qcom,ipc = <&apcs 8 18>;
+               qcom,local-pid = <0>;
+               qcom,remote-pid = <4>;
+               wcnss_smp2p_out: master-kernel {
+                       qcom,entry-name = "master-kernel";
+                       #qcom,smem-state-cells = <1>;
+               };
+               wcnss_smp2p_in: slave-kernel {
+                       qcom,entry-name = "slave-kernel";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+       smsm {
+               compatible = "qcom,smsm";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               qcom,ipc-1 = <&apcs 8 13>;
+               qcom,ipc-2 = <&apcs 8 9>;
+               qcom,ipc-3 = <&apcs 8 19>;
+               apps_smsm: apps@0 {
+                       reg = <0>;
+                       #qcom,smem-state-cells = <1>;
+               };
+               modem_smsm: modem@1 {
+                       reg = <1>;
+                       interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+               adsp_smsm: adsp@2 {
+                       reg = <2>;
+                       interrupts = <GIC_SPI 157 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+               wcnss_smsm: wcnss@7 {
+                       reg = <7>;
+                       interrupts = <GIC_SPI 144 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+       smd {
+               compatible = "qcom,smd";
+               rpm {
+                       interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
+                       qcom,ipc = <&apcs 8 0>;
+                       qcom,smd-edge = <15>;
+                       rpm_requests: rpm-requests {
+                               compatible = "qcom,rpm-msm8974";
+                               qcom,smd-channels = "rpm_requests";
+                               rpmcc: clock-controller {
+                                       compatible = "qcom,rpmcc-msm8974", "qcom,rpmcc";
+                                       #clock-cells = <1>;
+                                       clocks = <&xo_board>;
+                                       clock-names = "xo";
+                               };
+                       };
+               };
+       };
+       soc: soc {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+               compatible = "simple-bus";
+               intc: interrupt-controller@f9000000 {
+                       compatible = "qcom,msm-qgic2";
+                       interrupt-controller;
+                       #interrupt-cells = <3>;
+                       reg = <0xf9000000 0x1000>,
+                             <0xf9002000 0x1000>;
+               };
+               apcs: syscon@f9011000 {
+                       compatible = "syscon";
+                       reg = <0xf9011000 0x1000>;
+               };
+               timer@f9020000 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       compatible = "arm,armv7-timer-mem";
+                       reg = <0xf9020000 0x1000>;
+                       clock-frequency = <19200000>;
+                       frame@f9021000 {
+                               frame-number = <0>;
+                               interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0xf9021000 0x1000>,
+                                     <0xf9022000 0x1000>;
+                       };
+                       frame@f9023000 {
+                               frame-number = <1>;
+                               interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0xf9023000 0x1000>;
+                               status = "disabled";
+                       };
+                       frame@f9024000 {
+                               frame-number = <2>;
+                               interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0xf9024000 0x1000>;
+                               status = "disabled";
+                       };
+                       frame@f9025000 {
+                               frame-number = <3>;
+                               interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0xf9025000 0x1000>;
+                               status = "disabled";
+                       };
+                       frame@f9026000 {
+                               frame-number = <4>;
+                               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0xf9026000 0x1000>;
+                               status = "disabled";
+                       };
+                       frame@f9027000 {
+                               frame-number = <5>;
+                               interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0xf9027000 0x1000>;
+                               status = "disabled";
+                       };
+                       frame@f9028000 {
+                               frame-number = <6>;
+                               interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0xf9028000 0x1000>;
+                               status = "disabled";
+                       };
+               };
+               saw0: power-controller@f9089000 {
+                       compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
+                       reg = <0xf9089000 0x1000>, <0xf9009000 0x1000>;
+               };
+               saw1: power-controller@f9099000 {
+                       compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
+                       reg = <0xf9099000 0x1000>, <0xf9009000 0x1000>;
+               };
+               saw2: power-controller@f90a9000 {
+                       compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
+                       reg = <0xf90a9000 0x1000>, <0xf9009000 0x1000>;
+               };
+               saw3: power-controller@f90b9000 {
+                       compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
+                       reg = <0xf90b9000 0x1000>, <0xf9009000 0x1000>;
+               };
+               saw_l2: power-controller@f9012000 {
+                       compatible = "qcom,saw2";
+                       reg = <0xf9012000 0x1000>;
+                       regulator;
+               };
+               acc0: power-manager@f9088000 {
+                       compatible = "qcom,kpss-acc-v2";
+                       reg = <0xf9088000 0x1000>, <0xf9008000 0x1000>;
+               };
+               acc1: power-manager@f9098000 {
+                       compatible = "qcom,kpss-acc-v2";
+                       reg = <0xf9098000 0x1000>, <0xf9008000 0x1000>;
+               };
+               acc2: power-manager@f90a8000 {
+                       compatible = "qcom,kpss-acc-v2";
+                       reg = <0xf90a8000 0x1000>, <0xf9008000 0x1000>;
+               };
+               acc3: power-manager@f90b8000 {
+                       compatible = "qcom,kpss-acc-v2";
+                       reg = <0xf90b8000 0x1000>, <0xf9008000 0x1000>;
+               };
+               sdhc_1: mmc@f9824900 {
+                       compatible = "qcom,msm8974-sdhci", "qcom,sdhci-msm-v4";
+                       reg = <0xf9824900 0x11c>, <0xf9824000 0x800>;
+                       reg-names = "hc", "core";
+                       interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hc_irq", "pwr_irq";
+                       clocks = <&gcc GCC_SDCC1_AHB_CLK>,
+                                <&gcc GCC_SDCC1_APPS_CLK>,
+                                <&xo_board>;
+                       clock-names = "iface", "core", "xo";
+                       bus-width = <8>;
+                       non-removable;
+                       status = "disabled";
+               };
+               sdhc_3: mmc@f9864900 {
+                       compatible = "qcom,msm8974-sdhci", "qcom,sdhci-msm-v4";
+                       reg = <0xf9864900 0x11c>, <0xf9864000 0x800>;
+                       reg-names = "hc", "core";
+                       interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hc_irq", "pwr_irq";
+                       clocks = <&gcc GCC_SDCC3_AHB_CLK>,
+                                <&gcc GCC_SDCC3_APPS_CLK>,
+                                <&xo_board>;
+                       clock-names = "iface", "core", "xo";
+                       bus-width = <4>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+               sdhc_2: mmc@f98a4900 {
+                       compatible = "qcom,msm8974-sdhci", "qcom,sdhci-msm-v4";
+                       reg = <0xf98a4900 0x11c>, <0xf98a4000 0x800>;
+                       reg-names = "hc", "core";
+                       interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hc_irq", "pwr_irq";
+                       clocks = <&gcc GCC_SDCC2_AHB_CLK>,
+                                <&gcc GCC_SDCC2_APPS_CLK>,
+                                <&xo_board>;
+                       clock-names = "iface", "core", "xo";
+                       bus-width = <4>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+               blsp1_uart1: serial@f991d000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0xf991d000 0x1000>;
+                       interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       status = "disabled";
+               };
+               blsp1_uart2: serial@f991e000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0xf991e000 0x1000>;
+                       interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&blsp1_uart2_default>;
+                       status = "disabled";
+               };
+               blsp1_i2c1: i2c@f9923000 {
+                       status = "disabled";
+                       compatible = "qcom,i2c-qup-v2.1.1";
+                       reg = <0xf9923000 0x1000>;
+                       interrupts = <0 95 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&blsp1_i2c1_default>;
+                       pinctrl-1 = <&blsp1_i2c1_sleep>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               blsp1_i2c2: i2c@f9924000 {
+                       status = "disabled";
+                       compatible = "qcom,i2c-qup-v2.1.1";
+                       reg = <0xf9924000 0x1000>;
+                       interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&blsp1_i2c2_default>;
+                       pinctrl-1 = <&blsp1_i2c2_sleep>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               blsp1_i2c3: i2c@f9925000 {
+                       status = "disabled";
+                       compatible = "qcom,i2c-qup-v2.1.1";
+                       reg = <0xf9925000 0x1000>;
+                       interrupts = <0 97 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&blsp1_i2c3_default>;
+                       pinctrl-1 = <&blsp1_i2c3_sleep>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               blsp1_i2c6: i2c@f9928000 {
+                       status = "disabled";
+                       compatible = "qcom,i2c-qup-v2.1.1";
+                       reg = <0xf9928000 0x1000>;
+                       interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&blsp1_i2c6_default>;
+                       pinctrl-1 = <&blsp1_i2c6_sleep>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               blsp2_dma: dma-controller@f9944000 {
+                       compatible = "qcom,bam-v1.4.0";
+                       reg = <0xf9944000 0x19000>;
+                       interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "bam_clk";
+                       #dma-cells = <1>;
+                       qcom,ee = <0>;
+               };
+               blsp2_uart1: serial@f995d000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0xf995d000 0x1000>;
+                       interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP2_UART1_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&blsp2_uart1_default>;
+                       pinctrl-1 = <&blsp2_uart1_sleep>;
+                       status = "disabled";
+               };
+               blsp2_uart2: serial@f995e000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0xf995e000 0x1000>;
+                       interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP2_UART2_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       status = "disabled";
+               };
+               blsp2_uart4: serial@f9960000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0xf9960000 0x1000>;
+                       interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP2_UART4_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&blsp2_uart4_default>;
+                       status = "disabled";
+               };
+               blsp2_i2c2: i2c@f9964000 {
+                       status = "disabled";
+                       compatible = "qcom,i2c-qup-v2.1.1";
+                       reg = <0xf9964000 0x1000>;
+                       interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&blsp2_i2c2_default>;
+                       pinctrl-1 = <&blsp2_i2c2_sleep>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               blsp2_i2c5: i2c@f9967000 {
+                       status = "disabled";
+                       compatible = "qcom,i2c-qup-v2.1.1";
+                       reg = <0xf9967000 0x1000>;
+                       interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP2_QUP5_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp2_dma 20>, <&blsp2_dma 21>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&blsp2_i2c5_default>;
+                       pinctrl-1 = <&blsp2_i2c5_sleep>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               blsp2_i2c6: i2c@f9968000 {
+                       status = "disabled";
+                       compatible = "qcom,i2c-qup-v2.1.1";
+                       reg = <0xf9968000 0x1000>;
+                       interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP2_QUP6_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&blsp2_i2c6_default>;
+                       pinctrl-1 = <&blsp2_i2c6_sleep>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               usb: usb@f9a55000 {
+                       compatible = "qcom,ci-hdrc";
+                       reg = <0xf9a55000 0x200>,
+                             <0xf9a55200 0x200>;
+                       interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_USB_HS_AHB_CLK>,
+                                <&gcc GCC_USB_HS_SYSTEM_CLK>;
+                       clock-names = "iface", "core";
+                       assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>;
+                       assigned-clock-rates = <75000000>;
+                       resets = <&gcc GCC_USB_HS_BCR>;
+                       reset-names = "core";
+                       phy_type = "ulpi";
+                       dr_mode = "otg";
+                       ahb-burst-config = <0>;
+                       phy-names = "usb-phy";
+                       status = "disabled";
+                       #reset-cells = <1>;
+                       ulpi {
+                               usb_hs1_phy: phy-0 {
+                                       compatible = "qcom,usb-hs-phy-msm8974",
+                                                    "qcom,usb-hs-phy";
+                                       #phy-cells = <0>;
+                                       clocks = <&xo_board>, <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
+                                       clock-names = "ref", "sleep";
+                                       resets = <&gcc GCC_USB2A_PHY_BCR>, <&usb 0>;
+                                       reset-names = "phy", "por";
+                                       status = "disabled";
+                               };
+                               usb_hs2_phy: phy-1 {
+                                       compatible = "qcom,usb-hs-phy-msm8974",
+                                                    "qcom,usb-hs-phy";
+                                       #phy-cells = <0>;
+                                       clocks = <&xo_board>, <&gcc GCC_USB2B_PHY_SLEEP_CLK>;
+                                       clock-names = "ref", "sleep";
+                                       resets = <&gcc GCC_USB2B_PHY_BCR>, <&usb 1>;
+                                       reset-names = "phy", "por";
+                                       status = "disabled";
+                               };
+                       };
+               };
+               rng@f9bff000 {
+                       compatible = "qcom,prng";
+                       reg = <0xf9bff000 0x200>;
+                       clocks = <&gcc GCC_PRNG_AHB_CLK>;
+                       clock-names = "core";
+               };
+               pronto: remoteproc@fb204000 {
+                       compatible = "qcom,pronto-v2-pil", "qcom,pronto";
+                       reg = <0xfb204000 0x2000>, <0xfb202000 0x1000>, <0xfb21b000 0x3000>;
+                       reg-names = "ccu", "dxe", "pmu";
+                       memory-region = <&wcnss_region>;
+                       interrupts-extended = <&intc GIC_SPI 149 IRQ_TYPE_EDGE_RISING>,
+                                             <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
+                       qcom,smem-states = <&wcnss_smp2p_out 0>;
+                       qcom,smem-state-names = "stop";
+                       status = "disabled";
+                       iris {
+                               compatible = "qcom,wcn3680";
+                               clocks = <&rpmcc RPM_SMD_CXO_A2>;
+                               clock-names = "xo";
+                       };
+                       smd-edge {
+                               interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
+                               qcom,ipc = <&apcs 8 17>;
+                               qcom,smd-edge = <6>;
+                               wcnss {
+                                       compatible = "qcom,wcnss";
+                                       qcom,smd-channels = "WCNSS_CTRL";
+                                       status = "disabled";
+                                       qcom,mmio = <&pronto>;
+                                       bluetooth {
+                                               compatible = "qcom,wcnss-bt";
+                                       };
+                                       wifi {
+                                               compatible = "qcom,wcnss-wlan";
+                                               interrupts = <GIC_SPI 145 IRQ_TYPE_EDGE_RISING>,
+                                                            <GIC_SPI 146 IRQ_TYPE_EDGE_RISING>;
+                                               interrupt-names = "tx", "rx";
+                                               qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
+                                               qcom,smem-state-names = "tx-enable",
+                                                                       "tx-rings-empty";
+                                       };
+                               };
+                       };
+               };
+               sram@fc190000 {
+                       compatible = "qcom,msm8974-rpm-stats";
+                       reg = <0xfc190000 0x10000>;
+               };
+               etf@fc307000 {
+                       compatible = "arm,coresight-tmc", "arm,primecell";
+                       reg = <0xfc307000 0x1000>;
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+                       out-ports {
+                               port {
+                                       etf_out: endpoint {
+                                               remote-endpoint = <&replicator_in>;
+                                       };
+                               };
+                       };
+                       in-ports {
+                               port {
+                                       etf_in: endpoint {
+                                               remote-endpoint = <&merger_out>;
+                                       };
+                               };
+                       };
+               };
+               tpiu@fc318000 {
+                       compatible = "arm,coresight-tpiu", "arm,primecell";
+                       reg = <0xfc318000 0x1000>;
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+                       in-ports {
+                               port {
+                                       tpiu_in: endpoint {
+                                               remote-endpoint = <&replicator_out1>;
+                                       };
+                                };
+                       };
+               };
+               funnel@fc31a000 {
+                       compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
+                       reg = <0xfc31a000 0x1000>;
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               /*
+                                * Not described input ports:
+                                * 0 - not-connected
+                                * 1 - connected trought funnel to Multimedia CPU
+                                * 2 - connected to Wireless CPU
+                                * 3 - not-connected
+                                * 4 - not-connected
+                                * 6 - not-connected
+                                * 7 - connected to STM
+                                */
+                               port@5 {
+                                       reg = <5>;
+                                       funnel1_in5: endpoint {
+                                               remote-endpoint = <&kpss_out>;
+                                       };
+                               };
+                       };
+                       out-ports {
+                               port {
+                                       funnel1_out: endpoint {
+                                               remote-endpoint = <&merger_in1>;
+                                       };
+                               };
+                       };
+               };
+               funnel@fc31b000 {
+                       compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
+                       reg = <0xfc31b000 0x1000>;
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               /*
+                                * Not described input ports:
+                                * 0 - connected trought funnel to Audio, Modem and
+                                *     Resource and Power Manager CPU's
+                                * 2...7 - not-connected
+                                */
+                               port@1 {
+                                       reg = <1>;
+                                       merger_in1: endpoint {
+                                               remote-endpoint = <&funnel1_out>;
+                                       };
+                               };
+                       };
+                       out-ports {
+                               port {
+                                       merger_out: endpoint {
+                                               remote-endpoint = <&etf_in>;
+                                       };
+                               };
+                       };
+               };
+               replicator@fc31c000 {
+                       compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
+                       reg = <0xfc31c000 0x1000>;
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+                       out-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       replicator_out0: endpoint {
+                                               remote-endpoint = <&etr_in>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       replicator_out1: endpoint {
+                                               remote-endpoint = <&tpiu_in>;
+                                       };
+                               };
+                       };
+                       in-ports {
+                               port {
+                                       replicator_in: endpoint {
+                                               remote-endpoint = <&etf_out>;
+                                       };
+                               };
+                       };
+               };
+               etr@fc322000 {
+                       compatible = "arm,coresight-tmc", "arm,primecell";
+                       reg = <0xfc322000 0x1000>;
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+                       in-ports {
+                               port {
+                                       etr_in: endpoint {
+                                               remote-endpoint = <&replicator_out0>;
+                                       };
+                               };
+                       };
+               };
+               etm@fc33c000 {
+                       compatible = "arm,coresight-etm4x", "arm,primecell";
+                       reg = <0xfc33c000 0x1000>;
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+                       cpu = <&CPU0>;
+                       out-ports {
+                               port {
+                                       etm0_out: endpoint {
+                                               remote-endpoint = <&kpss_in0>;
+                                       };
+                               };
+                       };
+               };
+               etm@fc33d000 {
+                       compatible = "arm,coresight-etm4x", "arm,primecell";
+                       reg = <0xfc33d000 0x1000>;
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+                       cpu = <&CPU1>;
+                       out-ports {
+                               port {
+                                       etm1_out: endpoint {
+                                               remote-endpoint = <&kpss_in1>;
+                                       };
+                               };
+                       };
+               };
+               etm@fc33e000 {
+                       compatible = "arm,coresight-etm4x", "arm,primecell";
+                       reg = <0xfc33e000 0x1000>;
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+                       cpu = <&CPU2>;
+                       out-ports {
+                               port {
+                                       etm2_out: endpoint {
+                                               remote-endpoint = <&kpss_in2>;
+                                       };
+                               };
+                       };
+               };
+               etm@fc33f000 {
+                       compatible = "arm,coresight-etm4x", "arm,primecell";
+                       reg = <0xfc33f000 0x1000>;
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+                       cpu = <&CPU3>;
+                       out-ports {
+                               port {
+                                       etm3_out: endpoint {
+                                               remote-endpoint = <&kpss_in3>;
+                                       };
+                               };
+                       };
+               };
+               /* KPSS funnel, only 4 inputs are used */
+               funnel@fc345000 {
+                       compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
+                       reg = <0xfc345000 0x1000>;
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       kpss_in0: endpoint {
+                                               remote-endpoint = <&etm0_out>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       kpss_in1: endpoint {
+                                               remote-endpoint = <&etm1_out>;
+                                       };
+                               };
+                               port@2 {
+                                       reg = <2>;
+                                       kpss_in2: endpoint {
+                                               remote-endpoint = <&etm2_out>;
+                                       };
+                               };
+                               port@3 {
+                                       reg = <3>;
+                                       kpss_in3: endpoint {
+                                               remote-endpoint = <&etm3_out>;
+                                       };
+                               };
+                       };
+                       out-ports {
+                               port {
+                                       kpss_out: endpoint {
+                                               remote-endpoint = <&funnel1_in5>;
+                                       };
+                               };
+                       };
+               };
+               gcc: clock-controller@fc400000 {
+                       compatible = "qcom,gcc-msm8974";
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+                       reg = <0xfc400000 0x4000>;
+                       clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
+                                <&sleep_clk>;
+                       clock-names = "xo",
+                                     "sleep_clk";
+               };
+               rpm_msg_ram: sram@fc428000 {
+                       compatible = "qcom,rpm-msg-ram";
+                       reg = <0xfc428000 0x4000>;
+               };
+               bimc: interconnect@fc380000 {
+                       reg = <0xfc380000 0x6a000>;
+                       compatible = "qcom,msm8974-bimc";
+                       #interconnect-cells = <1>;
+                       clock-names = "bus", "bus_a";
+                       clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
+                                <&rpmcc RPM_SMD_BIMC_A_CLK>;
+               };
+               snoc: interconnect@fc460000 {
+                       reg = <0xfc460000 0x4000>;
+                       compatible = "qcom,msm8974-snoc";
+                       #interconnect-cells = <1>;
+                       clock-names = "bus", "bus_a";
+                       clocks = <&rpmcc RPM_SMD_SNOC_CLK>,
+                                <&rpmcc RPM_SMD_SNOC_A_CLK>;
+               };
+               pnoc: interconnect@fc468000 {
+                       reg = <0xfc468000 0x4000>;
+                       compatible = "qcom,msm8974-pnoc";
+                       #interconnect-cells = <1>;
+                       clock-names = "bus", "bus_a";
+                       clocks = <&rpmcc RPM_SMD_PNOC_CLK>,
+                                <&rpmcc RPM_SMD_PNOC_A_CLK>;
+               };
+               ocmemnoc: interconnect@fc470000 {
+                       reg = <0xfc470000 0x4000>;
+                       compatible = "qcom,msm8974-ocmemnoc";
+                       #interconnect-cells = <1>;
+                       clock-names = "bus", "bus_a";
+                       clocks = <&rpmcc RPM_SMD_OCMEMGX_CLK>,
+                                <&rpmcc RPM_SMD_OCMEMGX_A_CLK>;
+               };
+               mmssnoc: interconnect@fc478000 {
+                       reg = <0xfc478000 0x4000>;
+                       compatible = "qcom,msm8974-mmssnoc";
+                       #interconnect-cells = <1>;
+                       clock-names = "bus", "bus_a";
+                       clocks = <&mmcc MMSS_S0_AXI_CLK>,
+                                <&mmcc MMSS_S0_AXI_CLK>;
+               };
+               cnoc: interconnect@fc480000 {
+                       reg = <0xfc480000 0x4000>;
+                       compatible = "qcom,msm8974-cnoc";
+                       #interconnect-cells = <1>;
+                       clock-names = "bus", "bus_a";
+                       clocks = <&rpmcc RPM_SMD_CNOC_CLK>,
+                                <&rpmcc RPM_SMD_CNOC_A_CLK>;
+               };
+               tsens: thermal-sensor@fc4a9000 {
+                       compatible = "qcom,msm8974-tsens", "qcom,tsens-v0_1";
+                       reg = <0xfc4a9000 0x1000>, /* TM */
+                             <0xfc4a8000 0x1000>; /* SROT */
+                       nvmem-cells = <&tsens_mode>,
+                                     <&tsens_base1>, <&tsens_base2>,
+                                     <&tsens_use_backup>,
+                                     <&tsens_mode_backup>,
+                                     <&tsens_base1_backup>, <&tsens_base2_backup>,
+                                     <&tsens_s0_p1>, <&tsens_s0_p2>,
+                                     <&tsens_s1_p1>, <&tsens_s1_p2>,
+                                     <&tsens_s2_p1>, <&tsens_s2_p2>,
+                                     <&tsens_s3_p1>, <&tsens_s3_p2>,
+                                     <&tsens_s4_p1>, <&tsens_s4_p2>,
+                                     <&tsens_s5_p1>, <&tsens_s5_p2>,
+                                     <&tsens_s6_p1>, <&tsens_s6_p2>,
+                                     <&tsens_s7_p1>, <&tsens_s7_p2>,
+                                     <&tsens_s8_p1>, <&tsens_s8_p2>,
+                                     <&tsens_s9_p1>, <&tsens_s9_p2>,
+                                     <&tsens_s10_p1>, <&tsens_s10_p2>,
+                                     <&tsens_s0_p1_backup>, <&tsens_s0_p2_backup>,
+                                     <&tsens_s1_p1_backup>, <&tsens_s1_p2_backup>,
+                                     <&tsens_s2_p1_backup>, <&tsens_s2_p2_backup>,
+                                     <&tsens_s3_p1_backup>, <&tsens_s3_p2_backup>,
+                                     <&tsens_s4_p1_backup>, <&tsens_s4_p2_backup>,
+                                     <&tsens_s5_p1_backup>, <&tsens_s5_p2_backup>,
+                                     <&tsens_s6_p1_backup>, <&tsens_s6_p2_backup>,
+                                     <&tsens_s7_p1_backup>, <&tsens_s7_p2_backup>,
+                                     <&tsens_s8_p1_backup>, <&tsens_s8_p2_backup>,
+                                     <&tsens_s9_p1_backup>, <&tsens_s9_p2_backup>,
+                                     <&tsens_s10_p1_backup>, <&tsens_s10_p2_backup>;
+                       nvmem-cell-names = "mode",
+                                          "base1", "base2",
+                                          "use_backup",
+                                          "mode_backup",
+                                          "base1_backup", "base2_backup",
+                                          "s0_p1", "s0_p2",
+                                          "s1_p1", "s1_p2",
+                                          "s2_p1", "s2_p2",
+                                          "s3_p1", "s3_p2",
+                                          "s4_p1", "s4_p2",
+                                          "s5_p1", "s5_p2",
+                                          "s6_p1", "s6_p2",
+                                          "s7_p1", "s7_p2",
+                                          "s8_p1", "s8_p2",
+                                          "s9_p1", "s9_p2",
+                                          "s10_p1", "s10_p2",
+                                          "s0_p1_backup", "s0_p2_backup",
+                                          "s1_p1_backup", "s1_p2_backup",
+                                          "s2_p1_backup", "s2_p2_backup",
+                                          "s3_p1_backup", "s3_p2_backup",
+                                          "s4_p1_backup", "s4_p2_backup",
+                                          "s5_p1_backup", "s5_p2_backup",
+                                          "s6_p1_backup", "s6_p2_backup",
+                                          "s7_p1_backup", "s7_p2_backup",
+                                          "s8_p1_backup", "s8_p2_backup",
+                                          "s9_p1_backup", "s9_p2_backup",
+                                          "s10_p1_backup", "s10_p2_backup";
+                       #qcom,sensors = <11>;
+                       interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "uplow";
+                       #thermal-sensor-cells = <1>;
+               };
+               restart@fc4ab000 {
+                       compatible = "qcom,pshold";
+                       reg = <0xfc4ab000 0x4>;
+               };
+               qfprom: qfprom@fc4bc000 {
+                       compatible = "qcom,msm8974-qfprom", "qcom,qfprom";
+                       reg = <0xfc4bc000 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       tsens_base1: base1@d0 {
+                               reg = <0xd0 0x1>;
+                               bits = <0 8>;
+                       };
+                       tsens_s0_p1: s0-p1@d1 {
+                               reg = <0xd1 0x1>;
+                               bits = <0 6>;
+                       };
+                       tsens_s1_p1: s1-p1@d2 {
+                               reg = <0xd1 0x2>;
+                               bits = <6 6>;
+                       };
+                       tsens_s2_p1: s2-p1@d2 {
+                               reg = <0xd2 0x2>;
+                               bits = <4 6>;
+                       };
+                       tsens_s3_p1: s3-p1@d3 {
+                               reg = <0xd3 0x1>;
+                               bits = <2 6>;
+                       };
+                       tsens_s4_p1: s4-p1@d4 {
+                               reg = <0xd4 0x1>;
+                               bits = <0 6>;
+                       };
+                       tsens_s5_p1: s5-p1@d4 {
+                               reg = <0xd4 0x2>;
+                               bits = <6 6>;
+                       };
+                       tsens_s6_p1: s6-p1@d5 {
+                               reg = <0xd5 0x2>;
+                               bits = <4 6>;
+                       };
+                       tsens_s7_p1: s7-p1@d6 {
+                               reg = <0xd6 0x1>;
+                               bits = <2 6>;
+                       };
+                       tsens_s8_p1: s8-p1@d7 {
+                               reg = <0xd7 0x1>;
+                               bits = <0 6>;
+                       };
+                       tsens_mode: mode@d7 {
+                               reg = <0xd7 0x1>;
+                               bits = <6 2>;
+                       };
+                       tsens_s9_p1: s9-p1@d8 {
+                               reg = <0xd8 0x1>;
+                               bits = <0 6>;
+                       };
+                       tsens_s10_p1: s10_p1@d8 {
+                               reg = <0xd8 0x2>;
+                               bits = <6 6>;
+                       };
+                       tsens_base2: base2@d9 {
+                               reg = <0xd9 0x2>;
+                               bits = <4 8>;
+                       };
+                       tsens_s0_p2: s0-p2@da {
+                               reg = <0xda 0x2>;
+                               bits = <4 6>;
+                       };
+                       tsens_s1_p2: s1-p2@db {
+                               reg = <0xdb 0x1>;
+                               bits = <2 6>;
+                       };
+                       tsens_s2_p2: s2-p2@dc {
+                               reg = <0xdc 0x1>;
+                               bits = <0 6>;
+                       };
+                       tsens_s3_p2: s3-p2@dc {
+                               reg = <0xdc 0x2>;
+                               bits = <6 6>;
+                       };
+                       tsens_s4_p2: s4-p2@dd {
+                               reg = <0xdd 0x2>;
+                               bits = <4 6>;
+                       };
+                       tsens_s5_p2: s5-p2@de {
+                               reg = <0xde 0x2>;
+                               bits = <2 6>;
+                       };
+                       tsens_s6_p2: s6-p2@df {
+                               reg = <0xdf 0x1>;
+                               bits = <0 6>;
+                       };
+                       tsens_s7_p2: s7-p2@e0 {
+                               reg = <0xe0 0x1>;
+                               bits = <0 6>;
+                       };
+                       tsens_s8_p2: s8-p2@e0 {
+                               reg = <0xe0 0x2>;
+                               bits = <6 6>;
+                       };
+                       tsens_s9_p2: s9-p2@e1 {
+                               reg = <0xe1 0x2>;
+                               bits = <4 6>;
+                       };
+                       tsens_s10_p2: s10_p2@e2 {
+                               reg = <0xe2 0x2>;
+                               bits = <2 6>;
+                       };
+                       tsens_s5_p2_backup: s5-p2_backup@e3 {
+                               reg = <0xe3 0x2>;
+                               bits = <0 6>;
+                       };
+                       tsens_mode_backup: mode_backup@e3 {
+                               reg = <0xe3 0x1>;
+                               bits = <6 2>;
+                       };
+                       tsens_s6_p2_backup: s6-p2_backup@e4 {
+                               reg = <0xe4 0x1>;
+                               bits = <0 6>;
+                       };
+                       tsens_s7_p2_backup: s7-p2_backup@e4 {
+                               reg = <0xe4 0x2>;
+                               bits = <6 6>;
+                       };
+                       tsens_s8_p2_backup: s8-p2_backup@e5 {
+                               reg = <0xe5 0x2>;
+                               bits = <4 6>;
+                       };
+                       tsens_s9_p2_backup: s9-p2_backup@e6 {
+                               reg = <0xe6 0x2>;
+                               bits = <2 6>;
+                       };
+                       tsens_s10_p2_backup: s10_p2_backup@e7 {
+                               reg = <0xe7 0x1>;
+                               bits = <0 6>;
+                       };
+                       tsens_base1_backup: base1_backup@440 {
+                               reg = <0x440 0x1>;
+                               bits = <0 8>;
+                       };
+                       tsens_s0_p1_backup: s0-p1_backup@441 {
+                               reg = <0x441 0x1>;
+                               bits = <0 6>;
+                       };
+                       tsens_s1_p1_backup: s1-p1_backup@442 {
+                               reg = <0x441 0x2>;
+                               bits = <6 6>;
+                       };
+                       tsens_s2_p1_backup: s2-p1_backup@442 {
+                               reg = <0x442 0x2>;
+                               bits = <4 6>;
+                       };
+                       tsens_s3_p1_backup: s3-p1_backup@443 {
+                               reg = <0x443 0x1>;
+                               bits = <2 6>;
+                       };
+                       tsens_s4_p1_backup: s4-p1_backup@444 {
+                               reg = <0x444 0x1>;
+                               bits = <0 6>;
+                       };
+                       tsens_s5_p1_backup: s5-p1_backup@444 {
+                               reg = <0x444 0x2>;
+                               bits = <6 6>;
+                       };
+                       tsens_s6_p1_backup: s6-p1_backup@445 {
+                               reg = <0x445 0x2>;
+                               bits = <4 6>;
+                       };
+                       tsens_s7_p1_backup: s7-p1_backup@446 {
+                               reg = <0x446 0x1>;
+                               bits = <2 6>;
+                       };
+                       tsens_use_backup: use_backup@447 {
+                               reg = <0x447 0x1>;
+                               bits = <5 3>;
+                       };
+                       tsens_s8_p1_backup: s8-p1_backup@448 {
+                               reg = <0x448 0x1>;
+                               bits = <0 6>;
+                       };
+                       tsens_s9_p1_backup: s9-p1_backup@448 {
+                               reg = <0x448 0x2>;
+                               bits = <6 6>;
+                       };
+                       tsens_s10_p1_backup: s10_p1_backup@449 {
+                               reg = <0x449 0x2>;
+                               bits = <4 6>;
+                       };
+                       tsens_base2_backup: base2_backup@44a {
+                               reg = <0x44a 0x2>;
+                               bits = <2 8>;
+                       };
+                       tsens_s0_p2_backup: s0-p2_backup@44b {
+                               reg = <0x44b 0x3>;
+                               bits = <2 6>;
+                       };
+                       tsens_s1_p2_backup: s1-p2_backup@44c {
+                               reg = <0x44c 0x1>;
+                               bits = <0 6>;
+                       };
+                       tsens_s2_p2_backup: s2-p2_backup@44c {
+                               reg = <0x44c 0x2>;
+                               bits = <6 6>;
+                       };
+                       tsens_s3_p2_backup: s3-p2_backup@44d {
+                               reg = <0x44d 0x2>;
+                               bits = <4 6>;
+                       };
+                       tsens_s4_p2_backup: s4-p2_backup@44e {
+                               reg = <0x44e 0x1>;
+                               bits = <2 6>;
+                       };
+               };
+               spmi_bus: spmi@fc4cf000 {
+                       compatible = "qcom,spmi-pmic-arb";
+                       reg-names = "core", "intr", "cnfg";
+                       reg = <0xfc4cf000 0x1000>,
+                             <0xfc4cb000 0x1000>,
+                             <0xfc4ca000 0x1000>;
+                       interrupt-names = "periph_irq";
+                       interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
+                       qcom,ee = <0>;
+                       qcom,channel = <0>;
+                       #address-cells = <2>;
+                       #size-cells = <0>;
+                       interrupt-controller;
+                       #interrupt-cells = <4>;
+               };
+               bam_dmux_dma: dma-controller@fc834000 {
+                       compatible = "qcom,bam-v1.4.0";
+                       reg = <0xfc834000 0x7000>;
+                       interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
+                       #dma-cells = <1>;
+                       qcom,ee = <0>;
+                       num-channels = <6>;
+                       qcom,num-ees = <1>;
+                       qcom,powered-remotely;
+               };
+               remoteproc_mss: remoteproc@fc880000 {
+                       compatible = "qcom,msm8974-mss-pil";
+                       reg = <0xfc880000 0x100>, <0xfc820000 0x020>;
+                       reg-names = "qdsp6", "rmb";
+                       interrupts-extended = <&intc GIC_SPI 24 IRQ_TYPE_EDGE_RISING>,
+                                             <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
+                       clocks = <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
+                                <&gcc GCC_MSS_CFG_AHB_CLK>,
+                                <&gcc GCC_BOOT_ROM_AHB_CLK>,
+                                <&xo_board>;
+                       clock-names = "iface", "bus", "mem", "xo";
+                       resets = <&gcc GCC_MSS_RESTART>;
+                       reset-names = "mss_restart";
+                       qcom,halt-regs = <&tcsr_mutex 0x1180 0x1200 0x1280>;
+                       qcom,smem-states = <&modem_smp2p_out 0>;
+                       qcom,smem-state-names = "stop";
+                       status = "disabled";
+                       mba {
+                               memory-region = <&mba_region>;
+                       };
+                       mpss {
+                               memory-region = <&mpss_region>;
+                       };
+                       bam_dmux: bam-dmux {
+                               compatible = "qcom,bam-dmux";
+                               interrupt-parent = <&modem_smsm>;
+                               interrupts = <1 IRQ_TYPE_EDGE_BOTH>, <11 IRQ_TYPE_EDGE_BOTH>;
+                               interrupt-names = "pc", "pc-ack";
+                               qcom,smem-states = <&apps_smsm 1>, <&apps_smsm 11>;
+                               qcom,smem-state-names = "pc", "pc-ack";
+                               dmas = <&bam_dmux_dma 4>, <&bam_dmux_dma 5>;
+                               dma-names = "tx", "rx";
+                       };
+                       smd-edge {
+                               interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
+                               qcom,ipc = <&apcs 8 12>;
+                               qcom,smd-edge = <0>;
+                               label = "modem";
+                       };
+               };
+               tcsr_mutex: hwlock@fd484000 {
+                       compatible = "qcom,msm8974-tcsr-mutex", "qcom,tcsr-mutex", "syscon";
+                       reg = <0xfd484000 0x2000>;
+                       #hwlock-cells = <1>;
+               };
+               tcsr: syscon@fd4a0000 {
+                       compatible = "qcom,tcsr-msm8974", "syscon";
+                       reg = <0xfd4a0000 0x10000>;
+               };
+               tlmm: pinctrl@fd510000 {
+                       compatible = "qcom,msm8974-pinctrl";
+                       reg = <0xfd510000 0x4000>;
+                       gpio-controller;
+                       gpio-ranges = <&tlmm 0 0 146>;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
+                       sdc1_off: sdc1-off-state {
+                               clk-pins {
+                                       pins = "sdc1_clk";
+                                       bias-disable;
+                                       drive-strength = <2>;
+                               };
+                               cmd-pins {
+                                       pins = "sdc1_cmd";
+                                       bias-pull-up;
+                                       drive-strength = <2>;
+                               };
+                               data-pins {
+                                       pins = "sdc1_data";
+                                       bias-pull-up;
+                                       drive-strength = <2>;
+                               };
+                       };
+                       sdc2_off: sdc2-off-state {
+                               clk-pins {
+                                       pins = "sdc2_clk";
+                                       bias-disable;
+                                       drive-strength = <2>;
+                               };
+                               cmd-pins {
+                                       pins = "sdc2_cmd";
+                                       bias-pull-up;
+                                       drive-strength = <2>;
+                               };
+                               data-pins {
+                                       pins = "sdc2_data";
+                                       bias-pull-up;
+                                       drive-strength = <2>;
+                               };
+                               cd-pins {
+                                       pins = "gpio54";
+                                       function = "gpio";
+                                       bias-disable;
+                                       drive-strength = <2>;
+                               };
+                       };
+                       blsp1_uart2_default: blsp1-uart2-default-state {
+                               rx-pins {
+                                       pins = "gpio5";
+                                       function = "blsp_uart2";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+                               tx-pins {
+                                       pins = "gpio4";
+                                       function = "blsp_uart2";
+                                       drive-strength = <4>;
+                                       bias-disable;
+                               };
+                       };
+                       blsp2_uart1_default: blsp2-uart1-default-state {
+                               tx-rts-pins {
+                                       pins = "gpio41", "gpio44";
+                                       function = "blsp_uart7";
+                                       drive-strength = <2>;
+                                       bias-disable;
+                               };
+                               rx-cts-pins {
+                                       pins = "gpio42", "gpio43";
+                                       function = "blsp_uart7";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+                       };
+                       blsp2_uart1_sleep: blsp2-uart1-sleep-state {
+                               pins = "gpio41", "gpio42", "gpio43", "gpio44";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+                       blsp2_uart4_default: blsp2-uart4-default-state {
+                               tx-rts-pins {
+                                       pins = "gpio53", "gpio56";
+                                       function = "blsp_uart10";
+                                       drive-strength = <2>;
+                                       bias-disable;
+                               };
+                               rx-cts-pins {
+                                       pins = "gpio54", "gpio55";
+                                       function = "blsp_uart10";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+                       };
+                       blsp1_i2c1_default: blsp1-i2c1-default-state {
+                               pins = "gpio2", "gpio3";
+                               function = "blsp_i2c1";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+                       blsp1_i2c1_sleep: blsp1-i2c1-sleep-state {
+                               pins = "gpio2", "gpio3";
+                               function = "blsp_i2c1";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+                       blsp1_i2c2_default: blsp1-i2c2-default-state {
+                               pins = "gpio6", "gpio7";
+                               function = "blsp_i2c2";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+                       blsp1_i2c2_sleep: blsp1-i2c2-sleep-state {
+                               pins = "gpio6", "gpio7";
+                               function = "blsp_i2c2";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+                       blsp1_i2c3_default: blsp1-i2c3-default-state {
+                               pins = "gpio10", "gpio11";
+                               function = "blsp_i2c3";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+                       blsp1_i2c3_sleep: blsp1-i2c3-sleep-state {
+                               pins = "gpio10", "gpio11";
+                               function = "blsp_i2c3";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+                       /* BLSP1_I2C4 info is missing */
+                       /* BLSP1_I2C5 info is missing */
+                       blsp1_i2c6_default: blsp1-i2c6-default-state {
+                               pins = "gpio29", "gpio30";
+                               function = "blsp_i2c6";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+                       blsp1_i2c6_sleep: blsp1-i2c6-sleep-state {
+                               pins = "gpio29", "gpio30";
+                               function = "blsp_i2c6";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+                       /* 6 interfaces per QUP, BLSP2 indexes are numbered (n)+6 */
+                       /* BLSP2_I2C1 info is missing */
+                       blsp2_i2c2_default: blsp2-i2c2-default-state {
+                               pins = "gpio47", "gpio48";
+                               function = "blsp_i2c8";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+                       blsp2_i2c2_sleep: blsp2-i2c2-sleep-state {
+                               pins = "gpio47", "gpio48";
+                               function = "blsp_i2c8";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+                       /* BLSP2_I2C3 info is missing */
+                       /* BLSP2_I2C4 info is missing */
+                       blsp2_i2c5_default: blsp2-i2c5-default-state {
+                               pins = "gpio83", "gpio84";
+                               function = "blsp_i2c11";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+                       blsp2_i2c5_sleep: blsp2-i2c5-sleep-state {
+                               pins = "gpio83", "gpio84";
+                               function = "blsp_i2c11";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+                       blsp2_i2c6_default: blsp2-i2c6-default-state {
+                               pins = "gpio87", "gpio88";
+                               function = "blsp_i2c12";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+                       blsp2_i2c6_sleep: blsp2-i2c6-sleep-state {
+                               pins = "gpio87", "gpio88";
+                               function = "blsp_i2c12";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+                       cci_default: cci-default-state {
+                               cci_i2c0_default: cci-i2c0-default-pins {
+                                       pins = "gpio19", "gpio20";
+                                       function = "cci_i2c0";
+                                       drive-strength = <2>;
+                                       bias-disable;
+                               };
+                               cci_i2c1_default: cci-i2c1-default-pins {
+                                       pins = "gpio21", "gpio22";
+                                       function = "cci_i2c1";
+                                       drive-strength = <2>;
+                                       bias-disable;
+                               };
+                       };
+                       cci_sleep: cci-sleep-state {
+                               cci_i2c0_sleep: cci-i2c0-sleep-pins {
+                                       pins = "gpio19", "gpio20";
+                                       function = "gpio";
+                                       drive-strength = <2>;
+                                       bias-disable;
+                               };
+                               cci_i2c1_sleep: cci-i2c1-sleep-pins {
+                                       pins = "gpio21", "gpio22";
+                                       function = "gpio";
+                                       drive-strength = <2>;
+                                       bias-disable;
+                               };
+                       };
+                       spi8_default: spi8_default-state {
+                               mosi-pins {
+                                       pins = "gpio45";
+                                       function = "blsp_spi8";
+                               };
+                               miso-pins {
+                                       pins = "gpio46";
+                                       function = "blsp_spi8";
+                               };
+                               cs-pins {
+                                       pins = "gpio47";
+                                       function = "blsp_spi8";
+                               };
+                               clk-pins {
+                                       pins = "gpio48";
+                                       function = "blsp_spi8";
+                               };
+                       };
+               };
+               mmcc: clock-controller@fd8c0000 {
+                       compatible = "qcom,mmcc-msm8974";
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+                       reg = <0xfd8c0000 0x6000>;
+                       clocks = <&xo_board>,
+                                <&gcc GCC_MMSS_GPLL0_CLK_SRC>,
+                                <&gcc GPLL0_VOTE>,
+                                <&gcc GPLL1_VOTE>,
+                                <&rpmcc RPM_SMD_GFX3D_CLK_SRC>,
+                                <&mdss_dsi0_phy 1>,
+                                <&mdss_dsi0_phy 0>,
+                                <&mdss_dsi1_phy 1>,
+                                <&mdss_dsi1_phy 0>,
+                                <0>,
+                                <0>,
+                                <0>;
+                       clock-names = "xo",
+                                     "mmss_gpll0_vote",
+                                     "gpll0_vote",
+                                     "gpll1_vote",
+                                     "gfx3d_clk_src",
+                                     "dsi0pll",
+                                     "dsi0pllbyte",
+                                     "dsi1pll",
+                                     "dsi1pllbyte",
+                                     "hdmipll",
+                                     "edp_link_clk",
+                                     "edp_vco_div";
+               };
+               mdss: display-subsystem@fd900000 {
+                       compatible = "qcom,mdss";
+                       reg = <0xfd900000 0x100>, <0xfd924000 0x1000>;
+                       reg-names = "mdss_phys", "vbif_phys";
+                       power-domains = <&mmcc MDSS_GDSC>;
+                       clocks = <&mmcc MDSS_AHB_CLK>,
+                                <&mmcc MDSS_AXI_CLK>,
+                                <&mmcc MDSS_VSYNC_CLK>;
+                       clock-names = "iface", "bus", "vsync";
+                       interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       mdp: display-controller@fd900000 {
+                               compatible = "qcom,msm8974-mdp5", "qcom,mdp5";
+                               reg = <0xfd900100 0x22000>;
+                               reg-names = "mdp_phys";
+                               interrupt-parent = <&mdss>;
+                               interrupts = <0>;
+                               clocks = <&mmcc MDSS_AHB_CLK>,
+                                        <&mmcc MDSS_AXI_CLK>,
+                                        <&mmcc MDSS_MDP_CLK>,
+                                        <&mmcc MDSS_VSYNC_CLK>;
+                               clock-names = "iface", "bus", "core", "vsync";
+                               interconnects = <&mmssnoc MNOC_MAS_MDP_PORT0 &bimc BIMC_SLV_EBI_CH0>;
+                               interconnect-names = "mdp0-mem";
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       port@0 {
+                                               reg = <0>;
+                                               mdp5_intf1_out: endpoint {
+                                                       remote-endpoint = <&mdss_dsi0_in>;
+                                               };
+                                       };
+                                       port@1 {
+                                               reg = <1>;
+                                               mdp5_intf2_out: endpoint {
+                                                       remote-endpoint = <&mdss_dsi1_in>;
+                                               };
+                                       };
+                               };
+                       };
+                       mdss_dsi0: dsi@fd922800 {
+                               compatible = "qcom,msm8974-dsi-ctrl",
+                                            "qcom,mdss-dsi-ctrl";
+                               reg = <0xfd922800 0x1f8>;
+                               reg-names = "dsi_ctrl";
+                               interrupt-parent = <&mdss>;
+                               interrupts = <4>;
+                               assigned-clocks = <&mmcc BYTE0_CLK_SRC>, <&mmcc PCLK0_CLK_SRC>;
+                               assigned-clock-parents = <&mdss_dsi0_phy 0>, <&mdss_dsi0_phy 1>;
+                               clocks = <&mmcc MDSS_MDP_CLK>,
+                                        <&mmcc MDSS_AHB_CLK>,
+                                        <&mmcc MDSS_AXI_CLK>,
+                                        <&mmcc MDSS_BYTE0_CLK>,
+                                        <&mmcc MDSS_PCLK0_CLK>,
+                                        <&mmcc MDSS_ESC0_CLK>,
+                                        <&mmcc MMSS_MISC_AHB_CLK>;
+                               clock-names = "mdp_core",
+                                             "iface",
+                                             "bus",
+                                             "byte",
+                                             "pixel",
+                                             "core",
+                                             "core_mmss";
+                               phys = <&mdss_dsi0_phy>;
+                               status = "disabled";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       port@0 {
+                                               reg = <0>;
+                                               mdss_dsi0_in: endpoint {
+                                                       remote-endpoint = <&mdp5_intf1_out>;
+                                               };
+                                       };
+                                       port@1 {
+                                               reg = <1>;
+                                               mdss_dsi0_out: endpoint {
+                                               };
+                                       };
+                               };
+                       };
+                       mdss_dsi0_phy: phy@fd922a00 {
+                               compatible = "qcom,dsi-phy-28nm-hpm";
+                               reg = <0xfd922a00 0xd4>,
+                                     <0xfd922b00 0x280>,
+                                     <0xfd922d80 0x30>;
+                               reg-names = "dsi_pll",
+                                           "dsi_phy",
+                                           "dsi_phy_regulator";
+                               #clock-cells = <1>;
+                               #phy-cells = <0>;
+                               clocks = <&mmcc MDSS_AHB_CLK>, <&xo_board>;
+                               clock-names = "iface", "ref";
+                               status = "disabled";
+                       };
+                       mdss_dsi1: dsi@fd922e00 {
+                               compatible = "qcom,msm8974-dsi-ctrl",
+                                            "qcom,mdss-dsi-ctrl";
+                               reg = <0xfd922e00 0x1f8>;
+                               reg-names = "dsi_ctrl";
+                               interrupt-parent = <&mdss>;
+                               interrupts = <4>;
+                               assigned-clocks = <&mmcc BYTE1_CLK_SRC>, <&mmcc PCLK1_CLK_SRC>;
+                               assigned-clock-parents = <&mdss_dsi1_phy 0>, <&mdss_dsi1_phy 1>;
+                               clocks = <&mmcc MDSS_MDP_CLK>,
+                                        <&mmcc MDSS_AHB_CLK>,
+                                        <&mmcc MDSS_AXI_CLK>,
+                                        <&mmcc MDSS_BYTE1_CLK>,
+                                        <&mmcc MDSS_PCLK1_CLK>,
+                                        <&mmcc MDSS_ESC1_CLK>,
+                                        <&mmcc MMSS_MISC_AHB_CLK>;
+                               clock-names = "mdp_core",
+                                             "iface",
+                                             "bus",
+                                             "byte",
+                                             "pixel",
+                                             "core",
+                                             "core_mmss";
+                               phys = <&mdss_dsi1_phy>;
+                               status = "disabled";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       port@0 {
+                                               reg = <0>;
+                                               mdss_dsi1_in: endpoint {
+                                                       remote-endpoint = <&mdp5_intf2_out>;
+                                               };
+                                       };
+                                       port@1 {
+                                               reg = <1>;
+                                               mdss_dsi1_out: endpoint {
+                                               };
+                                       };
+                               };
+                       };
+                       mdss_dsi1_phy: phy@fd923000 {
+                               compatible = "qcom,dsi-phy-28nm-hpm";
+                               reg = <0xfd923000 0xd4>,
+                                     <0xfd923100 0x280>,
+                                     <0xfd923380 0x30>;
+                               reg-names = "dsi_pll",
+                                           "dsi_phy",
+                                           "dsi_phy_regulator";
+                               #clock-cells = <1>;
+                               #phy-cells = <0>;
+                               clocks = <&mmcc MDSS_AHB_CLK>, <&xo_board>;
+                               clock-names = "iface", "ref";
+                               status = "disabled";
+                       };
+               };
+               cci: cci@fda0c000 {
+                       compatible = "qcom,msm8974-cci";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0xfda0c000 0x1000>;
+                       interrupts = <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&mmcc CAMSS_TOP_AHB_CLK>,
+                                <&mmcc CAMSS_CCI_CCI_AHB_CLK>,
+                                <&mmcc CAMSS_CCI_CCI_CLK>;
+                       clock-names = "camss_top_ahb",
+                                     "cci_ahb",
+                                     "cci";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&cci_default>;
+                       pinctrl-1 = <&cci_sleep>;
+                       status = "disabled";
+                       cci_i2c0: i2c-bus@0 {
+                               reg = <0>;
+                               clock-frequency = <100000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+                       cci_i2c1: i2c-bus@1 {
+                               reg = <1>;
+                               clock-frequency = <100000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+               gpu: adreno@fdb00000 {
+                       compatible = "qcom,adreno-330.1", "qcom,adreno";
+                       reg = <0xfdb00000 0x10000>;
+                       reg-names = "kgsl_3d0_reg_memory";
+                       interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "kgsl_3d0_irq";
+                       clocks = <&mmcc OXILI_GFX3D_CLK>,
+                                <&mmcc OXILICX_AHB_CLK>,
+                                <&mmcc OXILICX_AXI_CLK>;
+                       clock-names = "core", "iface", "mem_iface";
+                       sram = <&gmu_sram>;
+                       power-domains = <&mmcc OXILICX_GDSC>;
+                       operating-points-v2 = <&gpu_opp_table>;
+                       interconnects = <&mmssnoc MNOC_MAS_GRAPHICS_3D &bimc BIMC_SLV_EBI_CH0>,
+                                       <&ocmemnoc OCMEM_VNOC_MAS_GFX3D &ocmemnoc OCMEM_SLV_OCMEM>;
+                       interconnect-names = "gfx-mem", "ocmem";
+                       // iommus = <&gpu_iommu 0>;
+                       status = "disabled";
+                       gpu_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+                               opp-320000000 {
+                                       opp-hz = /bits/ 64 <320000000>;
+                               };
+                               opp-200000000 {
+                                       opp-hz = /bits/ 64 <200000000>;
+                               };
+                               opp-27000000 {
+                                       opp-hz = /bits/ 64 <27000000>;
+                               };
+                       };
+               };
+               sram@fdd00000 {
+                       compatible = "qcom,msm8974-ocmem";
+                       reg = <0xfdd00000 0x2000>,
+                             <0xfec00000 0x180000>;
+                       reg-names = "ctrl", "mem";
+                       ranges = <0 0xfec00000 0x180000>;
+                       clocks = <&rpmcc RPM_SMD_OCMEMGX_CLK>,
+                                <&mmcc OCMEMCX_OCMEMNOC_CLK>;
+                       clock-names = "core", "iface";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       gmu_sram: gmu-sram@0 {
+                               reg = <0x0 0x100000>;
+                       };
+               };
+               remoteproc_adsp: remoteproc@fe200000 {
+                       compatible = "qcom,msm8974-adsp-pil";
+                       reg = <0xfe200000 0x100>;
+                       interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>,
+                                              <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+                                              <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+                                              <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+                                              <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
+                       clocks = <&xo_board>;
+                       clock-names = "xo";
+                       memory-region = <&adsp_region>;
+                       qcom,smem-states = <&adsp_smp2p_out 0>;
+                       qcom,smem-state-names = "stop";
+                       status = "disabled";
+                       smd-edge {
+                               interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
+                               qcom,ipc = <&apcs 8 8>;
+                               qcom,smd-edge = <1>;
+                               label = "lpass";
+                       };
+               };
+               imem: sram@fe805000 {
+                       compatible = "qcom,msm8974-imem", "syscon", "simple-mfd";
+                       reg = <0xfe805000 0x1000>;
+                       reboot-mode {
+                               compatible = "syscon-reboot-mode";
+                               offset = <0x65c>;
+                       };
+               };
+       };
+       thermal-zones {
+               cpu0-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsens 5>;
+                       trips {
+                               cpu_alert0: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit0: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+               cpu1-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsens 6>;
+                       trips {
+                               cpu_alert1: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit1: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+               cpu2-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsens 7>;
+                       trips {
+                               cpu_alert2: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit2: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+               cpu3-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsens 8>;
+                       trips {
+                               cpu_alert3: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit3: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+               q6-dsp-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsens 1>;
+                       trips {
+                               q6_dsp_alert0: trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+               modemtx-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsens 2>;
+                       trips {
+                               modemtx_alert0: trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+               video-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsens 3>;
+                       trips {
+                               video_alert0: trip-point0 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+               wlan-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsens 4>;
+                       trips {
+                               wlan_alert0: trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+               gpu-top-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsens 9>;
+                       trips {
+                               gpu1_alert0: trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+               gpu-bottom-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsens 10>;
+                       trips {
+                               gpu2_alert0: trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+       };
+       timer {
+               compatible = "arm,armv7-timer";
+               interrupts = <GIC_PPI 2 0xf08>,
+                            <GIC_PPI 3 0xf08>,
+                            <GIC_PPI 4 0xf08>,
+                            <GIC_PPI 1 0xf08>;
+               clock-frequency = <19200000>;
+       };
+       vreg_boost: vreg-boost {
+               compatible = "regulator-fixed";
+               regulator-name = "vreg-boost";
+               regulator-min-microvolt = <3150000>;
+               regulator-max-microvolt = <3150000>;
+               regulator-always-on;
+               regulator-boot-on;
+               gpio = <&pm8941_gpios 21 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               pinctrl-names = "default";
+               pinctrl-0 = <&boost_bypass_n_pin>;
+       };
+       vreg_vph_pwr: vreg-vph-pwr {
+               compatible = "regulator-fixed";
+               regulator-name = "vph-pwr";
+               regulator-min-microvolt = <3600000>;
+               regulator-max-microvolt = <3600000>;
+               regulator-always-on;
+       };
+ };
index 0000000,8d2a054..8230d0e
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,513 +1,512 @@@
 -                      input-enable;
+ // SPDX-License-Identifier: GPL-2.0
+ #include "qcom-msm8974pro.dtsi"
+ #include "qcom-pm8841.dtsi"
+ #include "qcom-pm8941.dtsi"
+ #include <dt-bindings/input/input.h>
+ #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+ / {
+       model = "OnePlus One";
+       compatible = "oneplus,bacon", "qcom,msm8974pro", "qcom,msm8974";
+       chassis-type = "handset";
+       qcom,msm-id = <194 0x10000>;
+       qcom,board-id = <8 0>;
+       aliases {
+               serial0 = &blsp1_uart2;
+       };
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-0 = <&gpio_keys_default>, <&gpio_hall_sensor_default>;
+               pinctrl-names = "default";
+               key-volume-down {
+                       label = "Volume Down";
+                       gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       wakeup-source;
+                       debounce-interval = <15>;
+               };
+               key-volume-up {
+                       label = "Volume Up";
+                       gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       wakeup-source;
+                       debounce-interval = <15>;
+               };
+               event-hall-sensor {
+                       label = "Hall Effect Sensor";
+                       gpios = <&tlmm 68 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_LID>;
+                       linux,can-disable;
+                       debounce-interval = <150>;
+               };
+       };
+ };
+ &blsp1_i2c1 {
+       status = "okay";
+       fuel-gauge@55 {
+               compatible = "ti,bq27541";
+               reg = <0x55>;
+               power-supplies = <&bq24196_charger>;
+       };
+ };
+ &blsp1_i2c2 {
+       status = "okay";
+       rmi4-i2c-dev@20 {
+               compatible = "syna,rmi4-i2c";
+               reg = <0x20>;
+               syna,startup-delay-ms = <100>;
+               interrupts-extended = <&tlmm 61 IRQ_TYPE_EDGE_FALLING>;
+               vdd-supply = <&pm8941_l22>;
+               vio-supply = <&pm8941_lvs3>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&touch_default_state>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               rmi4-f01@1 {
+                       reg = <0x1>;
+                       syna,nosleep-mode = <1>;
+               };
+               rmi4-f12@12 {
+                       reg = <0x12>;
+                       syna,sensor-type = <1>;
+                       /*
+                        * Touchscreen size is 2040x1080, y-values between
+                        * 1920-2040 are used for touchkey (menu, home & back).
+                        * For now clip it off so we don't get touch events
+                        * outside of the display area.
+                        */
+                       syna,clip-y-high = <1920>;
+               };
+       };
+       led-controller@36 {
+               compatible = "ti,lm3630a";
+               reg = <0x36>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               led@0 {
+                       reg = <0>;
+                       led-sources = <0 1>;
+                       label = "lcd-backlight";
+                       default-brightness = <80>;
+               };
+       };
+       led-controller@68 {
+               compatible = "si-en,sn3193";
+               reg = <0x68>;
+               shutdown-gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               led@1 {
+                       reg = <1>;
+                       label = "red:status";
+                       led-max-microamp = <17500>;
+               };
+               led@2 {
+                       reg = <2>;
+                       label = "green:status";
+                       led-max-microamp = <17500>;
+               };
+               led@3 {
+                       reg = <3>;
+                       label = "blue:status";
+                       led-max-microamp = <17500>;
+               };
+       };
+ };
+ &blsp1_i2c6 {
+       status = "okay";
+       bq24196_charger: charger@6b {
+               compatible = "ti,bq24196";
+               reg = <0x6b>;
+               interrupts-extended = <&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
+               omit-battery-class;
+       };
+ };
+ &blsp1_uart2 {
+       status = "okay";
+ };
+ &gcc {
+       compatible = "qcom,gcc-msm8974pro-ac";
+ };
+ &pm8941_coincell {
+       qcom,rset-ohms = <800>;
+       qcom,vset-millivolts = <3200>;
+       status = "okay";
+ };
+ &pm8941_gpios {
+       gpio_keys_default: gpio-keys-active-state {
+               pins = "gpio2", "gpio5";
+               function = "normal";
+               input-enable;
+               bias-disable;
+               power-source = <PM8941_GPIO_S3>;
+       };
+ };
+ &pm8941_vib {
+       status = "okay";
+ };
+ &pronto {
+       vddmx-supply = <&pm8841_s1>;
+       vddcx-supply = <&pm8841_s2>;
+       vddpx-supply = <&pm8941_s3>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&wcnss_pin_a>;
+       status = "okay";
+       iris {
+               vddxo-supply = <&pm8941_l6>;
+               vddrfa-supply = <&pm8941_l11>;
+               vddpa-supply = <&pm8941_l19>;
+               vdddig-supply = <&pm8941_s3>;
+       };
+       smd-edge {
+               qcom,remote-pid = <4>;
+               label = "pronto";
+               wcnss {
+                       status = "okay";
+               };
+       };
+ };
+ &remoteproc_adsp {
+       cx-supply = <&pm8841_s2>;
+       status = "okay";
+ };
+ &rpm_requests {
+       regulators-0 {
+               compatible = "qcom,rpm-pm8841-regulators";
+               pm8841_s1: s1 {
+                       regulator-min-microvolt = <675000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+               pm8841_s2: s2 {
+                       regulator-min-microvolt = <875000>;
+                       regulator-max-microvolt = <1050000>;
+                       regulator-always-on;
+               };
+               pm8841_s3: s3 {
+                       regulator-min-microvolt = <1050000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+       };
+       regulators-1 {
+               compatible = "qcom,rpm-pm8941-regulators";
+               vdd_l1_l3-supply = <&pm8941_s1>;
+               vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
+               vdd_l4_l11-supply = <&pm8941_s1>;
+               vdd_l5_l7-supply = <&pm8941_s2>;
+               vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
+               vdd_l8_l16_l18_l19-supply = <&vreg_vph_pwr>;
+               vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
+               vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
+               vdd_l21-supply = <&vreg_boost>;
+               pm8941_s1: s1 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1300000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+               pm8941_s2: s2 {
+                       regulator-min-microvolt = <2150000>;
+                       regulator-max-microvolt = <2150000>;
+                       regulator-boot-on;
+               };
+               pm8941_s3: s3 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-system-load = <154000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+                       regulator-allow-set-load;
+               };
+               pm8941_l1: l1 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+               pm8941_l2: l2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+               pm8941_l3: l3 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+               pm8941_l4: l4 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+               pm8941_l5: l5 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8941_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
+               };
+               pm8941_l7: l7 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
+               };
+               pm8941_l8: l8 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8941_l9: l9 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pm8941_l10: l10 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pm8941_l11: l11 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1350000>;
+               };
+               pm8941_l12: l12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+                       regulator-allow-set-load;
+               };
+               pm8941_l13: l13 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-boot-on;
+               };
+               pm8941_l14: l14 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8941_l15: l15 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+               pm8941_l16: l16 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <2700000>;
+               };
+               pm8941_l17: l17 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+               pm8941_l18: l18 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+               pm8941_l19: l19 {
+                       regulator-min-microvolt = <2900000>;
+                       regulator-max-microvolt = <3350000>;
+               };
+               pm8941_l20: l20 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-system-load = <200000>;
+                       regulator-allow-set-load;
+                       regulator-boot-on;
+               };
+               pm8941_l21: l21 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-boot-on;
+               };
+               pm8941_l22: l22 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-allow-set-load;
+               };
+               pm8941_l23: l23 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+               pm8941_l24: l24 {
+                       regulator-min-microvolt = <3075000>;
+                       regulator-max-microvolt = <3075000>;
+                       regulator-boot-on;
+               };
+               pm8941_lvs3: lvs3 {};
+       };
+ };
+ &sdhc_1 {
+       vmmc-supply = <&pm8941_l20>;
+       vqmmc-supply = <&pm8941_s3>;
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc1_on>;
+       pinctrl-1 = <&sdc1_off>;
+       status = "okay";
+ };
+ &tlmm {
+       gpio_hall_sensor_default: gpio-hall-sensor-default-state {
+               pins = "gpio68";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-pull-up;
+       };
+       sdc1_on: sdc1-on-state {
+               clk-pins {
+                       pins = "sdc1_clk";
+                       drive-strength = <4>;
+                       bias-disable;
+               };
+               cmd-data-pins {
+                       pins = "sdc1_cmd", "sdc1_data";
+                       drive-strength = <4>;
+                       bias-pull-up;
+               };
+       };
+       touch_default_state: touch-default-state {
+               int-pins {
+                       pins = "gpio61";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+               reset-pins {
+                       pins = "gpio60";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
+       wcnss_pin_a: wcnss-pin-active-state {
+               wlan-pins {
+                       pins = "gpio36", "gpio37", "gpio38", "gpio39", "gpio40";
+                       function = "wlan";
+                       drive-strength = <6>;
+                       bias-pull-down;
+               };
+               bt-pins {
+                       pins = "gpio35", "gpio43", "gpio44";
+                       function = "bt";
+                       drive-strength = <2>;
+                       bias-pull-down;
+               };
+       };
+ };
+ &usb {
+       phys = <&usb_hs1_phy>;
+       phy-select = <&tcsr 0xb000 0>;
+       extcon = <&smbb>, <&usb_id>;
+       vbus-supply = <&chg_otg>;
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+       status = "okay";
+ };
+ &usb_hs1_phy {
+       status = "okay";
+       v1p8-supply = <&pm8941_l6>;
+       v3p3-supply = <&pm8941_l24>;
+       extcon = <&smbb>;
+       qcom,init-seq = /bits/ 8 <0x1 0x64>;
+ };
index 0000000,cfbcd52..3e2c865
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,814 +1,810 @@@
 -                      input-enable;
+ // SPDX-License-Identifier: GPL-2.0
+ #include "qcom-msm8974pro.dtsi"
+ #include "qcom-pma8084.dtsi"
+ #include <dt-bindings/input/input.h>
+ #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+ #include <dt-bindings/leds/common.h>
+ / {
+       model = "Samsung Galaxy S5";
+       compatible = "samsung,klte", "qcom,msm8974pro", "qcom,msm8974";
+       chassis-type = "handset";
+       aliases {
+               serial0 = &blsp1_uart1;
+               mmc0 = &sdhc_1; /* SDC1 eMMC slot */
+               mmc1 = &sdhc_3; /* SDC2 SD card slot */
+       };
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_keys_pin_a>;
+               key-volume-down {
+                       label = "volume_down";
+                       gpios = <&pma8084_gpios 2 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       debounce-interval = <15>;
+               };
+               key-home {
+                       label = "home_key";
+                       gpios = <&pma8084_gpios 3 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_HOMEPAGE>;
+                       wakeup-source;
+                       debounce-interval = <15>;
+               };
+               key-volume-up {
+                       label = "volume_up";
+                       gpios = <&pma8084_gpios 5 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       debounce-interval = <15>;
+               };
+       };
+       i2c-gpio-touchkey {
+               compatible = "i2c-gpio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               sda-gpios = <&tlmm 95 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               scl-gpios = <&tlmm 96 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c_touchkey_pins>;
+               touchkey@20 {
+                       compatible = "cypress,tm2-touchkey";
+                       reg = <0x20>;
+                       interrupt-parent = <&pma8084_gpios>;
+                       interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&touchkey_pin>;
+                       vcc-supply = <&max77826_ldo15>;
+                       vdd-supply = <&pma8084_l19>;
+                       linux,keycodes = <KEY_APPSELECT KEY_BACK>;
+               };
+       };
+       i2c-gpio-led {
+               compatible = "i2c-gpio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               scl-gpios = <&tlmm 121 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               sda-gpios = <&tlmm 120 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c_led_gpioex_pins>;
+               i2c-gpio,delay-us = <2>;
+               gpio_expander: gpio@20 {
+                       compatible = "nxp,pcal6416";
+                       reg = <0x20>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       vcc-supply = <&pma8084_s4>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&gpioex_pin>;
+                       reset-gpios = <&tlmm 145 GPIO_ACTIVE_LOW>;
+               };
+               led-controller@30 {
+                       compatible = "panasonic,an30259a";
+                       reg = <0x30>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       led@1 {
+                               reg = <1>;
+                               function = LED_FUNCTION_STATUS;
+                               color = <LED_COLOR_ID_RED>;
+                       };
+                       led@2 {
+                               reg = <2>;
+                               function = LED_FUNCTION_STATUS;
+                               color = <LED_COLOR_ID_GREEN>;
+                       };
+                       led@3 {
+                               reg = <3>;
+                               function = LED_FUNCTION_STATUS;
+                               color = <LED_COLOR_ID_BLUE>;
+                       };
+               };
+       };
+       vreg_wlan: wlan-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "wl-reg";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio_expander 8 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+       vreg_panel: panel-regulator {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&panel_en_pin>;
+               regulator-name = "panel-vddr-reg";
+               regulator-min-microvolt = <1500000>;
+               regulator-max-microvolt = <1500000>;
+               gpio = <&pma8084_gpios 14 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+       /delete-node/ vreg-boost;
+ };
+ &blsp1_i2c2 {
+       status = "okay";
+       touchscreen@20 {
+               compatible = "syna,rmi4-i2c";
+               reg = <0x20>;
+               interrupt-parent = <&pma8084_gpios>;
+               interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
+               vdd-supply = <&max77826_ldo13>;
+               vio-supply = <&pma8084_lvs2>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&touch_pin>;
+               syna,startup-delay-ms = <100>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               rmi4-f01@1 {
+                       reg = <0x1>;
+                       syna,nosleep-mode = <1>;
+               };
+               rmi4-f12@12 {
+                       reg = <0x12>;
+                       syna,sensor-type = <1>;
+               };
+       };
+ };
+ &blsp1_i2c6 {
+       status = "okay";
+       pmic@60 {
+               reg = <0x60>;
+               compatible = "maxim,max77826";
+               regulators {
+                       max77826_ldo1: LDO1 {
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                       };
+                       max77826_ldo2: LDO2 {
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                       };
+                       max77826_ldo3: LDO3 {
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                       };
+                       max77826_ldo4: LDO4 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+                       max77826_ldo5: LDO5 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+                       max77826_ldo6: LDO6 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+                       max77826_ldo7: LDO7 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+                       max77826_ldo8: LDO8 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+                       max77826_ldo9: LDO9 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+                       max77826_ldo10: LDO10 {
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2950000>;
+                       };
+                       max77826_ldo11: LDO11 {
+                               regulator-min-microvolt = <2700000>;
+                               regulator-max-microvolt = <2950000>;
+                       };
+                       max77826_ldo12: LDO12 {
+                               regulator-min-microvolt = <2500000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+                       max77826_ldo13: LDO13 {
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+                       max77826_ldo14: LDO14 {
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+                       max77826_ldo15: LDO15 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+                       max77826_buck: BUCK {
+                               regulator-min-microvolt = <1225000>;
+                               regulator-max-microvolt = <1225000>;
+                       };
+                       max77826_buckboost: BUCKBOOST {
+                               regulator-min-microvolt = <3400000>;
+                               regulator-max-microvolt = <3400000>;
+                       };
+               };
+       };
+ };
+ &blsp1_uart2 {
+       status = "okay";
+ };
+ &blsp2_i2c6 {
+       status = "okay";
+       fuelgauge@36 {
+               compatible = "maxim,max17048";
+               reg = <0x36>;
+               maxim,double-soc;
+               maxim,rcomp = /bits/ 8 <0x56>;
+               interrupt-parent = <&pma8084_gpios>;
+               interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&fuelgauge_pin>;
+       };
+ };
+ &blsp2_uart2 {
+       status = "okay";
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&blsp2_uart2_pins_active>;
+       pinctrl-1 = <&blsp2_uart2_pins_sleep>;
+       bluetooth {
+               compatible = "brcm,bcm43540-bt";
+               max-speed = <3000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&bt_pins>;
+               device-wakeup-gpios = <&tlmm 91 GPIO_ACTIVE_HIGH>;
+               shutdown-gpios = <&gpio_expander 9 GPIO_ACTIVE_HIGH>;
+               interrupt-parent = <&tlmm>;
+               interrupts = <75 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "host-wakeup";
+       };
+ };
+ &gpu {
+       status = "okay";
+ };
+ &mdss {
+       status = "okay";
+ };
+ &mdss_dsi0 {
+       status = "okay";
+       vdda-supply = <&pma8084_l2>;
+       vdd-supply = <&pma8084_l22>;
+       vddio-supply = <&pma8084_l12>;
+       panel: panel@0 {
+               reg = <0>;
+               compatible = "samsung,s6e3fa2";
+               pinctrl-names = "default";
+               pinctrl-0 = <&panel_te_pin &panel_rst_pin>;
+               iovdd-supply = <&pma8084_lvs4>;
+               vddr-supply = <&vreg_panel>;
+               reset-gpios = <&pma8084_gpios 17 GPIO_ACTIVE_LOW>;
+               te-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>;
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&mdss_dsi0_out>;
+                       };
+               };
+       };
+ };
+ &mdss_dsi0_out {
+       remote-endpoint = <&panel_in>;
+       data-lanes = <0 1 2 3>;
+ };
+ &mdss_dsi0_phy {
+       status = "okay";
+       vddio-supply = <&pma8084_l12>;
+ };
+ &pma8084_gpios {
+       gpio_keys_pin_a: gpio-keys-active-state {
+               pins = "gpio2", "gpio3", "gpio5";
+               function = "normal";
+               bias-pull-up;
+               power-source = <PMA8084_GPIO_S4>;
+       };
+       touchkey_pin: touchkey-int-state {
+               pins = "gpio6";
+               function = "normal";
+               bias-disable;
+               input-enable;
+               power-source = <PMA8084_GPIO_S4>;
+       };
+       touch_pin: touchscreen-int-state {
+               pins = "gpio8";
+               function = "normal";
+               bias-disable;
+               input-enable;
+               power-source = <PMA8084_GPIO_S4>;
+       };
+       panel_en_pin: panel-en-state {
+               pins = "gpio14";
+               function = "normal";
+               bias-pull-up;
+               power-source = <PMA8084_GPIO_S4>;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
+       };
+       wlan_sleep_clk_pin: wlan-sleep-clk-state {
+               pins = "gpio16";
+               function = "func2";
+               output-high;
+               power-source = <PMA8084_GPIO_S4>;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
+       };
+       panel_rst_pin: panel-rst-state {
+               pins = "gpio17";
+               function = "normal";
+               bias-disable;
+               power-source = <PMA8084_GPIO_S4>;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
+       };
+       fuelgauge_pin: fuelgauge-int-state {
+               pins = "gpio21";
+               function = "normal";
+               bias-disable;
+               input-enable;
+               power-source = <PMA8084_GPIO_S4>;
+       };
+ };
+ &remoteproc_adsp {
+       status = "okay";
+       cx-supply = <&pma8084_s2>;
+ };
+ &remoteproc_mss {
+       status = "okay";
+       cx-supply = <&pma8084_s2>;
+       mss-supply = <&pma8084_s6>;
+       mx-supply = <&pma8084_s1>;
+       pll-supply = <&pma8084_l12>;
+ };
+ &rpm_requests {
+       regulators-0 {
+               compatible = "qcom,rpm-pma8084-regulators";
+               pma8084_s1: s1 {
+                       regulator-min-microvolt = <675000>;
+                       regulator-max-microvolt = <1050000>;
+                       regulator-always-on;
+               };
+               pma8084_s2: s2 {
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+               pma8084_s3: s3 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1300000>;
+               };
+               pma8084_s4: s4 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pma8084_s5: s5 {
+                       regulator-min-microvolt = <2150000>;
+                       regulator-max-microvolt = <2150000>;
+               };
+               pma8084_s6: s6 {
+                       regulator-min-microvolt = <1050000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+               pma8084_l1: l1 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+               pma8084_l2: l2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+               pma8084_l3: l3 {
+                       regulator-min-microvolt = <1050000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+               pma8084_l4: l4 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+               pma8084_l5: l5 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pma8084_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pma8084_l7: l7 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pma8084_l8: l8 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pma8084_l9: l9 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pma8084_l10: l10 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pma8084_l11: l11 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1300000>;
+               };
+               pma8084_l12: l12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+               };
+               pma8084_l13: l13 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pma8084_l14: l14 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pma8084_l15: l15 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+               pma8084_l16: l16 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <2700000>;
+               };
+               pma8084_l17: l17 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+               pma8084_l18: l18 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+               pma8084_l19: l19 {
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+               pma8084_l20: l20 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-system-load = <200000>;
+                       regulator-allow-set-load;
+               };
+               pma8084_l21: l21 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-system-load = <200000>;
+                       regulator-allow-set-load;
+               };
+               pma8084_l22: l22 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+               pma8084_l23: l23 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+               pma8084_l24: l24 {
+                       regulator-min-microvolt = <3075000>;
+                       regulator-max-microvolt = <3075000>;
+               };
+               pma8084_l25: l25 {
+                       regulator-min-microvolt = <2100000>;
+                       regulator-max-microvolt = <2100000>;
+               };
+               pma8084_l26: l26 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+               pma8084_l27: l27 {
+                       regulator-min-microvolt = <1000000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+               pma8084_lvs1: lvs1 {};
+               pma8084_lvs2: lvs2 {};
+               pma8084_lvs3: lvs3 {};
+               pma8084_lvs4: lvs4 {};
+               pma8084_5vs1: 5vs1 {};
+       };
+ };
+ &sdhc_1 {
+       status = "okay";
+       vmmc-supply = <&pma8084_l20>;
+       vqmmc-supply = <&pma8084_s4>;
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc1_on>;
+       pinctrl-1 = <&sdc1_off>;
+ };
+ &sdhc_2 {
+       status = "okay";
+       max-frequency = <100000000>;
+       vmmc-supply = <&vreg_wlan>;
+       vqmmc-supply = <&pma8084_s4>;
+       non-removable;
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc2_on>;
+       pinctrl-1 = <&sdc2_off>;
+       wifi@1 {
+               reg = <1>;
+               compatible = "brcm,bcm4329-fmac";
+               interrupt-parent = <&tlmm>;
+               interrupts = <92 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "host-wake";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wlan_sleep_clk_pin &wifi_pin>;
+       };
+ };
+ &sdhc_3 {
+       status = "okay";
+       max-frequency = <100000000>;
+       vmmc-supply = <&pma8084_l21>;
+       vqmmc-supply = <&pma8084_l13>;
+       /*
+        * cd-gpio is intentionally disabled. If enabled, an SD card
+        * present during boot is not initialized correctly. Without
+        * cd-gpios the driver resorts to polling, so hotplug works.
+        */
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdc3_on /* &sdhc3_cd_pin */>;
+       /* cd-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>; */
+ };
+ &tlmm {
+       /* This seems suspicious, but somebody with this device should look into it. */
+       blsp2_uart2_pins_active: blsp2-uart2-pins-active-state {
+               pins = "gpio45", "gpio46", "gpio47", "gpio48";
+               function = "blsp_uart8";
+               drive-strength = <8>;
+               bias-disable;
+       };
+       blsp2_uart2_pins_sleep: blsp2-uart2-pins-sleep-state {
+               pins = "gpio45", "gpio46", "gpio47", "gpio48";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+       bt_pins: bt-pins-state {
+               hostwake-pins {
+                       pins = "gpio75";
+                       function = "gpio";
+                       drive-strength = <16>;
 -              input-enable;
+               };
+               devwake-pins {
+                       pins = "gpio91";
+                       function = "gpio";
+                       drive-strength = <2>;
+               };
+       };
+       sdc1_on: sdhc1-on-state {
+               clk-pins {
+                       pins = "sdc1_clk";
+                       drive-strength = <4>;
+                       bias-disable;
+               };
+               cmd-data-pins {
+                       pins = "sdc1_cmd", "sdc1_data";
+                       drive-strength = <4>;
+                       bias-pull-up;
+               };
+       };
+       sdc3_on: sdc3-on-state {
+               pins = "gpio35", "gpio36", "gpio37", "gpio38", "gpio39", "gpio40";
+               function = "sdc3";
+               drive-strength = <8>;
+               bias-disable;
+       };
+       sdhc3_cd_pin: sdc3-cd-on-state {
+               pins = "gpio62";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+       sdc2_on: sdhc2-on-state {
+               clk-pins {
+                       pins = "sdc2_clk";
+                       drive-strength = <6>;
+                       bias-disable;
+               };
+               cmd-data-pins {
+                       pins = "sdc2_cmd", "sdc2_data";
+                       drive-strength = <6>;
+                       bias-pull-up;
+               };
+       };
+       i2c_touchkey_pins: i2c-touchkey-state {
+               pins = "gpio95", "gpio96";
+               function = "gpio";
 -              input-enable;
+               bias-pull-up;
+       };
+       i2c_led_gpioex_pins: i2c-led-gpioex-state {
+               pins = "gpio120", "gpio121";
+               function = "gpio";
 -              input-enable;
+               bias-pull-down;
+       };
+       gpioex_pin: gpioex-state {
+               pins = "gpio145";
+               function = "gpio";
+               bias-pull-up;
+               drive-strength = <2>;
+       };
+       wifi_pin: wifi-state {
+               pins = "gpio92";
+               function = "gpio";
+               bias-pull-down;
+       };
+       panel_te_pin: panel-state {
+               pins = "gpio12";
+               function = "mdp_vsync";
+               drive-strength = <2>;
+               bias-disable;
+       };
+ };
+ &usb {
+       status = "okay";
+       phys = <&usb_hs1_phy>;
+       phy-select = <&tcsr 0xb000 0>;
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+ };
+ &usb_hs1_phy {
+       status = "okay";
+       v1p8-supply = <&pma8084_l6>;
+       v3p3-supply = <&pma8084_l24>;
+       qcom,init-seq = /bits/ 8 <0x1 0x64>;
+ };
index 0000000,2396253..154639d
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,675 +1,674 @@@
 -              input-enable;
+ // SPDX-License-Identifier: GPL-2.0
+ #include "qcom-msm8974pro.dtsi"
+ #include "qcom-pm8841.dtsi"
+ #include "qcom-pm8941.dtsi"
+ #include <dt-bindings/input/input.h>
+ #include <dt-bindings/leds/common.h>
+ #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+ / {
+       model = "Sony Xperia Z2 Tablet";
+       compatible = "sony,xperia-castor", "qcom,msm8974pro", "qcom,msm8974";
+       chassis-type = "tablet";
+       aliases {
+               serial0 = &blsp1_uart2;
+               serial1 = &blsp2_uart1;
+       };
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_keys_pin_a>;
+               key-volume-down {
+                       label = "volume_down";
+                       gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+               };
+               key-camera-snapshot {
+                       label = "camera_snapshot";
+                       gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_CAMERA>;
+               };
+               key-camera-focus {
+                       label = "camera_focus";
+                       gpios = <&pm8941_gpios 4 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_CAMERA_FOCUS>;
+               };
+               key-volume-up {
+                       label = "volume_up";
+                       gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+       };
+       vreg_bl_vddio: lcd-backlight-vddio {
+               compatible = "regulator-fixed";
+               regulator-name = "vreg_bl_vddio";
+               regulator-min-microvolt = <3150000>;
+               regulator-max-microvolt = <3150000>;
+               gpio = <&tlmm 69 0>;
+               enable-active-high;
+               vin-supply = <&pm8941_s3>;
+               startup-delay-us = <70000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&lcd_backlight_en_pin_a>;
+       };
+       vreg_vsp: lcd-dcdc-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vreg_vsp";
+               regulator-min-microvolt = <5600000>;
+               regulator-max-microvolt = <5600000>;
+               gpio = <&pm8941_gpios 20 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               pinctrl-names = "default";
+               pinctrl-0 = <&lcd_dcdc_en_pin_a>;
+       };
+       vreg_wlan: wlan-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "wl-reg";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&pm8941_gpios 18 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               pinctrl-names = "default";
+               pinctrl-0 = <&wlan_regulator_pin>;
+       };
+ };
+ &blsp1_uart2 {
+       status = "okay";
+ };
+ &blsp2_i2c2 {
+       status = "okay";
+       clock-frequency = <355000>;
+       synaptics@2c {
+               compatible = "syna,rmi4-i2c";
+               reg = <0x2c>;
+               interrupt-parent = <&tlmm>;
+               interrupts = <86 IRQ_TYPE_EDGE_FALLING>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               vdd-supply = <&pm8941_l22>;
+               vio-supply = <&pm8941_lvs3>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&ts_int_pin>;
+               syna,startup-delay-ms = <100>;
+               rmi-f01@1 {
+                       reg = <0x1>;
+                       syna,nosleep = <1>;
+               };
+               rmi-f11@11 {
+                       reg = <0x11>;
+                       syna,f11-flip-x = <1>;
+                       syna,sensor-type = <1>;
+               };
+       };
+ };
+ &blsp2_i2c5 {
+       status = "okay";
+       clock-frequency = <355000>;
+       lp8566_wled: backlight@2c {
+               compatible = "ti,lp8556";
+               reg = <0x2c>;
+               power-supply = <&vreg_bl_vddio>;
+               bl-name = "backlight";
+               dev-ctrl = /bits/ 8 <0x05>;
+               init-brt = /bits/ 8 <0x3f>;
+               rom-a0h {
+                       rom-addr = /bits/ 8 <0xa0>;
+                       rom-val = /bits/ 8 <0xff>;
+               };
+               rom-a1h {
+                       rom-addr = /bits/ 8 <0xa1>;
+                       rom-val = /bits/ 8 <0x3f>;
+               };
+               rom-a2h {
+                       rom-addr = /bits/ 8 <0xa2>;
+                       rom-val = /bits/ 8 <0x20>;
+               };
+               rom-a3h {
+                       rom-addr = /bits/ 8 <0xa3>;
+                       rom-val = /bits/ 8 <0x5e>;
+               };
+               rom-a4h {
+                       rom-addr = /bits/ 8 <0xa4>;
+                       rom-val = /bits/ 8 <0x02>;
+               };
+               rom-a5h {
+                       rom-addr = /bits/ 8 <0xa5>;
+                       rom-val = /bits/ 8 <0x04>;
+               };
+               rom-a6h {
+                       rom-addr = /bits/ 8 <0xa6>;
+                       rom-val = /bits/ 8 <0x80>;
+               };
+               rom-a7h {
+                       rom-addr = /bits/ 8 <0xa7>;
+                       rom-val = /bits/ 8 <0xf7>;
+               };
+               rom-a9h {
+                       rom-addr = /bits/ 8 <0xa9>;
+                       rom-val = /bits/ 8 <0x80>;
+               };
+               rom-aah {
+                       rom-addr = /bits/ 8 <0xaa>;
+                       rom-val = /bits/ 8 <0x0f>;
+               };
+               rom-aeh {
+                       rom-addr = /bits/ 8 <0xae>;
+                       rom-val = /bits/ 8 <0x0f>;
+               };
+       };
+ };
+ &blsp2_uart1 {
+       status = "okay";
+       bluetooth {
+               compatible = "brcm,bcm43438-bt";
+               max-speed = <3000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&bt_host_wake_pin>, <&bt_dev_wake_pin>, <&bt_reg_on_pin>;
+               host-wakeup-gpios = <&tlmm 95 GPIO_ACTIVE_HIGH>;
+               device-wakeup-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>;
+               shutdown-gpios = <&pm8941_gpios 16 GPIO_ACTIVE_HIGH>;
+       };
+ };
+ &pm8941_coincell {
+       status = "okay";
+       qcom,rset-ohms = <2100>;
+       qcom,vset-millivolts = <3000>;
+ };
+ &pm8941_gpios {
+       gpio_keys_pin_a: gpio-keys-active-state {
+               pins = "gpio2", "gpio5";
+               function = "normal";
+               bias-pull-up;
+               power-source = <PM8941_GPIO_S3>;
+       };
+       bt_reg_on_pin: bt-reg-on-state {
+               pins = "gpio16";
+               function = "normal";
+               output-low;
+               power-source = <PM8941_GPIO_S3>;
+       };
+       wlan_sleep_clk_pin: wl-sleep-clk-state {
+               pins = "gpio17";
+               function = "func2";
+               output-high;
+               power-source = <PM8941_GPIO_S3>;
+       };
+       wlan_regulator_pin: wl-reg-active-state {
+               pins = "gpio18";
+               function = "normal";
+               bias-disable;
+               power-source = <PM8941_GPIO_S3>;
+       };
+       lcd_dcdc_en_pin_a: lcd-dcdc-en-active-state {
+               pins = "gpio20";
+               function = "normal";
+               bias-disable;
+               power-source = <PM8941_GPIO_S3>;
+               input-disable;
+               output-low;
+       };
+ };
+ &pm8941_lpg {
+       status = "okay";
+       qcom,power-source = <1>;
+       multi-led {
+               color = <LED_COLOR_ID_RGB>;
+               function = LED_FUNCTION_STATUS;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               led@5 {
+                       reg = <5>;
+                       color = <LED_COLOR_ID_BLUE>;
+               };
+               led@6 {
+                       reg = <6>;
+                       color = <LED_COLOR_ID_GREEN>;
+               };
+               led@7 {
+                       reg = <7>;
+                       color = <LED_COLOR_ID_RED>;
+               };
+       };
+ };
+ &remoteproc_adsp {
+       cx-supply = <&pm8841_s2>;
+ };
+ &remoteproc_mss {
+       cx-supply = <&pm8841_s2>;
+       mss-supply = <&pm8841_s3>;
+       mx-supply = <&pm8841_s1>;
+       pll-supply = <&pm8941_l12>;
+ };
+ &rpm_requests {
+       regulators-0 {
+               compatible = "qcom,rpm-pm8841-regulators";
+               pm8841_s1: s1 {
+                       regulator-min-microvolt = <675000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+               pm8841_s2: s2 {
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+               pm8841_s3: s3 {
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+               pm8841_s4: s4 {
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+       };
+       regulators-1 {
+               compatible = "qcom,rpm-pm8941-regulators";
+               vdd_l1_l3-supply = <&pm8941_s1>;
+               vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
+               vdd_l4_l11-supply = <&pm8941_s1>;
+               vdd_l5_l7-supply = <&pm8941_s2>;
+               vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
+               vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
+               vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
+               vdd_l21-supply = <&vreg_boost>;
+               pm8941_s1: s1 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1300000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+               pm8941_s2: s2 {
+                       regulator-min-microvolt = <2150000>;
+                       regulator-max-microvolt = <2150000>;
+                       regulator-boot-on;
+               };
+               pm8941_s3: s3 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-system-load = <154000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+               pm8941_s4: s4 {
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+               };
+               pm8941_l1: l1 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+               pm8941_l2: l2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+               pm8941_l3: l3 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+               pm8941_l4: l4 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+               pm8941_l5: l5 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8941_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
+               };
+               pm8941_l7: l7 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
+               };
+               pm8941_l8: l8 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8941_l9: l9 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pm8941_l11: l11 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1350000>;
+               };
+               pm8941_l12: l12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+               pm8941_l13: l13 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-boot-on;
+               };
+               pm8941_l14: l14 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8941_l15: l15 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+               pm8941_l16: l16 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <2700000>;
+               };
+               pm8941_l17: l17 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <2700000>;
+               };
+               pm8941_l18: l18 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+               pm8941_l19: l19 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+               pm8941_l20: l20 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-system-load = <500000>;
+                       regulator-allow-set-load;
+                       regulator-boot-on;
+               };
+               pm8941_l21: l21 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-boot-on;
+               };
+               pm8941_l22: l22 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+               pm8941_l23: l23 {
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+               };
+               pm8941_l24: l24 {
+                       regulator-min-microvolt = <3075000>;
+                       regulator-max-microvolt = <3075000>;
+                       regulator-boot-on;
+               };
+               pm8941_lvs3: lvs3 {};
+       };
+ };
+ &sdhc_1 {
+       status = "okay";
+       vmmc-supply = <&pm8941_l20>;
+       vqmmc-supply = <&pm8941_s3>;
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc1_on>;
+       pinctrl-1 = <&sdc1_off>;
+ };
+ &sdhc_2 {
+       status = "okay";
+       vmmc-supply = <&pm8941_l21>;
+       vqmmc-supply = <&pm8941_l13>;
+       cd-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>;
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc2_on>;
+       pinctrl-1 = <&sdc2_off>;
+ };
+ &sdhc_3 {
+       status = "okay";
+       max-frequency = <100000000>;
+       vmmc-supply = <&vreg_wlan>;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdc3_on>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+       bcrmf@1 {
+               compatible = "brcm,bcm4339-fmac", "brcm,bcm4329-fmac";
+               reg = <1>;
+               brcm,drive-strength = <10>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&wlan_sleep_clk_pin>;
+       };
+ };
+ &smbb {
+       qcom,fast-charge-safe-current = <1500000>;
+       qcom,fast-charge-current-limit = <1500000>;
+       qcom,dc-current-limit = <1800000>;
+       usb-charge-current-limit = <1800000>;
+       qcom,fast-charge-safe-voltage = <4400000>;
+       qcom,fast-charge-high-threshold-voltage = <4350000>;
+       qcom,fast-charge-low-threshold-voltage = <3400000>;
+       qcom,auto-recharge-threshold-voltage = <4200000>;
+       qcom,minimum-input-voltage = <4300000>;
+ };
+ &tlmm {
+       lcd_backlight_en_pin_a: lcd-backlight-vddio-state {
+               pins = "gpio69";
+               function = "gpio";
+               drive-strength = <10>;
+               output-low;
+               bias-disable;
+       };
+       sdc1_on: sdc1-on-state {
+               clk-pins {
+                       pins = "sdc1_clk";
+                       drive-strength = <16>;
+                       bias-disable;
+               };
+               cmd-data-pins {
+                       pins = "sdc1_cmd", "sdc1_data";
+                       drive-strength = <10>;
+                       bias-pull-up;
+               };
+       };
+       sdc2_on: sdc2-on-state {
+               clk-pins {
+                       pins = "sdc2_clk";
+                       drive-strength = <6>;
+                       bias-disable;
+               };
+               cmd-data-pins {
+                       pins = "sdc2_cmd", "sdc2_data";
+                       drive-strength = <6>;
+                       bias-pull-up;
+               };
+               cd-pins {
+                       pins = "gpio62";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+       };
+       sdc3_on: sdc3-on-state {
+               clk-pins {
+                       pins = "gpio40";
+                       function = "sdc3";
+                       drive-strength = <10>;
+                       bias-disable;
+               };
+               cmd-pins {
+                       pins = "gpio39";
+                       function = "sdc3";
+                       drive-strength = <10>;
+                       bias-pull-up;
+               };
+               data-pins {
+                       pins = "gpio35", "gpio36", "gpio37", "gpio38";
+                       function = "sdc3";
+                       drive-strength = <10>;
+                       bias-pull-up;
+               };
+       };
+       ts_int_pin: ts-int-pin-state {
+               pins = "gpio86";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+       bt_host_wake_pin: bt-host-wake-state {
+               pins = "gpio95";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               output-low;
+       };
+       bt_dev_wake_pin: bt-dev-wake-state {
+               pins = "gpio96";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+ };
+ &usb {
+       status = "okay";
+       phys = <&usb_hs1_phy>;
+       phy-select = <&tcsr 0xb000 0>;
+       extcon = <&smbb>, <&usb_id>;
+       vbus-supply = <&chg_otg>;
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+ };
+ &usb_hs1_phy {
+       status = "okay";
+       v1p8-supply = <&pm8941_l6>;
+       v3p3-supply = <&pm8941_l24>;
+       extcon = <&smbb>;
+       qcom,init-seq = /bits/ 8 <0x1 0x64>;
+ };
index 0000000,4774aa0..4fd831f
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,628 +1,628 @@@
 -              pendown-gpio = <&gpio1 31 0>;
+ // SPDX-License-Identifier: GPL-2.0-only
+ /*
+  * Support for CompuLab CL-SOM-AM57x System-on-Module
+  *
+  * Copyright (C) 2015 CompuLab Ltd. - http://www.compulab.co.il/
+  * Author: Dmitry Lifshitz <lifshitz@compulab.co.il>
+  */
+ /dts-v1/;
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+ #include "am5728.dtsi"
+ / {
+       model = "CompuLab CL-SOM-AM57x";
+       compatible = "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7";
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x80000000 0x0 0x20000000>; /* 512 MB - minimal configuration */
+       };
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&leds_pins_default>;
+               led0 {
+                       label = "cl-som-am57x:green";
+                       gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+                       default-state = "off";
+               };
+       };
+       vdd_3v3: fixedregulator-vdd_3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+       ads7846reg: fixedregulator-ads7846-reg {
+               compatible = "regulator-fixed";
+               regulator-name = "ads7846-reg";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+       sound0: sound0 {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "CL-SOM-AM57x-Sound-Card";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,bitclock-master = <&dailink0_master>;
+               simple-audio-card,frame-master = <&dailink0_master>;
+               simple-audio-card,widgets =
+                                       "Headphone", "Headphone Jack",
+                                       "Microphone", "Microphone Jack",
+                                       "Line", "Line Jack";
+               simple-audio-card,routing =
+                                       "Headphone Jack", "RHPOUT",
+                                       "Headphone Jack", "LHPOUT",
+                                       "LLINEIN", "Line Jack",
+                                       "MICIN", "Mic Bias",
+                                       "Mic Bias", "Microphone Jack";
+               dailink0_master: simple-audio-card,cpu {
+                       sound-dai = <&mcasp3>;
+               };
+               simple-audio-card,codec {
+                       sound-dai = <&wm8731>;
+                       system-clock-frequency = <12000000>;
+               };
+       };
+ };
+ &dra7_pmx_core {
+       leds_pins_default: leds-default-pins {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x347c, PIN_OUTPUT | MUX_MODE14)      /* gpmc_a15.gpio2_5 */
+               >;
+       };
+       i2c1_pins_default: i2c1-default-pins {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x3800, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda.sda */
+                       DRA7XX_CORE_IOPAD(0x3804, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl.scl */
+               >;
+       };
+       i2c3_pins_default: i2c3-default-pins {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x36a4, PIN_INPUT| MUX_MODE10)        /* mcasp1_aclkx.i2c3_sda */
+                       DRA7XX_CORE_IOPAD(0x36a8, PIN_INPUT| MUX_MODE10)        /* mcasp1_fsx.i2c3_scl */
+               >;
+       };
+       i2c4_pins_default: i2c4-default-pins {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x36ac, PIN_INPUT| MUX_MODE10)        /* mcasp1_acl.i2c4_sda */
+                       DRA7XX_CORE_IOPAD(0x36b0, PIN_INPUT| MUX_MODE10)        /* mcasp1_fsr.i2c4_scl */
+               >;
+       };
+       tps659038_pins_default: tps659038-default-pins {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x3818, PIN_INPUT_PULLUP | MUX_MODE14) /* wakeup0.gpio1_0 */
+               >;
+       };
+       mmc2_pins_default: mmc2-default-pins {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
+                       DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
+                       DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
+                       DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
+                       DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
+                       DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
+                       DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
+                       DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
+                       DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
+                       DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
+               >;
+       };
+       qspi1_pins: qspi1-pins {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x3474, PIN_INPUT | MUX_MODE1)        /* gpmc_a13.qspi1_rtclk */
+                       DRA7XX_CORE_IOPAD(0x3480, PIN_INPUT | MUX_MODE1)        /* gpmc_a16.qspi1_d0 */
+                       DRA7XX_CORE_IOPAD(0x3484, PIN_INPUT | MUX_MODE1)        /* gpmc_a17.qspi1_d1 */
+                       DRA7XX_CORE_IOPAD(0x3488, PIN_INPUT | MUX_MODE1)        /* qpmc_a18.qspi1_sclk */
+                       DRA7XX_CORE_IOPAD(0x34b8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs2.qspi1_cs0 */
+                       DRA7XX_CORE_IOPAD(0x34bc, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs3.qspi1_cs1 */
+               >;
+       };
+       cpsw_pins_default: cpsw-default-pins {
+               pinctrl-single,pins = <
+                       /* Slave at addr 0x0 */
+                       DRA7XX_CORE_IOPAD(0x3650, PIN_OUTPUT | MUX_MODE0)       /* rgmii0_tclk */
+                       DRA7XX_CORE_IOPAD(0x3654, PIN_OUTPUT | MUX_MODE0)       /* rgmii0_tctl */
+                       DRA7XX_CORE_IOPAD(0x3658, PIN_OUTPUT | MUX_MODE0)       /* rgmii0_td3 */
+                       DRA7XX_CORE_IOPAD(0x365c, PIN_OUTPUT | MUX_MODE0)       /* rgmii0_td2 */
+                       DRA7XX_CORE_IOPAD(0x3660, PIN_OUTPUT | MUX_MODE0)       /* rgmii0_td1 */
+                       DRA7XX_CORE_IOPAD(0x3664, PIN_OUTPUT | MUX_MODE0)       /* rgmii0_td0 */
+                       DRA7XX_CORE_IOPAD(0x3668, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rclk */
+                       DRA7XX_CORE_IOPAD(0x366c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rctl */
+                       DRA7XX_CORE_IOPAD(0x3670, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rd3 */
+                       DRA7XX_CORE_IOPAD(0x3674, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rd2 */
+                       DRA7XX_CORE_IOPAD(0x3678, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rd1 */
+                       DRA7XX_CORE_IOPAD(0x367c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rd0 */
+                       /* Slave at addr 0x1 */
+                       DRA7XX_CORE_IOPAD(0x3598, PIN_OUTPUT | MUX_MODE3)       /* vin2a_d12.rgmii1_tclk */
+                       DRA7XX_CORE_IOPAD(0x359c, PIN_OUTPUT | MUX_MODE3)       /* vin2a_d13.rgmii1_tctl */
+                       DRA7XX_CORE_IOPAD(0x35a0, PIN_OUTPUT | MUX_MODE3)       /* vin2a_d14.rgmii1_td3 */
+                       DRA7XX_CORE_IOPAD(0x35a4, PIN_OUTPUT | MUX_MODE3)       /* vin2a_d15.rgmii1_td2 */
+                       DRA7XX_CORE_IOPAD(0x35a8, PIN_OUTPUT | MUX_MODE3)       /* vin2a_d16.rgmii1_td1 */
+                       DRA7XX_CORE_IOPAD(0x35ac, PIN_OUTPUT | MUX_MODE3)       /* vin2a_d17.rgmii1_td0 */
+                       DRA7XX_CORE_IOPAD(0x35b0, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d18.rgmii1_rclk */
+                       DRA7XX_CORE_IOPAD(0x35b4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d19.rgmii1_rctl */
+                       DRA7XX_CORE_IOPAD(0x35b8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d20.rgmii1_rd3 */
+                       DRA7XX_CORE_IOPAD(0x35bc, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d21.rgmii1_rd2 */
+                       DRA7XX_CORE_IOPAD(0x35c0, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d22.rgmii1_rd1 */
+                       DRA7XX_CORE_IOPAD(0x35c4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d23.rgmii1_rd0 */
+               >;
+       };
+       cpsw_pins_sleep: cpsw-sleep-pins {
+               pinctrl-single,pins = <
+                       /* Slave 1 */
+                       DRA7XX_CORE_IOPAD(0x3650, PIN_INPUT | MUX_MODE15)
+                       DRA7XX_CORE_IOPAD(0x3654, PIN_INPUT | MUX_MODE15)
+                       DRA7XX_CORE_IOPAD(0x3658, PIN_INPUT | MUX_MODE15)
+                       DRA7XX_CORE_IOPAD(0x365c, PIN_INPUT | MUX_MODE15)
+                       DRA7XX_CORE_IOPAD(0x3660, PIN_INPUT | MUX_MODE15)
+                       DRA7XX_CORE_IOPAD(0x3664, PIN_INPUT | MUX_MODE15)
+                       DRA7XX_CORE_IOPAD(0x3668, PIN_INPUT | MUX_MODE15)
+                       DRA7XX_CORE_IOPAD(0x366c, PIN_INPUT | MUX_MODE15)
+                       DRA7XX_CORE_IOPAD(0x3670, PIN_INPUT | MUX_MODE15)
+                       DRA7XX_CORE_IOPAD(0x3674, PIN_INPUT | MUX_MODE15)
+                       DRA7XX_CORE_IOPAD(0x3678, PIN_INPUT | MUX_MODE15)
+                       DRA7XX_CORE_IOPAD(0x367c, PIN_INPUT | MUX_MODE15)
+                       /* Slave 2 */
+                       DRA7XX_CORE_IOPAD(0x3598, PIN_INPUT | MUX_MODE15)
+                       DRA7XX_CORE_IOPAD(0x359c, PIN_INPUT | MUX_MODE15)
+                       DRA7XX_CORE_IOPAD(0x35a0, PIN_INPUT | MUX_MODE15)
+                       DRA7XX_CORE_IOPAD(0x35a4, PIN_INPUT | MUX_MODE15)
+                       DRA7XX_CORE_IOPAD(0x35a8, PIN_INPUT | MUX_MODE15)
+                       DRA7XX_CORE_IOPAD(0x35ac, PIN_INPUT | MUX_MODE15)
+                       DRA7XX_CORE_IOPAD(0x35b0, PIN_INPUT | MUX_MODE15)
+                       DRA7XX_CORE_IOPAD(0x35b4, PIN_INPUT | MUX_MODE15)
+                       DRA7XX_CORE_IOPAD(0x35b8, PIN_INPUT | MUX_MODE15)
+                       DRA7XX_CORE_IOPAD(0x35bc, PIN_INPUT | MUX_MODE15)
+                       DRA7XX_CORE_IOPAD(0x35c0, PIN_INPUT | MUX_MODE15)
+                       DRA7XX_CORE_IOPAD(0x35c4, PIN_INPUT | MUX_MODE15)
+               >;
+       };
+       davinci_mdio_pins_default: davinci-mdio-default-pins {
+               pinctrl-single,pins = <
+                       /* MDIO */
+                       DRA7XX_CORE_IOPAD(0x3590, PIN_OUTPUT_PULLUP | MUX_MODE3)/* vin2a_d10.mdio_mclk */
+                       DRA7XX_CORE_IOPAD(0x3594, PIN_INPUT_PULLUP | MUX_MODE3) /* vin2a_d11.mdio_d */
+               >;
+       };
+       davinci_mdio_pins_sleep: davinci-mdio-sleep-pins {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x3590, PIN_INPUT | MUX_MODE15)
+                       DRA7XX_CORE_IOPAD(0x3594, PIN_INPUT | MUX_MODE15)
+               >;
+       };
+       ads7846_pins: ads7846-pins {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x3464, PIN_INPUT_PULLDOWN | MUX_MODE14) /* gpmc_a9.gpio1_31 */
+               >;
+       };
+       mcasp3_pins_default: mcasp3-default-pins {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x3724, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_aclkx.mcasp3_aclkx */
+                       DRA7XX_CORE_IOPAD(0x3728, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_fsx.mcasp3_fsx */
+                       DRA7XX_CORE_IOPAD(0x372c, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr0.mcasp3_axr0 */
+                       DRA7XX_CORE_IOPAD(0x3730, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr1.mcasp3_axr1 */
+               >;
+       };
+       mcasp3_pins_sleep: mcasp3-sleep-pins {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x3724, PIN_INPUT | MUX_MODE15)
+                       DRA7XX_CORE_IOPAD(0x3728, PIN_INPUT | MUX_MODE15)
+                       DRA7XX_CORE_IOPAD(0x372c, PIN_INPUT | MUX_MODE15)
+                       DRA7XX_CORE_IOPAD(0x3730, PIN_INPUT | MUX_MODE15)
+               >;
+       };
+ };
+ &i2c1 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins_default>;
+       clock-frequency = <400000>;
+ };
+ &i2c3 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c3_pins_default>;
+       clock-frequency = <400000>;
+ };
+ &i2c4 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c4_pins_default>;
+       clock-frequency = <400000>;
+       tps659038: tps659038@58 {
+               compatible = "ti,tps659038";
+               reg = <0x58>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&tps659038_pins_default>;
+               #interrupt-cells = <2>;
+               interrupt-controller;
+               ti,system-power-controller;
+               tps659038_pmic {
+                       compatible = "ti,tps659038-pmic";
+                       regulators {
+                               smps12_reg: smps12 {
+                                       /* VDD_MPU */
+                                       regulator-name = "smps12";
+                                       regulator-min-microvolt = < 850000>;
+                                       regulator-max-microvolt = <1250000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                               smps3_reg: smps3 {
+                                       /* VDD_DDR */
+                                       regulator-name = "smps3";
+                                       regulator-min-microvolt = <1500000>;
+                                       regulator-max-microvolt = <1500000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                               smps45_reg: smps45 {
+                                       /* VDD_DSPEVE */
+                                       regulator-name = "smps45";
+                                       regulator-min-microvolt = < 850000>;
+                                       regulator-max-microvolt = <1250000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                               smps6_reg: smps6 {
+                                       /* VDD_GPU */
+                                       regulator-name = "smps6";
+                                       regulator-min-microvolt = < 850000>;
+                                       regulator-max-microvolt = <1250000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                               smps7_reg: smps7 {
+                                       /* VDD_CORE */
+                                       regulator-name = "smps7";
+                                       regulator-min-microvolt = < 850000>;
+                                       regulator-max-microvolt = <1160000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                               smps8_reg: smps8 {
+                                       /* VDD_IVA */
+                                       regulator-name = "smps8";
+                                       regulator-min-microvolt = < 850000>;
+                                       regulator-max-microvolt = <1250000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                               smps9_reg: smps9 {
+                                       /* PMIC_3V3 */
+                                       regulator-name = "smps9";
+                                       regulator-min-microvolt = <3300000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                               ldo1_reg: ldo1 {
+                                       /* VDD_SD / VDDSHV8  */
+                                       regulator-name = "ldo1";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       regulator-boot-on;
+                                       regulator-always-on;
+                               };
+                               ldo2_reg: ldo2 {
+                                       /* VDD_1V8 */
+                                       regulator-name = "ldo2";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                               ldo3_reg: ldo3 {
+                                       /* VDDA_1V8_PHYA - supplies VDDA_SATA, VDDA_USB1/2/3 */
+                                       regulator-name = "ldo3";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                               ldo4_reg: ldo4 {
+                                       /* VDDA_1V8_PHYB - supplies VDDA_HDMI, VDDA_PCIE/0/1 */
+                                       regulator-name = "ldo4";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                               ldo9_reg: ldo9 {
+                                       /* VDD_RTC */
+                                       regulator-name = "ldo9";
+                                       regulator-min-microvolt = <1050000>;
+                                       regulator-max-microvolt = <1050000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                               ldoln_reg: ldoln {
+                                       /* VDDA_1V8_PLL */
+                                       regulator-name = "ldoln";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                               ldousb_reg: ldousb {
+                                       /* VDDA_3V_USB: VDDA_USBHS33 */
+                                       regulator-name = "ldousb";
+                                       regulator-min-microvolt = <3300000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                               /* regen1 not used */
+                       };
+               };
+               tps659038_pwr_button: tps659038_pwr_button {
+                       compatible = "ti,palmas-pwrbutton";
+                       interrupt-parent = <&tps659038>;
+                       interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
+                       wakeup-source;
+                       ti,palmas-long-press-seconds = <12>;
+               };
+               tps659038_gpio: tps659038_gpio {
+                       compatible = "ti,palmas-gpio";
+                       gpio-controller;
+                       #gpio-cells = <2>;
+               };
+       };
+       rtc0: rtc@56 {
+               compatible = "emmicro,em3027";
+               reg = <0x56>;
+       };
+       eeprom_module: atmel@50 {
+               compatible = "atmel,24c08";
+               reg = <0x50>;
+               pagesize = <16>;
+       };
+       wm8731: wm8731@1a {
+               #sound-dai-cells = <0>;
+               compatible = "wlf,wm8731";
+               reg = <0x1a>;
+               status = "okay";
+       };
+ };
+ &cpu0 {
+       cpu0-supply = <&smps12_reg>;
+       voltage-tolerance = <1>;
+ };
+ &sata {
+       status = "okay";
+ };
+ &mailbox5 {
+       status = "okay";
+       mbox_ipu1_ipc3x: mbox-ipu1-ipc3x {
+               status = "okay";
+       };
+       mbox_dsp1_ipc3x: mbox-dsp1-ipc3x {
+               status = "okay";
+       };
+ };
+ &mailbox6 {
+       status = "okay";
+       mbox_ipu2_ipc3x: mbox-ipu2-ipc3x {
+               status = "okay";
+       };
+       mbox_dsp2_ipc3x: mbox-dsp2-ipc3x {
+               status = "okay";
+       };
+ };
+ &mmc2 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc2_pins_default>;
+       vmmc-supply = <&vdd_3v3>;
+       bus-width = <8>;
+       ti,non-removable;
+       cap-mmc-dual-data-rate;
+ };
+ &qspi {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&qspi1_pins>;
+       spi-max-frequency = <48000000>;
+       spi_flash: flash@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "spansion,m25p80", "jedec,spi-nor";
+               reg = <0>;                              /* CS0 */
+               spi-max-frequency = <48000000>;
+               partition@0 {
+                       label = "uboot";
+                       reg = <0x0 0xc0000>;
+               };
+               partition@c0000 {
+                       label = "uboot environment";
+                       reg = <0xc0000 0x40000>;
+               };
+               partition@100000 {
+                       label = "reserved";
+                       reg = <0x100000 0x0>;
+               };
+       };
+       /* touch controller */
+       touchscreen@1 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&ads7846_pins>;
+               compatible = "ti,ads7846";
+               vcc-supply = <&ads7846reg>;
+               reg = <1>;                              /* CS1 */
+               spi-max-frequency = <1500000>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <31 0>;
++              pendown-gpio = <&gpio1 31 GPIO_ACTIVE_LOW>;
+               ti,x-min = /bits/ 16 <0x0>;
+               ti,x-max = /bits/ 16 <0x0fff>;
+               ti,y-min = /bits/ 16 <0x0>;
+               ti,y-max = /bits/ 16 <0x0fff>;
+               ti,x-plate-ohms = /bits/ 16 <180>;
+               ti,pressure-max = /bits/ 16 <255>;
+               ti,debounce-max = /bits/ 16 <30>;
+               ti,debounce-tol = /bits/ 16 <10>;
+               ti,debounce-rep = /bits/ 16 <1>;
+               wakeup-source;
+       };
+ };
+ &mac_sw {
+       status = "okay";
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&cpsw_pins_default>;
+       pinctrl-1 = <&cpsw_pins_sleep>;
+ };
+ &cpsw_port1 {
+       phy-handle = <&ethphy0>;
+       phy-mode = "rgmii-txid";
+       ti,dual-emac-pvid = <1>;
+ };
+ &cpsw_port2 {
+       phy-handle = <&ethphy1>;
+       phy-mode = "rgmii-txid";
+       ti,dual-emac-pvid = <2>;
+ };
+ &davinci_mdio_sw {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&davinci_mdio_pins_default>;
+       pinctrl-1 = <&davinci_mdio_pins_sleep>;
+       ethphy0: ethernet-phy@0 {
+               reg = <0>;
+       };
+       ethphy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+ };
+ &usb2_phy1 {
+       phy-supply = <&ldousb_reg>;
+ };
+ &usb2_phy2 {
+       phy-supply = <&ldousb_reg>;
+ };
+ &usb1 {
+       dr_mode = "host";
+ };
+ &usb2 {
+       dr_mode = "host";
+ };
+ &mcasp3 {
+       #sound-dai-cells = <0>;
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&mcasp3_pins_default>;
+       pinctrl-1 = <&mcasp3_pins_sleep>;
+       status = "okay";
+       op-mode = <0>;  /* MCASP_IIS_MODE */
+       tdm-slots = <2>;
+       /* 4 serializers */
+       serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
+               1 2 0 0
+       >;
+ };
+ &gpio3_target {
+       ti,no-reset-on-init;
+ };
+ &gpio2_target {
+       status = "okay";
+       ti,no-reset-on-init;
+ };
+ &pruss1_mdio {
+       status = "disabled";
+ };
+ &pruss2_mdio {
+       status = "disabled";
+ };
index 0000000,f6cd7a3..950a29f
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,326 +1,326 @@@
 -              pendown-gpio = <&gpio2 25 GPIO_ACTIVE_HIGH>;
+ // SPDX-License-Identifier: GPL-2.0
+ /*
+  * Common support for CompuLab CM-T3x CoMs
+  */
+ / {
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x10000000>; /* 256 MB */
+       };
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&green_led_pins>;
+               ledb {
+                       label = "cm-t3x:green";
+                       gpios = <&gpio6 26 GPIO_ACTIVE_HIGH>;  /* gpio186 */
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+       /* HS USB Port 1 Power */
+       hsusb1_power: hsusb1_power_reg {
+               compatible = "regulator-fixed";
+               regulator-name = "hsusb1_vbus";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               startup-delay-us = <70000>;
+       };
+       /* HS USB Port 2 Power */
+       hsusb2_power: hsusb2_power_reg {
+               compatible = "regulator-fixed";
+               regulator-name = "hsusb2_vbus";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               startup-delay-us = <70000>;
+       };
+       /* HS USB Host PHY on PORT 1 */
+       hsusb1_phy: hsusb1_phy {
+               compatible = "usb-nop-xceiv";
+               vcc-supply = <&hsusb1_power>;
+               #phy-cells = <0>;
+       };
+       /* HS USB Host PHY on PORT 2 */
+       hsusb2_phy: hsusb2-phy-pins {
+               compatible = "usb-nop-xceiv";
+               vcc-supply = <&hsusb2_power>;
+               #phy-cells = <0>;
+       };
+       ads7846reg: ads7846-reg {
+               compatible = "regulator-fixed";
+               regulator-name = "ads7846-reg";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+       tv0: svideo-connector {
+               compatible = "svideo-connector";
+               label = "tv";
+               port {
+                       tv_connector_in: endpoint {
+                               remote-endpoint = <&venc_out>;
+                       };
+               };
+       };
+ };
+ &omap3_pmx_core {
+       uart3_pins: uart3-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT  | MUX_MODE0)       /* uart3_rx_irrx.uart3_rx_irrx */
+                       OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0)       /* uart3_tx_irtx.uart3_tx_irtx */
+               >;
+       };
+       mmc1_pins: mmc1-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk.sdmmc1_clk */
+                       OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd.sdmmc1_cmd */
+                       OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0.sdmmc1_dat0 */
+                       OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1.sdmmc1_dat1 */
+                       OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2.sdmmc1_dat2 */
+                       OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3.sdmmc1_dat3 */
+               >;
+       };
+       green_led_pins: green-led-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x21e2, PIN_OUTPUT | MUX_MODE4)       /* sys_clkout2.gpio_186 */
+               >;
+       };
+       dss_dpi_pins_common: dss-dpi-common-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0)       /* dss_pclk.dss_pclk */
+                       OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0)       /* dss_hsync.dss_hsync */
+                       OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0)       /* dss_vsync.dss_vsync */
+                       OMAP3_CORE1_IOPAD(0x20da, PIN_OUTPUT | MUX_MODE0)       /* dss_acbias.dss_acbias */
+                       OMAP3_CORE1_IOPAD(0x20e8, PIN_OUTPUT | MUX_MODE0)       /* dss_data6.dss_data6 */
+                       OMAP3_CORE1_IOPAD(0x20ea, PIN_OUTPUT | MUX_MODE0)       /* dss_data7.dss_data7 */
+                       OMAP3_CORE1_IOPAD(0x20ec, PIN_OUTPUT | MUX_MODE0)       /* dss_data8.dss_data8 */
+                       OMAP3_CORE1_IOPAD(0x20ee, PIN_OUTPUT | MUX_MODE0)       /* dss_data9.dss_data9 */
+                       OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE0)       /* dss_data10.dss_data10 */
+                       OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE0)       /* dss_data11.dss_data11 */
+                       OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE0)       /* dss_data12.dss_data12 */
+                       OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE0)       /* dss_data13.dss_data13 */
+                       OMAP3_CORE1_IOPAD(0x20f8, PIN_OUTPUT | MUX_MODE0)       /* dss_data14.dss_data14 */
+                       OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT | MUX_MODE0)       /* dss_data15.dss_data15 */
+                       OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE0)       /* dss_data16.dss_data16 */
+                       OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE0)       /* dss_data17.dss_data17 */
+                       OMAP3_CORE1_IOPAD(0x2100, PIN_OUTPUT | MUX_MODE0)       /* dss_data18.dss_data18 */
+                       OMAP3_CORE1_IOPAD(0x2102, PIN_OUTPUT | MUX_MODE0)       /* dss_data19.dss_data19 */
+                       OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE0)       /* dss_data20.dss_data20 */
+                       OMAP3_CORE1_IOPAD(0x2106, PIN_OUTPUT | MUX_MODE0)       /* dss_data21.dss_data21 */
+                       OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE0)       /* dss_data22.dss_data22 */
+                       OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE0)       /* dss_data23.dss_data23 */
+               >;
+       };
+       dss_dpi_pins_cm_t35x: dss-dpi-cm-t35x-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE0)       /* dss_data0.dss_data0 */
+                       OMAP3_CORE1_IOPAD(0x20de, PIN_OUTPUT | MUX_MODE0)       /* dss_data1.dss_data1 */
+                       OMAP3_CORE1_IOPAD(0x20e0, PIN_OUTPUT | MUX_MODE0)       /* dss_data2.dss_data2 */
+                       OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE0)       /* dss_data3.dss_data3 */
+                       OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE0)       /* dss_data4.dss_data4 */
+                       OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE0)       /* dss_data5.dss_data5 */
+               >;
+       };
+       ads7846_pins: ads7846-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x20ba, PIN_INPUT_PULLUP | MUX_MODE4) /* gpmc_ncs6.gpio_57 */
+               >;
+       };
+       mcspi1_pins: mcspi1-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x21c8, PIN_INPUT | MUX_MODE0)        /* mcspi1_clk */
+                       OMAP3_CORE1_IOPAD(0x21ca, PIN_INPUT | MUX_MODE0)        /* mcspi1_simo */
+                       OMAP3_CORE1_IOPAD(0x21cc, PIN_INPUT | MUX_MODE0)        /* mcspi1_somi */
+                       OMAP3_CORE1_IOPAD(0x21ce, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcspi1_cs0 */
+               >;
+       };
+       i2c1_pins: i2c1-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x21ba, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */
+                       OMAP3_CORE1_IOPAD(0x21bc, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */
+               >;
+       };
+       mcbsp2_pins: mcbsp2-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x213c, PIN_INPUT | MUX_MODE0)        /* mcbsp2_fsx */
+                       OMAP3_CORE1_IOPAD(0x213e, PIN_INPUT | MUX_MODE0)        /* mcbsp2_clkx */
+                       OMAP3_CORE1_IOPAD(0x2140, PIN_INPUT | MUX_MODE0)        /* mcbsp2_dr */
+                       OMAP3_CORE1_IOPAD(0x2142, PIN_OUTPUT | MUX_MODE0)       /* mcbsp2_dx */
+               >;
+       };
+ };
+ &uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart3_pins>;
+ };
+ &mmc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc1_pins>;
+       bus-width = <4>;
+ };
+ &mmc3 {
+       status = "disabled";
+ };
+ &i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins>;
+       clock-frequency = <400000>;
+       at24@50 {
+               compatible = "atmel,24c02";
+               pagesize = <16>;
+               reg = <0x50>;
+       };
+ };
+ &i2c3 {
+       clock-frequency = <400000>;
+ };
+ &usbhshost {
+       port1-mode = "ehci-phy";
+       port2-mode = "ehci-phy";
+ };
+ &usbhsehci {
+       phys = <&hsusb1_phy &hsusb2_phy>;
+ };
+ &mcspi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcspi1_pins>;
+       /* touch controller */
+       ads7846@0 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&ads7846_pins>;
+               compatible = "ti,ads7846";
+               vcc-supply = <&ads7846reg>;
+               reg = <0>;                      /* CS0 */
+               spi-max-frequency = <1500000>;
+               interrupt-parent = <&gpio2>;
+               interrupts = <25 0>;            /* gpio_57 */
++              pendown-gpio = <&gpio2 25 GPIO_ACTIVE_LOW>;
+               ti,x-min = /bits/ 16 <0x0>;
+               ti,x-max = /bits/ 16 <0x0fff>;
+               ti,y-min = /bits/ 16 <0x0>;
+               ti,y-max = /bits/ 16 <0x0fff>;
+               ti,x-plate-ohms = /bits/ 16 <180>;
+               ti,pressure-max = /bits/ 16 <255>;
+               ti,debounce-max = /bits/ 16 <30>;
+               ti,debounce-tol = /bits/ 16 <10>;
+               ti,debounce-rep = /bits/ 16 <1>;
+               wakeup-source;
+       };
+ };
+ &venc {
+       status = "okay";
+       port {
+               venc_out: endpoint {
+                       remote-endpoint = <&tv_connector_in>;
+                       ti,channels = <2>;
+               };
+       };
+ };
+ &mcbsp2 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcbsp2_pins>;
+ };
+ &gpmc {
+       ranges = <0 0 0x30000000 0x01000000>;   /* CS0: 16MB for NAND */
+       nand@0,0 {
+               compatible = "ti,omap2-nand";
+               reg = <0 0 4>;  /* CS0, offset 0, IO size 4 */
+               interrupt-parent = <&gpmc>;
+               interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
+                            <1 IRQ_TYPE_NONE>; /* termcount */
+               nand-bus-width = <8>;
+               gpmc,device-width = <1>;
+               ti,nand-ecc-opt = "sw";
+               gpmc,cs-on-ns = <0>;
+               gpmc,cs-rd-off-ns = <120>;
+               gpmc,cs-wr-off-ns = <120>;
+               gpmc,adv-on-ns = <0>;
+               gpmc,adv-rd-off-ns = <120>;
+               gpmc,adv-wr-off-ns = <120>;
+               gpmc,we-on-ns = <6>;
+               gpmc,we-off-ns = <90>;
+               gpmc,oe-on-ns = <6>;
+               gpmc,oe-off-ns = <90>;
+               gpmc,page-burst-access-ns = <6>;
+               gpmc,access-ns = <72>;
+               gpmc,cycle2cycle-delay-ns = <60>;
+               gpmc,rd-cycle-ns = <120>;
+               gpmc,wr-cycle-ns = <120>;
+               gpmc,wr-access-ns = <186>;
+               gpmc,wr-data-mux-bus-ns = <90>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               partition@0 {
+                       label = "xloader";
+                       reg = <0 0x80000>;
+               };
+               partition@80000 {
+                       label = "uboot";
+                       reg = <0x80000 0x1e0000>;
+               };
+               partition@260000 {
+                       label = "uboot environment";
+                       reg = <0x260000 0x40000>;
+               };
+               partition@2a0000 {
+                       label = "linux";
+                       reg = <0x2a0000 0x400000>;
+               };
+               partition@6a0000 {
+                       label = "rootfs";
+                       reg = <0x6a0000 0x1f880000>;
+               };
+       };
+ };
index 0000000,3decc2d..a7f99ae
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,73 +1,73 @@@
 -              pendown-gpio = <&gpio1 27 GPIO_ACTIVE_HIGH>;
+ // SPDX-License-Identifier: GPL-2.0-only
+ /*
+  * Author: Anthoine Bourgeois <anthoine.bourgois@gmail.com>
+  */
+ #include "omap3-devkit8000-common.dtsi"
+ / {
+       aliases {
+               display0 = &lcd0;
+               display1 = &dvi0;
+               display2 = &tv0;
+       };
+       lcd0: display {
+               compatible = "panel-dpi";
+               label = "lcd";
+               enable-gpios = <&twl_gpio 18 GPIO_ACTIVE_HIGH>;
+               port {
+                       lcd_in: endpoint {
+                               remote-endpoint = <&dpi_lcd_out>;
+                       };
+               };
+       };
+ };
+ &dss {
+       port {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               dpi_lcd_out: endpoint@1 {
+                       reg = <1>;
+                       remote-endpoint = <&lcd_in>;
+                       data-lines = <24>;
+               };
+       };
+ };
+ &vio {
+       regulator-min-microvolt = <1800000>;
+       regulator-max-microvolt = <1800000>;
+ };
+ &mcspi2 {
+       /* touch controller */
+       ads7846@0 {
+               compatible = "ti,ads7846";
+               vcc-supply = <&vio>;
+               reg = <0>;                      /* CS0 */
+               spi-max-frequency = <1500000>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <27 0>;            /* gpio_27 */
++              pendown-gpio = <&gpio1 27 GPIO_ACTIVE_LOW>;
+               ti,x-min = /bits/ 16 <0x0>;
+               ti,x-max = /bits/ 16 <0x0fff>;
+               ti,y-min = /bits/ 16 <0x0>;
+               ti,y-max = /bits/ 16 <0x0fff>;
+               ti,x-plate-ohms = /bits/ 16 <180>;
+               ti,pressure-max = /bits/ 16 <255>;
+               ti,debounce-max = /bits/ 16 <10>;
+               ti,debounce-tol = /bits/ 16 <5>;
+               ti,debounce-rep = /bits/ 16 <1>;
+               ti,keep-vref-on = <1>;
+               ti,settle-delay-usec = /bits/ 16 <150>;
+               wakeup-source;
+       };
+ };
index 0000000,005a3d6..565a6c0
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,459 +1,459 @@@
 -              pendown-gpio = <&gpio1 8 GPIO_ACTIVE_HIGH>;
+ // SPDX-License-Identifier: GPL-2.0-or-later
+ /*
+  * Copyright (C) 2014 Christoph Fritz <chf.fritzc@googlemail.com>
+  */
+ #include "omap36xx.dtsi"
+ / {
+       model = "INCOstartec LILLY-A83X module (DM3730)";
+       compatible = "incostartec,omap3-lilly-a83x", "ti,omap3630", "ti,omap36xx", "ti,omap3";
+       chosen {
+                       bootargs = "console=ttyO0,115200n8 vt.global_cursor_default=0 consoleblank=0";
+       };
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x8000000>;   /* 128 MB */
+       };
+       leds {
+               compatible = "gpio-leds";
+               led1 {
+                       label = "lilly-a83x::led1";
+                       gpios = <&gpio1 29 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "default-on";
+               };
+       };
+       sound {
+               compatible = "ti,omap-twl4030";
+               ti,model = "lilly-a83x";
+               ti,mcbsp = <&mcbsp2>;
+       };
+       reg_vcc3: vcc3 {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+       hsusb1_phy: hsusb1_phy {
+               compatible = "usb-nop-xceiv";
+               vcc-supply = <&reg_vcc3>;
+               #phy-cells = <0>;
+       };
+ };
+ &omap3_pmx_wkup {
+       pinctrl-names = "default";
+       lan9221_pins: lan9221-pins {
+               pinctrl-single,pins = <
+                       OMAP3_WKUP_IOPAD(0x2a5a, PIN_INPUT | MUX_MODE4)   /* reserved.gpio_129 */
+               >;
+       };
+       tsc2048_pins: tsc2048-pins {
+               pinctrl-single,pins = <
+                       OMAP3_WKUP_IOPAD(0x2a16, PIN_INPUT_PULLUP | MUX_MODE4)   /* sys_boot6.gpio_8 */
+               >;
+       };
+       mmc1cd_pins: mmc1cd-pins {
+               pinctrl-single,pins = <
+                       OMAP3_WKUP_IOPAD(0x2a56, PIN_INPUT | MUX_MODE4)   /* reserved.gpio_126 */
+               >;
+       };
+ };
+ &omap3_pmx_core {
+       pinctrl-names = "default";
+       uart1_pins: uart1-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x217c, PIN_OUTPUT | MUX_MODE0)   /* uart1_tx.uart1_tx */
+                       OMAP3_CORE1_IOPAD(0x217e, PIN_OUTPUT | MUX_MODE0)   /* uart1_rts.uart1_rts */
+                       OMAP3_CORE1_IOPAD(0x2180, PIN_INPUT | MUX_MODE0)    /* uart1_cts.uart1_cts */
+                       OMAP3_CORE1_IOPAD(0x2182, PIN_INPUT | MUX_MODE0)    /* uart1_rx.uart1_rx */
+               >;
+       };
+       uart2_pins: uart2-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x2170, PIN_OUTPUT | MUX_MODE1)   /* mcbsp3_clkx.uart2_tx */
+                       OMAP3_CORE1_IOPAD(0x2172, PIN_INPUT | MUX_MODE1)    /* mcbsp3_fsx.uart2_rx */
+               >;
+       };
+       uart3_pins: uart3-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | MUX_MODE0)    /* uart3_rx_irrx.uart3_rx_irrx */
+                       OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0)   /* uart3_tx_irtx.uart3_tx_irtx */
+               >;
+       };
+       i2c1_pins: i2c1-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x21ba ,PIN_INPUT_PULLUP | MUX_MODE0)    /* i2c1_scl.i2c1_scl */
+                       OMAP3_CORE1_IOPAD(0x21bc ,PIN_INPUT_PULLUP | MUX_MODE0)    /* i2c1_sda.i2c1_sda */
+               >;
+       };
+       i2c2_pins: i2c2-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x21be, PIN_INPUT | MUX_MODE0)   /* i2c2_scl.i2c2_scl */
+                       OMAP3_CORE1_IOPAD(0x21c0, PIN_INPUT | MUX_MODE0)   /* i2c2_sda.i2c2_sda */
+               >;
+       };
+       i2c3_pins: i2c3-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x21c2, PIN_INPUT | MUX_MODE0)   /* i2c3_scl.i2c3_scl */
+                       OMAP3_CORE1_IOPAD(0x21c4, PIN_INPUT | MUX_MODE0)   /* i2c3_sda.i2c3_sda */
+               >;
+       };
+       hsusb1_pins: hsusb1-pins {
+               pinctrl-single,pins = <
+                       /* GPIO 182 controls USB-Hub reset. But USB-Phy its
+                        * reset can't be controlled. So we clamp this GPIO to
+                        * high (PIN_OFF_OUTPUT_HIGH) to always enable USB-Hub.
+                        */
+                       OMAP3_CORE1_IOPAD(0x21de, PIN_OUTPUT_PULLUP | PIN_OFF_OUTPUT_HIGH | MUX_MODE4)   /* mcspi2_cs1.gpio_182 */
+               >;
+       };
+       hsusb_otg_pins: hsusb-otg-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x21a2, PIN_INPUT | MUX_MODE0)   /* hsusb0_clk.hsusb0_clk */
+                       OMAP3_CORE1_IOPAD(0x21a4, PIN_OUTPUT | MUX_MODE0)  /* hsusb0_stp.hsusb0_stp */
+                       OMAP3_CORE1_IOPAD(0x21a6, PIN_INPUT | MUX_MODE0)   /* hsusb0_dir.hsusb0_dir */
+                       OMAP3_CORE1_IOPAD(0x21a8, PIN_INPUT | MUX_MODE0)   /* hsusb0_nxt.hsusb0_nxt */
+                       OMAP3_CORE1_IOPAD(0x21aa, PIN_INPUT | MUX_MODE0)   /* hsusb0_data0.hsusb0_data0 */
+                       OMAP3_CORE1_IOPAD(0x21ac, PIN_INPUT | MUX_MODE0)   /* hsusb0_data1.hsusb0_data1 */
+                       OMAP3_CORE1_IOPAD(0x21ae, PIN_INPUT | MUX_MODE0)   /* hsusb0_data2.hsusb0_data2 */
+                       OMAP3_CORE1_IOPAD(0x21b0, PIN_INPUT | MUX_MODE0)   /* hsusb0_data3.hsusb0_data3 */
+                       OMAP3_CORE1_IOPAD(0x21b2, PIN_INPUT | MUX_MODE0)   /* hsusb0_data4.hsusb0_data4 */
+                       OMAP3_CORE1_IOPAD(0x21b4, PIN_INPUT | MUX_MODE0)   /* hsusb0_data5.hsusb0_data5 */
+                       OMAP3_CORE1_IOPAD(0x21b6, PIN_INPUT | MUX_MODE0)   /* hsusb0_data6.hsusb0_data6 */
+                       OMAP3_CORE1_IOPAD(0x21b8, PIN_INPUT | MUX_MODE0)   /* hsusb0_data7.hsusb0_data7 */
+               >;
+       };
+       mmc1_pins: mmc1-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0)   /* sdmmc1_clk.sdmmc1_clk */
+                       OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0)   /* sdmmc1_cmd.sdmmc1_cmd */
+                       OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0)   /* sdmmc1_dat0.sdmmc1_dat0 */
+                       OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0)   /* sdmmc1_dat1.sdmmc1_dat1 */
+                       OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0)   /* sdmmc1_dat2.sdmmc1_dat2 */
+                       OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0)   /* sdmmc1_dat3.sdmmc1_dat3 */
+               >;
+       };
+       spi2_pins: spi2-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x21d6, PIN_INPUT_PULLDOWN | MUX_MODE0)   /* mcspi2_clk.mcspi2_clk */
+                       OMAP3_CORE1_IOPAD(0x21d8, PIN_INPUT_PULLDOWN | MUX_MODE0)   /* mcspi2_simo.mcspi2_simo */
+                       OMAP3_CORE1_IOPAD(0x21da, PIN_INPUT_PULLDOWN | MUX_MODE0)   /* mcspi2_somi.mcspi2_somi */
+                       OMAP3_CORE1_IOPAD(0x21dc, PIN_OUTPUT | MUX_MODE0)   /* mcspi2_cs0.mcspi2_cs0 */
+               >;
+       };
+ };
+ &omap3_pmx_core2 {
+       pinctrl-names = "default";
+       hsusb1_2_pins: hsusb1-2-pins {
+               pinctrl-single,pins = <
+                       OMAP3630_CORE2_IOPAD(0x25d8, PIN_OUTPUT | MUX_MODE3)  /* etk_clk.hsusb1_stp */
+                       OMAP3630_CORE2_IOPAD(0x25da, PIN_INPUT | MUX_MODE3)   /* etk_ctl.hsusb1_clk */
+                       OMAP3630_CORE2_IOPAD(0x25dc, PIN_INPUT | MUX_MODE3)   /* etk_d0.hsusb1_data0 */
+                       OMAP3630_CORE2_IOPAD(0x25de, PIN_INPUT | MUX_MODE3)   /* etk_d1.hsusb1_data1 */
+                       OMAP3630_CORE2_IOPAD(0x25e0, PIN_INPUT | MUX_MODE3)   /* etk_d2.hsusb1_data2 */
+                       OMAP3630_CORE2_IOPAD(0x25e2, PIN_INPUT | MUX_MODE3)   /* etk_d3.hsusb1_data7 */
+                       OMAP3630_CORE2_IOPAD(0x25e4, PIN_INPUT | MUX_MODE3)   /* etk_d4.hsusb1_data4 */
+                       OMAP3630_CORE2_IOPAD(0x25e6, PIN_INPUT | MUX_MODE3)   /* etk_d5.hsusb1_data5 */
+                       OMAP3630_CORE2_IOPAD(0x25e8, PIN_INPUT | MUX_MODE3)   /* etk_d6.hsusb1_data6 */
+                       OMAP3630_CORE2_IOPAD(0x25ea, PIN_INPUT | MUX_MODE3)   /* etk_d7.hsusb1_data3 */
+                       OMAP3630_CORE2_IOPAD(0x25ec, PIN_INPUT | MUX_MODE3)   /* etk_d8.hsusb1_dir */
+                       OMAP3630_CORE2_IOPAD(0x25ee, PIN_INPUT | MUX_MODE3)   /* etk_d9.hsusb1_nxt */
+               >;
+       };
+       gpio1_pins: gpio1-pins {
+               pinctrl-single,pins = <
+                       OMAP3630_CORE2_IOPAD(0x25fa, PIN_OUTPUT_PULLDOWN | MUX_MODE4)   /* etk_d15.gpio_29 */
+               >;
+       };
+ };
+ &gpio1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&gpio1_pins>;
+ };
+ &gpio6 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&hsusb1_pins>;
+ };
+ &i2c1 {
+       clock-frequency = <2600000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins>;
+       twl: twl@48 {
+               reg = <0x48>;
+               interrupts = <7>;   /* SYS_NIRQ cascaded to intc */
+               interrupt-parent = <&intc>;
+               twl_audio: audio {
+                       compatible = "ti,twl4030-audio";
+                       codec {
+                       };
+               };
+       };
+ };
+ #include "twl4030.dtsi"
+ #include "twl4030_omap3.dtsi"
+ &twl {
+       vmmc1: regulator-vmmc1 {
+               regulator-always-on;
+       };
+       vdd1: regulator-vdd1 {
+               regulator-always-on;
+       };
+       vdd2: regulator-vdd2 {
+               regulator-always-on;
+       };
+ };
+ &i2c2 {
+       clock-frequency = <2600000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c2_pins>;
+ };
+ &i2c3 {
+       clock-frequency = <2600000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c3_pins>;
+               gpiom1: gpio@20 {
+                       compatible = "microchip,mcp23017";
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       reg = <0x20>;
+               };
+ };
+ &uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart1_pins>;
+ };
+ &uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart2_pins>;
+ };
+ &uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart3_pins>;
+ };
+ &uart4 {
+       status = "disabled";
+ };
+ &mmc1 {
+       cd-gpios = <&gpio4 30 GPIO_ACTIVE_LOW>;
+       cd-inverted;
+       vmmc-supply = <&vmmc1>;
+       bus-width = <4>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc1_pins &mmc1cd_pins>;
+       cap-sdio-irq;
+       cap-sd-highspeed;
+       cap-mmc-highspeed;
+ };
+ &mmc2 {
+       status = "disabled";
+ };
+ &mmc3 {
+       status = "disabled";
+ };
+ &mcspi2 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi2_pins>;
+       tsc2046@0 {
+               reg = <0>;   /* CS0 */
+               compatible = "ti,tsc2046";
+               interrupt-parent = <&gpio1>;
+               interrupts = <8 0>;   /* boot6 / gpio_8 */
+               spi-max-frequency = <1000000>;
++              pendown-gpio = <&gpio1 8 GPIO_ACTIVE_LOW>;
+               vcc-supply = <&reg_vcc3>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&tsc2048_pins>;
+               ti,x-min = /bits/ 16 <300>;
+               ti,x-max = /bits/ 16 <3000>;
+               ti,y-min = /bits/ 16 <600>;
+               ti,y-max = /bits/ 16 <3600>;
+               ti,x-plate-ohms = /bits/ 16 <80>;
+               ti,pressure-max = /bits/ 16 <255>;
+               ti,swap-xy;
+               wakeup-source;
+       };
+ };
+ &usbhsehci {
+       phys = <&hsusb1_phy>;
+ };
+ &usbhshost {
+       pinctrl-names = "default";
+       pinctrl-0 = <&hsusb1_2_pins>;
+       num-ports = <2>;
+       port1-mode = "ehci-phy";
+ };
+ &usb_otg_hs {
+       pinctrl-names = "default";
+       pinctrl-0 = <&hsusb_otg_pins>;
+       interface-type = <0>;
+       usb-phy = <&usb2_phy>;
+       phys = <&usb2_phy>;
+       phy-names = "usb2-phy";
+       mode = <3>;
+       power = <50>;
+ };
+ &mcbsp2 {
+       status = "okay";
+ };
+ &gpmc {
+       ranges = <0 0 0x30000000 0x1000000>,
+               <7 0 0x15000000 0x01000000>;
+       nand@0,0 {
+               compatible = "ti,omap2-nand";
+               reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
+               interrupt-parent = <&gpmc>;
+               interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
+                            <1 IRQ_TYPE_NONE>; /* termcount */
+               nand-bus-width = <16>;
+               ti,nand-ecc-opt = "bch8";
+               /* no elm on omap3 */
+               gpmc,mux-add-data = <0>;
+               gpmc,device-width = <2>;
+               gpmc,wait-pin = <0>;
+               gpmc,wait-monitoring-ns = <0>;
+               gpmc,burst-length = <4>;
+               gpmc,cs-on-ns = <0>;
+               gpmc,cs-rd-off-ns = <100>;
+               gpmc,cs-wr-off-ns = <100>;
+               gpmc,adv-on-ns = <0>;
+               gpmc,adv-rd-off-ns = <100>;
+               gpmc,adv-wr-off-ns = <100>;
+               gpmc,oe-on-ns = <5>;
+               gpmc,oe-off-ns = <75>;
+               gpmc,we-on-ns = <5>;
+               gpmc,we-off-ns = <75>;
+               gpmc,rd-cycle-ns = <100>;
+               gpmc,wr-cycle-ns = <100>;
+               gpmc,access-ns = <60>;
+               gpmc,page-burst-access-ns = <5>;
+               gpmc,bus-turnaround-ns = <0>;
+               gpmc,cycle2cycle-samecsen;
+               gpmc,cycle2cycle-delay-ns = <50>;
+               gpmc,wr-data-mux-bus-ns = <75>;
+               gpmc,wr-access-ns = <155>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               partition@0 {
+                       label = "MLO";
+                       reg = <0 0x80000>;
+               };
+               partition@80000 {
+                       label = "u-boot";
+                       reg = <0x80000 0x1e0000>;
+               };
+               partition@260000 {
+                       label = "u-boot-environment";
+                       reg = <0x260000 0x20000>;
+               };
+               partition@280000 {
+                       label = "kernel";
+                       reg = <0x280000 0x500000>;
+               };
+               partition@780000 {
+                       label = "filesystem";
+                       reg = <0x780000 0xf880000>;
+               };
+       };
+       ethernet@7,0 {
+               compatible = "smsc,lan9221", "smsc,lan9115";
+               bank-width = <2>;
+               gpmc,mux-add-data = <2>;
+               gpmc,cs-on-ns = <10>;
+               gpmc,cs-rd-off-ns = <60>;
+               gpmc,cs-wr-off-ns = <60>;
+               gpmc,adv-on-ns = <0>;
+               gpmc,adv-rd-off-ns = <10>;
+               gpmc,adv-wr-off-ns = <10>;
+               gpmc,oe-on-ns = <10>;
+               gpmc,oe-off-ns = <60>;
+               gpmc,we-on-ns = <10>;
+               gpmc,we-off-ns = <60>;
+               gpmc,rd-cycle-ns = <100>;
+               gpmc,wr-cycle-ns = <100>;
+               gpmc,access-ns = <50>;
+               gpmc,page-burst-access-ns = <5>;
+               gpmc,bus-turnaround-ns = <0>;
+               gpmc,cycle2cycle-delay-ns = <75>;
+               gpmc,wr-data-mux-bus-ns = <15>;
+               gpmc,wr-access-ns = <75>;
+               gpmc,cycle2cycle-samecsen;
+               gpmc,cycle2cycle-diffcsen;
+               vddvario-supply = <&reg_vcc3>;
+               vdd33a-supply = <&reg_vcc3>;
+               reg-io-width = <4>;
+               interrupt-parent = <&gpio5>;
+               interrupts = <1 0x2>;
+               reg = <7 0 0xff>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&lan9221_pins>;
+               phy-mode = "mii";
+       };
+ };
index 0000000,5a8cb30..0da561a
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,163 +1,163 @@@
 -              pendown-gpio = <&gpio4 18 GPIO_ACTIVE_HIGH>;
+ // SPDX-License-Identifier: GPL-2.0-only
+ /*
+  * Copyright (C) 2014 Florian Vaussard, EPFL Mobots group
+  */
+ /*
+  * 4.3'' LCD panel output for some Gumstix Overo boards (Gallop43, Chestnut43)
+  */
+ &omap3_pmx_core {
+       dss_dpi_pins: dss-dpi-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0)       /* dss_pclk.dss_pclk */
+                       OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0)       /* dss_hsync.dss_hsync */
+                       OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0)       /* dss_vsync.dss_vsync */
+                       OMAP3_CORE1_IOPAD(0x20da, PIN_OUTPUT | MUX_MODE0)       /* dss_acbias.dss_acbias */
+                       OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE0)       /* dss_data0.dss_data0 */
+                       OMAP3_CORE1_IOPAD(0x20de, PIN_OUTPUT | MUX_MODE0)       /* dss_data1.dss_data1 */
+                       OMAP3_CORE1_IOPAD(0x20e0, PIN_OUTPUT | MUX_MODE0)       /* dss_data2.dss_data2 */
+                       OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE0)       /* dss_data3.dss_data3 */
+                       OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE0)       /* dss_data4.dss_data4 */
+                       OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE0)       /* dss_data5.dss_data5 */
+                       OMAP3_CORE1_IOPAD(0x20e8, PIN_OUTPUT | MUX_MODE0)       /* dss_data6.dss_data6 */
+                       OMAP3_CORE1_IOPAD(0x20ea, PIN_OUTPUT | MUX_MODE0)       /* dss_data7.dss_data7 */
+                       OMAP3_CORE1_IOPAD(0x20ec, PIN_OUTPUT | MUX_MODE0)       /* dss_data8.dss_data8 */
+                       OMAP3_CORE1_IOPAD(0x20ee, PIN_OUTPUT | MUX_MODE0)       /* dss_data9.dss_data9 */
+                       OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE0)       /* dss_data10.dss_data10 */
+                       OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE0)       /* dss_data11.dss_data11 */
+                       OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE0)       /* dss_data12.dss_data12 */
+                       OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE0)       /* dss_data13.dss_data13 */
+                       OMAP3_CORE1_IOPAD(0x20f8, PIN_OUTPUT | MUX_MODE0)       /* dss_data14.dss_data14 */
+                       OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT | MUX_MODE0)       /* dss_data15.dss_data15 */
+                       OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE0)       /* dss_data16.dss_data16 */
+                       OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE0)       /* dss_data17.dss_data17 */
+                       OMAP3_CORE1_IOPAD(0x2100, PIN_OUTPUT | MUX_MODE0)       /* dss_data18.dss_data18 */
+                       OMAP3_CORE1_IOPAD(0x2102, PIN_OUTPUT | MUX_MODE0)       /* dss_data19.dss_data19 */
+                       OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE0)       /* dss_data20.dss_data20 */
+                       OMAP3_CORE1_IOPAD(0x2106, PIN_OUTPUT | MUX_MODE0)       /* dss_data21.dss_data21 */
+                       OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE0)       /* dss_data22.dss_data22 */
+                       OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE0)       /* dss_data23.dss_data23 */
+               >;
+       };
+       lb035_pins: lb035-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x2174, PIN_OUTPUT | MUX_MODE4)       /* uart2_cts.gpio_144 */
+               >;
+       };
+       backlight_pins: backlight-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x2176, PIN_OUTPUT | MUX_MODE4)       /* uart2_rts.gpio_145 */
+               >;
+       };
+       mcspi1_pins: mcspi1-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x21c8, PIN_INPUT | MUX_MODE0)        /* mcspi1_clk.mcspi1_clk */
+                       OMAP3_CORE1_IOPAD(0x21ca, PIN_INPUT | MUX_MODE0)        /* mcspi1_simo.mcspi1_simo */
+                       OMAP3_CORE1_IOPAD(0x21cc, PIN_INPUT | MUX_MODE0)        /* mcspi1_somi.mcspi1_somi */
+                       OMAP3_CORE1_IOPAD(0x21ce, PIN_INPUT | MUX_MODE0)        /* mcspi1_cs0.mcspi1_cs0 */
+                       OMAP3_CORE1_IOPAD(0x21d0, PIN_INPUT | MUX_MODE0)        /* mcspi1_cs1.mcspi1_cs1 */
+               >;
+       };
+       ads7846_pins: ads7846-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x2138, PIN_INPUT_PULLDOWN | MUX_MODE4)       /* csi2_dx1.gpio_114 */
+               >;
+       };
+ };
+ /* Needed to power the DPI pins */
+ &vpll2 {
+       regulator-always-on;
+ };
+ &dss {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&dss_dpi_pins>;
+       port {
+               dpi_out: endpoint {
+                       remote-endpoint = <&lcd_in>;
+                       data-lines = <24>;
+               };
+       };
+ };
+ / {
+       aliases {
+               display0 = &lcd0;
+       };
+       ads7846reg: ads7846-reg {
+               compatible = "regulator-fixed";
+               regulator-name = "ads7846-reg";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+       backlight {
+               compatible = "gpio-backlight";
+               
+               pinctrl-names = "default";
+               pinctrl-0 = <&backlight_pins>;
+               gpios = <&gpio5 17 GPIO_ACTIVE_HIGH>;           /* gpio_145 */
+               default-on;
+       };
+ };
+ &mcspi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcspi1_pins>;
+       lcd0: display@1 {
+               compatible = "lgphilips,lb035q02";
+               label = "lcd35";
+               reg = <1>;                                      /* CS1 */
+               spi-max-frequency = <500000>;
+               spi-cpol;
+               spi-cpha;
+               pinctrl-names = "default";
+               pinctrl-0 = <&lb035_pins>;
+               enable-gpios = <&gpio5 16 GPIO_ACTIVE_HIGH>;    /* gpio_144 */
+               port {
+                       lcd_in: endpoint {
+                               remote-endpoint = <&dpi_out>;
+                       };
+               };
+       };
+       /* touch controller */
+       ads7846@0 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&ads7846_pins>;
+               compatible = "ti,ads7846";
+               vcc-supply = <&ads7846reg>;
+               reg = <0>;                              /* CS0 */
+               spi-max-frequency = <1500000>;
+               interrupt-parent = <&gpio4>;
+               interrupts = <18 0>;                    /* gpio_114 */
++              pendown-gpio = <&gpio4 18 GPIO_ACTIVE_LOW>;
+               ti,x-min = /bits/ 16 <0x0>;
+               ti,x-max = /bits/ 16 <0x0fff>;
+               ti,y-min = /bits/ 16 <0x0>;
+               ti,y-max = /bits/ 16 <0x0fff>;
+               ti,x-plate-ohms = /bits/ 16 <180>;
+               ti,pressure-max = /bits/ 16 <255>;
+               wakeup-source;
+       };
+ };
index 0000000,c489c06..981f02f
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,175 +1,175 @@@
 -              pendown-gpio = <&gpio4 18 GPIO_ACTIVE_HIGH>;
+ // SPDX-License-Identifier: GPL-2.0-only
+ /*
+  * Copyright (C) 2014 Florian Vaussard, EPFL Mobots group
+  */
+ /*
+  * 4.3'' LCD panel output for some Gumstix Overo boards (Gallop43, Chestnut43)
+  */
+ &omap3_pmx_core {
+       dss_dpi_pins: dss-dpi-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0)       /* dss_pclk.dss_pclk */
+                       OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0)       /* dss_hsync.dss_hsync */
+                       OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0)       /* dss_vsync.dss_vsync */
+                       OMAP3_CORE1_IOPAD(0x20da, PIN_OUTPUT | MUX_MODE0)       /* dss_acbias.dss_acbias */
+                       OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE0)       /* dss_data0.dss_data0 */
+                       OMAP3_CORE1_IOPAD(0x20de, PIN_OUTPUT | MUX_MODE0)       /* dss_data1.dss_data1 */
+                       OMAP3_CORE1_IOPAD(0x20e0, PIN_OUTPUT | MUX_MODE0)       /* dss_data2.dss_data2 */
+                       OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE0)       /* dss_data3.dss_data3 */
+                       OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE0)       /* dss_data4.dss_data4 */
+                       OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE0)       /* dss_data5.dss_data5 */
+                       OMAP3_CORE1_IOPAD(0x20e8, PIN_OUTPUT | MUX_MODE0)       /* dss_data6.dss_data6 */
+                       OMAP3_CORE1_IOPAD(0x20ea, PIN_OUTPUT | MUX_MODE0)       /* dss_data7.dss_data7 */
+                       OMAP3_CORE1_IOPAD(0x20ec, PIN_OUTPUT | MUX_MODE0)       /* dss_data8.dss_data8 */
+                       OMAP3_CORE1_IOPAD(0x20ee, PIN_OUTPUT | MUX_MODE0)       /* dss_data9.dss_data9 */
+                       OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE0)       /* dss_data10.dss_data10 */
+                       OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE0)       /* dss_data11.dss_data11 */
+                       OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE0)       /* dss_data12.dss_data12 */
+                       OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE0)       /* dss_data13.dss_data13 */
+                       OMAP3_CORE1_IOPAD(0x20f8, PIN_OUTPUT | MUX_MODE0)       /* dss_data14.dss_data14 */
+                       OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT | MUX_MODE0)       /* dss_data15.dss_data15 */
+                       OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE0)       /* dss_data16.dss_data16 */
+                       OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE0)       /* dss_data17.dss_data17 */
+                       OMAP3_CORE1_IOPAD(0x2100, PIN_OUTPUT | MUX_MODE0)       /* dss_data18.dss_data18 */
+                       OMAP3_CORE1_IOPAD(0x2102, PIN_OUTPUT | MUX_MODE0)       /* dss_data19.dss_data19 */
+                       OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE0)       /* dss_data20.dss_data20 */
+                       OMAP3_CORE1_IOPAD(0x2106, PIN_OUTPUT | MUX_MODE0)       /* dss_data21.dss_data21 */
+                       OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE0)       /* dss_data22.dss_data22 */
+                       OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE0)       /* dss_data23.dss_data23 */
+               >;
+       };
+       lte430_pins: lte430-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x2174, PIN_OUTPUT | MUX_MODE4)       /* uart2_cts.gpio_144 */
+               >;
+       };
+       backlight_pins: backlight-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x2176, PIN_OUTPUT | MUX_MODE4)       /* uart2_rts.gpio_145 */
+               >;
+       };
+       mcspi1_pins: mcspi1-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x21c8, PIN_INPUT | MUX_MODE0)        /* mcspi1_clk.mcspi1_clk */
+                       OMAP3_CORE1_IOPAD(0x21ca, PIN_INPUT | MUX_MODE0)        /* mcspi1_simo.mcspi1_simo */
+                       OMAP3_CORE1_IOPAD(0x21cc, PIN_INPUT | MUX_MODE0)        /* mcspi1_somi.mcspi1_somi */
+                       OMAP3_CORE1_IOPAD(0x21ce, PIN_INPUT | MUX_MODE0)        /* mcspi1_cs0.mcspi1_cs0 */
+               >;
+       };
+       ads7846_pins: ads7846-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x2138, PIN_INPUT_PULLDOWN | MUX_MODE4)       /* csi2_dx1.gpio_114 */
+               >;
+       };
+ };
+ /* Needed to power the DPI pins */
+ &vpll2 {
+       regulator-always-on;
+ };
+ &dss {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&dss_dpi_pins>;
+       port {
+               dpi_out: endpoint {
+                       remote-endpoint = <&lcd_in>;
+                       data-lines = <24>;
+               };
+       };
+ };
+ / {
+       aliases {
+               display0 = &lcd0;
+       };
+       lcd0: display {
+               compatible = "samsung,lte430wq-f0c", "panel-dpi";
+               label = "lcd43";
+               pinctrl-names = "default";
+               pinctrl-0 = <&lte430_pins>;
+               enable-gpios = <&gpio5 16 GPIO_ACTIVE_HIGH>;            /* gpio_144 */
+               port {
+                       lcd_in: endpoint {
+                               remote-endpoint = <&dpi_out>;
+                       };
+               };
+               panel-timing {
+                       clock-frequency = <9200000>;
+                       hactive = <480>;
+                       vactive = <272>;
+                       hfront-porch = <8>;
+                       hback-porch = <4>;
+                       hsync-len = <41>;
+                       vback-porch = <2>;
+                       vfront-porch = <4>;
+                       vsync-len = <10>;
+                       hsync-active = <0>;
+                       vsync-active = <0>;
+                       de-active = <1>;
+                       pixelclk-active = <1>;
+               };
+       };
+       ads7846reg: ads7846-reg {
+               compatible = "regulator-fixed";
+               regulator-name = "ads7846-reg";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+       backlight {
+               compatible = "gpio-backlight";
+               
+               pinctrl-names = "default";
+               pinctrl-0 = <&backlight_pins>;
+               gpios = <&gpio5 17 GPIO_ACTIVE_HIGH>;           /* gpio_145 */
+               default-on;
+       };
+ };
+ &mcspi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcspi1_pins>;
+       /* touch controller */
+       ads7846@0 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&ads7846_pins>;
+               compatible = "ti,ads7846";
+               vcc-supply = <&ads7846reg>;
+               reg = <0>;                              /* CS0 */
+               spi-max-frequency = <1500000>;
+               interrupt-parent = <&gpio4>;
+               interrupts = <18 0>;                    /* gpio_114 */
++              pendown-gpio = <&gpio4 18 GPIO_ACTIVE_LOW>;
+               ti,x-min = /bits/ 16 <0x0>;
+               ti,x-max = /bits/ 16 <0x0fff>;
+               ti,y-min = /bits/ 16 <0x0>;
+               ti,y-max = /bits/ 16 <0x0fff>;
+               ti,x-plate-ohms = /bits/ 16 <180>;
+               ti,pressure-max = /bits/ 16 <255>;
+               wakeup-source;
+       };
+ };
index 0000000,e91000f..06c5b23
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,730 +1,730 @@@
 -              pendown-gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
+ // SPDX-License-Identifier: GPL-2.0-only
+ /*
+  * Copyright (C) 2015
+  *   Nikolaus Schaller <hns@goldelico.com>
+  *
+  * Common device tree include for OpenPandora devices.
+  */
+ #include <dt-bindings/input/input.h>
+ / {
+       cpus {
+               cpu@0 {
+                       cpu0-supply = <&vcc>;
+               };
+       };
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x20000000>; /* 512 MB */
+       };
+       aliases {
+               display0 = &lcd;
+       };
+       /* fixed 26MHz oscillator */
+       hfclk_26m: oscillator {
+               #clock-cells = <0>;
+               compatible = "fixed-clock";
+               clock-frequency = <26000000>;
+       };
+       tv: connector {
+               compatible = "connector-analog-tv";
+               label = "tv";
+               port {
+                       tv_connector_in: endpoint {
+                               remote-endpoint = <&venc_out>;
+                       };
+               };
+       };
+       gpio-leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_pins>;
+               led1 {
+                       label = "pandora::sd1";
+                       gpios = <&gpio5 0 GPIO_ACTIVE_HIGH>;    /* GPIO_128 */
+                       linux,default-trigger = "mmc0";
+                       default-state = "off";
+               };
+               led2 {
+                       label = "pandora::sd2";
+                       gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;    /* GPIO_129 */
+                       linux,default-trigger = "mmc1";
+                       default-state = "off";
+               };
+               led3 {
+                       label = "pandora::bluetooth";
+                       gpios = <&gpio5 30 GPIO_ACTIVE_HIGH>;   /* GPIO_158 */
+                       linux,default-trigger = "heartbeat";
+                       default-state = "off";
+               };
+               led4 {
+                       label = "pandora::wifi";
+                       gpios = <&gpio5 31 GPIO_ACTIVE_HIGH>;   /* GPIO_159 */
+                       linux,default-trigger = "mmc2";
+                       default-state = "off";
+               };
+       };
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&button_pins>;
+               up-button {
+                       label = "up";
+                       linux,code = <KEY_UP>;
+                       gpios = <&gpio4 14 GPIO_ACTIVE_LOW>;    /* GPIO_110 */
+                       wakeup-source;
+               };
+               down-button {
+                       label = "down";
+                       linux,code = <KEY_DOWN>;
+                       gpios = <&gpio4 7 GPIO_ACTIVE_LOW>;     /* GPIO_103 */
+                       wakeup-source;
+               };
+               left-button {
+                       label = "left";
+                       linux,code = <KEY_LEFT>;
+                       gpios = <&gpio4 0 GPIO_ACTIVE_LOW>;     /* GPIO_96 */
+                       wakeup-source;
+               };
+               right-button {
+                       label = "right";
+                       linux,code = <KEY_RIGHT>;
+                       gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;     /* GPIO_98 */
+                       wakeup-source;
+               };
+               pageup-button {
+                       label = "game 1";
+                       linux,code = <KEY_PAGEUP>;
+                       gpios = <&gpio4 13 GPIO_ACTIVE_LOW>;    /* GPIO_109 */
+                       wakeup-source;
+               };
+               pagedown-button {
+                       label = "game 3";
+                       linux,code = <KEY_PAGEDOWN>;
+                       gpios = <&gpio4 10 GPIO_ACTIVE_LOW>;    /* GPIO_106 */
+                       wakeup-source;
+               };
+               home-button {
+                       label = "game 4";
+                       linux,code = <KEY_HOME>;
+                       gpios = <&gpio4 5 GPIO_ACTIVE_LOW>;     /* GPIO_101 */
+                       wakeup-source;
+               };
+               end-button {
+                       label = "game 2";
+                       linux,code = <KEY_END>;
+                       gpios = <&gpio4 15 GPIO_ACTIVE_LOW>;    /* GPIO_111 */
+                       wakeup-source;
+               };
+               right-shift {
+                       label = "l";
+                       linux,code = <KEY_RIGHTSHIFT>;
+                       gpios = <&gpio4 6 GPIO_ACTIVE_LOW>;     /* GPIO_102 */
+                       wakeup-source;
+               };
+               kp-plus {
+                       label = "l2";
+                       linux,code = <KEY_KPPLUS>;
+                       gpios = <&gpio4 1 GPIO_ACTIVE_LOW>;     /* GPIO_97 */
+                       wakeup-source;
+               };
+               right-ctrl {
+                       label = "r";
+                       linux,code = <KEY_RIGHTCTRL>;
+                       gpios = <&gpio4 9 GPIO_ACTIVE_LOW>;     /* GPIO_105 */
+                       wakeup-source;
+               };
+               kp-minus {
+                       label = "r2";
+                       linux,code = <KEY_KPMINUS>;
+                       gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;    /* GPIO_107 */
+                       wakeup-source;
+               };
+               left-ctrl {
+                       label = "ctrl";
+                       linux,code = <KEY_LEFTCTRL>;
+                       gpios = <&gpio4 8 GPIO_ACTIVE_LOW>;     /* GPIO_104 */
+                       wakeup-source;
+               };
+               menu {
+                       label = "menu";
+                       linux,code = <KEY_MENU>;
+                       gpios = <&gpio4 3 GPIO_ACTIVE_LOW>;     /* GPIO_99 */
+                       wakeup-source;
+               };
+               hold {
+                       label = "hold";
+                       linux,code = <KEY_COFFEE>;
+                       gpios = <&gpio6 16 GPIO_ACTIVE_LOW>;    /* GPIO_176 */
+                       wakeup-source;
+               };
+               left-alt {
+                       label = "alt";
+                       linux,code = <KEY_LEFTALT>;
+                       gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>;    /* GPIO_100 */
+                       wakeup-source;
+               };
+               lid {
+                       label = "lid";
+                       linux,code = <0x00>;    /* SW_LID lid shut */
+                       linux,input-type = <0x05>;    /* EV_SW */
+                       gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;   /* GPIO_108 */
+               };
+       };
+       /* HS USB Host PHY on PORT 2 */
+       hsusb2_phy: hsusb2-phy-pins {
+               compatible = "usb-nop-xceiv";
+               reset-gpios = <&gpio1 16 GPIO_ACTIVE_LOW>; /* GPIO_16 */
+               vcc-supply = <&vaux2>;
+               #phy-cells = <0>;
+       };
+       /* HS USB Host VBUS supply
+        * disabling this regulator causes current leakage, and LCD flicker
+        * on earlier (CC) board revisions, so keep it always on */
+       usb_host_5v: fixed-regulator-usb_host_5v {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_host_5v";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+               regulator-boot-on;
+               enable-active-high;
+               gpio = <&gpio6 4 GPIO_ACTIVE_HIGH>;     /* GPIO_164 */
+       };
+       /* wl1251 wifi+bt module */
+       wlan_en: fixed-regulator-wg7210_en {
+               compatible = "regulator-fixed";
+               regulator-name = "vwlan";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               startup-delay-us = <50000>;
+               enable-active-high;
+               gpio = <&gpio1 23 GPIO_ACTIVE_HIGH>;
+       };
+       /* wg7210 (wifi+bt module) 32k clock buffer */
+       wg7210_32k: fixed-regulator-wg7210_32k {
+               compatible = "regulator-fixed";
+               regulator-name = "wg7210_32k";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+               enable-active-high;
+               gpio = <&twl_gpio 13 GPIO_ACTIVE_HIGH>;
+       };
+ };
+ &omap3_pmx_core {
+       mmc1_pins: mmc1-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc1_clk.sdmmc1_clk */
+                       OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc1_cmd.sdmmc1_cmd */
+                       OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc1_dat0.sdmmc1_dat0 */
+                       OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc1_dat1.sdmmc1_dat1 */
+                       OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc1_dat2.sdmmc1_dat2 */
+                       OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc1_dat3.sdmmc1_dat3 */
+               >;
+       };
+       mmc2_pins: mmc2-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc2_clk.sdmmc2_clk */
+                       OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc2_cmd.sdmmc2_cmd */
+                       OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc2_dat0.sdmmc2_dat0 */
+                       OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc2_dat1.sdmmc2_dat1 */
+                       OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc2_dat2.sdmmc2_dat2 */
+                       OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc2_dat3.sdmmc2_dat3 */
+                       OMAP3_CORE1_IOPAD(0x2164, PIN_OUTPUT_PULLUP | MUX_MODE1)        /* sdmmc2_dat4.sdmmc2_dirdat0 */
+                       OMAP3_CORE1_IOPAD(0x2166, PIN_OUTPUT_PULLUP | MUX_MODE1)        /* sdmmc2_dat5.sdmmc2_dirdat1 */
+                       OMAP3_CORE1_IOPAD(0x2168, PIN_OUTPUT_PULLUP | MUX_MODE1)        /* sdmmc2_dat6.sdmmc2_dircmd */
+                       OMAP3_CORE1_IOPAD(0x216a, PIN_INPUT_PULLUP | MUX_MODE1)         /* sdmmc2_dat7.sdmmc2_clkin */
+               >;
+       };
+       dss_dpi_pins: dss-dpi-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0)       /* dss_pclk.dss_pclk */
+                       OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0)       /* dss_hsync.dss_hsync */
+                       OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0)       /* dss_vsync.dss_vsync */
+                       OMAP3_CORE1_IOPAD(0x20da, PIN_OUTPUT | MUX_MODE0)       /* dss_acbias.dss_acbias */
+                       OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE0)       /* dss_data0.dss_data0 */
+                       OMAP3_CORE1_IOPAD(0x20de, PIN_OUTPUT | MUX_MODE0)       /* dss_data1.dss_data1 */
+                       OMAP3_CORE1_IOPAD(0x20e0, PIN_OUTPUT | MUX_MODE0)       /* dss_data2.dss_data2 */
+                       OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE0)       /* dss_data3.dss_data3 */
+                       OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE0)       /* dss_data4.dss_data4 */
+                       OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE0)       /* dss_data5.dss_data5 */
+                       OMAP3_CORE1_IOPAD(0x20e8, PIN_OUTPUT | MUX_MODE0)       /* dss_data6.dss_data6 */
+                       OMAP3_CORE1_IOPAD(0x20ea, PIN_OUTPUT | MUX_MODE0)       /* dss_data7.dss_data7 */
+                       OMAP3_CORE1_IOPAD(0x20ec, PIN_OUTPUT | MUX_MODE0)       /* dss_data8.dss_data8 */
+                       OMAP3_CORE1_IOPAD(0x20ee, PIN_OUTPUT | MUX_MODE0)       /* dss_data9.dss_data9 */
+                       OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE0)       /* dss_data10.dss_data10 */
+                       OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE0)       /* dss_data11.dss_data11 */
+                       OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE0)       /* dss_data12.dss_data12 */
+                       OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE0)       /* dss_data13.dss_data13 */
+                       OMAP3_CORE1_IOPAD(0x20f8, PIN_OUTPUT | MUX_MODE0)       /* dss_data14.dss_data14 */
+                       OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT | MUX_MODE0)       /* dss_data15.dss_data15 */
+                       OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE0)       /* dss_data16.dss_data16 */
+                       OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE0)       /* dss_data17.dss_data17 */
+                       OMAP3_CORE1_IOPAD(0x2100, PIN_OUTPUT | MUX_MODE0)       /* dss_data18.dss_data18 */
+                       OMAP3_CORE1_IOPAD(0x2102, PIN_OUTPUT | MUX_MODE0)       /* dss_data19.dss_data19 */
+                       OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE0)       /* dss_data20.dss_data20 */
+                       OMAP3_CORE1_IOPAD(0x2106, PIN_OUTPUT | MUX_MODE0)       /* dss_data21.dss_data21 */
+                       OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE0)       /* dss_data22.dss_data22 */
+                       OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE0)       /* dss_data23.dss_data23 */
+                       OMAP3_CORE1_IOPAD(0x218e, PIN_OUTPUT | MUX_MODE4)       /* GPIO_157 = lcd reset */
+               >;
+       };
+       uart3_pins: uart3-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */
+                       OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */
+               >;
+       };
+       led_pins: leds-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x2154, PIN_OUTPUT | MUX_MODE4)       /* GPIO_128 */
+                       OMAP3_CORE1_IOPAD(0x2156, PIN_OUTPUT | MUX_MODE4)       /* GPIO_129 */
+                       OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE4)       /* GPIO_158 */
+                       OMAP3_CORE1_IOPAD(0x2192, PIN_OUTPUT | MUX_MODE4)       /* GPIO_159 */
+               >;
+       };
+       button_pins: button-pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x2110, PIN_INPUT | MUX_MODE4)        /* GPIO_96 */
+                       OMAP3_CORE1_IOPAD(0x2112, PIN_INPUT | MUX_MODE4)        /* GPIO_97 */
+                       OMAP3_CORE1_IOPAD(0x2114, PIN_INPUT | MUX_MODE4)        /* GPIO_98 */
+                       OMAP3_CORE1_IOPAD(0x2116, PIN_INPUT | MUX_MODE4)        /* GPIO_99 */
+                       OMAP3_CORE1_IOPAD(0x2118, PIN_INPUT | MUX_MODE4)        /* GPIO_100 */
+                       OMAP3_CORE1_IOPAD(0x211a, PIN_INPUT | MUX_MODE4)        /* GPIO_101 */
+                       OMAP3_CORE1_IOPAD(0x211c, PIN_INPUT | MUX_MODE4)        /* GPIO_102 */
+                       OMAP3_CORE1_IOPAD(0x211e, PIN_INPUT | MUX_MODE4)        /* GPIO_103 */
+                       OMAP3_CORE1_IOPAD(0x2120, PIN_INPUT | MUX_MODE4)        /* GPIO_104 */
+                       OMAP3_CORE1_IOPAD(0x2122, PIN_INPUT | MUX_MODE4)        /* GPIO_105 */
+                       OMAP3_CORE1_IOPAD(0x2124, PIN_INPUT | MUX_MODE4)        /* GPIO_106 */
+                       OMAP3_CORE1_IOPAD(0x2126, PIN_INPUT | MUX_MODE4)        /* GPIO_107 */
+                       OMAP3_CORE1_IOPAD(0x2128, PIN_INPUT | MUX_MODE4)        /* GPIO_108 */
+                       OMAP3_CORE1_IOPAD(0x212a, PIN_INPUT | MUX_MODE4)        /* GPIO_109 */
+                       OMAP3_CORE1_IOPAD(0x212c, PIN_INPUT | MUX_MODE4)        /* GPIO_110 */
+                       OMAP3_CORE1_IOPAD(0x212e, PIN_INPUT | MUX_MODE4)        /* GPIO_111 */
+                       OMAP3_CORE1_IOPAD(0x21d2, PIN_INPUT | MUX_MODE4)        /* GPIO_176 */
+               >;
+       };
+       penirq_pins: penirq-pins {
+               pinctrl-single,pins = <
+                       /* here we could enable to wakeup the cpu from suspend by a pen touch */
+                       OMAP3_CORE1_IOPAD(0x210c, PIN_INPUT | MUX_MODE4)        /* GPIO_94 */
+               >;
+       };
+ };
+ &omap3_pmx_core2 {
+       /* define in CPU specific file that includes this one
+        * use either OMAP3430_CORE2_IOPAD() or OMAP3630_CORE2_IOPAD()
+        */
+ };
+ &i2c1 {
+       clock-frequency = <2600000>;
+       twl: twl@48 {
+               reg = <0x48>;
+               interrupts = <7>; /* SYS_NIRQ cascaded to intc */
+               interrupt-parent = <&intc>;
+               clocks = <&hfclk_26m>;
+               clock-names = "fck";
+               twl_power: power {
+                       compatible = "ti,twl4030-power-reset";
+                       ti,use_poweroff;
+               };
+               twl_audio: audio {
+                       compatible = "ti,twl4030-audio";
+                       codec {
+                               ti,ramp_delay_value = <3>;
+                       };
+               };
+       };
+ };
+ #include "twl4030.dtsi"
+ #include "twl4030_omap3.dtsi"
+ &twl_keypad {
+       keypad,num-rows = <8>;
+       keypad,num-columns = <6>;
+       linux,keymap = <
+               MATRIX_KEY(0, 0, KEY_9)
+               MATRIX_KEY(0, 1, KEY_8)
+               MATRIX_KEY(0, 2, KEY_I)
+               MATRIX_KEY(0, 3, KEY_J)
+               MATRIX_KEY(0, 4, KEY_N)
+               MATRIX_KEY(0, 5, KEY_M)
+               MATRIX_KEY(1, 0, KEY_0)
+               MATRIX_KEY(1, 1, KEY_7)
+               MATRIX_KEY(1, 2, KEY_U)
+               MATRIX_KEY(1, 3, KEY_H)
+               MATRIX_KEY(1, 4, KEY_B)
+               MATRIX_KEY(1, 5, KEY_SPACE)
+               MATRIX_KEY(2, 0, KEY_BACKSPACE)
+               MATRIX_KEY(2, 1, KEY_6)
+               MATRIX_KEY(2, 2, KEY_Y)
+               MATRIX_KEY(2, 3, KEY_G)
+               MATRIX_KEY(2, 4, KEY_V)
+               MATRIX_KEY(2, 5, KEY_FN)
+               MATRIX_KEY(3, 0, KEY_O)
+               MATRIX_KEY(3, 1, KEY_5)
+               MATRIX_KEY(3, 2, KEY_T)
+               MATRIX_KEY(3, 3, KEY_F)
+               MATRIX_KEY(3, 4, KEY_C)
+               MATRIX_KEY(4, 0, KEY_P)
+               MATRIX_KEY(4, 1, KEY_4)
+               MATRIX_KEY(4, 2, KEY_R)
+               MATRIX_KEY(4, 3, KEY_D)
+               MATRIX_KEY(4, 4, KEY_X)
+               MATRIX_KEY(5, 0, KEY_K)
+               MATRIX_KEY(5, 1, KEY_3)
+               MATRIX_KEY(5, 2, KEY_E)
+               MATRIX_KEY(5, 3, KEY_S)
+               MATRIX_KEY(5, 4, KEY_Z)
+               MATRIX_KEY(6, 0, KEY_L)
+               MATRIX_KEY(6, 1, KEY_2)
+               MATRIX_KEY(6, 2, KEY_W)
+               MATRIX_KEY(6, 3, KEY_A)
+               MATRIX_KEY(6, 4, KEY_RIGHTBRACE)
+               MATRIX_KEY(7, 0, KEY_ENTER)
+               MATRIX_KEY(7, 1, KEY_1)
+               MATRIX_KEY(7, 2, KEY_Q)
+               MATRIX_KEY(7, 3, KEY_LEFTSHIFT)
+               MATRIX_KEY(7, 4, KEY_LEFTBRACE )
+        >;
+ };
+ /* backup battery charger */
+ &charger {
+       ti,bb-uvolt = <3200000>;
+       ti,bb-uamp = <150>;
+ };
+ /* MMC2 */
+ &vmmc2 {
+       regulator-min-microvolt = <1850000>;
+       regulator-max-microvolt = <3150000>;
+ };
+ /* LCD */
+ &vaux1 {
+       regulator-min-microvolt = <3000000>;
+       regulator-max-microvolt = <3000000>;
+ };
+ /* USB Host PHY */
+ &vaux2 {
+       regulator-min-microvolt = <1800000>;
+       regulator-max-microvolt = <1800000>;
+ };
+ /* available on expansion connector */
+ &vaux3 {
+       regulator-min-microvolt = <2800000>;
+       regulator-max-microvolt = <2800000>;
+ };
+ /* ADS7846 and nubs */
+ &vaux4 {
+       regulator-min-microvolt = <2800000>;
+       regulator-max-microvolt = <2800000>;
+ };
+ /* power audio DAC and LID sensor */
+ &vsim {
+       regulator-min-microvolt = <2800000>;
+       regulator-max-microvolt = <2800000>;
+       regulator-always-on;
+ };
+ &i2c2 {
+       clock-frequency = <100000>;
+       /* no clients so we should disable clock */
+ };
+ &i2c3 {
+       clock-frequency = <100000>;
+       bq27500@55 {
+               compatible = "ti,bq27500";
+               reg = <0x55>;
+       };
+ };
+ &usb_otg_hs {
+       interface-type = <0>;
+       usb-phy = <&usb2_phy>;
+       phys = <&usb2_phy>;
+       phy-names = "usb2-phy";
+       mode = <3>;
+       power = <50>;
+ };
+ /*
+  * Many pandora boards have been produced with defective write-protect switches
+  * on either slot, so it was decided not to use this feature. If you know
+  * your board has good switches, feel free to uncomment wp-gpios below.
+  */
+ &mmc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc1_pins>;
+       vmmc-supply = <&vmmc1>;
+       bus-width = <4>;
+       cd-gpios = <&twl_gpio 0 GPIO_ACTIVE_LOW>;
+       /*wp-gpios = <&gpio4 30 GPIO_ACTIVE_HIGH>;*/    /* GPIO_126 */
+ };
+ &mmc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc2_pins>;
+       vmmc-supply = <&vmmc2>;
+       bus-width = <4>;
+       cd-gpios = <&twl_gpio 1 GPIO_ACTIVE_LOW>;
+       /*wp-gpios = <&gpio4 31 GPIO_ACTIVE_HIGH>;*/    /* GPIO_127 */
+ };
+ &mmc3 {
+       vmmc-supply = <&wlan_en>;
+       bus-width = <4>;
+       non-removable;
+       ti,non-removable;
+       cap-power-off-card;
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc3_pins>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+       wlan: wifi@1 {
+               compatible = "ti,wl1251";
+               reg = <1>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <21 IRQ_TYPE_LEVEL_HIGH>;  /* GPIO_21 */
+               ti,wl1251-has-eeprom;
+       };
+ };
+ /* bluetooth*/
+ &uart1 {
+ };
+ /* spare (expansion connector) */
+ &uart2 {
+ };
+ /* console (expansion connector) */
+ &uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart3_pins>;
+       interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
+ };
+ &usbhshost {
+       port2-mode = "ehci-phy";
+ };
+ &usbhsehci {
+       phys = <0 &hsusb2_phy>;
+ };
+ &gpmc {
+       ranges = <0 0 0x30000000 0x1000000>; /* CS0: 16MB for NAND */
+       nand@0,0 {
+               compatible = "ti,omap2-nand";
+               reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
+               interrupt-parent = <&gpmc>;
+               interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
+                            <1 IRQ_TYPE_NONE>; /* termcount */
+               nand-bus-width = <16>;
+               ti,nand-ecc-opt = "sw";
+               gpmc,sync-clk-ps = <0>;
+               gpmc,cs-on-ns = <0>;
+               gpmc,cs-rd-off-ns = <44>;
+               gpmc,cs-wr-off-ns = <44>;
+               gpmc,adv-on-ns = <6>;
+               gpmc,adv-rd-off-ns = <34>;
+               gpmc,adv-wr-off-ns = <44>;
+               gpmc,we-off-ns = <40>;
+               gpmc,oe-off-ns = <54>;
+               gpmc,access-ns = <64>;
+               gpmc,rd-cycle-ns = <82>;
+               gpmc,wr-cycle-ns = <82>;
+               gpmc,wr-access-ns = <40>;
+               gpmc,wr-data-mux-bus-ns = <0>;
+               gpmc,device-width = <2>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               /* u-boot uses mtdparts=nand:512k(xloader),1920k(uboot),128k(uboot-env),10m(boot),-(rootfs) */
+               x-loader@0 {
+                       label = "xloader";
+                       reg = <0 0x80000>;
+               };
+               bootloaders@80000 {
+                       label = "uboot";
+                       reg = <0x80000 0x1e0000>;
+               };
+               bootloaders_env@260000 {
+                       label = "uboot-env";
+                       reg = <0x260000 0x20000>;
+               };
+               kernel@280000 {
+                       label = "boot";
+                       reg = <0x280000 0xa00000>;
+               };
+               filesystem@c80000 {
+                       label = "rootfs";
+                       reg = <0xc80000 0>;     /* 0 = MTDPART_SIZ_FULL */
+               };
+       };
+ };
+ &mcspi1 {
+       tsc2046@0 {
+               reg = <0>;      /* CS0 */
+               compatible = "ti,tsc2046";
+               spi-max-frequency = <1000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&penirq_pins>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <30 IRQ_TYPE_NONE>;        /* GPIO_94 */
++              pendown-gpio = <&gpio3 30 GPIO_ACTIVE_LOW>;
+               vcc-supply = <&vaux4>;
+               ti,x-min = /bits/ 16 <0>;
+               ti,x-max = /bits/ 16 <8000>;
+               ti,y-min = /bits/ 16 <0>;
+               ti,y-max = /bits/ 16 <4800>;
+               ti,x-plate-ohms = /bits/ 16 <40>;
+               ti,pressure-max = /bits/ 16 <255>;
+               wakeup-source;
+       };
+       lcd: lcd@1 {
+               reg = <1>;      /* CS1 */
+               compatible = "tpo,td043mtea1";
+               spi-max-frequency = <100000>;
+               spi-cpol;
+               spi-cpha;
+               label = "lcd";
+               reset-gpios = <&gpio5 29 GPIO_ACTIVE_LOW>;      /* GPIO_157 */
+               vcc-supply = <&vaux1>;
+               port {
+                       lcd_in: endpoint {
+                               remote-endpoint = <&dpi_out>;
+                       };
+               };
+       };
+ };
+ /* n/a - used as GPIOs */
+ &mcbsp1 {
+ };
+ /* audio DAC */
+ &mcbsp2 {
+ };
+ /* bluetooth */
+ &mcbsp3 {
+ };
+ /* to twl4030*/
+ &mcbsp4 {
+ };
+ &venc {
+       status = "okay";
+       vdda-supply = <&vdac>;
+       port {
+               venc_out: endpoint {
+                       remote-endpoint = <&tv_connector_in>;
+                       ti,channels = <2>;
+               };
+       };
+ };
+ &dss {
+       pinctrl-names = "default";
+       pinctrl-0 = < &dss_dpi_pins >;
+       status = "okay";
+       vdds_dsi-supply = <&vpll2>;
+       port {
+               dpi_out: endpoint {
+                       remote-endpoint = <&lcd_in>;
+                       data-lines = <24>;
+               };
+       };
+ };
index 0000000,abe0b38..6767382
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,697 +1,697 @@@
 -              pendown-gpio = <&gpio1 15 GPIO_ACTIVE_HIGH>;
+ // SPDX-License-Identifier: GPL-2.0
+ /*
+  * Support for CompuLab CM-T54
+  */
+ /dts-v1/;
+ #include "omap5.dtsi"
+ #include <dt-bindings/interrupt-controller/irq.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ / {
+       model = "CompuLab CM-T54";
+       compatible = "compulab,omap5-cm-t54", "ti,omap5";
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0 0x80000000 0 0x7f000000>; /* 2048 MB */
+       };
+       aliases {
+               display0 = &hdmi0;
+               display1 = &dvi0;
+               display2 = &lcd0;
+       };
+       vmmcsd_fixed: fixed-regulator-mmcsd {
+               compatible = "regulator-fixed";
+               regulator-name = "vmmcsd_fixed";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+       vwlan_pdn_fixed: fixed-regulator-vwlan-pdn {
+               compatible = "regulator-fixed";
+               regulator-name = "vwlan_pdn_fixed";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&ldo2_reg>;
+               gpio = <&gpio4 13 GPIO_ACTIVE_HIGH>;   /* gpio4_109 */
+               startup-delay-us = <1000>;
+               enable-active-high;
+       };
+       vwlan_fixed: fixed-regulator-vwlan {
+               compatible = "regulator-fixed";
+               regulator-name = "vwlan_fixed";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vwlan_pdn_fixed>;
+               gpio = <&gpio4 14 GPIO_ACTIVE_HIGH>;   /* gpio4_110 */
+               startup-delay-us = <1000>;
+               enable-active-high;
+       };
+       ads7846reg: ads7846-reg {
+               compatible = "regulator-fixed";
+               regulator-name = "ads7846-reg";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+       /* HS USB Host PHY on PORT 2 */
+       hsusb2_phy: hsusb2-phy-pins {
+               compatible = "usb-nop-xceiv";
+               reset-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; /* gpio3_76 HUB_RESET */
+               #phy-cells = <0>;
+       };
+       /* HS USB Host PHY on PORT 3 */
+       hsusb3_phy: hsusb3_phy {
+               compatible = "usb-nop-xceiv";
+               reset-gpios = <&gpio3 19 GPIO_ACTIVE_LOW>; /* gpio3_83 ETH_RESET */
+               #phy-cells = <0>;
+       };
+       leds {
+               compatible = "gpio-leds";
+               led1 {
+                       label = "Heartbeat";
+                       gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>; /* gpio3_80 ACT_LED */
+                       linux,default-trigger = "heartbeat";
+                       default-state = "off";
+               };
+       };
+       lcd0: display {
+               compatible = "startek,startek-kd050c", "panel-dpi";
+               label = "lcd";
+               pinctrl-names = "default";
+               pinctrl-0 = <&lcd_pins>;
+               enable-gpios = <&gpio8 3 GPIO_ACTIVE_HIGH>;
+               panel-timing {
+                       clock-frequency = <33000000>;
+                       hactive = <800>;
+                       vactive = <480>;
+                       hfront-porch = <40>;
+                       hback-porch = <40>;
+                       hsync-len = <43>;
+                       vback-porch = <29>;
+                       vfront-porch = <13>;
+                       vsync-len = <3>;
+                       hsync-active = <0>;
+                       vsync-active = <0>;
+                       de-active = <1>;
+                       pixelclk-active = <1>;
+               };
+               port {
+                       lcd_in: endpoint {
+                               remote-endpoint = <&dpi_lcd_out>;
+                       };
+               };
+       };
+       hdmi0: connector0 {
+               compatible = "hdmi-connector";
+               label = "hdmi";
+               type = "a";
+               pinctrl-names = "default";
+               pinctrl-0 = <&hdmi_conn_pins>;
+               hpd-gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>; /* GPIO 193, HPD */
+               port {
+                       hdmi_connector_in: endpoint {
+                               remote-endpoint = <&hdmi_out>;
+                       };
+               };
+       };
+       tfp410: encoder0 {
+               compatible = "ti,tfp410";
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       port@0 {
+                               reg = <0>;
+                               tfp410_in: endpoint {
+                                       remote-endpoint = <&dpi_dvi_out>;
+                               };
+                       };
+                       port@1 {
+                               reg = <1>;
+                               tfp410_out: endpoint {
+                                       remote-endpoint = <&dvi_connector_in>;
+                               };
+                       };
+               };
+       };
+       dvi0: connector1 {
+               compatible = "dvi-connector";
+               label = "dvi";
+               digital;
+               ddc-i2c-bus = <&i2c2>;
+               port {
+                       dvi_connector_in: endpoint {
+                               remote-endpoint = <&tfp410_out>;
+                       };
+               };
+       };
+ };
+ &omap5_pmx_wkup {
+       ads7846_pins: ads7846-pins {
+               pinctrl-single,pins = <
+                       OMAP5_IOPAD(0x0042, PIN_INPUT_PULLDOWN | MUX_MODE6)  /* llib_wakereqin.gpio1_wk15 */
+               >;
+       };
+       palmas_sys_nirq_pins: palmas-sys-nirq-pins {
+               pinctrl-single,pins = <
+                       /* sys_nirq1 is pulled down as the SoC is inverting it for GIC */
+                       OMAP5_IOPAD(0x068, PIN_INPUT_PULLUP | MUX_MODE0)
+               >;
+       };
+ };
+ &omap5_pmx_core {
+       pinctrl-names = "default";
+       pinctrl-0 = <
+                       &led_gpio_pins
+                       &usbhost_pins
+       >;
+       led_gpio_pins: led-gpio-pins {
+               pinctrl-single,pins = <
+                       OMAP5_IOPAD(0x00b0, PIN_OUTPUT | MUX_MODE6) /* hsi2_caflag.gpio3_80 */
+               >;
+       };
+       i2c1_pins: i2c1-pins {
+               pinctrl-single,pins = <
+                       OMAP5_IOPAD(0x01f2, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_pmic_scl */
+                       OMAP5_IOPAD(0x01f4, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_pmic_sda */
+               >;
+       };
+       i2c2_pins: i2c2-pins {
+               pinctrl-single,pins = <
+                       OMAP5_IOPAD(0x01b8, PIN_INPUT | MUX_MODE0) /* i2c2_scl */
+                       OMAP5_IOPAD(0x01ba, PIN_INPUT | MUX_MODE0) /* i2c2_sda */
+               >;
+       };
+       mmc1_pins: mmc1-pins {
+               pinctrl-single,pins = <
+                       OMAP5_IOPAD(0x01e2, PIN_INPUT_PULLUP | MUX_MODE0) /* sdcard_clk */
+                       OMAP5_IOPAD(0x01e4, PIN_INPUT_PULLUP | MUX_MODE0) /* sdcard_cmd */
+                       OMAP5_IOPAD(0x01e6, PIN_INPUT_PULLUP | MUX_MODE0) /* sdcard_data2 */
+                       OMAP5_IOPAD(0x01e8, PIN_INPUT_PULLUP | MUX_MODE0) /* sdcard_data3 */
+                       OMAP5_IOPAD(0x01ea, PIN_INPUT_PULLUP | MUX_MODE0) /* sdcard_data0 */
+                       OMAP5_IOPAD(0x01ec, PIN_INPUT_PULLUP | MUX_MODE0) /* sdcard_data1 */
+               >;
+       };
+       mmc2_pins: mmc2-pins {
+               pinctrl-single,pins = <
+                       OMAP5_IOPAD(0x0040, PIN_INPUT_PULLUP | MUX_MODE0) /* emmc_clk */
+                       OMAP5_IOPAD(0x0042, PIN_INPUT_PULLUP | MUX_MODE0) /* emmc_cmd */
+                       OMAP5_IOPAD(0x0044, PIN_INPUT_PULLUP | MUX_MODE0) /* emmc_data0 */
+                       OMAP5_IOPAD(0x0046, PIN_INPUT_PULLUP | MUX_MODE0) /* emmc_data1 */
+                       OMAP5_IOPAD(0x0048, PIN_INPUT_PULLUP | MUX_MODE0) /* emmc_data2 */
+                       OMAP5_IOPAD(0x004a, PIN_INPUT_PULLUP | MUX_MODE0) /* emmc_data3 */
+                       OMAP5_IOPAD(0x004c, PIN_INPUT_PULLUP | MUX_MODE0) /* emmc_data4 */
+                       OMAP5_IOPAD(0x004e, PIN_INPUT_PULLUP | MUX_MODE0) /* emmc_data5 */
+                       OMAP5_IOPAD(0x0050, PIN_INPUT_PULLUP | MUX_MODE0) /* emmc_data6 */
+                       OMAP5_IOPAD(0x0052, PIN_INPUT_PULLUP | MUX_MODE0) /* emmc_data7 */
+               >;
+       };
+       mmc3_pins: mmc3-pins {
+               pinctrl-single,pins = <
+                       OMAP5_IOPAD(0x01a4, PIN_INPUT_PULLUP | MUX_MODE0) /* wlsdio_clk */
+                       OMAP5_IOPAD(0x01a6, PIN_INPUT_PULLUP | MUX_MODE0) /* wlsdio_cmd */
+                       OMAP5_IOPAD(0x01a8, PIN_INPUT_PULLUP | MUX_MODE0) /* wlsdio_data0 */
+                       OMAP5_IOPAD(0x01aa, PIN_INPUT_PULLUP | MUX_MODE0) /* wlsdio_data1 */
+                       OMAP5_IOPAD(0x01ac, PIN_INPUT_PULLUP | MUX_MODE0) /* wlsdio_data2 */
+                       OMAP5_IOPAD(0x01ae, PIN_INPUT_PULLUP | MUX_MODE0) /* wlsdio_data3 */
+               >;
+       };
+       wlan_gpios_pins: wlan-gpios-pins {
+               pinctrl-single,pins = <
+                       OMAP5_IOPAD(0x019c, PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* abemcpdm_ul_data.gpio4_109 */
+                       OMAP5_IOPAD(0x019e, PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* abemcpdm_dl_data.gpio4_110 */
+               >;
+       };
+       usbhost_pins: usbhost-pins {
+               pinctrl-single,pins = <
+                       OMAP5_IOPAD(0x00c4, PIN_INPUT | MUX_MODE0)  /* usbb2_hsic_strobe */
+                       OMAP5_IOPAD(0x00c6, PIN_INPUT | MUX_MODE0)  /* usbb2_hsic_data */
+                       OMAP5_IOPAD(0x01dc, PIN_INPUT | MUX_MODE0)  /* usbb3_hsic_strobe */
+                       OMAP5_IOPAD(0x01de, PIN_INPUT | MUX_MODE0)  /* usbb3_hsic_data */
+                       OMAP5_IOPAD(0x00a8, PIN_OUTPUT | MUX_MODE6) /* hsi2_caready.gpio3_76 */
+                       OMAP5_IOPAD(0x00b6, PIN_OUTPUT | MUX_MODE6) /* hsi2_acdata.gpio3_83 */
+               >;
+       };
+       dss_hdmi_pins: dss-hdmi-pins {
+               pinctrl-single,pins = <
+                       OMAP5_IOPAD(0x013c, PIN_INPUT | MUX_MODE0) /* hdmi_cec */
+                       OMAP5_IOPAD(0x0140, PIN_INPUT | MUX_MODE0) /* hdmi_ddc_scl */
+                       OMAP5_IOPAD(0x0142, PIN_INPUT | MUX_MODE0) /* hdmi_ddc_sda */
+               >;
+       };
+       lcd_pins: lcd-pins {
+               pinctrl-single,pins = <
+                       OMAP5_IOPAD(0x0172, PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* timer11_pwm_evt.gpio8_227 */
+               >;
+       };
+       hdmi_conn_pins: hdmi-conn-pins {
+               pinctrl-single,pins = <
+                       OMAP5_IOPAD(0x013e, PIN_INPUT | MUX_MODE6) /* hdmi_hpd.gpio7_193 */
+               >;
+       };
+       dss_dpi_pins: dss-dpi-pins {
+               pinctrl-single,pins = <
+                       OMAP5_IOPAD(0x0104, PIN_OUTPUT | MUX_MODE3) /* rfbi_data15.dispc_data15 */
+                       OMAP5_IOPAD(0x0106, PIN_OUTPUT | MUX_MODE3) /* rfbi_data14.dispc_data14 */
+                       OMAP5_IOPAD(0x0108, PIN_OUTPUT | MUX_MODE3) /* rfbi_data13.dispc_data13 */
+                       OMAP5_IOPAD(0x010a, PIN_OUTPUT | MUX_MODE3) /* rfbi_data12.dispc_data12 */
+                       OMAP5_IOPAD(0x010c, PIN_OUTPUT | MUX_MODE3) /* rfbi_data11.dispc_data11 */
+                       OMAP5_IOPAD(0x010e, PIN_OUTPUT | MUX_MODE3) /* rfbi_data10.dispc_data10 */
+                       OMAP5_IOPAD(0x0110, PIN_OUTPUT | MUX_MODE3) /* rfbi_data9.dispc_data9 */
+                       OMAP5_IOPAD(0x0112, PIN_OUTPUT | MUX_MODE3) /* rfbi_data8.dispc_data8 */
+                       OMAP5_IOPAD(0x0114, PIN_OUTPUT | MUX_MODE3) /* rfbi_data7.dispc_data7 */
+                       OMAP5_IOPAD(0x0116, PIN_OUTPUT | MUX_MODE3) /* rfbi_data6.dispc_data6 */
+                       OMAP5_IOPAD(0x0118, PIN_OUTPUT | MUX_MODE3) /* rfbi_data5.dispc_data5 */
+                       OMAP5_IOPAD(0x011a, PIN_OUTPUT | MUX_MODE3) /* rfbi_data4.dispc_data4 */
+                       OMAP5_IOPAD(0x011c, PIN_OUTPUT | MUX_MODE3) /* rfbi_data3.dispc_data3 */
+                       OMAP5_IOPAD(0x011e, PIN_OUTPUT | MUX_MODE3) /* rfbi_data2.dispc_data2 */
+                       OMAP5_IOPAD(0x0120, PIN_OUTPUT | MUX_MODE3) /* rfbi_data1.dispc_data1 */
+                       OMAP5_IOPAD(0x0122, PIN_OUTPUT | MUX_MODE3) /* rfbi_data0.dispc_data0 */
+                       OMAP5_IOPAD(0x0124, PIN_OUTPUT | MUX_MODE3) /* rfbi_we.dispc_vsync */
+                       OMAP5_IOPAD(0x0126, PIN_OUTPUT | MUX_MODE3) /* rfbi_cs0.dispc_hsync */
+                       OMAP5_IOPAD(0x0128, PIN_OUTPUT | MUX_MODE3) /* rfbi_a0.dispc_de */
+                       OMAP5_IOPAD(0x012a, PIN_OUTPUT | MUX_MODE3) /* rfbi_re.dispc_pclk */
+                       OMAP5_IOPAD(0x012c, PIN_OUTPUT | MUX_MODE3) /* rfbi_hsync0.dispc_data17 */
+                       OMAP5_IOPAD(0x012e, PIN_OUTPUT | MUX_MODE3) /* rfbi_te_vsync0.dispc_data16 */
+                       OMAP5_IOPAD(0x0130, PIN_OUTPUT | MUX_MODE3) /* gpio6_182.dispc_data18 */
+                       OMAP5_IOPAD(0x0132, PIN_OUTPUT | MUX_MODE3) /* gpio6_183.dispc_data19 */
+                       OMAP5_IOPAD(0x0134, PIN_OUTPUT | MUX_MODE3) /* gpio6_184.dispc_data20 */
+                       OMAP5_IOPAD(0x0136, PIN_OUTPUT | MUX_MODE3) /* gpio6_185.dispc_data21 */
+                       OMAP5_IOPAD(0x0138, PIN_OUTPUT | MUX_MODE3) /* gpio6_186.dispc_data22 */
+                       OMAP5_IOPAD(0x013a, PIN_OUTPUT | MUX_MODE3) /* gpio6_187.dispc_data23 */
+               >;
+       };
+       mcspi2_pins: mcspi1-pins {
+               pinctrl-single,pins = <
+                       OMAP5_IOPAD(0x00fc, PIN_INPUT | MUX_MODE0) /* mcspi2_clk */
+                       OMAP5_IOPAD(0x00fe, PIN_INPUT | MUX_MODE0) /* mcspi2_simo */
+                       OMAP5_IOPAD(0x0100, PIN_INPUT | MUX_MODE0) /* mcspi2_somi */
+                       OMAP5_IOPAD(0x0102, PIN_INPUT | MUX_MODE0) /* mcspi2_cs0 */
+               >;
+       };
+ };
+ &mcspi2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcspi2_pins>;
+       /* touch controller */
+       ads7846@0 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&ads7846_pins>;
+               compatible = "ti,ads7846";
+               vcc-supply = <&ads7846reg>;
+               reg = <0>;                              /* CS0 */
+               spi-max-frequency = <1500000>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <15 0>;                    /* gpio1_wk15 */
++              pendown-gpio = <&gpio1 15 GPIO_ACTIVE_LOW>;
+               ti,x-min = /bits/ 16 <0x0>;
+               ti,x-max = /bits/ 16 <0x0fff>;
+               ti,y-min = /bits/ 16 <0x0>;
+               ti,y-max = /bits/ 16 <0x0fff>;
+               ti,x-plate-ohms = /bits/ 16 <180>;
+               ti,pressure-max = /bits/ 16 <255>;
+               ti,debounce-max = /bits/ 16 <30>;
+               ti,debounce-tol = /bits/ 16 <10>;
+               ti,debounce-rep = /bits/ 16 <1>;
+               wakeup-source;
+       };
+ };
+ &mmc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc1_pins>;
+       vmmc-supply = <&ldo9_reg>;
+       bus-width = <4>;
+ };
+ &mmc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc2_pins>;
+       vmmc-supply = <&vmmcsd_fixed>;
+       bus-width = <8>;
+       ti,non-removable;
+ };
+ &mmc3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <
+               &mmc3_pins
+               &wlan_gpios_pins
+       >;
+       vmmc-supply = <&vwlan_fixed>;
+       bus-width = <4>;
+       ti,non-removable;
+ };
+ &mmc4 {
+       status = "disabled";
+ };
+ &mmc5 {
+       status = "disabled";
+ };
+ &i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins>;
+       clock-frequency = <400000>;
+       at24@50 {
+               compatible = "atmel,24c02";
+               pagesize = <16>;
+               reg = <0x50>;
+       };
+       palmas: palmas@48 {
+               compatible = "ti,palmas";
+               reg = <0x48>;
+               pinctrl-0 = <&palmas_sys_nirq_pins>;
+               pinctrl-names = "default";
+               /* sys_nirq/ext_sys_irq pins get inverted at mpuss wakeupgen */
+               interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_LOW>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               ti,system-power-controller;
+               extcon_usb3: palmas_usb {
+                       compatible = "ti,palmas-usb-vid";
+                       ti,enable-vbus-detection;
+                       ti,enable-id-detection;
+                       ti,wakeup;
+               };
+               rtc {
+                       compatible = "ti,palmas-rtc";
+                       interrupt-parent = <&palmas>;
+                       interrupts = <8 IRQ_TYPE_NONE>;
+               };
+               palmas_pmic {
+                       compatible = "ti,palmas-pmic";
+                       interrupt-parent = <&palmas>;
+                       interrupts = <14 IRQ_TYPE_NONE>;
+                       interrupt-names = "short-irq";
+                       ti,ldo6-vibrator;
+                       regulators {
+                               smps123_reg: smps123 {
+                                       /* VDD_OPP_MPU */
+                                       regulator-name = "smps123";
+                                       regulator-min-microvolt = < 600000>;
+                                       regulator-max-microvolt = <1500000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                               smps45_reg: smps45 {
+                                       /* VDD_OPP_MM */
+                                       regulator-name = "smps45";
+                                       regulator-min-microvolt = < 600000>;
+                                       regulator-max-microvolt = <1310000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                               smps6_reg: smps6 {
+                                       /* VDD_DDR3 - over VDD_SMPS6 */
+                                       regulator-name = "smps6";
+                                       regulator-min-microvolt = <1500000>;
+                                       regulator-max-microvolt = <1500000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                               smps7_reg: smps7 {
+                                       /* VDDS_1v8_OMAP over VDDS_1v8_MAIN */
+                                       regulator-name = "smps7";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                               smps8_reg: smps8 {
+                                       /* VDD_OPP_CORE */
+                                       regulator-name = "smps8";
+                                       regulator-min-microvolt = < 600000>;
+                                       regulator-max-microvolt = <1310000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                               smps9_reg: smps9 {
+                                       /* VDDA_2v1_AUD over VDD_2v1 */
+                                       regulator-name = "smps9";
+                                       regulator-min-microvolt = <3300000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       ti,smps-range = <0x80>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                               smps10_out2_reg: smps10_out2 {
+                                       /* VBUS_5V_OTG */
+                                       regulator-name = "smps10_out2";
+                                       regulator-min-microvolt = <5000000>;
+                                       regulator-max-microvolt = <5000000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                               smps10_out1_reg: smps10_out1 {
+                                       /* VBUS_5V_OTG */
+                                       regulator-name = "smps10_out1";
+                                       regulator-min-microvolt = <5000000>;
+                                       regulator-max-microvolt = <5000000>;
+                               };
+                               ldo1_reg: ldo1 {
+                                       /* VDDAPHY_CAM: vdda_csiport */
+                                       regulator-name = "ldo1";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                               };
+                               ldo2_reg: ldo2 {
+                                       /* VDD_3V3_WLAN */
+                                       regulator-name = "ldo2";
+                                       regulator-min-microvolt = <3300000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       startup-delay-us = <1000>;
+                               };
+                               ldo3_reg: ldo3 {
+                                       /* VCC_1V5_AUD */
+                                       regulator-name = "ldo3";
+                                       regulator-min-microvolt = <1500000>;
+                                       regulator-max-microvolt = <1500000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                               ldo4_reg: ldo4 {
+                                       /* VDDAPHY_DISP: vdda_dsiport/hdmi */
+                                       regulator-name = "ldo4";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                               };
+                               ldo5_reg: ldo5 {
+                                       /* VDDA_1V8_PHY: usb/sata/hdmi.. */
+                                       regulator-name = "ldo5";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                               ldo6_reg: ldo6 {
+                                       /* VDDS_1V2_WKUP: hsic/ldo_emu_wkup */
+                                       regulator-name = "ldo6";
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                               ldo7_reg: ldo7 {
+                                       /* VDD_VPP: vpp1 */
+                                       regulator-name = "ldo7";
+                                       regulator-min-microvolt = <2000000>;
+                                       regulator-max-microvolt = <2000000>;
+                                       /* Only for efuse reprograming! */
+                                       status = "disabled";
+                               };
+                               ldo8_reg: ldo8 {
+                                       /* VDD_3V_GP: act led/serial console */
+                                       regulator-name = "ldo8";
+                                       regulator-min-microvolt = <3000000>;
+                                       regulator-max-microvolt = <3000000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                               ldo9_reg: ldo9 {
+                                       /* VCC_DV_SDIO: vdds_sdcard */
+                                       regulator-name = "ldo9";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <3000000>;
+                                       regulator-boot-on;
+                               };
+                               ldoln_reg: ldoln {
+                                       /* VDDA_1v8_REF: vdds_osc/mm_l4per.. */
+                                       regulator-name = "ldoln";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                               ldousb_reg: ldousb {
+                                       /* VDDA_3V_USB: VDDA_USBHS33 */
+                                       regulator-name = "ldousb";
+                                       regulator-min-microvolt = <3250000>;
+                                       regulator-max-microvolt = <3250000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                               regen3_reg: regen3 {
+                                       /* REGEN3 controls LDO9 supply to card */
+                                       regulator-name = "regen3";
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                       };
+               };
+       };
+ };
+ &i2c2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c2_pins>;
+       clock-frequency = <100000>;
+ };
+ &usbhshost {
+       port2-mode = "ehci-hsic";
+       port3-mode = "ehci-hsic";
+ };
+ &usbhsehci {
+       phys = <0 &hsusb2_phy &hsusb3_phy>;
+ };
+ &usb3 {
+       extcon = <&extcon_usb3>;
+       vbus-supply = <&smps10_out1_reg>;
+ };
+ &cpu0 {
+       cpu0-supply = <&smps123_reg>;
+ };
+ &dss {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&dss_dpi_pins>;
+       port {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               dpi_dvi_out: endpoint@0 {
+                       reg = <0>;
+                       remote-endpoint = <&tfp410_in>;
+                       data-lines = <24>;
+               };
+               dpi_lcd_out: endpoint@1 {
+                       reg = <1>;
+                       remote-endpoint = <&lcd_in>;
+                       data-lines = <24>;
+               };
+       };
+ };
+ &dsi2 {
+       status = "okay";
+       vdd-supply = <&ldo4_reg>;
+ };
+ &hdmi {
+       status = "okay";
+       vdda-supply = <&ldo4_reg>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&dss_hdmi_pins>;
+       port {
+               hdmi_out: endpoint {
+                       remote-endpoint = <&hdmi_connector_in>;
+                       lanes = <1 0 3 2 5 4 7 6>;
+               };
+       };
+ };
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge