On Tue, Nov 21, 2023 at 05:09:41PM +0000, Caleb Connolly wrote:
> Import the msm8916 devicetree from Linux and adjust the dragonboard410c
> devicetree to use it.
> 

Can you add a note here from which Linux version you took the DT?

It seems quite old, the msm8916-pm8916.dtsi doesn't exist anymore
upstream since v6.5. Would be nice to bring it up to date (I don't have
any more cleanup planned at the moment, so the current state upstream
will probably stay mostly as-is).

>From a quick look I think U-Boot shouldn't be concerned much about the
changes, you might just need to do some trivial renames:

  &msmgpio -> &tlmm
  &blsp1_uart2 -> &blsp_uart2

Thanks a lot for working on this!

Stephan

> Signed-off-by: Caleb Connolly <caleb.conno...@linaro.org>
> ---
>  arch/arm/dts/dragonboard410c-uboot.dtsi         |   44 -
>  arch/arm/dts/dragonboard410c.dts                |  198 +-
>  arch/arm/dts/msm8916-pins.dtsi                  |  582 ++++++
>  arch/arm/dts/msm8916-pm8916.dtsi                |   76 +
>  arch/arm/dts/msm8916.dtsi                       | 2194 
> +++++++++++++++++++++++
>  arch/arm/dts/pm8916.dtsi                        |  183 ++
>  include/dt-bindings/arm/coresight-cti-dt.h      |   37 +
>  include/dt-bindings/clock/qcom,rpmcc.h          |  174 ++
>  include/dt-bindings/interconnect/qcom,msm8916.h |  100 ++
>  include/dt-bindings/reset/qcom,gcc-msm8916.h    |  100 ++
>  10 files changed, 3484 insertions(+), 204 deletions(-)
> 
> diff --git a/arch/arm/dts/dragonboard410c-uboot.dtsi 
> b/arch/arm/dts/dragonboard410c-uboot.dtsi
> deleted file mode 100644
> index cec64bf80f99..000000000000
> --- a/arch/arm/dts/dragonboard410c-uboot.dtsi
> +++ /dev/null
> @@ -1,44 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0+
> -/*
> - * U-Boot addition to handle Dragonboard 410c pins
> - *
> - * (C) Copyright 2015 Mateusz Kulikowski <mateusz.kulikow...@gmail.com>
> - */
> -
> -/ {
> -
> -     smem {
> -             bootph-all;
> -     };
> -
> -     soc {
> -             bootph-all;
> -
> -             pinctrl@1000000 {
> -                     bootph-all;
> -
> -                     uart {
> -                             bootph-all;
> -                     };
> -             };
> -
> -             qcom,gcc@1800000 {
> -                     bootph-all;
> -             };
> -
> -             serial@78b0000 {
> -                     bootph-all;
> -             };
> -     };
> -};
> -
> -
> -&pm8916_gpios {
> -     usb_hub_reset_pm {
> -             gpios = <&pm8916_gpios 2 0>;
> -     };
> -
> -     usb_sw_sel_pm {
> -             gpios = <&pm8916_gpios 3 0>;
> -     };
> -};
> diff --git a/arch/arm/dts/dragonboard410c.dts 
> b/arch/arm/dts/dragonboard410c.dts
> index a42b68fee8c0..8933c64e56e5 100644
> --- a/arch/arm/dts/dragonboard410c.dts
> +++ b/arch/arm/dts/dragonboard410c.dts
> @@ -7,193 +7,40 @@
>  
>  /dts-v1/;
>  
> -#include "skeleton64.dtsi"
>  #include <dt-bindings/gpio/gpio.h>
>  
> +#include "msm8916-pm8916.dtsi"
> +
>  / {
>       model = "Qualcomm Technologies, Inc. Dragonboard 410c";
>       compatible = "qcom,apq8016-sbc", "qcom,apq8016";
>       qcom,msm-id = <0xce 0x0 0xf8 0x0 0xf9 0x0 0xfa 0x0 0xf7 0x0>;
>       qcom,board-id = <0x10018 0x0>;
> -     #address-cells = <0x2>;
> -     #size-cells = <0x2>;
>  
>       aliases {
>               usb0 = "/soc/ehci@78d9000";
> +             serial0 = &blsp1_uart2;
>       };
>  
> -     memory {
> +     memory@80000000 {
>               device_type = "memory";
>               reg = <0 0x80000000 0 0x3da00000>;
>       };
>  
> -     reserved-memory {
> -             #address-cells = <2>;
> -             #size-cells = <2>;
> -             ranges;
> -
> -             smem_mem: smem_region@86300000 {
> -                     reg = <0x0 0x86300000 0x0 0x100000>;
> -                     no-map;
> -             };
> -     };
> -
>       chosen {
>               stdout-path = "/soc/serial@78b0000";
>       };
>  
> -     smem {
> -             compatible = "qcom,smem";
> -             memory-region = <&smem_mem>;
> -             qcom,rpm-msg-ram = <&rpm_msg_ram>;
> -     };
> -
> -     soc {
> -             #address-cells = <0x1>;
> -             #size-cells = <0x1>;
> -             ranges = <0x0 0x0 0x0 0xffffffff>;
> -             compatible = "simple-bus";
> -
> -             rpm_msg_ram: memory@60000 {
> -                     compatible = "qcom,rpm-msg-ram";
> -                     reg = <0x60000 0x8000>;
> -             };
> -
> -             soc_gpios: pinctrl@1000000 {
> -                     compatible = "qcom,msm8916-pinctrl";
> -                     reg = <0x1000000 0x400000>;
> -                     gpio-controller;
> -                     gpio-count = <122>;
> -                     gpio-bank-name="soc";
> -                     #gpio-cells = <2>;
> -
> -                     blsp1_uart: uart {
> -                             function = "blsp1_uart";
> -                             pins = "GPIO_4", "GPIO_5";
> -                             drive-strength = <8>;
> -                             bias-disable;
> -                     };
> -             };
> -             clkc: qcom,gcc@1800000 {
> -                     compatible = "qcom,gcc-msm8916";
> -                     reg = <0x1800000 0x80000>;
> -                     #address-cells = <0x1>;
> -                     #size-cells = <0x0>;
> -                     #clock-cells = <0x1>;
> -             };
> -
> -             serial@78b0000 {
> -                     compatible = "qcom,msm-uartdm-v1.4";
> -                     reg = <0x78b0000 0x200>;
> -                     clocks = <&clkc 4>;
> -                     clock-names = "core";
> -                     pinctrl-names = "uart";
> -                     pinctrl-0 = <&blsp1_uart>;
> -             };
> -
> -             ehci@78d9000 {
> -                     compatible = "qcom,ci-hdrc";
> -                     reg = <0x78d9000 0x400>;
> -                     phys = <&ehci_phy>;
> -             };
> -
> -             ehci_phy: ehci_phy@78d9000 {
> -                     compatible = "qcom,usb-hs-phy-msm8916";
> -                     reg = <0x78d9000 0x400>;
> -                     #phy-cells = <0>;
> -             };
> -
> -             sdhci@07824000 {
> -                     compatible = "qcom,sdhci-msm-v4";
> -                     reg = <0x7824900 0x11c 0x7824000 0x800>;
> -                     bus-width = <0x8>;
> -                     index = <0x0>;
> -                     non-removable;
> -                     clock = <&clkc 0>;
> -                     clock-frequency = <100000000>;
> -             };
> -
> -             sdhci@07864000 {
> -                     compatible = "qcom,sdhci-msm-v4";
> -                     reg = <0x7864900 0x11c 0x7864000 0x800>;
> -                     index = <0x1>;
> -                     bus-width = <0x4>;
> -                     clock = <&clkc 1>;
> -                     clock-frequency = <200000000>;
> -                     cd-gpios = <&soc_gpios 38 GPIO_ACTIVE_LOW>;
> -             };
> -
> -             wcnss {
> -                     bt {
> -                             compatible="qcom,wcnss-bt";
> -                     };
> -
> -                     wifi {
> -                             compatible="qcom,wcnss-wlan";
> -                     };
> -             };
> -
> -             spmi_bus: spmi@200f000 {
> -                     compatible = "qcom,spmi-pmic-arb";
> -                     reg = <0x0200f000 0x001000>,
> -                           <0x02400000 0x400000>,
> -                           <0x02c00000 0x400000>,
> -                           <0x03800000 0x200000>,
> -                           <0x0200a000 0x002100>;
> -                     reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
> -                     #address-cells = <0x1>;
> -                     #size-cells = <0x1>;
> -                     pmic0: pm8916@0 {
> -                             compatible = "qcom,spmi-pmic";
> -                             reg = <0x0 0x1>;
> -                             #address-cells = <0x1>;
> -                             #size-cells = <0x1>;
> -
> -                             pon@800 {
> -                                     compatible = "qcom,pm8916-pon";
> -                                     reg = <0x800 0x100>;
> -                                     mode-bootloader = <0x2>;
> -                                     mode-recovery = <0x1>;
> -
> -                                     pwrkey {
> -                                             compatible = 
> "qcom,pm8941-pwrkey";
> -                                             debounce = <15625>;
> -                                             bias-pull-up;
> -                                     };
> -
> -                                     pm8916_resin: resin {
> -                                             compatible = 
> "qcom,pm8941-resin";
> -                                             debounce = <15625>;
> -                                             bias-pull-up;
> -                                     };
> -                             };
> -
> -                             pm8916_gpios: pm8916_gpios@c000 {
> -                                     compatible = "qcom,pm8916-gpio";
> -                                     reg = <0xc000 0x400>;
> -                                     gpio-controller;
> -                                     gpio-ranges = <&pm8916_gpios 0 0 4>;
> -                                     #gpio-cells = <2>;
> -                             };
> -                     };
> -
> -                     pmic1: pm8916@1 {
> -                             compatible = "qcom,spmi-pmic";
> -                             reg = <0x1 0x1>;
> -                     };
> -             };
> -     };
> -
>       leds {
>               compatible = "gpio-leds";
>               user1 {
>                       label = "green:user1";
> -                     gpios = <&soc_gpios 21 0>;
> +                     gpios = <&msmgpio 21 0>;
>               };
>  
>               user2 {
>                       label = "green:user2";
> -                     gpios = <&soc_gpios 120 0>;
> +                     gpios = <&msmgpio 120 0>;
>               };
>  
>               user3 {
> @@ -208,4 +55,35 @@
>       };
>  };
>  
> -#include "dragonboard410c-uboot.dtsi"
> +&blsp1_uart2 {
> +     status = "okay";
> +};
> +
> +&pm8916_gpios {
> +     usb_hub_reset_pm {
> +             gpios = <&pm8916_gpios 2 0>;
> +     };
> +
> +     usb_sw_sel_pm {
> +             gpios = <&pm8916_gpios 3 0>;
> +     };
> +};
> +
> +&pm8916_resin {
> +     status = "okay";
> +};
> +
> +&sdhc_1 {
> +     status = "okay";
> +     clock-frequency = <100000000>;
> +};
> +
> +&sdhc_2 {
> +     status = "okay";
> +     cd-gpios = <&msmgpio 38 GPIO_ACTIVE_LOW>;
> +     clock-frequency = <200000000>;
> +};
> +
> +&usb {
> +     status = "okay";
> +};
> diff --git a/arch/arm/dts/msm8916-pins.dtsi b/arch/arm/dts/msm8916-pins.dtsi
> new file mode 100644
> index 000000000000..33dfcf318a81
> --- /dev/null
> +++ b/arch/arm/dts/msm8916-pins.dtsi
> @@ -0,0 +1,582 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +/*
> + * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
> + */
> +
> +&msmgpio {
> +
> +     blsp1_uart1_default: blsp1-uart1-default-state {
> +             /* TX, RX, CTS_N, RTS_N */
> +             pins = "gpio0", "gpio1", "gpio2", "gpio3";
> +             function = "blsp_uart1";
> +
> +             drive-strength = <16>;
> +             bias-disable;
> +     };
> +
> +     blsp1_uart1_sleep: blsp1-uart1-sleep-state {
> +             pins = "gpio0", "gpio1", "gpio2", "gpio3";
> +             function = "gpio";
> +
> +             drive-strength = <2>;
> +             bias-pull-down;
> +     };
> +
> +     blsp1_uart2_default: blsp1-uart2-default-state {
> +             pins = "gpio4", "gpio5";
> +             function = "blsp_uart2";
> +
> +             drive-strength = <16>;
> +             bias-disable;
> +     };
> +
> +     blsp1_uart2_sleep: blsp1-uart2-sleep-state {
> +             pins = "gpio4", "gpio5";
> +             function = "gpio";
> +
> +             drive-strength = <2>;
> +             bias-pull-down;
> +     };
> +
> +     spi1_default: spi1-default-state {
> +             spi-pins {
> +                     pins = "gpio0", "gpio1", "gpio3";
> +                     function = "blsp_spi1";
> +
> +                     drive-strength = <12>;
> +                     bias-disable;
> +             };
> +             cs-pins {
> +                     pins = "gpio2";
> +                     function = "gpio";
> +
> +                     drive-strength = <16>;
> +                     bias-disable;
> +                     output-high;
> +             };
> +     };
> +
> +     spi1_sleep: spi1-sleep-state {
> +             pins = "gpio0", "gpio1", "gpio2", "gpio3";
> +             function = "gpio";
> +
> +             drive-strength = <2>;
> +             bias-pull-down;
> +     };
> +
> +     spi2_default: spi2-default-state {
> +             spi-pins {
> +                     pins = "gpio4", "gpio5", "gpio7";
> +                     function = "blsp_spi2";
> +
> +                     drive-strength = <12>;
> +                     bias-disable;
> +             };
> +             cs-pins {
> +                     pins = "gpio6";
> +                     function = "gpio";
> +
> +                     drive-strength = <16>;
> +                     bias-disable;
> +                     output-high;
> +             };
> +     };
> +
> +     spi2_sleep: spi2-sleep-state {
> +             pins = "gpio4", "gpio5", "gpio6", "gpio7";
> +             function = "gpio";
> +
> +             drive-strength = <2>;
> +             bias-pull-down;
> +     };
> +
> +     spi3_default: spi3-default-state {
> +             spi-pins {
> +                     pins = "gpio8", "gpio9", "gpio11";
> +                     function = "blsp_spi3";
> +
> +                     drive-strength = <12>;
> +                     bias-disable;
> +             };
> +             cs-pins {
> +                     pins = "gpio10";
> +                     function = "gpio";
> +
> +                     drive-strength = <16>;
> +                     bias-disable;
> +                     output-high;
> +             };
> +     };
> +
> +     spi3_sleep: spi3-sleep-state {
> +             pins = "gpio8", "gpio9", "gpio10", "gpio11";
> +             function = "gpio";
> +
> +             drive-strength = <2>;
> +             bias-pull-down;
> +     };
> +
> +     spi4_default: spi4-default-state {
> +             spi-pins {
> +                     pins = "gpio12", "gpio13", "gpio15";
> +                     function = "blsp_spi4";
> +
> +                     drive-strength = <12>;
> +                     bias-disable;
> +             };
> +             cs-pins {
> +                     pins = "gpio14";
> +                     function = "gpio";
> +
> +                     drive-strength = <16>;
> +                     bias-disable;
> +                     output-high;
> +             };
> +     };
> +
> +     spi4_sleep: spi4-sleep-state {
> +             pins = "gpio12", "gpio13", "gpio14", "gpio15";
> +             function = "gpio";
> +
> +             drive-strength = <2>;
> +             bias-pull-down;
> +     };
> +
> +     spi5_default: spi5-default-state {
> +             spi-pins {
> +                     pins = "gpio16", "gpio17", "gpio19";
> +                     function = "blsp_spi5";
> +
> +                     drive-strength = <12>;
> +                     bias-disable;
> +             };
> +             cs-pins {
> +                     pins = "gpio18";
> +                     function = "gpio";
> +
> +                     drive-strength = <16>;
> +                     bias-disable;
> +                     output-high;
> +             };
> +     };
> +
> +     spi5_sleep: spi5-sleep-state {
> +             pins = "gpio16", "gpio17", "gpio18", "gpio19";
> +             function = "gpio";
> +
> +             drive-strength = <2>;
> +             bias-pull-down;
> +     };
> +
> +     spi6_default: spi6-default-state {
> +             spi-pins {
> +                     pins = "gpio20", "gpio21", "gpio23";
> +                     function = "blsp_spi6";
> +
> +                     drive-strength = <12>;
> +                     bias-disable;
> +             };
> +             cs-pins {
> +                     pins = "gpio22";
> +                     function = "gpio";
> +
> +                     drive-strength = <16>;
> +                     bias-disable;
> +                     output-high;
> +             };
> +     };
> +
> +     spi6_sleep: spi6-sleep-state {
> +             pins = "gpio20", "gpio21", "gpio22", "gpio23";
> +             function = "gpio";
> +
> +             drive-strength = <2>;
> +             bias-pull-down;
> +     };
> +
> +     i2c1_default: i2c1-default-state {
> +             pins = "gpio2", "gpio3";
> +             function = "blsp_i2c1";
> +
> +             drive-strength = <2>;
> +             bias-disable;
> +     };
> +
> +     i2c1_sleep: i2c1-sleep-state {
> +             pins = "gpio2", "gpio3";
> +             function = "gpio";
> +
> +             drive-strength = <2>;
> +             bias-disable;
> +     };
> +
> +     i2c2_default: i2c2-default-state {
> +             pins = "gpio6", "gpio7";
> +             function = "blsp_i2c2";
> +
> +             drive-strength = <2>;
> +             bias-disable;
> +     };
> +
> +     i2c2_sleep: i2c2-sleep-state {
> +             pins = "gpio6", "gpio7";
> +             function = "gpio";
> +
> +             drive-strength = <2>;
> +             bias-disable;
> +     };
> +
> +     i2c3_default: i2c3-default-state {
> +             pins = "gpio10", "gpio11";
> +             function = "blsp_i2c3";
> +
> +             drive-strength = <2>;
> +             bias-disable;
> +     };
> +
> +     i2c3_sleep: i2c3-sleep-state {
> +             pins = "gpio10", "gpio11";
> +             function = "gpio";
> +
> +             drive-strength = <2>;
> +             bias-disable;
> +     };
> +
> +     i2c4_default: i2c4-default-state {
> +             pins = "gpio14", "gpio15";
> +             function = "blsp_i2c4";
> +
> +             drive-strength = <2>;
> +             bias-disable;
> +     };
> +
> +     i2c4_sleep: i2c4-sleep-state {
> +             pins = "gpio14", "gpio15";
> +             function = "gpio";
> +
> +             drive-strength = <2>;
> +             bias-disable;
> +     };
> +
> +     i2c5_default: i2c5-default-state {
> +             pins = "gpio18", "gpio19";
> +             function = "blsp_i2c5";
> +
> +             drive-strength = <2>;
> +             bias-disable;
> +     };
> +
> +     i2c5_sleep: i2c5-sleep-state {
> +             pins = "gpio18", "gpio19";
> +             function = "gpio";
> +
> +             drive-strength = <2>;
> +             bias-disable;
> +     };
> +
> +     i2c6_default: i2c6-default-state {
> +             pins = "gpio22", "gpio23";
> +             function = "blsp_i2c6";
> +
> +             drive-strength = <2>;
> +             bias-disable;
> +     };
> +
> +     i2c6_sleep: i2c6-sleep-state {
> +             pins = "gpio22", "gpio23";
> +             function = "gpio";
> +
> +             drive-strength = <2>;
> +             bias-disable;
> +     };
> +
> +     pmx-sdc1-clk-state {
> +             sdc1_clk_on: clk-on-pins {
> +                     pins = "sdc1_clk";
> +
> +                     bias-disable;
> +                     drive-strength = <16>;
> +             };
> +             sdc1_clk_off: clk-off-pins {
> +                     pins = "sdc1_clk";
> +
> +                     bias-disable;
> +                     drive-strength = <2>;
> +             };
> +     };
> +
> +     pmx-sdc1-cmd-state {
> +             sdc1_cmd_on: cmd-on-pins {
> +                     pins = "sdc1_cmd";
> +
> +                     bias-pull-up;
> +                     drive-strength = <10>;
> +             };
> +             sdc1_cmd_off: cmd-off-pins {
> +                     pins = "sdc1_cmd";
> +
> +                     bias-pull-up;
> +                     drive-strength = <2>;
> +             };
> +     };
> +
> +     pmx-sdc1-data-state {
> +             sdc1_data_on: data-on-pins {
> +                     pins = "sdc1_data";
> +
> +                     bias-pull-up;
> +                     drive-strength = <10>;
> +             };
> +             sdc1_data_off: data-off-pins {
> +                     pins = "sdc1_data";
> +
> +                     bias-pull-up;
> +                     drive-strength = <2>;
> +             };
> +     };
> +
> +     pmx-sdc2-clk-state {
> +             sdc2_clk_on: clk-on-pins {
> +                     pins = "sdc2_clk";
> +
> +                     bias-disable;
> +                     drive-strength = <16>;
> +             };
> +             sdc2_clk_off: clk-off-pins {
> +                     pins = "sdc2_clk";
> +
> +                     bias-disable;
> +                     drive-strength = <2>;
> +             };
> +     };
> +
> +     pmx-sdc2-cmd-state {
> +             sdc2_cmd_on: cmd-on-pins {
> +                     pins = "sdc2_cmd";
> +
> +                     bias-pull-up;
> +                     drive-strength = <10>;
> +             };
> +             sdc2_cmd_off: cmd-off-pins {
> +                     pins = "sdc2_cmd";
> +
> +                     bias-pull-up;
> +                     drive-strength = <2>;
> +             };
> +     };
> +
> +     pmx-sdc2-data-state {
> +             sdc2_data_on: data-on-pins {
> +                     pins = "sdc2_data";
> +
> +                     bias-pull-up;
> +                     drive-strength = <10>;
> +             };
> +             sdc2_data_off: data-off-pins {
> +                     pins = "sdc2_data";
> +
> +                     bias-pull-up;
> +                     drive-strength = <2>;
> +             };
> +     };
> +
> +     pmx-sdc2-cd-pin-state {
> +             sdc2_cd_on: cd-on-pins {
> +                     pins = "gpio38";
> +                     function = "gpio";
> +
> +                     drive-strength = <2>;
> +                     bias-pull-up;
> +             };
> +             sdc2_cd_off: cd-off-pins {
> +                     pins = "gpio38";
> +                     function = "gpio";
> +
> +                     drive-strength = <2>;
> +                     bias-disable;
> +             };
> +     };
> +
> +     cdc-pdm-lines-state {
> +             cdc_pdm_lines_act: pdm-lines-on-pins {
> +                     pins = "gpio63", "gpio64", "gpio65", "gpio66",
> +                            "gpio67", "gpio68";
> +                     function = "cdc_pdm0";
> +
> +                     drive-strength = <8>;
> +                     bias-disable;
> +             };
> +             cdc_pdm_lines_sus: pdm-lines-off-pins {
> +                     pins = "gpio63", "gpio64", "gpio65", "gpio66",
> +                            "gpio67", "gpio68";
> +                     function = "cdc_pdm0";
> +
> +                     drive-strength = <2>;
> +                     bias-pull-down;
> +             };
> +     };
> +
> +     ext-pri-tlmm-lines-state {
> +             ext_pri_tlmm_lines_act: ext-pa-on-pins {
> +                     pins = "gpio113", "gpio114", "gpio115", "gpio116";
> +                     function = "pri_mi2s";
> +
> +                     drive-strength = <8>;
> +                     bias-disable;
> +             };
> +             ext_pri_tlmm_lines_sus: ext-pa-off-pins {
> +                     pins = "gpio113", "gpio114", "gpio115", "gpio116";
> +                     function = "pri_mi2s";
> +
> +                     drive-strength = <2>;
> +                     bias-disable;
> +             };
> +     };
> +
> +     ext-pri-ws-line-state {
> +             ext_pri_ws_act: ext-pa-on-pins {
> +                     pins = "gpio110";
> +                     function = "pri_mi2s_ws";
> +
> +                     drive-strength = <8>;
> +                     bias-disable;
> +             };
> +             ext_pri_ws_sus: ext-pa-off-pins {
> +                     pins = "gpio110";
> +                     function = "pri_mi2s_ws";
> +
> +                     drive-strength = <2>;
> +                     bias-disable;
> +             };
> +     };
> +
> +     ext-mclk-tlmm-lines-state {
> +             ext_mclk_tlmm_lines_act: mclk-lines-on-pins {
> +                     pins = "gpio116";
> +                     function = "pri_mi2s";
> +
> +                     drive-strength = <8>;
> +                     bias-disable;
> +             };
> +             ext_mclk_tlmm_lines_sus: mclk-lines-off-pins {
> +                     pins = "gpio116";
> +                     function = "pri_mi2s";
> +
> +                     drive-strength = <2>;
> +                     bias-disable;
> +             };
> +     };
> +
> +     /* secondary Mi2S */
> +     ext-sec-tlmm-lines-state {
> +             ext_sec_tlmm_lines_act: tlmm-lines-on-pins {
> +                     pins = "gpio112", "gpio117", "gpio118", "gpio119";
> +                     function = "sec_mi2s";
> +
> +                     drive-strength = <8>;
> +                     bias-disable;
> +             };
> +             ext_sec_tlmm_lines_sus: tlmm-lines-off-pins {
> +                     pins = "gpio112", "gpio117", "gpio118", "gpio119";
> +                     function = "sec_mi2s";
> +
> +                     drive-strength = <2>;
> +                     bias-disable;
> +             };
> +     };
> +
> +     cdc_dmic_lines_act: cdc-dmic-lines-on-state {
> +             clk-pins {
> +                     pins = "gpio0";
> +                     function = "dmic0_clk";
> +
> +                     drive-strength = <8>;
> +             };
> +             data-pins {
> +                     pins = "gpio1";
> +                     function = "dmic0_data";
> +
> +                     drive-strength = <8>;
> +             };
> +     };
> +     cdc_dmic_lines_sus: cdc-dmic-lines-off-state {
> +             clk-pins {
> +                     pins = "gpio0";
> +                     function = "dmic0_clk";
> +
> +                     drive-strength = <2>;
> +                     bias-disable;
> +             };
> +             data-pins {
> +                     pins = "gpio1";
> +                     function = "dmic0_data";
> +
> +                     drive-strength = <2>;
> +                     bias-disable;
> +             };
> +     };
> +
> +     wcnss_pin_a: wcnss-active-state {
> +             pins = "gpio40", "gpio41", "gpio42", "gpio43", "gpio44";
> +             function = "wcss_wlan";
> +
> +             drive-strength = <6>;
> +             bias-pull-up;
> +     };
> +
> +     cci0_default: cci0-default-state {
> +             pins = "gpio29", "gpio30";
> +             function = "cci_i2c";
> +
> +             drive-strength = <16>;
> +             bias-disable;
> +     };
> +
> +     camera_front_default: camera-front-default-state {
> +             pwdn-pins {
> +                     pins = "gpio33";
> +                     function = "gpio";
> +
> +                     drive-strength = <16>;
> +                     bias-disable;
> +             };
> +             rst-pins {
> +                     pins = "gpio28";
> +                     function = "gpio";
> +
> +                     drive-strength = <16>;
> +                     bias-disable;
> +             };
> +             mclk1-pins {
> +                     pins = "gpio27";
> +                     function = "cam_mclk1";
> +
> +                     drive-strength = <16>;
> +                     bias-disable;
> +             };
> +     };
> +
> +     camera_rear_default: camera-rear-default-state {
> +             pwdn-pins {
> +                     pins = "gpio34";
> +                     function = "gpio";
> +
> +                     drive-strength = <16>;
> +                     bias-disable;
> +             };
> +             rst-pins {
> +                     pins = "gpio35";
> +                     function = "gpio";
> +
> +                     drive-strength = <16>;
> +                     bias-disable;
> +             };
> +             mclk0-pins {
> +                     pins = "gpio26";
> +                     function = "cam_mclk0";
> +
> +                     drive-strength = <16>;
> +                     bias-disable;
> +             };
> +     };
> +};
> diff --git a/arch/arm/dts/msm8916-pm8916.dtsi 
> b/arch/arm/dts/msm8916-pm8916.dtsi
> new file mode 100644
> index 000000000000..6eb5e0a39510
> --- /dev/null
> +++ b/arch/arm/dts/msm8916-pm8916.dtsi
> @@ -0,0 +1,76 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +
> +#include "msm8916.dtsi"
> +#include "pm8916.dtsi"
> +
> +&camss {
> +     vdda-supply = <&pm8916_l2>;
> +};
> +
> +&dsi0 {
> +     vdda-supply = <&pm8916_l2>;
> +     vddio-supply = <&pm8916_l6>;
> +};
> +
> +&dsi_phy0 {
> +     vddio-supply = <&pm8916_l6>;
> +};
> +
> +&mpss {
> +     pll-supply = <&pm8916_l7>;
> +};
> +
> +&sdhc_1 {
> +     vmmc-supply = <&pm8916_l8>;
> +     vqmmc-supply = <&pm8916_l5>;
> +};
> +
> +&sdhc_2 {
> +     vmmc-supply = <&pm8916_l11>;
> +     vqmmc-supply = <&pm8916_l12>;
> +};
> +
> +&usb_hs_phy {
> +     v1p8-supply = <&pm8916_l7>;
> +     v3p3-supply = <&pm8916_l13>;
> +};
> +
> +&wcnss {
> +     vddpx-supply = <&pm8916_l7>;
> +};
> +
> +&wcnss_iris {
> +     vddxo-supply = <&pm8916_l7>;
> +     vddrfa-supply = <&pm8916_s3>;
> +     vddpa-supply = <&pm8916_l9>;
> +     vdddig-supply = <&pm8916_l5>;
> +};
> +
> +&rpm_requests {
> +     smd_rpm_regulators: regulators {
> +             compatible = "qcom,rpm-pm8916-regulators";
> +
> +             /* pm8916_s1 is managed by rpmpd (MSM8916_VDDCX) */
> +             pm8916_s3: s3 {};
> +             pm8916_s4: s4 {};
> +
> +             pm8916_l1: l1 {};
> +             pm8916_l2: l2 {};
> +             /* pm8916_l3 is managed by rpmpd (MSM8916_VDDMX) */
> +             pm8916_l4: l4 {};
> +             pm8916_l5: l5 {};
> +             pm8916_l6: l6 {};
> +             pm8916_l7: l7 {};
> +             pm8916_l8: l8 {};
> +             pm8916_l9: l9 {};
> +             pm8916_l10: l10 {};
> +             pm8916_l11: l11 {};
> +             pm8916_l12: l12 {};
> +             pm8916_l13: l13 {};
> +             pm8916_l14: l14 {};
> +             pm8916_l15: l15 {};
> +             pm8916_l16: l16 {};
> +             pm8916_l17: l17 {};
> +             pm8916_l18: l18 {};
> +     };
> +};
> diff --git a/arch/arm/dts/msm8916.dtsi b/arch/arm/dts/msm8916.dtsi
> new file mode 100644
> index 000000000000..834e0b66b7f2
> --- /dev/null
> +++ b/arch/arm/dts/msm8916.dtsi
> @@ -0,0 +1,2194 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +/*
> + * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
> + */
> +
> +#include <dt-bindings/arm/coresight-cti-dt.h>
> +#include <dt-bindings/clock/qcom,gcc-msm8916.h>
> +#include <dt-bindings/clock/qcom,rpmcc.h>
> +#include <dt-bindings/interconnect/qcom,msm8916.h>
> +#include <dt-bindings/interrupt-controller/arm-gic.h>
> +#include <dt-bindings/power/qcom-rpmpd.h>
> +#include <dt-bindings/reset/qcom,gcc-msm8916.h>
> +#include <dt-bindings/thermal/thermal.h>
> +
> +/ {
> +     interrupt-parent = <&intc>;
> +
> +     #address-cells = <2>;
> +     #size-cells = <2>;
> +
> +     aliases {
> +             mmc0 = &sdhc_1; /* SDC1 eMMC slot */
> +             mmc1 = &sdhc_2; /* SDC2 SD card slot */
> +     };
> +
> +     chosen { };
> +
> +     memory@80000000 {
> +             device_type = "memory";
> +             /* We expect the bootloader to fill in the reg */
> +             reg = <0 0x80000000 0 0>;
> +     };
> +
> +     reserved-memory {
> +             #address-cells = <2>;
> +             #size-cells = <2>;
> +             ranges;
> +
> +             tz-apps@86000000 {
> +                     reg = <0x0 0x86000000 0x0 0x300000>;
> +                     no-map;
> +             };
> +
> +             smem@86300000 {
> +                     compatible = "qcom,smem";
> +                     reg = <0x0 0x86300000 0x0 0x100000>;
> +                     no-map;
> +
> +                     hwlocks = <&tcsr_mutex 3>;
> +                     qcom,rpm-msg-ram = <&rpm_msg_ram>;
> +             };
> +
> +             hypervisor@86400000 {
> +                     reg = <0x0 0x86400000 0x0 0x100000>;
> +                     no-map;
> +             };
> +
> +             tz@86500000 {
> +                     reg = <0x0 0x86500000 0x0 0x180000>;
> +                     no-map;
> +             };
> +
> +             reserved@86680000 {
> +                     reg = <0x0 0x86680000 0x0 0x80000>;
> +                     no-map;
> +             };
> +
> +             rmtfs@86700000 {
> +                     compatible = "qcom,rmtfs-mem";
> +                     reg = <0x0 0x86700000 0x0 0xe0000>;
> +                     no-map;
> +
> +                     qcom,client-id = <1>;
> +             };
> +
> +             rfsa@867e0000 {
> +                     reg = <0x0 0x867e0000 0x0 0x20000>;
> +                     no-map;
> +             };
> +
> +             mpss_mem: mpss@86800000 {
> +                     reg = <0x0 0x86800000 0x0 0x2b00000>;
> +                     no-map;
> +             };
> +
> +             wcnss_mem: wcnss@89300000 {
> +                     reg = <0x0 0x89300000 0x0 0x600000>;
> +                     no-map;
> +             };
> +
> +             venus_mem: venus@89900000 {
> +                     reg = <0x0 0x89900000 0x0 0x600000>;
> +                     no-map;
> +             };
> +
> +             mba_mem: mba@8ea00000 {
> +                     no-map;
> +                     reg = <0 0x8ea00000 0 0x100000>;
> +             };
> +     };
> +
> +     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>;
> +
> +             CPU0: cpu@0 {
> +                     device_type = "cpu";
> +                     compatible = "arm,cortex-a53";
> +                     reg = <0x0>;
> +                     next-level-cache = <&L2_0>;
> +                     enable-method = "psci";
> +                     clocks = <&apcs>;
> +                     operating-points-v2 = <&cpu_opp_table>;
> +                     #cooling-cells = <2>;
> +                     power-domains = <&CPU_PD0>;
> +                     power-domain-names = "psci";
> +                     qcom,acc = <&cpu0_acc>;
> +                     qcom,saw = <&cpu0_saw>;
> +             };
> +
> +             CPU1: cpu@1 {
> +                     device_type = "cpu";
> +                     compatible = "arm,cortex-a53";
> +                     reg = <0x1>;
> +                     next-level-cache = <&L2_0>;
> +                     enable-method = "psci";
> +                     clocks = <&apcs>;
> +                     operating-points-v2 = <&cpu_opp_table>;
> +                     #cooling-cells = <2>;
> +                     power-domains = <&CPU_PD1>;
> +                     power-domain-names = "psci";
> +                     qcom,acc = <&cpu1_acc>;
> +                     qcom,saw = <&cpu1_saw>;
> +             };
> +
> +             CPU2: cpu@2 {
> +                     device_type = "cpu";
> +                     compatible = "arm,cortex-a53";
> +                     reg = <0x2>;
> +                     next-level-cache = <&L2_0>;
> +                     enable-method = "psci";
> +                     clocks = <&apcs>;
> +                     operating-points-v2 = <&cpu_opp_table>;
> +                     #cooling-cells = <2>;
> +                     power-domains = <&CPU_PD2>;
> +                     power-domain-names = "psci";
> +                     qcom,acc = <&cpu2_acc>;
> +                     qcom,saw = <&cpu2_saw>;
> +             };
> +
> +             CPU3: cpu@3 {
> +                     device_type = "cpu";
> +                     compatible = "arm,cortex-a53";
> +                     reg = <0x3>;
> +                     next-level-cache = <&L2_0>;
> +                     enable-method = "psci";
> +                     clocks = <&apcs>;
> +                     operating-points-v2 = <&cpu_opp_table>;
> +                     #cooling-cells = <2>;
> +                     power-domains = <&CPU_PD3>;
> +                     power-domain-names = "psci";
> +                     qcom,acc = <&cpu3_acc>;
> +                     qcom,saw = <&cpu3_saw>;
> +             };
> +
> +             L2_0: l2-cache {
> +                     compatible = "cache";
> +                     cache-level = <2>;
> +                     cache-unified;
> +             };
> +
> +             idle-states {
> +                     entry-method = "psci";
> +
> +                     CPU_SLEEP_0: cpu-sleep-0 {
> +                             compatible = "arm,idle-state";
> +                             idle-state-name = "standalone-power-collapse";
> +                             arm,psci-suspend-param = <0x40000002>;
> +                             entry-latency-us = <130>;
> +                             exit-latency-us = <150>;
> +                             min-residency-us = <2000>;
> +                             local-timer-stop;
> +                     };
> +             };
> +
> +             domain-idle-states {
> +
> +                     CLUSTER_RET: cluster-retention {
> +                             compatible = "domain-idle-state";
> +                             arm,psci-suspend-param = <0x41000012>;
> +                             entry-latency-us = <500>;
> +                             exit-latency-us = <500>;
> +                             min-residency-us = <2000>;
> +                     };
> +
> +                     CLUSTER_PWRDN: cluster-gdhs {
> +                             compatible = "domain-idle-state";
> +                             arm,psci-suspend-param = <0x41000032>;
> +                             entry-latency-us = <2000>;
> +                             exit-latency-us = <2000>;
> +                             min-residency-us = <6000>;
> +                     };
> +             };
> +     };
> +
> +     cpu_opp_table: opp-table-cpu {
> +             compatible = "operating-points-v2";
> +             opp-shared;
> +
> +             opp-200000000 {
> +                     opp-hz = /bits/ 64 <200000000>;
> +             };
> +             opp-400000000 {
> +                     opp-hz = /bits/ 64 <400000000>;
> +             };
> +             opp-800000000 {
> +                     opp-hz = /bits/ 64 <800000000>;
> +             };
> +             opp-998400000 {
> +                     opp-hz = /bits/ 64 <998400000>;
> +             };
> +     };
> +
> +     firmware {
> +             scm: scm {
> +                     compatible = "qcom,scm-msm8916", "qcom,scm";
> +                     clocks = <&gcc GCC_CRYPTO_CLK>,
> +                              <&gcc GCC_CRYPTO_AXI_CLK>,
> +                              <&gcc GCC_CRYPTO_AHB_CLK>;
> +                     clock-names = "core", "bus", "iface";
> +                     #reset-cells = <1>;
> +
> +                     qcom,dload-mode = <&tcsr 0x6100>;
> +             };
> +     };
> +
> +     pmu {
> +             compatible = "arm,cortex-a53-pmu";
> +             interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) | 
> IRQ_TYPE_LEVEL_HIGH)>;
> +     };
> +
> +     psci {
> +             compatible = "arm,psci-1.0";
> +             method = "smc";
> +
> +             CPU_PD0: power-domain-cpu0 {
> +                     #power-domain-cells = <0>;
> +                     power-domains = <&CLUSTER_PD>;
> +                     domain-idle-states = <&CPU_SLEEP_0>;
> +             };
> +
> +             CPU_PD1: power-domain-cpu1 {
> +                     #power-domain-cells = <0>;
> +                     power-domains = <&CLUSTER_PD>;
> +                     domain-idle-states = <&CPU_SLEEP_0>;
> +             };
> +
> +             CPU_PD2: power-domain-cpu2 {
> +                     #power-domain-cells = <0>;
> +                     power-domains = <&CLUSTER_PD>;
> +                     domain-idle-states = <&CPU_SLEEP_0>;
> +             };
> +
> +             CPU_PD3: power-domain-cpu3 {
> +                     #power-domain-cells = <0>;
> +                     power-domains = <&CLUSTER_PD>;
> +                     domain-idle-states = <&CPU_SLEEP_0>;
> +             };
> +
> +             CLUSTER_PD: power-domain-cluster {
> +                     #power-domain-cells = <0>;
> +                     domain-idle-states = <&CLUSTER_RET>, <&CLUSTER_PWRDN>;
> +             };
> +     };
> +
> +     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-msm8916";
> +                             qcom,smd-channels = "rpm_requests";
> +
> +                             rpmcc: clock-controller {
> +                                     compatible = "qcom,rpmcc-msm8916", 
> "qcom,rpmcc";
> +                                     #clock-cells = <1>;
> +                                     clocks = <&xo_board>;
> +                                     clock-names = "xo";
> +                             };
> +
> +                             rpmpd: power-controller {
> +                                     compatible = "qcom,msm8916-rpmpd";
> +                                     #power-domain-cells = <1>;
> +                                     operating-points-v2 = 
> <&rpmpd_opp_table>;
> +
> +                                     rpmpd_opp_table: opp-table {
> +                                             compatible = 
> "operating-points-v2";
> +
> +                                             rpmpd_opp_ret: opp1 {
> +                                                     opp-level = <1>;
> +                                             };
> +                                             rpmpd_opp_svs_krait: opp2 {
> +                                                     opp-level = <2>;
> +                                             };
> +                                             rpmpd_opp_svs_soc: opp3 {
> +                                                     opp-level = <3>;
> +                                             };
> +                                             rpmpd_opp_nom: opp4 {
> +                                                     opp-level = <4>;
> +                                             };
> +                                             rpmpd_opp_turbo: opp5 {
> +                                                     opp-level = <5>;
> +                                             };
> +                                             rpmpd_opp_super_turbo: opp6 {
> +                                                     opp-level = <6>;
> +                                             };
> +                                     };
> +                             };
> +                     };
> +             };
> +     };
> +
> +     smp2p-hexagon {
> +             compatible = "qcom,smp2p";
> +             qcom,smem = <435>, <428>;
> +
> +             interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
> +
> +             qcom,ipc = <&apcs 8 14>;
> +
> +             qcom,local-pid = <0>;
> +             qcom,remote-pid = <1>;
> +
> +             hexagon_smp2p_out: master-kernel {
> +                     qcom,entry-name = "master-kernel";
> +
> +                     #qcom,smem-state-cells = <1>;
> +             };
> +
> +             hexagon_smp2p_in: slave-kernel {
> +                     qcom,entry-name = "slave-kernel";
> +
> +                     interrupt-controller;
> +                     #interrupt-cells = <2>;
> +             };
> +     };
> +
> +     smp2p-wcnss {
> +             compatible = "qcom,smp2p";
> +             qcom,smem = <451>, <431>;
> +
> +             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-3 = <&apcs 8 19>;
> +
> +             apps_smsm: apps@0 {
> +                     reg = <0>;
> +
> +                     #qcom,smem-state-cells = <1>;
> +             };
> +
> +             hexagon_smsm: hexagon@1 {
> +                     reg = <1>;
> +                     interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
> +
> +                     interrupt-controller;
> +                     #interrupt-cells = <2>;
> +             };
> +
> +             wcnss_smsm: wcnss@6 {
> +                     reg = <6>;
> +                     interrupts = <GIC_SPI 144 IRQ_TYPE_EDGE_RISING>;
> +
> +                     interrupt-controller;
> +                     #interrupt-cells = <2>;
> +             };
> +     };
> +
> +     soc: soc@0 {
> +             #address-cells = <1>;
> +             #size-cells = <1>;
> +             ranges = <0 0 0 0xffffffff>;
> +             compatible = "simple-bus";
> +
> +             rng@22000 {
> +                     compatible = "qcom,prng";
> +                     reg = <0x00022000 0x200>;
> +                     clocks = <&gcc GCC_PRNG_AHB_CLK>;
> +                     clock-names = "core";
> +             };
> +
> +             restart@4ab000 {
> +                     compatible = "qcom,pshold";
> +                     reg = <0x004ab000 0x4>;
> +             };
> +
> +             qfprom: qfprom@5c000 {
> +                     compatible = "qcom,msm8916-qfprom", "qcom,qfprom";
> +                     reg = <0x0005c000 0x1000>;
> +                     #address-cells = <1>;
> +                     #size-cells = <1>;
> +
> +                     tsens_base1: base1@d0 {
> +                             reg = <0xd0 0x1>;
> +                             bits = <0 7>;
> +                     };
> +
> +                     tsens_s0_p1: s0-p1@d0 {
> +                             reg = <0xd0 0x2>;
> +                             bits = <7 5>;
> +                     };
> +
> +                     tsens_s0_p2: s0-p2@d1 {
> +                             reg = <0xd1 0x2>;
> +                             bits = <4 5>;
> +                     };
> +
> +                     tsens_s1_p1: s1-p1@d2 {
> +                             reg = <0xd2 0x1>;
> +                             bits = <1 5>;
> +                     };
> +                     tsens_s1_p2: s1-p2@d2 {
> +                             reg = <0xd2 0x2>;
> +                             bits = <6 5>;
> +                     };
> +                     tsens_s2_p1: s2-p1@d3 {
> +                             reg = <0xd3 0x1>;
> +                             bits = <3 5>;
> +                     };
> +
> +                     tsens_s2_p2: s2-p2@d4 {
> +                             reg = <0xd4 0x1>;
> +                             bits = <0 5>;
> +                     };
> +
> +                     // no tsens with hw_id 3
> +
> +                     tsens_s4_p1: s4-p1@d4 {
> +                             reg = <0xd4 0x2>;
> +                             bits = <5 5>;
> +                     };
> +
> +                     tsens_s4_p2: s4-p2@d5 {
> +                             reg = <0xd5 0x1>;
> +                             bits = <2 5>;
> +                     };
> +
> +                     tsens_s5_p1: s5-p1@d5 {
> +                             reg = <0xd5 0x2>;
> +                             bits = <7 5>;
> +                     };
> +
> +                     tsens_s5_p2: s5-p2@d6 {
> +                             reg = <0xd6 0x2>;
> +                             bits = <4 5>;
> +                     };
> +
> +                     tsens_base2: base2@d7 {
> +                             reg = <0xd7 0x1>;
> +                             bits = <1 7>;
> +                     };
> +
> +                     tsens_mode: mode@ef {
> +                             reg = <0xef 0x1>;
> +                             bits = <5 3>;
> +                     };
> +             };
> +
> +             rpm_msg_ram: sram@60000 {
> +                     compatible = "qcom,rpm-msg-ram";
> +                     reg = <0x00060000 0x8000>;
> +             };
> +
> +             sram@290000 {
> +                     compatible = "qcom,msm8916-rpm-stats";
> +                     reg = <0x00290000 0x10000>;
> +             };
> +
> +             bimc: interconnect@400000 {
> +                     compatible = "qcom,msm8916-bimc";
> +                     reg = <0x00400000 0x62000>;
> +                     #interconnect-cells = <1>;
> +                     clock-names = "bus", "bus_a";
> +                     clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
> +                              <&rpmcc RPM_SMD_BIMC_A_CLK>;
> +             };
> +
> +             tsens: thermal-sensor@4a9000 {
> +                     compatible = "qcom,msm8916-tsens", "qcom,tsens-v0_1";
> +                     reg = <0x004a9000 0x1000>, /* TM */
> +                           <0x004a8000 0x1000>; /* SROT */
> +
> +                     // no hw_id 3
> +                     nvmem-cells = <&tsens_mode>,
> +                                   <&tsens_base1>, <&tsens_base2>,
> +                                   <&tsens_s0_p1>, <&tsens_s0_p2>,
> +                                   <&tsens_s1_p1>, <&tsens_s1_p2>,
> +                                   <&tsens_s2_p1>, <&tsens_s2_p2>,
> +                                   <&tsens_s4_p1>, <&tsens_s4_p2>,
> +                                   <&tsens_s5_p1>, <&tsens_s5_p2>;
> +                     nvmem-cell-names = "mode",
> +                                        "base1", "base2",
> +                                        "s0_p1", "s0_p2",
> +                                        "s1_p1", "s1_p2",
> +                                        "s2_p1", "s2_p2",
> +                                        "s4_p1", "s4_p2",
> +                                        "s5_p1", "s5_p2";
> +                     #qcom,sensors = <5>;
> +                     interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
> +                     interrupt-names = "uplow";
> +                     #thermal-sensor-cells = <1>;
> +             };
> +
> +             pcnoc: interconnect@500000 {
> +                     compatible = "qcom,msm8916-pcnoc";
> +                     reg = <0x00500000 0x11000>;
> +                     #interconnect-cells = <1>;
> +                     clock-names = "bus", "bus_a";
> +                     clocks = <&rpmcc RPM_SMD_PCNOC_CLK>,
> +                              <&rpmcc RPM_SMD_PCNOC_A_CLK>;
> +             };
> +
> +             snoc: interconnect@580000 {
> +                     compatible = "qcom,msm8916-snoc";
> +                     reg = <0x00580000 0x14000>;
> +                     #interconnect-cells = <1>;
> +                     clock-names = "bus", "bus_a";
> +                     clocks = <&rpmcc RPM_SMD_SNOC_CLK>,
> +                              <&rpmcc RPM_SMD_SNOC_A_CLK>;
> +             };
> +
> +             stm: stm@802000 {
> +                     compatible = "arm,coresight-stm", "arm,primecell";
> +                     reg = <0x00802000 0x1000>,
> +                           <0x09280000 0x180000>;
> +                     reg-names = "stm-base", "stm-stimulus-base";
> +
> +                     clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
> +                     clock-names = "apb_pclk", "atclk";
> +
> +                     status = "disabled";
> +
> +                     out-ports {
> +                             port {
> +                                     stm_out: endpoint {
> +                                             remote-endpoint = 
> <&funnel0_in7>;
> +                                     };
> +                             };
> +                     };
> +             };
> +
> +             /* System CTIs */
> +             /* CTI 0 - TMC connections */
> +             cti0: cti@810000 {
> +                     compatible = "arm,coresight-cti", "arm,primecell";
> +                     reg = <0x00810000 0x1000>;
> +
> +                     clocks = <&rpmcc RPM_QDSS_CLK>;
> +                     clock-names = "apb_pclk";
> +
> +                     status = "disabled";
> +             };
> +
> +             /* CTI 1 - TPIU connections */
> +             cti1: cti@811000 {
> +                     compatible = "arm,coresight-cti", "arm,primecell";
> +                     reg = <0x00811000 0x1000>;
> +
> +                     clocks = <&rpmcc RPM_QDSS_CLK>;
> +                     clock-names = "apb_pclk";
> +
> +                     status = "disabled";
> +             };
> +
> +             /* CTIs 2-11 - no information - not instantiated */
> +
> +             tpiu: tpiu@820000 {
> +                     compatible = "arm,coresight-tpiu", "arm,primecell";
> +                     reg = <0x00820000 0x1000>;
> +
> +                     clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
> +                     clock-names = "apb_pclk", "atclk";
> +
> +                     status = "disabled";
> +
> +                     in-ports {
> +                             port {
> +                                     tpiu_in: endpoint {
> +                                             remote-endpoint = 
> <&replicator_out1>;
> +                                     };
> +                             };
> +                     };
> +             };
> +
> +             funnel0: funnel@821000 {
> +                     compatible = "arm,coresight-dynamic-funnel", 
> "arm,primecell";
> +                     reg = <0x00821000 0x1000>;
> +
> +                     clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
> +                     clock-names = "apb_pclk", "atclk";
> +
> +                     status = "disabled";
> +
> +                     in-ports {
> +                             #address-cells = <1>;
> +                             #size-cells = <0>;
> +
> +                             /*
> +                              * Not described input ports:
> +                              * 0 - connected to Resource and Power Manger 
> CPU ETM
> +                              * 1 - not-connected
> +                              * 2 - connected to Modem CPU ETM
> +                              * 3 - not-connected
> +                              * 5 - not-connected
> +                              * 6 - connected trought funnel to Wireless CPU 
> ETM
> +                              * 7 - connected to STM component
> +                              */
> +
> +                             port@4 {
> +                                     reg = <4>;
> +                                     funnel0_in4: endpoint {
> +                                             remote-endpoint = 
> <&funnel1_out>;
> +                                     };
> +                             };
> +
> +                             port@7 {
> +                                     reg = <7>;
> +                                     funnel0_in7: endpoint {
> +                                             remote-endpoint = <&stm_out>;
> +                                     };
> +                             };
> +                     };
> +
> +                     out-ports {
> +                             port {
> +                                     funnel0_out: endpoint {
> +                                             remote-endpoint = <&etf_in>;
> +                                     };
> +                             };
> +                     };
> +             };
> +
> +             replicator: replicator@824000 {
> +                     compatible = "arm,coresight-dynamic-replicator", 
> "arm,primecell";
> +                     reg = <0x00824000 0x1000>;
> +
> +                     clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
> +                     clock-names = "apb_pclk", "atclk";
> +
> +                     status = "disabled";
> +
> +                     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>;
> +                                     };
> +                             };
> +                     };
> +             };
> +
> +             etf: etf@825000 {
> +                     compatible = "arm,coresight-tmc", "arm,primecell";
> +                     reg = <0x00825000 0x1000>;
> +
> +                     clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
> +                     clock-names = "apb_pclk", "atclk";
> +
> +                     status = "disabled";
> +
> +                     in-ports {
> +                             port {
> +                                     etf_in: endpoint {
> +                                             remote-endpoint = 
> <&funnel0_out>;
> +                                     };
> +                             };
> +                     };
> +
> +                     out-ports {
> +                             port {
> +                                     etf_out: endpoint {
> +                                             remote-endpoint = 
> <&replicator_in>;
> +                                     };
> +                             };
> +                     };
> +             };
> +
> +             etr: etr@826000 {
> +                     compatible = "arm,coresight-tmc", "arm,primecell";
> +                     reg = <0x00826000 0x1000>;
> +
> +                     clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
> +                     clock-names = "apb_pclk", "atclk";
> +
> +                     status = "disabled";
> +
> +                     in-ports {
> +                             port {
> +                                     etr_in: endpoint {
> +                                             remote-endpoint = 
> <&replicator_out0>;
> +                                     };
> +                             };
> +                     };
> +             };
> +
> +             funnel1: funnel@841000 {        /* APSS funnel only 4 inputs 
> are used */
> +                     compatible = "arm,coresight-dynamic-funnel", 
> "arm,primecell";
> +                     reg = <0x00841000 0x1000>;
> +
> +                     clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
> +                     clock-names = "apb_pclk", "atclk";
> +
> +                     status = "disabled";
> +
> +                     in-ports {
> +                             #address-cells = <1>;
> +                             #size-cells = <0>;
> +
> +                             port@0 {
> +                                     reg = <0>;
> +                                     funnel1_in0: endpoint {
> +                                             remote-endpoint = <&etm0_out>;
> +                                     };
> +                             };
> +                             port@1 {
> +                                     reg = <1>;
> +                                     funnel1_in1: endpoint {
> +                                             remote-endpoint = <&etm1_out>;
> +                                     };
> +                             };
> +                             port@2 {
> +                                     reg = <2>;
> +                                     funnel1_in2: endpoint {
> +                                             remote-endpoint = <&etm2_out>;
> +                                     };
> +                             };
> +                             port@3 {
> +                                     reg = <3>;
> +                                     funnel1_in3: endpoint {
> +                                             remote-endpoint = <&etm3_out>;
> +                                     };
> +                             };
> +                     };
> +
> +                     out-ports {
> +                             port {
> +                                     funnel1_out: endpoint {
> +                                             remote-endpoint = 
> <&funnel0_in4>;
> +                                     };
> +                             };
> +                     };
> +             };
> +
> +             debug0: debug@850000 {
> +                     compatible = "arm,coresight-cpu-debug", "arm,primecell";
> +                     reg = <0x00850000 0x1000>;
> +                     clocks = <&rpmcc RPM_QDSS_CLK>;
> +                     clock-names = "apb_pclk";
> +                     cpu = <&CPU0>;
> +                     status = "disabled";
> +             };
> +
> +             debug1: debug@852000 {
> +                     compatible = "arm,coresight-cpu-debug", "arm,primecell";
> +                     reg = <0x00852000 0x1000>;
> +                     clocks = <&rpmcc RPM_QDSS_CLK>;
> +                     clock-names = "apb_pclk";
> +                     cpu = <&CPU1>;
> +                     status = "disabled";
> +             };
> +
> +             debug2: debug@854000 {
> +                     compatible = "arm,coresight-cpu-debug", "arm,primecell";
> +                     reg = <0x00854000 0x1000>;
> +                     clocks = <&rpmcc RPM_QDSS_CLK>;
> +                     clock-names = "apb_pclk";
> +                     cpu = <&CPU2>;
> +                     status = "disabled";
> +             };
> +
> +             debug3: debug@856000 {
> +                     compatible = "arm,coresight-cpu-debug", "arm,primecell";
> +                     reg = <0x00856000 0x1000>;
> +                     clocks = <&rpmcc RPM_QDSS_CLK>;
> +                     clock-names = "apb_pclk";
> +                     cpu = <&CPU3>;
> +                     status = "disabled";
> +             };
> +
> +             /* Core CTIs; CTIs 12-15 */
> +             /* CTI - CPU-0 */
> +             cti12: cti@858000 {
> +                     compatible = "arm,coresight-cti-v8-arch", 
> "arm,coresight-cti",
> +                                  "arm,primecell";
> +                     reg = <0x00858000 0x1000>;
> +
> +                     clocks = <&rpmcc RPM_QDSS_CLK>;
> +                     clock-names = "apb_pclk";
> +
> +                     cpu = <&CPU0>;
> +                     arm,cs-dev-assoc = <&etm0>;
> +
> +                     status = "disabled";
> +             };
> +
> +             /* CTI - CPU-1 */
> +             cti13: cti@859000 {
> +                     compatible = "arm,coresight-cti-v8-arch", 
> "arm,coresight-cti",
> +                                  "arm,primecell";
> +                     reg = <0x00859000 0x1000>;
> +
> +                     clocks = <&rpmcc RPM_QDSS_CLK>;
> +                     clock-names = "apb_pclk";
> +
> +                     cpu = <&CPU1>;
> +                     arm,cs-dev-assoc = <&etm1>;
> +
> +                     status = "disabled";
> +             };
> +
> +             /* CTI - CPU-2 */
> +             cti14: cti@85a000 {
> +                     compatible = "arm,coresight-cti-v8-arch", 
> "arm,coresight-cti",
> +                                  "arm,primecell";
> +                     reg = <0x0085a000 0x1000>;
> +
> +                     clocks = <&rpmcc RPM_QDSS_CLK>;
> +                     clock-names = "apb_pclk";
> +
> +                     cpu = <&CPU2>;
> +                     arm,cs-dev-assoc = <&etm2>;
> +
> +                     status = "disabled";
> +             };
> +
> +             /* CTI - CPU-3 */
> +             cti15: cti@85b000 {
> +                     compatible = "arm,coresight-cti-v8-arch", 
> "arm,coresight-cti",
> +                                  "arm,primecell";
> +                     reg = <0x0085b000 0x1000>;
> +
> +                     clocks = <&rpmcc RPM_QDSS_CLK>;
> +                     clock-names = "apb_pclk";
> +
> +                     cpu = <&CPU3>;
> +                     arm,cs-dev-assoc = <&etm3>;
> +
> +                     status = "disabled";
> +             };
> +
> +             etm0: etm@85c000 {
> +                     compatible = "arm,coresight-etm4x", "arm,primecell";
> +                     reg = <0x0085c000 0x1000>;
> +
> +                     clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
> +                     clock-names = "apb_pclk", "atclk";
> +                     arm,coresight-loses-context-with-cpu;
> +
> +                     cpu = <&CPU0>;
> +
> +                     status = "disabled";
> +
> +                     out-ports {
> +                             port {
> +                                     etm0_out: endpoint {
> +                                             remote-endpoint = 
> <&funnel1_in0>;
> +                                     };
> +                             };
> +                     };
> +             };
> +
> +             etm1: etm@85d000 {
> +                     compatible = "arm,coresight-etm4x", "arm,primecell";
> +                     reg = <0x0085d000 0x1000>;
> +
> +                     clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
> +                     clock-names = "apb_pclk", "atclk";
> +                     arm,coresight-loses-context-with-cpu;
> +
> +                     cpu = <&CPU1>;
> +
> +                     status = "disabled";
> +
> +                     out-ports {
> +                             port {
> +                                     etm1_out: endpoint {
> +                                             remote-endpoint = 
> <&funnel1_in1>;
> +                                     };
> +                             };
> +                     };
> +             };
> +
> +             etm2: etm@85e000 {
> +                     compatible = "arm,coresight-etm4x", "arm,primecell";
> +                     reg = <0x0085e000 0x1000>;
> +
> +                     clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
> +                     clock-names = "apb_pclk", "atclk";
> +                     arm,coresight-loses-context-with-cpu;
> +
> +                     cpu = <&CPU2>;
> +
> +                     status = "disabled";
> +
> +                     out-ports {
> +                             port {
> +                                     etm2_out: endpoint {
> +                                             remote-endpoint = 
> <&funnel1_in2>;
> +                                     };
> +                             };
> +                     };
> +             };
> +
> +             etm3: etm@85f000 {
> +                     compatible = "arm,coresight-etm4x", "arm,primecell";
> +                     reg = <0x0085f000 0x1000>;
> +
> +                     clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
> +                     clock-names = "apb_pclk", "atclk";
> +                     arm,coresight-loses-context-with-cpu;
> +
> +                     cpu = <&CPU3>;
> +
> +                     status = "disabled";
> +
> +                     out-ports {
> +                             port {
> +                                     etm3_out: endpoint {
> +                                             remote-endpoint = 
> <&funnel1_in3>;
> +                                     };
> +                             };
> +                     };
> +             };
> +
> +             msmgpio: pinctrl@1000000 {
> +                     compatible = "qcom,msm8916-pinctrl";
> +                     reg = <0x01000000 0x300000>;
> +                     interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
> +                     gpio-controller;
> +                     gpio-ranges = <&msmgpio 0 0 122>;
> +                     #gpio-cells = <2>;
> +                     interrupt-controller;
> +                     #interrupt-cells = <2>;
> +             };
> +
> +             gcc: clock-controller@1800000 {
> +                     compatible = "qcom,gcc-msm8916";
> +                     #clock-cells = <1>;
> +                     #reset-cells = <1>;
> +                     #power-domain-cells = <1>;
> +                     reg = <0x01800000 0x80000>;
> +                     clocks = <&xo_board>,
> +                              <&sleep_clk>,
> +                              <&dsi_phy0 1>,
> +                              <&dsi_phy0 0>,
> +                              <0>,
> +                              <0>,
> +                              <0>;
> +                     clock-names = "xo",
> +                                   "sleep_clk",
> +                                   "dsi0pll",
> +                                   "dsi0pllbyte",
> +                                   "ext_mclk",
> +                                   "ext_pri_i2s",
> +                                   "ext_sec_i2s";
> +             };
> +
> +             tcsr_mutex: hwlock@1905000 {
> +                     compatible = "qcom,tcsr-mutex";
> +                     reg = <0x01905000 0x20000>;
> +                     #hwlock-cells = <1>;
> +             };
> +
> +             tcsr: syscon@1937000 {
> +                     compatible = "qcom,tcsr-msm8916", "syscon";
> +                     reg = <0x01937000 0x30000>;
> +             };
> +
> +             mdss: display-subsystem@1a00000 {
> +                     status = "disabled";
> +                     compatible = "qcom,mdss";
> +                     reg = <0x01a00000 0x1000>,
> +                           <0x01ac8000 0x3000>;
> +                     reg-names = "mdss_phys", "vbif_phys";
> +
> +                     power-domains = <&gcc MDSS_GDSC>;
> +
> +                     clocks = <&gcc GCC_MDSS_AHB_CLK>,
> +                              <&gcc GCC_MDSS_AXI_CLK>,
> +                              <&gcc GCC_MDSS_VSYNC_CLK>;
> +                     clock-names = "iface",
> +                                   "bus",
> +                                   "vsync";
> +
> +                     interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
> +
> +                     interrupt-controller;
> +                     #interrupt-cells = <1>;
> +
> +                     #address-cells = <1>;
> +                     #size-cells = <1>;
> +                     ranges;
> +
> +                     mdp: display-controller@1a01000 {
> +                             compatible = "qcom,msm8916-mdp5", "qcom,mdp5";
> +                             reg = <0x01a01000 0x89000>;
> +                             reg-names = "mdp_phys";
> +
> +                             interrupt-parent = <&mdss>;
> +                             interrupts = <0>;
> +
> +                             clocks = <&gcc GCC_MDSS_AHB_CLK>,
> +                                      <&gcc GCC_MDSS_AXI_CLK>,
> +                                      <&gcc GCC_MDSS_MDP_CLK>,
> +                                      <&gcc GCC_MDSS_VSYNC_CLK>;
> +                             clock-names = "iface",
> +                                           "bus",
> +                                           "core",
> +                                           "vsync";
> +
> +                             iommus = <&apps_iommu 4>;
> +
> +                             ports {
> +                                     #address-cells = <1>;
> +                                     #size-cells = <0>;
> +
> +                                     port@0 {
> +                                             reg = <0>;
> +                                             mdp5_intf1_out: endpoint {
> +                                                     remote-endpoint = 
> <&dsi0_in>;
> +                                             };
> +                                     };
> +                             };
> +                     };
> +
> +                     dsi0: dsi@1a98000 {
> +                             compatible = "qcom,msm8916-dsi-ctrl",
> +                                          "qcom,mdss-dsi-ctrl";
> +                             reg = <0x01a98000 0x25c>;
> +                             reg-names = "dsi_ctrl";
> +
> +                             interrupt-parent = <&mdss>;
> +                             interrupts = <4>;
> +
> +                             assigned-clocks = <&gcc BYTE0_CLK_SRC>,
> +                                               <&gcc PCLK0_CLK_SRC>;
> +                             assigned-clock-parents = <&dsi_phy0 0>,
> +                                                      <&dsi_phy0 1>;
> +
> +                             clocks = <&gcc GCC_MDSS_MDP_CLK>,
> +                                      <&gcc GCC_MDSS_AHB_CLK>,
> +                                      <&gcc GCC_MDSS_AXI_CLK>,
> +                                      <&gcc GCC_MDSS_BYTE0_CLK>,
> +                                      <&gcc GCC_MDSS_PCLK0_CLK>,
> +                                      <&gcc GCC_MDSS_ESC0_CLK>;
> +                             clock-names = "mdp_core",
> +                                           "iface",
> +                                           "bus",
> +                                           "byte",
> +                                           "pixel",
> +                                           "core";
> +                             phys = <&dsi_phy0>;
> +
> +                             #address-cells = <1>;
> +                             #size-cells = <0>;
> +
> +                             ports {
> +                                     #address-cells = <1>;
> +                                     #size-cells = <0>;
> +
> +                                     port@0 {
> +                                             reg = <0>;
> +                                             dsi0_in: endpoint {
> +                                                     remote-endpoint = 
> <&mdp5_intf1_out>;
> +                                             };
> +                                     };
> +
> +                                     port@1 {
> +                                             reg = <1>;
> +                                             dsi0_out: endpoint {
> +                                             };
> +                                     };
> +                             };
> +                     };
> +
> +                     dsi_phy0: phy@1a98300 {
> +                             compatible = "qcom,dsi-phy-28nm-lp";
> +                             reg = <0x01a98300 0xd4>,
> +                                   <0x01a98500 0x280>,
> +                                   <0x01a98780 0x30>;
> +                             reg-names = "dsi_pll",
> +                                         "dsi_phy",
> +                                         "dsi_phy_regulator";
> +
> +                             #clock-cells = <1>;
> +                             #phy-cells = <0>;
> +
> +                             clocks = <&gcc GCC_MDSS_AHB_CLK>,
> +                                      <&xo_board>;
> +                             clock-names = "iface", "ref";
> +                     };
> +             };
> +
> +             camss: camss@1b00000 {
> +                     compatible = "qcom,msm8916-camss";
> +                     reg = <0x01b0ac00 0x200>,
> +                             <0x01b00030 0x4>,
> +                             <0x01b0b000 0x200>,
> +                             <0x01b00038 0x4>,
> +                             <0x01b08000 0x100>,
> +                             <0x01b08400 0x100>,
> +                             <0x01b0a000 0x500>,
> +                             <0x01b00020 0x10>,
> +                             <0x01b10000 0x1000>;
> +                     reg-names = "csiphy0",
> +                             "csiphy0_clk_mux",
> +                             "csiphy1",
> +                             "csiphy1_clk_mux",
> +                             "csid0",
> +                             "csid1",
> +                             "ispif",
> +                             "csi_clk_mux",
> +                             "vfe0";
> +                     interrupts = <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>,
> +                             <GIC_SPI 79 IRQ_TYPE_EDGE_RISING>,
> +                             <GIC_SPI 51 IRQ_TYPE_EDGE_RISING>,
> +                             <GIC_SPI 52 IRQ_TYPE_EDGE_RISING>,
> +                             <GIC_SPI 55 IRQ_TYPE_EDGE_RISING>,
> +                             <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>;
> +                     interrupt-names = "csiphy0",
> +                             "csiphy1",
> +                             "csid0",
> +                             "csid1",
> +                             "ispif",
> +                             "vfe0";
> +                     power-domains = <&gcc VFE_GDSC>;
> +                     clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>,
> +                             <&gcc GCC_CAMSS_ISPIF_AHB_CLK>,
> +                             <&gcc GCC_CAMSS_CSI0PHYTIMER_CLK>,
> +                             <&gcc GCC_CAMSS_CSI1PHYTIMER_CLK>,
> +                             <&gcc GCC_CAMSS_CSI0_AHB_CLK>,
> +                             <&gcc GCC_CAMSS_CSI0_CLK>,
> +                             <&gcc GCC_CAMSS_CSI0PHY_CLK>,
> +                             <&gcc GCC_CAMSS_CSI0PIX_CLK>,
> +                             <&gcc GCC_CAMSS_CSI0RDI_CLK>,
> +                             <&gcc GCC_CAMSS_CSI1_AHB_CLK>,
> +                             <&gcc GCC_CAMSS_CSI1_CLK>,
> +                             <&gcc GCC_CAMSS_CSI1PHY_CLK>,
> +                             <&gcc GCC_CAMSS_CSI1PIX_CLK>,
> +                             <&gcc GCC_CAMSS_CSI1RDI_CLK>,
> +                             <&gcc GCC_CAMSS_AHB_CLK>,
> +                             <&gcc GCC_CAMSS_VFE0_CLK>,
> +                             <&gcc GCC_CAMSS_CSI_VFE0_CLK>,
> +                             <&gcc GCC_CAMSS_VFE_AHB_CLK>,
> +                             <&gcc GCC_CAMSS_VFE_AXI_CLK>;
> +                     clock-names = "top_ahb",
> +                             "ispif_ahb",
> +                             "csiphy0_timer",
> +                             "csiphy1_timer",
> +                             "csi0_ahb",
> +                             "csi0",
> +                             "csi0_phy",
> +                             "csi0_pix",
> +                             "csi0_rdi",
> +                             "csi1_ahb",
> +                             "csi1",
> +                             "csi1_phy",
> +                             "csi1_pix",
> +                             "csi1_rdi",
> +                             "ahb",
> +                             "vfe0",
> +                             "csi_vfe0",
> +                             "vfe_ahb",
> +                             "vfe_axi";
> +                     iommus = <&apps_iommu 3>;
> +                     status = "disabled";
> +                     ports {
> +                             #address-cells = <1>;
> +                             #size-cells = <0>;
> +                     };
> +             };
> +
> +             cci: cci@1b0c000 {
> +                     compatible = "qcom,msm8916-cci", "qcom,msm8226-cci";
> +                     #address-cells = <1>;
> +                     #size-cells = <0>;
> +                     reg = <0x01b0c000 0x1000>;
> +                     interrupts = <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>;
> +                     clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>,
> +                             <&gcc GCC_CAMSS_CCI_AHB_CLK>,
> +                             <&gcc GCC_CAMSS_CCI_CLK>,
> +                             <&gcc GCC_CAMSS_AHB_CLK>;
> +                     clock-names = "camss_top_ahb", "cci_ahb",
> +                                       "cci", "camss_ahb";
> +                     assigned-clocks = <&gcc GCC_CAMSS_CCI_AHB_CLK>,
> +                                       <&gcc GCC_CAMSS_CCI_CLK>;
> +                     assigned-clock-rates = <80000000>, <19200000>;
> +                     pinctrl-names = "default";
> +                     pinctrl-0 = <&cci0_default>;
> +                     status = "disabled";
> +
> +                     cci_i2c0: i2c-bus@0 {
> +                             reg = <0>;
> +                             clock-frequency = <400000>;
> +                             #address-cells = <1>;
> +                             #size-cells = <0>;
> +                     };
> +             };
> +
> +             gpu@1c00000 {
> +                     compatible = "qcom,adreno-306.0", "qcom,adreno";
> +                     reg = <0x01c00000 0x20000>;
> +                     reg-names = "kgsl_3d0_reg_memory";
> +                     interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
> +                     interrupt-names = "kgsl_3d0_irq";
> +                     clock-names =
> +                         "core",
> +                         "iface",
> +                         "mem",
> +                         "mem_iface",
> +                         "alt_mem_iface",
> +                         "gfx3d";
> +                     clocks =
> +                         <&gcc GCC_OXILI_GFX3D_CLK>,
> +                         <&gcc GCC_OXILI_AHB_CLK>,
> +                         <&gcc GCC_OXILI_GMEM_CLK>,
> +                         <&gcc GCC_BIMC_GFX_CLK>,
> +                         <&gcc GCC_BIMC_GPU_CLK>,
> +                         <&gcc GFX3D_CLK_SRC>;
> +                     power-domains = <&gcc OXILI_GDSC>;
> +                     operating-points-v2 = <&gpu_opp_table>;
> +                     iommus = <&gpu_iommu 1>, <&gpu_iommu 2>;
> +
> +                     gpu_opp_table: opp-table {
> +                             compatible = "operating-points-v2";
> +
> +                             opp-400000000 {
> +                                     opp-hz = /bits/ 64 <400000000>;
> +                             };
> +                             opp-19200000 {
> +                                     opp-hz = /bits/ 64 <19200000>;
> +                             };
> +                     };
> +             };
> +
> +             venus: video-codec@1d00000 {
> +                     compatible = "qcom,msm8916-venus";
> +                     reg = <0x01d00000 0xff000>;
> +                     interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
> +                     power-domains = <&gcc VENUS_GDSC>;
> +                     clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>,
> +                              <&gcc GCC_VENUS0_AHB_CLK>,
> +                              <&gcc GCC_VENUS0_AXI_CLK>;
> +                     clock-names = "core", "iface", "bus";
> +                     iommus = <&apps_iommu 5>;
> +                     memory-region = <&venus_mem>;
> +                     status = "okay";
> +
> +                     video-decoder {
> +                             compatible = "venus-decoder";
> +                     };
> +
> +                     video-encoder {
> +                             compatible = "venus-encoder";
> +                     };
> +             };
> +
> +             apps_iommu: iommu@1ef0000 {
> +                     #address-cells = <1>;
> +                     #size-cells = <1>;
> +                     #iommu-cells = <1>;
> +                     compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
> +                     ranges = <0 0x01e20000 0x40000>;
> +                     reg = <0x01ef0000 0x3000>;
> +                     clocks = <&gcc GCC_SMMU_CFG_CLK>,
> +                              <&gcc GCC_APSS_TCU_CLK>;
> +                     clock-names = "iface", "bus";
> +                     qcom,iommu-secure-id = <17>;
> +
> +                     /* VFE */
> +                     iommu-ctx@3000 {
> +                             compatible = "qcom,msm-iommu-v1-sec";
> +                             reg = <0x3000 0x1000>;
> +                             interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
> +                     };
> +
> +                     /* MDP_0 */
> +                     iommu-ctx@4000 {
> +                             compatible = "qcom,msm-iommu-v1-ns";
> +                             reg = <0x4000 0x1000>;
> +                             interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
> +                     };
> +
> +                     /* VENUS_NS */
> +                     iommu-ctx@5000 {
> +                             compatible = "qcom,msm-iommu-v1-sec";
> +                             reg = <0x5000 0x1000>;
> +                             interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
> +                     };
> +             };
> +
> +             gpu_iommu: iommu@1f08000 {
> +                     #address-cells = <1>;
> +                     #size-cells = <1>;
> +                     #iommu-cells = <1>;
> +                     compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
> +                     ranges = <0 0x01f08000 0x10000>;
> +                     clocks = <&gcc GCC_SMMU_CFG_CLK>,
> +                              <&gcc GCC_GFX_TCU_CLK>;
> +                     clock-names = "iface", "bus";
> +                     qcom,iommu-secure-id = <18>;
> +
> +                     /* GFX3D_USER */
> +                     iommu-ctx@1000 {
> +                             compatible = "qcom,msm-iommu-v1-ns";
> +                             reg = <0x1000 0x1000>;
> +                             interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
> +                     };
> +
> +                     /* GFX3D_PRIV */
> +                     iommu-ctx@2000 {
> +                             compatible = "qcom,msm-iommu-v1-ns";
> +                             reg = <0x2000 0x1000>;
> +                             interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>;
> +                     };
> +             };
> +
> +             spmi_bus: spmi@200f000 {
> +                     compatible = "qcom,spmi-pmic-arb";
> +                     reg = <0x0200f000 0x001000>,
> +                           <0x02400000 0x400000>,
> +                           <0x02c00000 0x400000>,
> +                           <0x03800000 0x200000>,
> +                           <0x0200a000 0x002100>;
> +                     reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
> +                     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@4044000 {
> +                     compatible = "qcom,bam-v1.7.0";
> +                     reg = <0x04044000 0x19000>;
> +                     interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
> +                     #dma-cells = <1>;
> +                     qcom,ee = <0>;
> +
> +                     num-channels = <6>;
> +                     qcom,num-ees = <1>;
> +                     qcom,powered-remotely;
> +
> +                     status = "disabled";
> +             };
> +
> +             mpss: remoteproc@4080000 {
> +                     compatible = "qcom,msm8916-mss-pil";
> +                     reg = <0x04080000 0x100>,
> +                           <0x04020000 0x040>;
> +
> +                     reg-names = "qdsp6", "rmb";
> +
> +                     interrupts-extended = <&intc GIC_SPI 24 
> IRQ_TYPE_EDGE_RISING>,
> +                                           <&hexagon_smp2p_in 0 
> IRQ_TYPE_EDGE_RISING>,
> +                                           <&hexagon_smp2p_in 1 
> IRQ_TYPE_EDGE_RISING>,
> +                                           <&hexagon_smp2p_in 2 
> IRQ_TYPE_EDGE_RISING>,
> +                                           <&hexagon_smp2p_in 3 
> IRQ_TYPE_EDGE_RISING>;
> +                     interrupt-names = "wdog", "fatal", "ready",
> +                                       "handover", "stop-ack";
> +
> +                     power-domains = <&rpmpd MSM8916_VDDCX>,
> +                                     <&rpmpd MSM8916_VDDMX>;
> +                     power-domain-names = "cx", "mx";
> +
> +                     clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
> +                              <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
> +                              <&gcc GCC_BOOT_ROM_AHB_CLK>,
> +                              <&xo_board>;
> +                     clock-names = "iface", "bus", "mem", "xo";
> +
> +                     qcom,smem-states = <&hexagon_smp2p_out 0>;
> +                     qcom,smem-state-names = "stop";
> +
> +                     resets = <&scm 0>;
> +                     reset-names = "mss_restart";
> +
> +                     qcom,halt-regs = <&tcsr 0x18000 0x19000 0x1a000>;
> +
> +                     status = "disabled";
> +
> +                     mba {
> +                             memory-region = <&mba_mem>;
> +                     };
> +
> +                     mpss {
> +                             memory-region = <&mpss_mem>;
> +                     };
> +
> +                     bam_dmux: bam-dmux {
> +                             compatible = "qcom,bam-dmux";
> +
> +                             interrupt-parent = <&hexagon_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";
> +
> +                             status = "disabled";
> +                     };
> +
> +                     smd-edge {
> +                             interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
> +
> +                             qcom,smd-edge = <0>;
> +                             qcom,ipc = <&apcs 8 12>;
> +                             qcom,remote-pid = <1>;
> +
> +                             label = "hexagon";
> +
> +                             fastrpc {
> +                                     compatible = "qcom,fastrpc";
> +                                     qcom,smd-channels = 
> "fastrpcsmd-apps-dsp";
> +                                     label = "adsp";
> +                                     qcom,non-secure-domain;
> +
> +                                     #address-cells = <1>;
> +                                     #size-cells = <0>;
> +
> +                                     cb@1 {
> +                                             compatible = 
> "qcom,fastrpc-compute-cb";
> +                                             reg = <1>;
> +                                     };
> +                             };
> +                     };
> +             };
> +
> +             sound: sound@7702000 {
> +                     status = "disabled";
> +                     compatible = "qcom,apq8016-sbc-sndcard";
> +                     reg = <0x07702000 0x4>, <0x07702004 0x4>;
> +                     reg-names = "mic-iomux", "spkr-iomux";
> +             };
> +
> +             lpass: audio-controller@7708000 {
> +                     status = "disabled";
> +                     compatible = "qcom,apq8016-lpass-cpu";
> +
> +                     /*
> +                      * Note: Unlike the name would suggest, the SEC_I2S_CLK
> +                      * is actually only used by Tertiary MI2S while
> +                      * Primary/Secondary MI2S both use the PRI_I2S_CLK.
> +                      */
> +                     clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
> +                              <&gcc GCC_ULTAUDIO_PCNOC_MPORT_CLK>,
> +                              <&gcc GCC_ULTAUDIO_PCNOC_SWAY_CLK>,
> +                              <&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>,
> +                              <&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>,
> +                              <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>,
> +                              <&gcc GCC_ULTAUDIO_LPAIF_AUX_I2S_CLK>;
> +
> +                     clock-names = "ahbix-clk",
> +                                     "pcnoc-mport-clk",
> +                                     "pcnoc-sway-clk",
> +                                     "mi2s-bit-clk0",
> +                                     "mi2s-bit-clk1",
> +                                     "mi2s-bit-clk2",
> +                                     "mi2s-bit-clk3";
> +                     #sound-dai-cells = <1>;
> +
> +                     interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
> +                     interrupt-names = "lpass-irq-lpaif";
> +                     reg = <0x07708000 0x10000>;
> +                     reg-names = "lpass-lpaif";
> +
> +                     #address-cells = <1>;
> +                     #size-cells = <0>;
> +             };
> +
> +             lpass_codec: audio-codec@771c000 {
> +                     compatible = "qcom,msm8916-wcd-digital-codec";
> +                     reg = <0x0771c000 0x400>;
> +                     clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
> +                              <&gcc GCC_CODEC_DIGCODEC_CLK>;
> +                     clock-names = "ahbix-clk", "mclk";
> +                     #sound-dai-cells = <1>;
> +             };
> +
> +             sdhc_1: mmc@7824000 {
> +                     compatible = "qcom,msm8916-sdhci", "qcom,sdhci-msm-v4";
> +                     reg = <0x07824900 0x11c>, <0x07824000 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";
> +                     mmc-ddr-1_8v;
> +                     bus-width = <8>;
> +                     non-removable;
> +                     status = "disabled";
> +             };
> +
> +             sdhc_2: mmc@7864000 {
> +                     compatible = "qcom,msm8916-sdhci", "qcom,sdhci-msm-v4";
> +                     reg = <0x07864900 0x11c>, <0x07864000 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>;
> +                     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>;
> +             };
> +
> +             blsp1_uart1: serial@78af000 {
> +                     compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
> +                     reg = <0x078af000 0x200>;
> +                     interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
> +                     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";
> +                     pinctrl-names = "default", "sleep";
> +                     pinctrl-0 = <&blsp1_uart1_default>;
> +                     pinctrl-1 = <&blsp1_uart1_sleep>;
> +                     status = "disabled";
> +             };
> +
> +             blsp1_uart2: serial@78b0000 {
> +                     compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
> +                     reg = <0x078b0000 0x200>;
> +                     interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
> +                     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";
> +                     pinctrl-names = "default", "sleep";
> +                     pinctrl-0 = <&blsp1_uart2_default>;
> +                     pinctrl-1 = <&blsp1_uart2_sleep>;
> +                     status = "disabled";
> +             };
> +
> +             blsp_i2c1: i2c@78b5000 {
> +                     compatible = "qcom,i2c-qup-v2.2.1";
> +                     reg = <0x078b5000 0x500>;
> +                     interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
> +                     clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>,
> +                              <&gcc GCC_BLSP1_AHB_CLK>;
> +                     clock-names = "core", "iface";
> +                     dmas = <&blsp_dma 4>, <&blsp_dma 5>;
> +                     dma-names = "tx", "rx";
> +                     pinctrl-names = "default", "sleep";
> +                     pinctrl-0 = <&i2c1_default>;
> +                     pinctrl-1 = <&i2c1_sleep>;
> +                     #address-cells = <1>;
> +                     #size-cells = <0>;
> +                     status = "disabled";
> +             };
> +
> +             blsp_spi1: spi@78b5000 {
> +                     compatible = "qcom,spi-qup-v2.2.1";
> +                     reg = <0x078b5000 0x500>;
> +                     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";
> +                     dmas = <&blsp_dma 4>, <&blsp_dma 5>;
> +                     dma-names = "tx", "rx";
> +                     pinctrl-names = "default", "sleep";
> +                     pinctrl-0 = <&spi1_default>;
> +                     pinctrl-1 = <&spi1_sleep>;
> +                     #address-cells = <1>;
> +                     #size-cells = <0>;
> +                     status = "disabled";
> +             };
> +
> +             blsp_i2c2: i2c@78b6000 {
> +                     compatible = "qcom,i2c-qup-v2.2.1";
> +                     reg = <0x078b6000 0x500>;
> +                     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";
> +                     dmas = <&blsp_dma 6>, <&blsp_dma 7>;
> +                     dma-names = "tx", "rx";
> +                     pinctrl-names = "default", "sleep";
> +                     pinctrl-0 = <&i2c2_default>;
> +                     pinctrl-1 = <&i2c2_sleep>;
> +                     #address-cells = <1>;
> +                     #size-cells = <0>;
> +                     status = "disabled";
> +             };
> +
> +             blsp_spi2: spi@78b6000 {
> +                     compatible = "qcom,spi-qup-v2.2.1";
> +                     reg = <0x078b6000 0x500>;
> +                     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";
> +                     dmas = <&blsp_dma 6>, <&blsp_dma 7>;
> +                     dma-names = "tx", "rx";
> +                     pinctrl-names = "default", "sleep";
> +                     pinctrl-0 = <&spi2_default>;
> +                     pinctrl-1 = <&spi2_sleep>;
> +                     #address-cells = <1>;
> +                     #size-cells = <0>;
> +                     status = "disabled";
> +             };
> +
> +             blsp_i2c3: i2c@78b7000 {
> +                     compatible = "qcom,i2c-qup-v2.2.1";
> +                     reg = <0x078b7000 0x500>;
> +                     interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
> +                     clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
> +                              <&gcc GCC_BLSP1_AHB_CLK>;
> +                     clock-names = "core", "iface";
> +                     dmas = <&blsp_dma 8>, <&blsp_dma 9>;
> +                     dma-names = "tx", "rx";
> +                     pinctrl-names = "default", "sleep";
> +                     pinctrl-0 = <&i2c3_default>;
> +                     pinctrl-1 = <&i2c3_sleep>;
> +                     #address-cells = <1>;
> +                     #size-cells = <0>;
> +                     status = "disabled";
> +             };
> +
> +             blsp_spi3: spi@78b7000 {
> +                     compatible = "qcom,spi-qup-v2.2.1";
> +                     reg = <0x078b7000 0x500>;
> +                     interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
> +                     clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
> +                              <&gcc GCC_BLSP1_AHB_CLK>;
> +                     clock-names = "core", "iface";
> +                     dmas = <&blsp_dma 8>, <&blsp_dma 9>;
> +                     dma-names = "tx", "rx";
> +                     pinctrl-names = "default", "sleep";
> +                     pinctrl-0 = <&spi3_default>;
> +                     pinctrl-1 = <&spi3_sleep>;
> +                     #address-cells = <1>;
> +                     #size-cells = <0>;
> +                     status = "disabled";
> +             };
> +
> +             blsp_i2c4: i2c@78b8000 {
> +                     compatible = "qcom,i2c-qup-v2.2.1";
> +                     reg = <0x078b8000 0x500>;
> +                     interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
> +                     clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>,
> +                              <&gcc GCC_BLSP1_AHB_CLK>;
> +                     clock-names = "core", "iface";
> +                     dmas = <&blsp_dma 10>, <&blsp_dma 11>;
> +                     dma-names = "tx", "rx";
> +                     pinctrl-names = "default", "sleep";
> +                     pinctrl-0 = <&i2c4_default>;
> +                     pinctrl-1 = <&i2c4_sleep>;
> +                     #address-cells = <1>;
> +                     #size-cells = <0>;
> +                     status = "disabled";
> +             };
> +
> +             blsp_spi4: spi@78b8000 {
> +                     compatible = "qcom,spi-qup-v2.2.1";
> +                     reg = <0x078b8000 0x500>;
> +                     interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
> +                     clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
> +                              <&gcc GCC_BLSP1_AHB_CLK>;
> +                     clock-names = "core", "iface";
> +                     dmas = <&blsp_dma 10>, <&blsp_dma 11>;
> +                     dma-names = "tx", "rx";
> +                     pinctrl-names = "default", "sleep";
> +                     pinctrl-0 = <&spi4_default>;
> +                     pinctrl-1 = <&spi4_sleep>;
> +                     #address-cells = <1>;
> +                     #size-cells = <0>;
> +                     status = "disabled";
> +             };
> +
> +             blsp_i2c5: i2c@78b9000 {
> +                     compatible = "qcom,i2c-qup-v2.2.1";
> +                     reg = <0x078b9000 0x500>;
> +                     interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
> +                     clocks = <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>,
> +                              <&gcc GCC_BLSP1_AHB_CLK>;
> +                     clock-names = "core", "iface";
> +                     dmas = <&blsp_dma 12>, <&blsp_dma 13>;
> +                     dma-names = "tx", "rx";
> +                     pinctrl-names = "default", "sleep";
> +                     pinctrl-0 = <&i2c5_default>;
> +                     pinctrl-1 = <&i2c5_sleep>;
> +                     #address-cells = <1>;
> +                     #size-cells = <0>;
> +                     status = "disabled";
> +             };
> +
> +             blsp_spi5: spi@78b9000 {
> +                     compatible = "qcom,spi-qup-v2.2.1";
> +                     reg = <0x078b9000 0x500>;
> +                     interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
> +                     clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
> +                              <&gcc GCC_BLSP1_AHB_CLK>;
> +                     clock-names = "core", "iface";
> +                     dmas = <&blsp_dma 12>, <&blsp_dma 13>;
> +                     dma-names = "tx", "rx";
> +                     pinctrl-names = "default", "sleep";
> +                     pinctrl-0 = <&spi5_default>;
> +                     pinctrl-1 = <&spi5_sleep>;
> +                     #address-cells = <1>;
> +                     #size-cells = <0>;
> +                     status = "disabled";
> +             };
> +
> +             blsp_i2c6: i2c@78ba000 {
> +                     compatible = "qcom,i2c-qup-v2.2.1";
> +                     reg = <0x078ba000 0x500>;
> +                     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";
> +                     dmas = <&blsp_dma 14>, <&blsp_dma 15>;
> +                     dma-names = "tx", "rx";
> +                     pinctrl-names = "default", "sleep";
> +                     pinctrl-0 = <&i2c6_default>;
> +                     pinctrl-1 = <&i2c6_sleep>;
> +                     #address-cells = <1>;
> +                     #size-cells = <0>;
> +                     status = "disabled";
> +             };
> +
> +             blsp_spi6: spi@78ba000 {
> +                     compatible = "qcom,spi-qup-v2.2.1";
> +                     reg = <0x078ba000 0x500>;
> +                     interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
> +                     clocks = <&gcc GCC_BLSP1_QUP6_SPI_APPS_CLK>,
> +                              <&gcc GCC_BLSP1_AHB_CLK>;
> +                     clock-names = "core", "iface";
> +                     dmas = <&blsp_dma 14>, <&blsp_dma 15>;
> +                     dma-names = "tx", "rx";
> +                     pinctrl-names = "default", "sleep";
> +                     pinctrl-0 = <&spi6_default>;
> +                     pinctrl-1 = <&spi6_sleep>;
> +                     #address-cells = <1>;
> +                     #size-cells = <0>;
> +                     status = "disabled";
> +             };
> +
> +             usb: usb@78d9000 {
> +                     compatible = "qcom,ci-hdrc";
> +                     reg = <0x078d9000 0x200>,
> +                           <0x078d9200 0x200>;
> +                     interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
> +                                  <GIC_SPI 140 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 = <80000000>;
> +                     resets = <&gcc GCC_USB_HS_BCR>;
> +                     reset-names = "core";
> +                     phy_type = "ulpi";
> +                     dr_mode = "otg";
> +                     hnp-disable;
> +                     srp-disable;
> +                     adp-disable;
> +                     ahb-burst-config = <0>;
> +                     phy-names = "usb-phy";
> +                     phys = <&usb_hs_phy>;
> +                     status = "disabled";
> +                     #reset-cells = <1>;
> +
> +                     ulpi {
> +                             usb_hs_phy: phy {
> +                                     compatible = "qcom,usb-hs-phy-msm8916",
> +                                                  "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";
> +                                     qcom,init-seq = /bits/ 8 <0x0 0x44>,
> +                                                              <0x1 0x6b>,
> +                                                              <0x2 0x24>,
> +                                                              <0x3 0x13>;
> +                             };
> +                     };
> +             };
> +
> +             wcnss: remoteproc@a21b000 {
> +                     compatible = "qcom,pronto-v2-pil", "qcom,pronto";
> +                     reg = <0x0a204000 0x2000>, <0x0a202000 0x1000>, 
> <0x0a21b000 0x3000>;
> +                     reg-names = "ccu", "dxe", "pmu";
> +
> +                     memory-region = <&wcnss_mem>;
> +
> +                     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";
> +
> +                     power-domains = <&rpmpd MSM8916_VDDCX>,
> +                                     <&rpmpd MSM8916_VDDMX>;
> +                     power-domain-names = "cx", "mx";
> +
> +                     qcom,smem-states = <&wcnss_smp2p_out 0>;
> +                     qcom,smem-state-names = "stop";
> +
> +                     pinctrl-names = "default";
> +                     pinctrl-0 = <&wcnss_pin_a>;
> +
> +                     status = "disabled";
> +
> +                     wcnss_iris: iris {
> +                             /* Separate chip, compatible is board-specific 
> */
> +                             clocks = <&rpmcc RPM_SMD_RF_CLK2>;
> +                             clock-names = "xo";
> +                     };
> +
> +                     smd-edge {
> +                             interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
> +
> +                             qcom,ipc = <&apcs 8 17>;
> +                             qcom,smd-edge = <6>;
> +                             qcom,remote-pid = <4>;
> +
> +                             label = "pronto";
> +
> +                             wcnss_ctrl: wcnss {
> +                                     compatible = "qcom,wcnss";
> +                                     qcom,smd-channels = "WCNSS_CTRL";
> +
> +                                     qcom,mmio = <&wcnss>;
> +
> +                                     wcnss_bt: bluetooth {
> +                                             compatible = "qcom,wcnss-bt";
> +                                     };
> +
> +                                     wcnss_wifi: wifi {
> +                                             compatible = "qcom,wcnss-wlan";
> +
> +                                             interrupts = <GIC_SPI 145 
> IRQ_TYPE_LEVEL_HIGH>,
> +                                                          <GIC_SPI 146 
> 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";
> +                                     };
> +                             };
> +                     };
> +             };
> +
> +             intc: interrupt-controller@b000000 {
> +                     compatible = "qcom,msm-qgic2";
> +                     interrupt-controller;
> +                     #interrupt-cells = <3>;
> +                     reg = <0x0b000000 0x1000>, <0x0b002000 0x2000>,
> +                           <0x0b001000 0x1000>, <0x0b004000 0x2000>;
> +                     interrupts = <GIC_PPI 0 (GIC_CPU_MASK_SIMPLE(4) | 
> IRQ_TYPE_LEVEL_HIGH)>;
> +             };
> +
> +             apcs: mailbox@b011000 {
> +                     compatible = "qcom,msm8916-apcs-kpss-global", "syscon";
> +                     reg = <0x0b011000 0x1000>;
> +                     #mbox-cells = <1>;
> +                     clocks = <&a53pll>, <&gcc GPLL0_VOTE>;
> +                     clock-names = "pll", "aux";
> +                     #clock-cells = <0>;
> +             };
> +
> +             a53pll: clock@b016000 {
> +                     compatible = "qcom,msm8916-a53pll";
> +                     reg = <0x0b016000 0x40>;
> +                     #clock-cells = <0>;
> +                     clocks = <&xo_board>;
> +                     clock-names = "xo";
> +             };
> +
> +             timer@b020000 {
> +                     #address-cells = <1>;
> +                     #size-cells = <1>;
> +                     ranges;
> +                     compatible = "arm,armv7-timer-mem";
> +                     reg = <0x0b020000 0x1000>;
> +                     clock-frequency = <19200000>;
> +
> +                     frame@b021000 {
> +                             frame-number = <0>;
> +                             interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
> +                                          <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
> +                             reg = <0x0b021000 0x1000>,
> +                                   <0x0b022000 0x1000>;
> +                     };
> +
> +                     frame@b023000 {
> +                             frame-number = <1>;
> +                             interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
> +                             reg = <0x0b023000 0x1000>;
> +                             status = "disabled";
> +                     };
> +
> +                     frame@b024000 {
> +                             frame-number = <2>;
> +                             interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
> +                             reg = <0x0b024000 0x1000>;
> +                             status = "disabled";
> +                     };
> +
> +                     frame@b025000 {
> +                             frame-number = <3>;
> +                             interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
> +                             reg = <0x0b025000 0x1000>;
> +                             status = "disabled";
> +                     };
> +
> +                     frame@b026000 {
> +                             frame-number = <4>;
> +                             interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
> +                             reg = <0x0b026000 0x1000>;
> +                             status = "disabled";
> +                     };
> +
> +                     frame@b027000 {
> +                             frame-number = <5>;
> +                             interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
> +                             reg = <0x0b027000 0x1000>;
> +                             status = "disabled";
> +                     };
> +
> +                     frame@b028000 {
> +                             frame-number = <6>;
> +                             interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
> +                             reg = <0x0b028000 0x1000>;
> +                             status = "disabled";
> +                     };
> +             };
> +
> +             cpu0_acc: power-manager@b088000 {
> +                     compatible = "qcom,msm8916-acc";
> +                     reg = <0x0b088000 0x1000>;
> +                     status = "reserved"; /* Controlled by PSCI firmware */
> +             };
> +
> +             cpu0_saw: power-manager@b089000 {
> +                     compatible = "qcom,msm8916-saw2-v3.0-cpu", "qcom,saw2";
> +                     reg = <0x0b089000 0x1000>;
> +                     status = "reserved"; /* Controlled by PSCI firmware */
> +             };
> +
> +             cpu1_acc: power-manager@b098000 {
> +                     compatible = "qcom,msm8916-acc";
> +                     reg = <0x0b098000 0x1000>;
> +                     status = "reserved"; /* Controlled by PSCI firmware */
> +             };
> +
> +             cpu1_saw: power-manager@b099000 {
> +                     compatible = "qcom,msm8916-saw2-v3.0-cpu", "qcom,saw2";
> +                     reg = <0x0b099000 0x1000>;
> +                     status = "reserved"; /* Controlled by PSCI firmware */
> +             };
> +
> +             cpu2_acc: power-manager@b0a8000 {
> +                     compatible = "qcom,msm8916-acc";
> +                     reg = <0x0b0a8000 0x1000>;
> +                     status = "reserved"; /* Controlled by PSCI firmware */
> +             };
> +
> +             cpu2_saw: power-manager@b0a9000 {
> +                     compatible = "qcom,msm8916-saw2-v3.0-cpu", "qcom,saw2";
> +                     reg = <0x0b0a9000 0x1000>;
> +                     status = "reserved"; /* Controlled by PSCI firmware */
> +             };
> +
> +             cpu3_acc: power-manager@b0b8000 {
> +                     compatible = "qcom,msm8916-acc";
> +                     reg = <0x0b0b8000 0x1000>;
> +                     status = "reserved"; /* Controlled by PSCI firmware */
> +             };
> +
> +             cpu3_saw: power-manager@b0b9000 {
> +                     compatible = "qcom,msm8916-saw2-v3.0-cpu", "qcom,saw2";
> +                     reg = <0x0b0b9000 0x1000>;
> +                     status = "reserved"; /* Controlled by PSCI firmware */
> +             };
> +     };
> +
> +     thermal-zones {
> +             cpu0-1-thermal {
> +                     polling-delay-passive = <250>;
> +                     polling-delay = <1000>;
> +
> +                     thermal-sensors = <&tsens 5>;
> +
> +                     trips {
> +                             cpu0_1_alert0: trip-point0 {
> +                                     temperature = <75000>;
> +                                     hysteresis = <2000>;
> +                                     type = "passive";
> +                             };
> +                             cpu0_1_crit: cpu-crit {
> +                                     temperature = <110000>;
> +                                     hysteresis = <2000>;
> +                                     type = "critical";
> +                             };
> +                     };
> +
> +                     cooling-maps {
> +                             map0 {
> +                                     trip = <&cpu0_1_alert0>;
> +                                     cooling-device = <&CPU0 
> THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> +                                                      <&CPU1 
> THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> +                                                      <&CPU2 
> THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> +                                                      <&CPU3 
> THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
> +                             };
> +                     };
> +             };
> +
> +             cpu2-3-thermal {
> +                     polling-delay-passive = <250>;
> +                     polling-delay = <1000>;
> +
> +                     thermal-sensors = <&tsens 4>;
> +
> +                     trips {
> +                             cpu2_3_alert0: trip-point0 {
> +                                     temperature = <75000>;
> +                                     hysteresis = <2000>;
> +                                     type = "passive";
> +                             };
> +                             cpu2_3_crit: cpu-crit {
> +                                     temperature = <110000>;
> +                                     hysteresis = <2000>;
> +                                     type = "critical";
> +                             };
> +                     };
> +
> +                     cooling-maps {
> +                             map0 {
> +                                     trip = <&cpu2_3_alert0>;
> +                                     cooling-device = <&CPU0 
> THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> +                                                      <&CPU1 
> THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> +                                                      <&CPU2 
> THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> +                                                      <&CPU3 
> THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
> +                             };
> +                     };
> +             };
> +
> +             gpu-thermal {
> +                     polling-delay-passive = <250>;
> +                     polling-delay = <1000>;
> +
> +                     thermal-sensors = <&tsens 2>;
> +
> +                     trips {
> +                             gpu_alert0: trip-point0 {
> +                                     temperature = <75000>;
> +                                     hysteresis = <2000>;
> +                                     type = "passive";
> +                             };
> +                             gpu_crit: gpu-crit {
> +                                     temperature = <95000>;
> +                                     hysteresis = <2000>;
> +                                     type = "critical";
> +                             };
> +                     };
> +             };
> +
> +             camera-thermal {
> +                     polling-delay-passive = <250>;
> +                     polling-delay = <1000>;
> +
> +                     thermal-sensors = <&tsens 1>;
> +
> +                     trips {
> +                             cam_alert0: trip-point0 {
> +                                     temperature = <75000>;
> +                                     hysteresis = <2000>;
> +                                     type = "hot";
> +                             };
> +                     };
> +             };
> +
> +             modem-thermal {
> +                     polling-delay-passive = <250>;
> +                     polling-delay = <1000>;
> +
> +                     thermal-sensors = <&tsens 0>;
> +
> +                     trips {
> +                             modem_alert0: trip-point0 {
> +                                     temperature = <85000>;
> +                                     hysteresis = <2000>;
> +                                     type = "hot";
> +                             };
> +                     };
> +             };
> +     };
> +
> +     timer {
> +             compatible = "arm,armv8-timer";
> +             interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | 
> IRQ_TYPE_LEVEL_LOW)>,
> +                          <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | 
> IRQ_TYPE_LEVEL_LOW)>,
> +                          <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | 
> IRQ_TYPE_LEVEL_LOW)>,
> +                          <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | 
> IRQ_TYPE_LEVEL_LOW)>;
> +     };
> +};
> +
> +#include "msm8916-pins.dtsi"
> diff --git a/arch/arm/dts/pm8916.dtsi b/arch/arm/dts/pm8916.dtsi
> new file mode 100644
> index 000000000000..f4fb1a92ab55
> --- /dev/null
> +++ b/arch/arm/dts/pm8916.dtsi
> @@ -0,0 +1,183 @@
> +// SPDX-License-Identifier: GPL-2.0
> +#include <dt-bindings/iio/qcom,spmi-vadc.h>
> +#include <dt-bindings/input/linux-event-codes.h>
> +#include <dt-bindings/interrupt-controller/irq.h>
> +#include <dt-bindings/spmi/spmi.h>
> +
> +&spmi_bus {
> +
> +     pm8916_0: pmic@0 {
> +             compatible = "qcom,pm8916", "qcom,spmi-pmic";
> +             reg = <0x0 SPMI_USID>;
> +             #address-cells = <1>;
> +             #size-cells = <0>;
> +
> +             pon@800 {
> +                     compatible = "qcom,pm8916-pon";
> +                     reg = <0x800>;
> +                     mode-bootloader = <0x2>;
> +                     mode-recovery = <0x1>;
> +
> +                     pwrkey {
> +                             compatible = "qcom,pm8941-pwrkey";
> +                             interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
> +                             debounce = <15625>;
> +                             bias-pull-up;
> +                             linux,code = <KEY_POWER>;
> +                     };
> +
> +                     pm8916_resin: resin {
> +                             compatible = "qcom,pm8941-resin";
> +                             interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
> +                             debounce = <15625>;
> +                             bias-pull-up;
> +                             status = "disabled";
> +                     };
> +
> +                     watchdog {
> +                             compatible = "qcom,pm8916-wdt";
> +                             interrupts = <0x0 0x8 6 IRQ_TYPE_EDGE_RISING>;
> +                             timeout-sec = <60>;
> +                     };
> +             };
> +
> +             pm8916_usbin: usb-detect@1300 {
> +                     compatible = "qcom,pm8941-misc";
> +                     reg = <0x1300>;
> +                     interrupts = <0x0 0x13 1 IRQ_TYPE_EDGE_BOTH>;
> +                     interrupt-names = "usb_vbus";
> +                     status = "disabled";
> +             };
> +
> +             pm8916_temp: temp-alarm@2400 {
> +                     compatible = "qcom,spmi-temp-alarm";
> +                     reg = <0x2400>;
> +                     interrupts = <0 0x24 0 IRQ_TYPE_EDGE_RISING>;
> +                     io-channels = <&pm8916_vadc VADC_DIE_TEMP>;
> +                     io-channel-names = "thermal";
> +                     #thermal-sensor-cells = <0>;
> +             };
> +
> +             pm8916_vadc: adc@3100 {
> +                     compatible = "qcom,spmi-vadc";
> +                     reg = <0x3100>;
> +                     interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
> +                     #address-cells = <1>;
> +                     #size-cells = <0>;
> +                     #io-channel-cells = <1>;
> +
> +                     adc-chan@0 {
> +                             reg = <VADC_USBIN>;
> +                             qcom,pre-scaling = <1 10>;
> +                     };
> +                     adc-chan@7 {
> +                             reg = <VADC_VSYS>;
> +                             qcom,pre-scaling = <1 3>;
> +                     };
> +                     adc-chan@8 {
> +                             reg = <VADC_DIE_TEMP>;
> +                     };
> +                     adc-chan@9 {
> +                             reg = <VADC_REF_625MV>;
> +                     };
> +                     adc-chan@a {
> +                             reg = <VADC_REF_1250MV>;
> +                     };
> +                     adc-chan@e {
> +                             reg = <VADC_GND_REF>;
> +                     };
> +                     adc-chan@f {
> +                             reg = <VADC_VDD_VADC>;
> +                     };
> +             };
> +
> +             rtc@6000 {
> +                     compatible = "qcom,pm8941-rtc";
> +                     reg = <0x6000>, <0x6100>;
> +                     reg-names = "rtc", "alarm";
> +                     interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>;
> +             };
> +
> +             pm8916_mpps: mpps@a000 {
> +                     compatible = "qcom,pm8916-mpp", "qcom,spmi-mpp";
> +                     reg = <0xa000>;
> +                     gpio-controller;
> +                     #gpio-cells = <2>;
> +                     gpio-ranges = <&pm8916_mpps 0 0 4>;
> +                     interrupt-controller;
> +                     #interrupt-cells = <2>;
> +             };
> +
> +             pm8916_gpios: gpio@c000 {
> +                     compatible = "qcom,pm8916-gpio", "qcom,spmi-gpio";
> +                     reg = <0xc000>;
> +                     gpio-controller;
> +                     gpio-ranges = <&pm8916_gpios 0 0 4>;
> +                     #gpio-cells = <2>;
> +                     interrupt-controller;
> +                     #interrupt-cells = <2>;
> +             };
> +     };
> +
> +     pm8916_1: pmic@1 {
> +             compatible = "qcom,pm8916", "qcom,spmi-pmic";
> +             reg = <0x1 SPMI_USID>;
> +             #address-cells = <1>;
> +             #size-cells = <0>;
> +
> +             pm8916_pwm: pwm {
> +                     compatible = "qcom,pm8916-pwm";
> +
> +                     #pwm-cells = <2>;
> +
> +                     status = "disabled";
> +             };
> +
> +             pm8916_vib: vibrator@c000 {
> +                     compatible = "qcom,pm8916-vib";
> +                     reg = <0xc000>;
> +                     status = "disabled";
> +             };
> +
> +             wcd_codec: audio-codec@f000 {
> +                     compatible = "qcom,pm8916-wcd-analog-codec";
> +                     reg = <0xf000>;
> +                     reg-names = "pmic-codec-core";
> +                     clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
> +                     clock-names = "mclk";
> +                     interrupt-parent = <&spmi_bus>;
> +                     interrupts = <0x1 0xf0 0x0 IRQ_TYPE_NONE>,
> +                                  <0x1 0xf0 0x1 IRQ_TYPE_NONE>,
> +                                  <0x1 0xf0 0x2 IRQ_TYPE_NONE>,
> +                                  <0x1 0xf0 0x3 IRQ_TYPE_NONE>,
> +                                  <0x1 0xf0 0x4 IRQ_TYPE_NONE>,
> +                                  <0x1 0xf0 0x5 IRQ_TYPE_NONE>,
> +                                  <0x1 0xf0 0x6 IRQ_TYPE_NONE>,
> +                                  <0x1 0xf0 0x7 IRQ_TYPE_NONE>,
> +                                  <0x1 0xf1 0x0 IRQ_TYPE_NONE>,
> +                                  <0x1 0xf1 0x1 IRQ_TYPE_NONE>,
> +                                  <0x1 0xf1 0x2 IRQ_TYPE_NONE>,
> +                                  <0x1 0xf1 0x3 IRQ_TYPE_NONE>,
> +                                  <0x1 0xf1 0x4 IRQ_TYPE_NONE>,
> +                                  <0x1 0xf1 0x5 IRQ_TYPE_NONE>;
> +                     interrupt-names = "cdc_spk_cnp_int",
> +                                       "cdc_spk_clip_int",
> +                                       "cdc_spk_ocp_int",
> +                                       "mbhc_ins_rem_det1",
> +                                       "mbhc_but_rel_det",
> +                                       "mbhc_but_press_det",
> +                                       "mbhc_ins_rem_det",
> +                                       "mbhc_switch_int",
> +                                       "cdc_ear_ocp_int",
> +                                       "cdc_hphr_ocp_int",
> +                                       "cdc_hphl_ocp_det",
> +                                       "cdc_ear_cnp_int",
> +                                       "cdc_hphr_cnp_int",
> +                                       "cdc_hphl_cnp_int";
> +                     vdd-cdc-io-supply = <&pm8916_l5>;
> +                     vdd-cdc-tx-rx-cx-supply = <&pm8916_l5>;
> +                     vdd-micbias-supply = <&pm8916_l13>;
> +                     #sound-dai-cells = <1>;
> +             };
> +     };
> +};
> diff --git a/include/dt-bindings/arm/coresight-cti-dt.h 
> b/include/dt-bindings/arm/coresight-cti-dt.h
> new file mode 100644
> index 000000000000..61e7bdf8ea6e
> --- /dev/null
> +++ b/include/dt-bindings/arm/coresight-cti-dt.h
> @@ -0,0 +1,37 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * This header provides constants for the defined trigger signal
> + * types on CoreSight CTI.
> + */
> +
> +#ifndef _DT_BINDINGS_ARM_CORESIGHT_CTI_DT_H
> +#define _DT_BINDINGS_ARM_CORESIGHT_CTI_DT_H
> +
> +#define GEN_IO               0
> +#define GEN_INTREQ   1
> +#define GEN_INTACK   2
> +#define GEN_HALTREQ  3
> +#define GEN_RESTARTREQ       4
> +#define PE_EDBGREQ   5
> +#define PE_DBGRESTART        6
> +#define PE_CTIIRQ    7
> +#define PE_PMUIRQ    8
> +#define PE_DBGTRIGGER        9
> +#define ETM_EXTOUT   10
> +#define ETM_EXTIN    11
> +#define SNK_FULL     12
> +#define SNK_ACQCOMP  13
> +#define SNK_FLUSHCOMP        14
> +#define SNK_FLUSHIN  15
> +#define SNK_TRIGIN   16
> +#define STM_ASYNCOUT 17
> +#define STM_TOUT_SPTE        18
> +#define STM_TOUT_SW  19
> +#define STM_TOUT_HETE        20
> +#define STM_HWEVENT  21
> +#define ELA_TSTART   22
> +#define ELA_TSTOP    23
> +#define ELA_DBGREQ   24
> +#define CTI_TRIG_MAX 25
> +
> +#endif /*_DT_BINDINGS_ARM_CORESIGHT_CTI_DT_H */
> diff --git a/include/dt-bindings/clock/qcom,rpmcc.h 
> b/include/dt-bindings/clock/qcom,rpmcc.h
> new file mode 100644
> index 000000000000..46309c9953b2
> --- /dev/null
> +++ b/include/dt-bindings/clock/qcom,rpmcc.h
> @@ -0,0 +1,174 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Copyright 2015 Linaro Limited
> + */
> +
> +#ifndef _DT_BINDINGS_CLK_MSM_RPMCC_H
> +#define _DT_BINDINGS_CLK_MSM_RPMCC_H
> +
> +/* RPM clocks */
> +#define RPM_PXO_CLK                          0
> +#define RPM_PXO_A_CLK                                1
> +#define RPM_CXO_CLK                          2
> +#define RPM_CXO_A_CLK                                3
> +#define RPM_APPS_FABRIC_CLK                  4
> +#define RPM_APPS_FABRIC_A_CLK                        5
> +#define RPM_CFPB_CLK                         6
> +#define RPM_CFPB_A_CLK                               7
> +#define RPM_QDSS_CLK                         8
> +#define RPM_QDSS_A_CLK                               9
> +#define RPM_DAYTONA_FABRIC_CLK                       10
> +#define RPM_DAYTONA_FABRIC_A_CLK             11
> +#define RPM_EBI1_CLK                         12
> +#define RPM_EBI1_A_CLK                               13
> +#define RPM_MM_FABRIC_CLK                    14
> +#define RPM_MM_FABRIC_A_CLK                  15
> +#define RPM_MMFPB_CLK                                16
> +#define RPM_MMFPB_A_CLK                              17
> +#define RPM_SYS_FABRIC_CLK                   18
> +#define RPM_SYS_FABRIC_A_CLK                 19
> +#define RPM_SFPB_CLK                         20
> +#define RPM_SFPB_A_CLK                               21
> +#define RPM_SMI_CLK                          22
> +#define RPM_SMI_A_CLK                                23
> +#define RPM_PLL4_CLK                         24
> +#define RPM_XO_D0                            25
> +#define RPM_XO_D1                            26
> +#define RPM_XO_A0                            27
> +#define RPM_XO_A1                            28
> +#define RPM_XO_A2                            29
> +#define RPM_NSS_FABRIC_0_CLK                 30
> +#define RPM_NSS_FABRIC_0_A_CLK                       31
> +#define RPM_NSS_FABRIC_1_CLK                 32
> +#define RPM_NSS_FABRIC_1_A_CLK                       33
> +
> +/* SMD RPM clocks */
> +#define RPM_SMD_XO_CLK_SRC                           0
> +#define RPM_SMD_XO_A_CLK_SRC                 1
> +#define RPM_SMD_PCNOC_CLK                            2
> +#define RPM_SMD_PCNOC_A_CLK                          3
> +#define RPM_SMD_SNOC_CLK                             4
> +#define RPM_SMD_SNOC_A_CLK                           5
> +#define RPM_SMD_BIMC_CLK                             6
> +#define RPM_SMD_BIMC_A_CLK                           7
> +#define RPM_SMD_QDSS_CLK                             8
> +#define RPM_SMD_QDSS_A_CLK                           9
> +#define RPM_SMD_BB_CLK1                              10
> +#define RPM_SMD_BB_CLK1_A                            11
> +#define RPM_SMD_BB_CLK2                              12
> +#define RPM_SMD_BB_CLK2_A                            13
> +#define RPM_SMD_RF_CLK1                              14
> +#define RPM_SMD_RF_CLK1_A                            15
> +#define RPM_SMD_RF_CLK2                              16
> +#define RPM_SMD_RF_CLK2_A                            17
> +#define RPM_SMD_BB_CLK1_PIN                          18
> +#define RPM_SMD_BB_CLK1_A_PIN                        19
> +#define RPM_SMD_BB_CLK2_PIN                          20
> +#define RPM_SMD_BB_CLK2_A_PIN                        21
> +#define RPM_SMD_RF_CLK1_PIN                          22
> +#define RPM_SMD_RF_CLK1_A_PIN                        23
> +#define RPM_SMD_RF_CLK2_PIN                          24
> +#define RPM_SMD_RF_CLK2_A_PIN                        25
> +#define RPM_SMD_PNOC_CLK                     26
> +#define RPM_SMD_PNOC_A_CLK                   27
> +#define RPM_SMD_CNOC_CLK                     28
> +#define RPM_SMD_CNOC_A_CLK                   29
> +#define RPM_SMD_MMSSNOC_AHB_CLK                      30
> +#define RPM_SMD_MMSSNOC_AHB_A_CLK            31
> +#define RPM_SMD_GFX3D_CLK_SRC                        32
> +#define RPM_SMD_GFX3D_A_CLK_SRC                      33
> +#define RPM_SMD_OCMEMGX_CLK                  34
> +#define RPM_SMD_OCMEMGX_A_CLK                        35
> +#define RPM_SMD_CXO_D0                               36
> +#define RPM_SMD_CXO_D0_A                     37
> +#define RPM_SMD_CXO_D1                               38
> +#define RPM_SMD_CXO_D1_A                     39
> +#define RPM_SMD_CXO_A0                               40
> +#define RPM_SMD_CXO_A0_A                     41
> +#define RPM_SMD_CXO_A1                               42
> +#define RPM_SMD_CXO_A1_A                     43
> +#define RPM_SMD_CXO_A2                               44
> +#define RPM_SMD_CXO_A2_A                     45
> +#define RPM_SMD_DIV_CLK1                     46
> +#define RPM_SMD_DIV_A_CLK1                   47
> +#define RPM_SMD_DIV_CLK2                     48
> +#define RPM_SMD_DIV_A_CLK2                   49
> +#define RPM_SMD_DIFF_CLK                     50
> +#define RPM_SMD_DIFF_A_CLK                   51
> +#define RPM_SMD_CXO_D0_PIN                   52
> +#define RPM_SMD_CXO_D0_A_PIN                 53
> +#define RPM_SMD_CXO_D1_PIN                   54
> +#define RPM_SMD_CXO_D1_A_PIN                 55
> +#define RPM_SMD_CXO_A0_PIN                   56
> +#define RPM_SMD_CXO_A0_A_PIN                 57
> +#define RPM_SMD_CXO_A1_PIN                   58
> +#define RPM_SMD_CXO_A1_A_PIN                 59
> +#define RPM_SMD_CXO_A2_PIN                   60
> +#define RPM_SMD_CXO_A2_A_PIN                 61
> +#define RPM_SMD_AGGR1_NOC_CLK                        62
> +#define RPM_SMD_AGGR1_NOC_A_CLK                      63
> +#define RPM_SMD_AGGR2_NOC_CLK                        64
> +#define RPM_SMD_AGGR2_NOC_A_CLK                      65
> +#define RPM_SMD_MMAXI_CLK                    66
> +#define RPM_SMD_MMAXI_A_CLK                  67
> +#define RPM_SMD_IPA_CLK                              68
> +#define RPM_SMD_IPA_A_CLK                    69
> +#define RPM_SMD_CE1_CLK                              70
> +#define RPM_SMD_CE1_A_CLK                    71
> +#define RPM_SMD_DIV_CLK3                     72
> +#define RPM_SMD_DIV_A_CLK3                   73
> +#define RPM_SMD_LN_BB_CLK                    74
> +#define RPM_SMD_LN_BB_A_CLK                  75
> +#define RPM_SMD_BIMC_GPU_CLK                 76
> +#define RPM_SMD_BIMC_GPU_A_CLK                       77
> +#define RPM_SMD_QPIC_CLK                     78
> +#define RPM_SMD_QPIC_CLK_A                   79
> +#define RPM_SMD_LN_BB_CLK1                   80
> +#define RPM_SMD_LN_BB_CLK1_A                 81
> +#define RPM_SMD_LN_BB_CLK2                   82
> +#define RPM_SMD_LN_BB_CLK2_A                 83
> +#define RPM_SMD_LN_BB_CLK3_PIN                       84
> +#define RPM_SMD_LN_BB_CLK3_A_PIN             85
> +#define RPM_SMD_RF_CLK3                              86
> +#define RPM_SMD_RF_CLK3_A                    87
> +#define RPM_SMD_RF_CLK3_PIN                  88
> +#define RPM_SMD_RF_CLK3_A_PIN                        89
> +#define RPM_SMD_MMSSNOC_AXI_CLK                      90
> +#define RPM_SMD_MMSSNOC_AXI_CLK_A            91
> +#define RPM_SMD_CNOC_PERIPH_CLK                      92
> +#define RPM_SMD_CNOC_PERIPH_A_CLK            93
> +#define RPM_SMD_LN_BB_CLK3                   94
> +#define RPM_SMD_LN_BB_CLK3_A                 95
> +#define RPM_SMD_LN_BB_CLK1_PIN                       96
> +#define RPM_SMD_LN_BB_CLK1_A_PIN             97
> +#define RPM_SMD_LN_BB_CLK2_PIN                       98
> +#define RPM_SMD_LN_BB_CLK2_A_PIN             99
> +#define RPM_SMD_SYSMMNOC_CLK                 100
> +#define RPM_SMD_SYSMMNOC_A_CLK                       101
> +#define RPM_SMD_CE2_CLK                              102
> +#define RPM_SMD_CE2_A_CLK                    103
> +#define RPM_SMD_CE3_CLK                              104
> +#define RPM_SMD_CE3_A_CLK                    105
> +#define RPM_SMD_QUP_CLK                              106
> +#define RPM_SMD_QUP_A_CLK                    107
> +#define RPM_SMD_MMRT_CLK                     108
> +#define RPM_SMD_MMRT_A_CLK                   109
> +#define RPM_SMD_MMNRT_CLK                    110
> +#define RPM_SMD_MMNRT_A_CLK                  111
> +#define RPM_SMD_SNOC_PERIPH_CLK                      112
> +#define RPM_SMD_SNOC_PERIPH_A_CLK            113
> +#define RPM_SMD_SNOC_LPASS_CLK                       114
> +#define RPM_SMD_SNOC_LPASS_A_CLK             115
> +#define RPM_SMD_HWKM_CLK                     116
> +#define RPM_SMD_HWKM_A_CLK                   117
> +#define RPM_SMD_PKA_CLK                              118
> +#define RPM_SMD_PKA_A_CLK                    119
> +#define RPM_SMD_CPUSS_GNOC_CLK                       120
> +#define RPM_SMD_CPUSS_GNOC_A_CLK             121
> +#define RPM_SMD_MSS_CFG_AHB_CLK              122
> +#define RPM_SMD_MSS_CFG_AHB_A_CLK            123
> +#define RPM_SMD_BIMC_FREQ_LOG                        124
> +#define RPM_SMD_LN_BB_CLK_PIN                        125
> +#define RPM_SMD_LN_BB_A_CLK_PIN                      126
> +
> +#endif
> diff --git a/include/dt-bindings/interconnect/qcom,msm8916.h 
> b/include/dt-bindings/interconnect/qcom,msm8916.h
> new file mode 100644
> index 000000000000..359a75feb198
> --- /dev/null
> +++ b/include/dt-bindings/interconnect/qcom,msm8916.h
> @@ -0,0 +1,100 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * Qualcomm interconnect IDs
> + *
> + * Copyright (c) 2019, Linaro Ltd.
> + * Author: Georgi Djakov <georgi.dja...@linaro.org>
> + */
> +
> +#ifndef __DT_BINDINGS_INTERCONNECT_QCOM_MSM8916_H
> +#define __DT_BINDINGS_INTERCONNECT_QCOM_MSM8916_H
> +
> +#define BIMC_SNOC_SLV                        0
> +#define MASTER_JPEG                  1
> +#define MASTER_MDP_PORT0             2
> +#define MASTER_QDSS_BAM                      3
> +#define MASTER_QDSS_ETR                      4
> +#define MASTER_SNOC_CFG                      5
> +#define MASTER_VFE                   6
> +#define MASTER_VIDEO_P0                      7
> +#define SNOC_MM_INT_0                        8
> +#define SNOC_MM_INT_1                        9
> +#define SNOC_MM_INT_2                        10
> +#define SNOC_MM_INT_BIMC             11
> +#define PCNOC_SNOC_SLV                       12
> +#define SLAVE_APSS                   13
> +#define SLAVE_CATS_128                       14
> +#define SLAVE_OCMEM_64                       15
> +#define SLAVE_IMEM                   16
> +#define SLAVE_QDSS_STM                       17
> +#define SLAVE_SRVC_SNOC                      18
> +#define SNOC_BIMC_0_MAS                      19
> +#define SNOC_BIMC_1_MAS                      20
> +#define SNOC_INT_0                   21
> +#define SNOC_INT_1                   22
> +#define SNOC_INT_BIMC                        23
> +#define SNOC_PCNOC_MAS                       24
> +#define SNOC_QDSS_INT                        25
> +
> +#define BIMC_SNOC_MAS                        0
> +#define MASTER_AMPSS_M0                      1
> +#define MASTER_GRAPHICS_3D           2
> +#define MASTER_TCU0                  3
> +#define MASTER_TCU1                  4
> +#define SLAVE_AMPSS_L2                       5
> +#define SLAVE_EBI_CH0                        6
> +#define SNOC_BIMC_0_SLV                      7
> +#define SNOC_BIMC_1_SLV                      8
> +
> +#define MASTER_BLSP_1                        0
> +#define MASTER_DEHR                  1
> +#define MASTER_LPASS                 2
> +#define MASTER_CRYPTO_CORE0          3
> +#define MASTER_SDCC_1                        4
> +#define MASTER_SDCC_2                        5
> +#define MASTER_SPDM                  6
> +#define MASTER_USB_HS                        7
> +#define PCNOC_INT_0                  8
> +#define PCNOC_INT_1                  9
> +#define PCNOC_MAS_0                  10
> +#define PCNOC_MAS_1                  11
> +#define PCNOC_SLV_0                  12
> +#define PCNOC_SLV_1                  13
> +#define PCNOC_SLV_2                  14
> +#define PCNOC_SLV_3                  15
> +#define PCNOC_SLV_4                  16
> +#define PCNOC_SLV_8                  17
> +#define PCNOC_SLV_9                  18
> +#define PCNOC_SNOC_MAS                       19
> +#define SLAVE_BIMC_CFG                       20
> +#define SLAVE_BLSP_1                 21
> +#define SLAVE_BOOT_ROM                       22
> +#define SLAVE_CAMERA_CFG             23
> +#define SLAVE_CLK_CTL                        24
> +#define SLAVE_CRYPTO_0_CFG           25
> +#define SLAVE_DEHR_CFG                       26
> +#define SLAVE_DISPLAY_CFG            27
> +#define SLAVE_GRAPHICS_3D_CFG                28
> +#define SLAVE_IMEM_CFG                       29
> +#define SLAVE_LPASS                  30
> +#define SLAVE_MPM                    31
> +#define SLAVE_MSG_RAM                        32
> +#define SLAVE_MSS                    33
> +#define SLAVE_PDM                    34
> +#define SLAVE_PMIC_ARB                       35
> +#define SLAVE_PCNOC_CFG                      36
> +#define SLAVE_PRNG                   37
> +#define SLAVE_QDSS_CFG                       38
> +#define SLAVE_RBCPR_CFG                      39
> +#define SLAVE_SDCC_1                 40
> +#define SLAVE_SDCC_2                 41
> +#define SLAVE_SECURITY                       42
> +#define SLAVE_SNOC_CFG                       43
> +#define SLAVE_SPDM                   44
> +#define SLAVE_TCSR                   45
> +#define SLAVE_TLMM                   46
> +#define SLAVE_USB_HS                 47
> +#define SLAVE_VENUS_CFG                      48
> +#define SNOC_PCNOC_SLV                       49
> +
> +#endif
> diff --git a/include/dt-bindings/reset/qcom,gcc-msm8916.h 
> b/include/dt-bindings/reset/qcom,gcc-msm8916.h
> new file mode 100644
> index 000000000000..1f9be10872df
> --- /dev/null
> +++ b/include/dt-bindings/reset/qcom,gcc-msm8916.h
> @@ -0,0 +1,100 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Copyright 2015 Linaro Limited
> + */
> +
> +#ifndef _DT_BINDINGS_RESET_MSM_GCC_8916_H
> +#define _DT_BINDINGS_RESET_MSM_GCC_8916_H
> +
> +#define GCC_BLSP1_BCR                        0
> +#define GCC_BLSP1_QUP1_BCR           1
> +#define GCC_BLSP1_UART1_BCR          2
> +#define GCC_BLSP1_QUP2_BCR           3
> +#define GCC_BLSP1_UART2_BCR          4
> +#define GCC_BLSP1_QUP3_BCR           5
> +#define GCC_BLSP1_QUP4_BCR           6
> +#define GCC_BLSP1_QUP5_BCR           7
> +#define GCC_BLSP1_QUP6_BCR           8
> +#define GCC_IMEM_BCR                 9
> +#define GCC_SMMU_BCR                 10
> +#define GCC_APSS_TCU_BCR             11
> +#define GCC_SMMU_XPU_BCR             12
> +#define GCC_PCNOC_TBU_BCR            13
> +#define GCC_PRNG_BCR                 14
> +#define GCC_BOOT_ROM_BCR             15
> +#define GCC_CRYPTO_BCR                       16
> +#define GCC_SEC_CTRL_BCR             17
> +#define GCC_AUDIO_CORE_BCR           18
> +#define GCC_ULT_AUDIO_BCR            19
> +#define GCC_DEHR_BCR                 20
> +#define GCC_SYSTEM_NOC_BCR           21
> +#define GCC_PCNOC_BCR                        22
> +#define GCC_TCSR_BCR                 23
> +#define GCC_QDSS_BCR                 24
> +#define GCC_DCD_BCR                  25
> +#define GCC_MSG_RAM_BCR                      26
> +#define GCC_MPM_BCR                  27
> +#define GCC_SPMI_BCR                 28
> +#define GCC_SPDM_BCR                 29
> +#define GCC_MM_SPDM_BCR                      30
> +#define GCC_BIMC_BCR                 31
> +#define GCC_RBCPR_BCR                        32
> +#define GCC_TLMM_BCR                 33
> +#define GCC_USB_HS_BCR                       34
> +#define GCC_USB2A_PHY_BCR            35
> +#define GCC_SDCC1_BCR                        36
> +#define GCC_SDCC2_BCR                        37
> +#define GCC_PDM_BCR                  38
> +#define GCC_SNOC_BUS_TIMEOUT0_BCR    39
> +#define GCC_PCNOC_BUS_TIMEOUT0_BCR   40
> +#define GCC_PCNOC_BUS_TIMEOUT1_BCR   41
> +#define GCC_PCNOC_BUS_TIMEOUT2_BCR   42
> +#define GCC_PCNOC_BUS_TIMEOUT3_BCR   43
> +#define GCC_PCNOC_BUS_TIMEOUT4_BCR   44
> +#define GCC_PCNOC_BUS_TIMEOUT5_BCR   45
> +#define GCC_PCNOC_BUS_TIMEOUT6_BCR   46
> +#define GCC_PCNOC_BUS_TIMEOUT7_BCR   47
> +#define GCC_PCNOC_BUS_TIMEOUT8_BCR   48
> +#define GCC_PCNOC_BUS_TIMEOUT9_BCR   49
> +#define GCC_MMSS_BCR                 50
> +#define GCC_VENUS0_BCR                       51
> +#define GCC_MDSS_BCR                 52
> +#define GCC_CAMSS_PHY0_BCR           53
> +#define GCC_CAMSS_CSI0_BCR           54
> +#define GCC_CAMSS_CSI0PHY_BCR                55
> +#define GCC_CAMSS_CSI0RDI_BCR                56
> +#define GCC_CAMSS_CSI0PIX_BCR                57
> +#define GCC_CAMSS_PHY1_BCR           58
> +#define GCC_CAMSS_CSI1_BCR           59
> +#define GCC_CAMSS_CSI1PHY_BCR                60
> +#define GCC_CAMSS_CSI1RDI_BCR                61
> +#define GCC_CAMSS_CSI1PIX_BCR                62
> +#define GCC_CAMSS_ISPIF_BCR          63
> +#define GCC_CAMSS_CCI_BCR            64
> +#define GCC_CAMSS_MCLK0_BCR          65
> +#define GCC_CAMSS_MCLK1_BCR          66
> +#define GCC_CAMSS_GP0_BCR            67
> +#define GCC_CAMSS_GP1_BCR            68
> +#define GCC_CAMSS_TOP_BCR            69
> +#define GCC_CAMSS_MICRO_BCR          70
> +#define GCC_CAMSS_JPEG_BCR           71
> +#define GCC_CAMSS_VFE_BCR            72
> +#define GCC_CAMSS_CSI_VFE0_BCR               73
> +#define GCC_OXILI_BCR                        74
> +#define GCC_GMEM_BCR                 75
> +#define GCC_CAMSS_AHB_BCR            76
> +#define GCC_MDP_TBU_BCR                      77
> +#define GCC_GFX_TBU_BCR                      78
> +#define GCC_GFX_TCU_BCR                      79
> +#define GCC_MSS_TBU_AXI_BCR          80
> +#define GCC_MSS_TBU_GSS_AXI_BCR              81
> +#define GCC_MSS_TBU_Q6_AXI_BCR               82
> +#define GCC_GTCU_AHB_BCR             83
> +#define GCC_SMMU_CFG_BCR             84
> +#define GCC_VFE_TBU_BCR                      85
> +#define GCC_VENUS_TBU_BCR            86
> +#define GCC_JPEG_TBU_BCR             87
> +#define GCC_PRONTO_TBU_BCR           88
> +#define GCC_SMMU_CATS_BCR            89
> +
> +#endif
> 
> -- 
> 2.42.1
> 

Reply via email to