Merge tag 'qcom-arm64-for-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom...
authorArnd Bergmann <arnd@arndb.de>
Thu, 26 Mar 2020 14:24:02 +0000 (15:24 +0100)
committerArnd Bergmann <arnd@arndb.de>
Thu, 26 Mar 2020 14:24:02 +0000 (15:24 +0100)
Qualcomm ARM64 DT updates for v5.7

This brings initial support for the SM8250 and IPQ6018 platforms.

SDM845 gets audio, PCIe and IP-accelerator support, and the interconnect
providers are refactored. The Lenovo Yoga C630 has audio enabled and the
DB845c has PCIe, analog audio and low-speed interfaces enabled. The
SDM845 MTP has its display enabled and firmware location updated to
match linux-firmware.

SC7180 gains CPU topology and power properties. Interconnect providers,
eMMC, SD-card, multimedia clocks, display, Bluetooth, Venus are added.
Critical trip points are added as well as various fixes.

For MSM8916 FastRPC support is added, ETM power management and reserved
memory for Samsung A2015 are corrected.

MSM8996 switches to generic QMP phy driver for its UFS support. MSM8998
temporarily disables part of Coresight to boot without
clk_ignore_unused.  CEQ for eMMC on QCS404 is enabled.

Fixes throughout the platforms to fix binding compliance, correct
compatibles for SDHCI nodes and add gpio-ranges.

* tag 'qcom-arm64-for-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: (56 commits)
  arm64: dts: qcom: sdm845-mtp: Relocate remoteproc firmware
  arm64: dts: sdm845: add IPA information
  arm64: dts: qcom: db845c: add analog audio support
  arm64: dts: qcom: sdm845: add pinctrl nodes for quat i2s
  arm64: dts: qcom: c630: Enable audio support
  arm64: dts: qcom: sdm845: add apr nodes
  arm64: dts: qcom: sdm845: add slimbus nodes
  arm64: dts: qcom: sc7180: Update reg names for SDHC
  arm64: dts: qcom: qcs404: Enable CQE support for eMMC
  arm64: dts: msm8916: Add fastrpc node
  arm64: dts: qcom: sm8250: Add sm8250 dts file
  arm64: dts: qcom: msm8998-mtp: Disable funnel 4 and 5
  arm64: dts: qcom: db845c: add Low speed expansion i2c and spi nodes
  arm64: dts: qcom: apq8016-sbc: Remove wrong regulator supply
  arm64: dts: qcom: sc7180: Added critical trip point Thermal-zones node
  arm64: dts: qcom: msm8998: Fix cpu compatible
  arm64: dts: qcom: sc7180: Add OSM L3 interconnect provider
  arm64: dts: qcom: sdm845: Add OSM L3 interconnect provider
  arm64: dts: sc7180: Add interconnect provider DT nodes
  arm64: dts: qcom: msm8996: Use generic QMP driver for UFS
  ...

Link: https://lore.kernel.org/r/20200318043823.GA470201@yoga
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
27 files changed:
Documentation/devicetree/bindings/arm/qcom.yaml
arch/arm64/boot/dts/qcom/Makefile
arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi
arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/ipq6018.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/qcom/ipq8074.dtsi
arch/arm64/boot/dts/qcom/msm8916-samsung-a2015-common.dtsi
arch/arm64/boot/dts/qcom/msm8916.dtsi
arch/arm64/boot/dts/qcom/msm8992.dtsi
arch/arm64/boot/dts/qcom/msm8994.dtsi
arch/arm64/boot/dts/qcom/msm8996.dtsi
arch/arm64/boot/dts/qcom/msm8998-mtp.dtsi
arch/arm64/boot/dts/qcom/msm8998.dtsi
arch/arm64/boot/dts/qcom/pm6150.dtsi
arch/arm64/boot/dts/qcom/pm8998.dtsi
arch/arm64/boot/dts/qcom/qcs404-evb.dtsi
arch/arm64/boot/dts/qcom/qcs404.dtsi
arch/arm64/boot/dts/qcom/sc7180-idp.dts
arch/arm64/boot/dts/qcom/sc7180.dtsi
arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi
arch/arm64/boot/dts/qcom/sdm845-db845c.dts
arch/arm64/boot/dts/qcom/sdm845-mtp.dts
arch/arm64/boot/dts/qcom/sdm845.dtsi
arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
arch/arm64/boot/dts/qcom/sm8250-mtp.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sm8250.dtsi [new file with mode: 0644]

index 5976c0b16b6550665c6fcf1b43f0edcccfec5dcc..64ddae3bd39fd0d13c5df4b0666e2f3d1ef3b9cc 100644 (file)
@@ -28,6 +28,7 @@ description: |
         apq8074
         apq8084
         apq8096
+        ipq6018
         ipq8074
         mdm9615
         msm8916
@@ -41,6 +42,7 @@ description: |
   The 'board' element must be one of the following strings:
 
         cdp
+        cp01-c1
         dragonboard
         hk01
         idp
@@ -150,4 +152,10 @@ properties:
           - enum:
               - qcom,sc7180-idp
           - const: qcom,sc7180
+
+      - items:
+          - enum:
+              - qcom,ipq6018-cp01-c1
+          - const: qcom,ipq6018
+
 ...
index 973c0f079659b6e8b3084cf0a7afe8dc7ad1120e..cc103f7020fd62cbbd89eb3b3e1415c3d0e837d9 100644 (file)
@@ -2,6 +2,7 @@
 dtb-$(CONFIG_ARCH_QCOM)        += apq8016-sbc.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += apq8096-db820c.dtb
 dtb-$(CONFIG_ARCH_QCOM) += apq8096-ifc6640.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += ipq6018-cp01-c1.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += ipq8074-hk01.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += msm8916-mtp.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += msm8916-longcheer-l8150.dtb
@@ -22,5 +23,6 @@ dtb-$(CONFIG_ARCH_QCOM)       += sdm845-db845c.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sdm845-mtp.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sdm850-lenovo-yoga-c630.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm8150-mtp.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += sm8250-mtp.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += qcs404-evb-1000.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += qcs404-evb-4000.dtb
index 037e26b3f8d5667bd5eae6f169fe14abfa296514..06aab44d798cdbdb8c686722b983fac1292cde59 100644 (file)
 
 &smd_rpm_regulators {
        vdd_l1_l2_l3-supply = <&pm8916_s3>;
-       vdd_l5-supply = <&pm8916_s3>;
        vdd_l4_l5_l6-supply = <&pm8916_s4>;
        vdd_l7-supply = <&pm8916_s4>;
 
index fff6115f26706f4cf3f4b1dcfad6099a7643d41f..af87350b5547b9de6a56862b9035f35911b4fd49 100644 (file)
 
        vdda-phy-supply = <&vreg_l28a_0p925>;
        vdda-pll-supply = <&vreg_l12a_1p8>;
-
-       vdda-phy-max-microamp = <18380>;
-       vdda-pll-max-microamp = <9440>;
-
        vddp-ref-clk-supply = <&vreg_l25a_1p2>;
-       vddp-ref-clk-max-microamp = <100>;
-       vddp-ref-clk-always-on;
 };
 
 &ufshc {
diff --git a/arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dts b/arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dts
new file mode 100644 (file)
index 0000000..b31117a
--- /dev/null
@@ -0,0 +1,64 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * IPQ6018 CP01 board device tree source
+ *
+ * Copyright (c) 2019, The Linux Foundation. All rights reserved.
+ */
+
+/dts-v1/;
+
+#include "ipq6018.dtsi"
+
+/ {
+       model = "Qualcomm Technologies, Inc. IPQ6018/AP-CP01-C1";
+       compatible = "qcom,ipq6018-cp01", "qcom,ipq6018";
+
+       aliases {
+               serial0 = &blsp1_uart3;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+               bootargs-append = " swiotlb=1";
+       };
+};
+
+&blsp1_uart3 {
+       pinctrl-0 = <&serial_3_pins>;
+       pinctrl-names = "default";
+       status = "ok";
+};
+
+&i2c_1 {
+       pinctrl-0 = <&i2c_1_pins>;
+       pinctrl-names = "default";
+       status = "ok";
+};
+
+&spi_0 {
+       cs-select = <0>;
+       status = "ok";
+
+       m25p80@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0>;
+               compatible = "n25q128a11";
+               spi-max-frequency = <50000000>;
+       };
+};
+
+&tlmm {
+       i2c_1_pins: i2c-1-pins {
+               pins = "gpio42", "gpio43";
+               function = "blsp2_i2c";
+               drive-strength = <8>;
+       };
+
+       spi_0_pins: spi-0-pins {
+               pins = "gpio38", "gpio39", "gpio40", "gpio41";
+               function = "blsp0_spi";
+               drive-strength = <8>;
+               bias-pull-down;
+       };
+};
diff --git a/arch/arm64/boot/dts/qcom/ipq6018.dtsi b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
new file mode 100644 (file)
index 0000000..1aa8d85
--- /dev/null
@@ -0,0 +1,443 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * IPQ6018 SoC device tree source
+ *
+ * Copyright (c) 2019, The Linux Foundation. All rights reserved.
+ */
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/clock/qcom,gcc-ipq6018.h>
+#include <dt-bindings/reset/qcom,gcc-ipq6018.h>
+
+/ {
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&intc>;
+
+       clocks {
+               sleep_clk: sleep-clk {
+                       compatible = "fixed-clock";
+                       clock-frequency = <32000>;
+                       #clock-cells = <0>;
+               };
+
+               xo: xo {
+                       compatible = "fixed-clock";
+                       clock-frequency = <24000000>;
+                       #clock-cells = <0>;
+               };
+       };
+
+       cpus: cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               CPU0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x0>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_0>;
+               };
+
+               CPU1: cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       enable-method = "psci";
+                       reg = <0x1>;
+                       next-level-cache = <&L2_0>;
+               };
+
+               CPU2: cpu@2 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       enable-method = "psci";
+                       reg = <0x2>;
+                       next-level-cache = <&L2_0>;
+               };
+
+               CPU3: cpu@3 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       enable-method = "psci";
+                       reg = <0x3>;
+                       next-level-cache = <&L2_0>;
+               };
+
+               L2_0: l2-cache {
+                       compatible = "cache";
+                       cache-level = <0x2>;
+               };
+       };
+
+       firmware {
+               scm {
+                       compatible = "qcom,scm";
+               };
+       };
+
+       tcsr_mutex: hwlock {
+               compatible = "qcom,tcsr-mutex";
+               syscon = <&tcsr_mutex_regs 0 0x80>;
+               #hwlock-cells = <1>;
+       };
+
+       pmuv8: pmu {
+               compatible = "arm,cortex-a53-pmu";
+               interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) |
+                                        IRQ_TYPE_LEVEL_HIGH)>;
+       };
+
+       psci: psci {
+               compatible = "arm,psci-1.0";
+               method = "smc";
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               tz: tz@48500000 {
+                       reg = <0x0 0x48500000 0x0 0x00200000>;
+                       no-map;
+               };
+
+               smem_region: memory@4aa00000 {
+                       reg = <0x0 0x4aa00000 0x0 0x00100000>;
+                       no-map;
+               };
+
+               q6_region: memory@4ab00000 {
+                       reg = <0x0 0x4ab00000 0x0 0x02800000>;
+                       no-map;
+               };
+       };
+
+       smem {
+               compatible = "qcom,smem";
+               memory-region = <&smem_region>;
+               hwlocks = <&tcsr_mutex 0>;
+       };
+
+       soc: soc {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0 0 0 0xffffffff>;
+               dma-ranges;
+               compatible = "simple-bus";
+
+               prng: qrng@e1000 {
+                       compatible = "qcom,prng-ee";
+                       reg = <0xe3000 0x1000>;
+                       clocks = <&gcc GCC_PRNG_AHB_CLK>;
+                       clock-names = "core";
+               };
+
+               cryptobam: dma@704000 {
+                       compatible = "qcom,bam-v1.7.0";
+                       reg = <0x00704000 0x20000>;
+                       interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_CRYPTO_AHB_CLK>;
+                       clock-names = "bam_clk";
+                       #dma-cells = <1>;
+                       qcom,ee = <1>;
+                       qcom,controlled-remotely = <1>;
+                       qcom,config-pipe-trust-reg = <0>;
+               };
+
+               crypto: crypto@73a000 {
+                       compatible = "qcom,crypto-v5.1";
+                       reg = <0x0073a000 0x6000>;
+                       clocks = <&gcc GCC_CRYPTO_AHB_CLK>,
+                               <&gcc GCC_CRYPTO_AXI_CLK>,
+                               <&gcc GCC_CRYPTO_CLK>;
+                       clock-names = "iface", "bus", "core";
+                       dmas = <&cryptobam 2>, <&cryptobam 3>;
+                       dma-names = "rx", "tx";
+               };
+
+               tlmm: pinctrl@1000000 {
+                       compatible = "qcom,ipq6018-pinctrl";
+                       reg = <0x01000000 0x300000>;
+                       interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&tlmm 0 80>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+
+                       serial_3_pins: serial3-pinmux {
+                               pins = "gpio44", "gpio45";
+                               function = "blsp2_uart";
+                               drive-strength = <8>;
+                               bias-pull-down;
+                       };
+               };
+
+               gcc: gcc@1800000 {
+                       compatible = "qcom,gcc-ipq6018";
+                       reg = <0x01800000 0x80000>;
+                       clocks = <&xo>, <&sleep_clk>;
+                       clock-names = "xo", "sleep_clk";
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+               };
+
+               tcsr_mutex_regs: syscon@1905000 {
+                       compatible = "syscon";
+                       reg = <0x01905000 0x8000>;
+               };
+
+               tcsr_q6: syscon@1945000 {
+                       compatible = "syscon";
+                       reg = <0x01945000 0xe000>;
+               };
+
+               blsp_dma: dma@7884000 {
+                       compatible = "qcom,bam-v1.7.0";
+                       reg = <0x07884000 0x2b000>;
+                       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_uart3: serial@78b1000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0x078b1000 0x200>;
+                       interrupts = <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_UART3_APPS_CLK>,
+                               <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       status = "disabled";
+               };
+
+               spi_0: spi@78b5000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x078b5000 0x600>;
+                       interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
+                       spi-max-frequency = <50000000>;
+                       clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
+                               <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp_dma 12>, <&blsp_dma 13>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               spi_1: spi@78b6000 {
+                       compatible = "qcom,spi-qup-v2.2.1";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x078b6000 0x600>;
+                       interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+                       spi-max-frequency = <50000000>;
+                       clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
+                               <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp_dma 14>, <&blsp_dma 15>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               i2c_0: i2c@78b6000 {
+                       compatible = "qcom,i2c-qup-v2.2.1";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x078b6000 0x600>;
+                       interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
+                               <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>;
+                       clock-names = "iface", "core";
+                       clock-frequency  = <400000>;
+                       dmas = <&blsp_dma 15>, <&blsp_dma 14>;
+                       dma-names = "rx", "tx";
+                       status = "disabled";
+               };
+
+               i2c_1: i2c@78b7000 { /* BLSP1 QUP2 */
+                       compatible = "qcom,i2c-qup-v2.2.1";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x078b7000 0x600>;
+                       interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
+                               <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>;
+                       clock-names = "iface", "core";
+                       clock-frequency  = <400000>;
+                       dmas = <&blsp_dma 17>, <&blsp_dma 16>;
+                       dma-names = "rx", "tx";
+                       status = "disabled";
+               };
+
+               intc: interrupt-controller@b000000 {
+                       compatible = "qcom,msm-qgic2";
+                       interrupt-controller;
+                       #interrupt-cells = <0x3>;
+                       reg =   <0x0b000000 0x1000>,  /*GICD*/
+                               <0x0b002000 0x1000>,  /*GICC*/
+                               <0x0b001000 0x1000>,  /*GICH*/
+                               <0x0b004000 0x1000>;  /*GICV*/
+                       interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               watchdog@b017000 {
+                       compatible = "qcom,kpss-wdt";
+                       interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
+                       reg = <0x0b017000 0x40>;
+                       clocks = <&sleep_clk>;
+                       timeout-sec = <10>;
+               };
+
+               apcs_glb: mailbox@b111000 {
+                       compatible = "qcom,ipq8074-apcs-apps-global";
+                       reg = <0x0b111000 0xc>;
+
+                       #mbox-cells = <1>;
+               };
+
+               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)>;
+               };
+
+               timer@b120000 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       compatible = "arm,armv7-timer-mem";
+                       reg = <0x0b120000 0x1000>;
+                       clock-frequency = <19200000>;
+
+                       frame@b120000 {
+                               frame-number = <0>;
+                               interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0b121000 0x1000>,
+                                     <0x0b122000 0x1000>;
+                       };
+
+                       frame@b123000 {
+                               frame-number = <1>;
+                               interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0xb123000 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@b124000 {
+                               frame-number = <2>;
+                               interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0b124000 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@b125000 {
+                               frame-number = <3>;
+                               interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0b125000 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@b126000 {
+                               frame-number = <4>;
+                               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0b126000 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@b127000 {
+                               frame-number = <5>;
+                               interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0b127000 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@b128000 {
+                               frame-number = <6>;
+                               interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0b128000 0x1000>;
+                               status = "disabled";
+                       };
+               };
+
+               q6v5_wcss: remoteproc@cd00000 {
+                       compatible = "qcom,ipq8074-wcss-pil";
+                       reg = <0x0cd00000 0x4040>,
+                               <0x004ab000 0x20>;
+                       reg-names = "qdsp6",
+                                   "rmb";
+                       interrupts-extended = <&intc GIC_SPI 325 IRQ_TYPE_EDGE_RISING>,
+                                             <&wcss_smp2p_in 0 0>,
+                                             <&wcss_smp2p_in 1 0>,
+                                             <&wcss_smp2p_in 2 0>,
+                                             <&wcss_smp2p_in 3 0>;
+                       interrupt-names = "wdog",
+                                         "fatal",
+                                         "ready",
+                                         "handover",
+                                         "stop-ack";
+
+                       resets = <&gcc GCC_WCSSAON_RESET>,
+                                <&gcc GCC_WCSS_BCR>,
+                                <&gcc GCC_WCSS_Q6_BCR>;
+
+                       reset-names = "wcss_aon_reset",
+                                     "wcss_reset",
+                                     "wcss_q6_reset";
+
+                       clocks = <&gcc GCC_PRNG_AHB_CLK>;
+                       clock-names = "prng";
+
+                       qcom,halt-regs = <&tcsr_q6 0xa000 0xd000 0x0>;
+
+                       qcom,smem-states = <&wcss_smp2p_out 0>,
+                                          <&wcss_smp2p_out 1>;
+                       qcom,smem-state-names = "shutdown",
+                                               "stop";
+
+                       memory-region = <&q6_region>;
+
+                       glink-edge {
+                               interrupts = <GIC_SPI 321 IRQ_TYPE_EDGE_RISING>;
+                               qcom,remote-pid = <1>;
+                               mboxes = <&apcs_glb 8>;
+
+                               qrtr_requests {
+                                       qcom,glink-channels = "IPCRTR";
+                               };
+                       };
+               };
+
+       };
+
+       wcss: wcss-smp2p {
+               compatible = "qcom,smp2p";
+               qcom,smem = <435>, <428>;
+
+               interrupt-parent = <&intc>;
+               interrupts = <GIC_SPI 322 IRQ_TYPE_EDGE_RISING>;
+
+               mboxes = <&apcs_glb 9>;
+
+               qcom,local-pid = <0>;
+               qcom,remote-pid = <1>;
+
+               wcss_smp2p_out: master-kernel {
+                       qcom,entry-name = "master-kernel";
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               wcss_smp2p_in: slave-kernel {
+                       qcom,entry-name = "slave-kernel";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+};
index 67ee5f560104619984fb099d370ea6d8bef990ad..2b31823d3ccdb7068d2c89cafa20857dbd3aa899 100644 (file)
@@ -21,6 +21,7 @@
                        reg = <0x1000000 0x300000>;
                        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
+                       gpio-ranges = <&tlmm 0 0 70>;
                        #gpio-cells = <0x2>;
                        interrupt-controller;
                        #interrupt-cells = <0x2>;
index bd1eb3eeca53fdc5a5009fb3717bb61971e8e577..43c5e0f882f146faeb0e16a773941d980c9c7672 100644 (file)
                stdout-path = "serial0";
        };
 
+       reserved-memory {
+               /* Additional memory used by Samsung firmware modifications */
+               tz-apps@85500000 {
+                       reg = <0x0 0x85500000 0x0 0xb00000>;
+                       no-map;
+               };
+       };
+
        soc {
                sdhci@7824000 {
                        status = "okay";
index 9f31064f2374e3110b2761ef58e49d8c414f81dd..a88a15f2352bcfb208fe286c343f6497609183dd 100644 (file)
                        reg = <0x1000000 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>;
                };
 
                tsens: thermal-sensor@4a9000 {
-                       compatible = "qcom,msm8916-tsens";
+                       compatible = "qcom,msm8916-tsens", "qcom,tsens-v0_1";
                        reg = <0x4a9000 0x1000>, /* TM */
                              <0x4a8000 0x1000>; /* SROT */
                        nvmem-cells = <&tsens_caldata>, <&tsens_calsel>;
                                qcom,remote-pid = <1>;
 
                                label = "hexagon";
+
+                               fastrpc {
+                                       compatible = "qcom,fastrpc";
+                                       qcom,smd-channels = "fastrpcsmd-apps-dsp";
+                                       label = "adsp";
+
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       cb@1{
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <1>;
+                                       };
+                               };
                        };
                };
 
 
                        clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
                        clock-names = "apb_pclk", "atclk";
+                       arm,coresight-loses-context-with-cpu;
 
                        cpu = <&CPU0>;
 
 
                        clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
                        clock-names = "apb_pclk", "atclk";
+                       arm,coresight-loses-context-with-cpu;
 
                        cpu = <&CPU1>;
 
 
                        clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
                        clock-names = "apb_pclk", "atclk";
+                       arm,coresight-loses-context-with-cpu;
 
                        cpu = <&CPU2>;
 
 
                        clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
                        clock-names = "apb_pclk", "atclk";
+                       arm,coresight-loses-context-with-cpu;
 
                        cpu = <&CPU3>;
 
index 8be60c08a9ab4c0b634a4067845d9d4355f8b62d..2021795c99add1ffee84b0da59b7e172fae70f39 100644 (file)
                        reg = <0xfd510000 0x4000>;
                        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
+                       gpio-ranges = <&msmgpio 0 0 146>;
                        #gpio-cells = <2>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
index 3932757f78b7462fdcb4641b837f290b76e54a0c..b1c2d7d6a0f2f4dd5d0ed49ad9e8c06388b920c2 100644 (file)
                        reg = <0xfd510000 0x4000>;
                        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
+                       gpio-ranges = <&msmgpio 0 0 146>;
                        #gpio-cells = <2>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
index 7ae082ea14ea815b2a9f5b632a536af5dfb92760..14827adebd94a0a98f590e9d52d412def15f0aba 100644 (file)
                        #reset-cells = <1>;
                        #power-domain-cells = <1>;
                        reg = <0x00300000 0x90000>;
+
+                       clocks = <&rpmcc RPM_SMD_LN_BB_CLK>;
+                       clock-names = "cxo2";
                };
 
                tsens0: thermal-sensor@4a9000 {
-                       compatible = "qcom,msm8996-tsens";
+                       compatible = "qcom,msm8996-tsens", "qcom,tsens-v2";
                        reg = <0x004a9000 0x1000>, /* TM */
                              <0x004a8000 0x1000>; /* SROT */
                        #qcom,sensors = <13>;
                };
 
                tsens1: thermal-sensor@4ad000 {
-                       compatible = "qcom,msm8996-tsens";
+                       compatible = "qcom,msm8996-tsens", "qcom,tsens-v2";
                        reg = <0x004ad000 0x1000>, /* TM */
                              <0x004ac000 0x1000>; /* SROT */
                        #qcom,sensors = <8>;
                        reg = <0x01010000 0x300000>;
                        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
+                       gpio-ranges = <&msmgpio 0 0 150>;
                        #gpio-cells = <2>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
                        reg = <0x00624000 0x2500>;
                        interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
 
-                       phys = <&ufsphy>;
+                       phys = <&ufsphy_lane>;
                        phy-names = "ufsphy";
 
                        power-domains = <&gcc UFS_GDSC>;
                };
 
                ufsphy: phy@627000 {
-                       compatible = "qcom,msm8996-ufs-phy-qmp-14nm";
-                       reg = <0x00627000 0xda8>;
-                       reg-names = "phy_mem";
-                       #phy-cells = <0>;
+                       compatible = "qcom,msm8996-qmp-ufs-phy";
+                       reg = <0x00627000 0x1c4>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+
+                       clocks = <&gcc GCC_UFS_CLKREF_CLK>;
+                       clock-names = "ref";
 
-                       clock-names = "ref_clk_src", "ref_clk";
-                       clocks = <&rpmcc RPM_SMD_LN_BB_CLK>,
-                                <&gcc GCC_UFS_CLKREF_CLK>;
                        resets = <&ufshc 0>;
+                       reset-names = "ufsphy";
                        status = "disabled";
+
+                       ufsphy_lane: lanes@627400 {
+                               reg = <0x627400 0x12c>,
+                                     <0x627600 0x200>,
+                                     <0x627c00 0x1b4>;
+                               #phy-cells = <0>;
+                       };
                };
 
                camss: camss@a00000 {
index 0e0b9bc12945f6166d4a05c4b9981ecac6b9cda2..8a14b2bf7bca3f26903d3e994a01e0d41c1bd9d4 100644 (file)
 };
 
 &funnel4 {
-       status = "okay";
+       // FIXME: Figure out why clock late_initcall crashes the board with
+       // this enabled.
+       // status = "okay";
 };
 
 &funnel5 {
-       status = "okay";
+       // FIXME: Figure out why clock late_initcall crashes the board with
+       // this enabled.
+       // status = "okay";
 };
 
 &pm8005_lsid1 {
index 91f7f2d075978f0986061d5138d5b50369441a51..c07fee6fd7eb9059c81cd3133ae99e6b4b261aa8 100644 (file)
 
                CPU0: cpu@0 {
                        device_type = "cpu";
-                       compatible = "arm,armv8";
+                       compatible = "qcom,kryo280";
                        reg = <0x0 0x0>;
                        enable-method = "psci";
                        cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1>;
 
                CPU1: cpu@1 {
                        device_type = "cpu";
-                       compatible = "arm,armv8";
+                       compatible = "qcom,kryo280";
                        reg = <0x0 0x1>;
                        enable-method = "psci";
                        cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1>;
 
                CPU2: cpu@2 {
                        device_type = "cpu";
-                       compatible = "arm,armv8";
+                       compatible = "qcom,kryo280";
                        reg = <0x0 0x2>;
                        enable-method = "psci";
                        cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1>;
 
                CPU3: cpu@3 {
                        device_type = "cpu";
-                       compatible = "arm,armv8";
+                       compatible = "qcom,kryo280";
                        reg = <0x0 0x3>;
                        enable-method = "psci";
                        cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1>;
 
                CPU4: cpu@100 {
                        device_type = "cpu";
-                       compatible = "arm,armv8";
+                       compatible = "qcom,kryo280";
                        reg = <0x0 0x100>;
                        enable-method = "psci";
                        cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1>;
 
                CPU5: cpu@101 {
                        device_type = "cpu";
-                       compatible = "arm,armv8";
+                       compatible = "qcom,kryo280";
                        reg = <0x0 0x101>;
                        enable-method = "psci";
                        cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1>;
 
                CPU6: cpu@102 {
                        device_type = "cpu";
-                       compatible = "arm,armv8";
+                       compatible = "qcom,kryo280";
                        reg = <0x0 0x102>;
                        enable-method = "psci";
                        cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1>;
 
                CPU7: cpu@103 {
                        device_type = "cpu";
-                       compatible = "arm,armv8";
+                       compatible = "qcom,kryo280";
                        reg = <0x0 0x103>;
                        enable-method = "psci";
                        cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1>;
index 23534639f455fd503be1738fed7ab875f380f07c..57af0b4a384d37fa48c2ade1a96b9366fe534f88 100644 (file)
@@ -20,7 +20,7 @@
                        mode-bootloader = <0x2>;
                        mode-recovery = <0x1>;
 
-                       pwrkey {
+                       pm6150_pwrkey: pwrkey {
                                compatible = "qcom,pm8941-pwrkey";
                                interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
                                debounce = <15625>;
index dc2ce23cde0545be93f0e7dd9dded52d3c528772..67283d60e2ac4def69ea74a7577f0516e3a4ac27 100644 (file)
@@ -45,7 +45,7 @@
                        mode-bootloader = <0x2>;
                        mode-recovery = <0x1>;
 
-                       pwrkey {
+                       pm8998_pwrkey: pwrkey {
                                compatible = "qcom,pm8941-pwrkey";
                                interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
                                debounce = <15625>;
index 522d3ef72df5e50c017a41ddf22e4ee3e10975f7..afe69e8f3114c97e8d66da58fe5fd1a1012d3345 100644 (file)
 &sdcc1 {
        status = "ok";
 
+       supports-cqe;
        mmc-ddr-1_8v;
        mmc-hs400-1_8v;
        bus-width = <8>;
index 4ee1e3d5f123af448a83ba6b49676e5b4a52f482..f149a538c1cc61681263cd36d619e1c1ff7b7b61 100644 (file)
                };
 
                sdcc1: sdcc@7804000 {
-                       compatible = "qcom,sdhci-msm-v5";
+                       compatible = "qcom,qcs404-sdhci", "qcom,sdhci-msm-v5";
                        reg = <0x07804000 0x1000>, <0x7805000 0x1000>;
-                       reg-names = "hc_mem", "cmdq_mem";
+                       reg-names = "hc", "cqhci";
 
                        interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
index 388f50ad4fdece7613d1f21eda7ca40cbceb07d9..043c9b9b50240ead4ee17b373c0ad447e882dbdb 100644 (file)
@@ -7,6 +7,7 @@
 
 /dts-v1/;
 
+#include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 #include "sc7180.dtsi"
 #include "pm6150.dtsi"
@@ -17,6 +18,7 @@
        compatible = "qcom,sc7180-idp", "qcom,sc7180";
 
        aliases {
+               bluetooth0 = &bluetooth;
                hsuart0 = &uart3;
                serial0 = &uart8;
        };
                };
 
                vreg_l12a_1p8: ldo12 {
-                       regulator-min-microvolt = <1696000>;
-                       regulator-max-microvolt = <1952000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l13a_1p8: ldo13 {
                };
 
                vreg_l19a_2p9: ldo19 {
-                       regulator-min-microvolt = <2696000>;
-                       regulator-max-microvolt = <3304000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
+                       regulator-min-microvolt = <2960000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
        };
 
                };
 
                vreg_l6c_2p9: ldo6 {
-                       regulator-min-microvolt = <2696000>;
-                       regulator-max-microvolt = <3304000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l7c_3p0: ldo7 {
                };
 
                vreg_l9c_2p9: ldo9 {
-                       regulator-min-microvolt = <2952000>;
-                       regulator-max-microvolt = <3304000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
+                       regulator-min-microvolt = <2960000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l10c_3p3: ldo10 {
        status = "okay";
 };
 
+&sdhc_1 {
+       status = "okay";
+
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc1_on>;
+       pinctrl-1 = <&sdc1_off>;
+       vmmc-supply = <&vreg_l19a_2p9>;
+       vqmmc-supply = <&vreg_l12a_1p8>;
+};
+
+&sdhc_2 {
+       status = "okay";
+
+       pinctrl-names = "default","sleep";
+       pinctrl-0 = <&sdc2_on>;
+       pinctrl-1 = <&sdc2_off>;
+       vmmc-supply  = <&vreg_l9c_2p9>;
+       vqmmc-supply = <&vreg_l6c_2p9>;
+
+       cd-gpios = <&tlmm 69 GPIO_ACTIVE_LOW>;
+};
+
 &uart3 {
        status = "okay";
+
+       bluetooth: wcn3990-bt {
+               compatible = "qcom,wcn3990-bt";
+               vddio-supply = <&vreg_l10a_1p8>;
+               vddxo-supply = <&vreg_l1c_1p8>;
+               vddrf-supply = <&vreg_l2c_1p3>;
+               vddch0-supply = <&vreg_l10c_3p3>;
+               max-speed = <3200000>;
+               clocks = <&rpmhcc RPMH_RF_CLK2>;
+       };
 };
 
 &uart8 {
        vdda-pll-supply = <&vreg_l4a_0p8>;
 };
 
+&venus {
+       video-firmware {
+               iommus = <&apps_smmu 0x0c42 0x0>;
+       };
+};
+
 /* PINCTRL - additions to nodes defined in sc7180.dtsi */
 
 &qspi_clk {
index 8011c5fe2a31a7b292aa2fb5c2798fd80a438b91..998f101ad623b711a0d7211c699877ffbb090cfb 100644 (file)
@@ -5,8 +5,11 @@
  * Copyright (c) 2019, The Linux Foundation. All rights reserved.
  */
 
+#include <dt-bindings/clock/qcom,dispcc-sc7180.h>
 #include <dt-bindings/clock/qcom,gcc-sc7180.h>
+#include <dt-bindings/clock/qcom,gpucc-sc7180.h>
 #include <dt-bindings/clock/qcom,rpmh.h>
+#include <dt-bindings/clock/qcom,videocc-sc7180.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/phy/phy-qcom-qusb2.h>
 #include <dt-bindings/power/qcom-aoss-qmp.h>
                        reg = <0x0 0x80900000 0x0 0x200000>;
                        no-map;
                };
+
+               venus_mem: memory@8f600000 {
+                       reg = <0 0x8f600000 0 0x500000>;
+                       no-map;
+               };
        };
 
        cpus {
@@ -86,6 +94,8 @@
                        compatible = "arm,armv8";
                        reg = <0x0 0x0>;
                        enable-method = "psci";
+                       capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <100>;
                        next-level-cache = <&L2_0>;
                        #cooling-cells = <2>;
                        qcom,freq-domain = <&cpufreq_hw 0>;
                        compatible = "arm,armv8";
                        reg = <0x0 0x100>;
                        enable-method = "psci";
+                       capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <100>;
                        next-level-cache = <&L2_100>;
                        #cooling-cells = <2>;
                        qcom,freq-domain = <&cpufreq_hw 0>;
                        compatible = "arm,armv8";
                        reg = <0x0 0x200>;
                        enable-method = "psci";
+                       capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <100>;
                        next-level-cache = <&L2_200>;
                        #cooling-cells = <2>;
                        qcom,freq-domain = <&cpufreq_hw 0>;
                        compatible = "arm,armv8";
                        reg = <0x0 0x300>;
                        enable-method = "psci";
+                       capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <100>;
                        next-level-cache = <&L2_300>;
                        #cooling-cells = <2>;
                        qcom,freq-domain = <&cpufreq_hw 0>;
                        compatible = "arm,armv8";
                        reg = <0x0 0x400>;
                        enable-method = "psci";
+                       capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <100>;
                        next-level-cache = <&L2_400>;
                        #cooling-cells = <2>;
                        qcom,freq-domain = <&cpufreq_hw 0>;
                        compatible = "arm,armv8";
                        reg = <0x0 0x500>;
                        enable-method = "psci";
+                       capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <100>;
                        next-level-cache = <&L2_500>;
                        #cooling-cells = <2>;
                        qcom,freq-domain = <&cpufreq_hw 0>;
                        compatible = "arm,armv8";
                        reg = <0x0 0x600>;
                        enable-method = "psci";
+                       capacity-dmips-mhz = <1740>;
+                       dynamic-power-coefficient = <405>;
                        next-level-cache = <&L2_600>;
                        #cooling-cells = <2>;
                        qcom,freq-domain = <&cpufreq_hw 1>;
                        compatible = "arm,armv8";
                        reg = <0x0 0x700>;
                        enable-method = "psci";
+                       capacity-dmips-mhz = <1740>;
+                       dynamic-power-coefficient = <405>;
                        next-level-cache = <&L2_700>;
                        #cooling-cells = <2>;
                        qcom,freq-domain = <&cpufreq_hw 1>;
                                next-level-cache = <&L3_0>;
                        };
                };
+
+               cpu-map {
+                       cluster0 {
+                               core0 {
+                                       cpu = <&CPU0>;
+                               };
+
+                               core1 {
+                                       cpu = <&CPU1>;
+                               };
+
+                               core2 {
+                                       cpu = <&CPU2>;
+                               };
+
+                               core3 {
+                                       cpu = <&CPU3>;
+                               };
+
+                               core4 {
+                                       cpu = <&CPU4>;
+                               };
+
+                               core5 {
+                                       cpu = <&CPU5>;
+                               };
+
+                               core6 {
+                                       cpu = <&CPU6>;
+                               };
+
+                               core7 {
+                                       cpu = <&CPU7>;
+                               };
+                       };
+               };
        };
 
        memory@80000000 {
                method = "smc";
        };
 
-       soc: soc {
+       soc: soc@0 {
                #address-cells = <2>;
                #size-cells = <2>;
                ranges = <0 0 0 0 0x10 0>;
                        compatible = "qcom,gcc-sc7180";
                        reg = <0 0x00100000 0 0x1f0000>;
                        clocks = <&rpmhcc RPMH_CXO_CLK>,
-                                <&rpmhcc RPMH_CXO_CLK_A>;
-                       clock-names = "bi_tcxo", "bi_tcxo_ao";
+                                <&rpmhcc RPMH_CXO_CLK_A>,
+                                <&sleep_clk>;
+                       clock-names = "bi_tcxo", "bi_tcxo_ao", "sleep_clk";
                        #clock-cells = <1>;
                        #reset-cells = <1>;
                        #power-domain-cells = <1>;
                        };
                };
 
+               sdhc_1: sdhci@7c4000 {
+                       compatible = "qcom,sc7180-sdhci", "qcom,sdhci-msm-v5";
+                       reg = <0 0x7c4000 0 0x1000>,
+                               <0 0x07c5000 0 0x1000>;
+                       reg-names = "hc", "cqhci";
+
+                       iommus = <&apps_smmu 0x60 0x0>;
+                       interrupts = <GIC_SPI 641 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 644 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hc_irq", "pwr_irq";
+
+                       clocks = <&gcc GCC_SDCC1_APPS_CLK>,
+                                       <&gcc GCC_SDCC1_AHB_CLK>;
+                       clock-names = "core", "iface";
+
+                       bus-width = <8>;
+                       non-removable;
+                       supports-cqe;
+
+                       mmc-ddr-1_8v;
+                       mmc-hs200-1_8v;
+                       mmc-hs400-1_8v;
+                       mmc-hs400-enhanced-strobe;
+
+                       status = "disabled";
+               };
+
                qupv3_id_0: geniqup@8c0000 {
                        compatible = "qcom,geni-se-qup";
                        reg = <0 0x008c0000 0 0x6000>;
                        #address-cells = <2>;
                        #size-cells = <2>;
                        ranges;
+                       iommus = <&apps_smmu 0x43 0x0>;
                        status = "disabled";
 
                        i2c0: i2c@880000 {
                        #address-cells = <2>;
                        #size-cells = <2>;
                        ranges;
+                       iommus = <&apps_smmu 0x4c3 0x0>;
                        status = "disabled";
 
                        i2c6: i2c@a80000 {
                        };
                };
 
+               config_noc: interconnect@1500000 {
+                       compatible = "qcom,sc7180-config-noc";
+                       reg = <0 0x01500000 0 0x28000>;
+                       #interconnect-cells = <1>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               system_noc: interconnect@1620000 {
+                       compatible = "qcom,sc7180-system-noc";
+                       reg = <0 0x01620000 0 0x17080>;
+                       #interconnect-cells = <1>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               mc_virt: interconnect@1638000 {
+                       compatible = "qcom,sc7180-mc-virt";
+                       reg = <0 0x01638000 0 0x1000>;
+                       #interconnect-cells = <1>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               qup_virt: interconnect@1650000 {
+                       compatible = "qcom,sc7180-qup-virt";
+                       reg = <0 0x01650000 0 0x1000>;
+                       #interconnect-cells = <1>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               aggre1_noc: interconnect@16e0000 {
+                       compatible = "qcom,sc7180-aggre1-noc";
+                       reg = <0 0x016e0000 0 0x15080>;
+                       #interconnect-cells = <1>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               aggre2_noc: interconnect@1705000 {
+                       compatible = "qcom,sc7180-aggre2-noc";
+                       reg = <0 0x01705000 0 0x9000>;
+                       #interconnect-cells = <1>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               compute_noc: interconnect@170e000 {
+                       compatible = "qcom,sc7180-compute-noc";
+                       reg = <0 0x0170e000 0 0x6000>;
+                       #interconnect-cells = <1>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               mmss_noc: interconnect@1740000 {
+                       compatible = "qcom,sc7180-mmss-noc";
+                       reg = <0 0x01740000 0 0x1c100>;
+                       #interconnect-cells = <1>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               ipa_virt: interconnect@1e00000 {
+                       compatible = "qcom,sc7180-ipa-virt";
+                       reg = <0 0x01e00000 0 0x1000>;
+                       #interconnect-cells = <1>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
                tcsr_mutex_regs: syscon@1f40000 {
                        compatible = "syscon";
                        reg = <0 0x01f40000 0 0x40000>;
                                        function = "qup15";
                                };
                        };
+
+                       sdc1_on: sdc1-on {
+                               pinconf-clk {
+                                       pins = "sdc1_clk";
+                                       bias-disable;
+                                       drive-strength = <16>;
+                               };
+
+                               pinconf-cmd {
+                                       pins = "sdc1_cmd";
+                                       bias-pull-up;
+                                       drive-strength = <10>;
+                               };
+
+                               pinconf-data {
+                                       pins = "sdc1_data";
+                                       bias-pull-up;
+                                       drive-strength = <10>;
+                               };
+
+                               pinconf-rclk {
+                                       pins = "sdc1_rclk";
+                                       bias-pull-down;
+                               };
+                       };
+
+                       sdc1_off: sdc1-off {
+                               pinconf-clk {
+                                       pins = "sdc1_clk";
+                                       bias-disable;
+                                       drive-strength = <2>;
+                               };
+
+                               pinconf-cmd {
+                                       pins = "sdc1_cmd";
+                                       bias-pull-up;
+                                       drive-strength = <2>;
+                               };
+
+                               pinconf-data {
+                                       pins = "sdc1_data";
+                                       bias-pull-up;
+                                       drive-strength = <2>;
+                               };
+
+                               pinconf-rclk {
+                                       pins = "sdc1_rclk";
+                                       bias-pull-down;
+                               };
+                       };
+
+                       sdc2_on: sdc2-on {
+                               pinconf-clk {
+                                       pins = "sdc2_clk";
+                                       bias-disable;
+                                       drive-strength = <16>;
+                               };
+
+                               pinconf-cmd {
+                                       pins = "sdc2_cmd";
+                                       bias-pull-up;
+                                       drive-strength = <10>;
+                               };
+
+                               pinconf-data {
+                                       pins = "sdc2_data";
+                                       bias-pull-up;
+                                       drive-strength = <10>;
+                               };
+
+                               pinconf-sd-cd {
+                                       pins = "gpio69";
+                                       bias-pull-up;
+                                       drive-strength = <2>;
+                               };
+                       };
+
+                       sdc2_off: sdc2-off {
+                               pinconf-clk {
+                                       pins = "sdc2_clk";
+                                       bias-disable;
+                                       drive-strength = <2>;
+                               };
+
+                               pinconf-cmd {
+                                       pins = "sdc2_cmd";
+                                       bias-pull-up;
+                                       drive-strength = <2>;
+                               };
+
+                               pinconf-data {
+                                       pins = "sdc2_data";
+                                       bias-pull-up;
+                                       drive-strength = <2>;
+                               };
+
+                               pinconf-sd-cd {
+                                       pins = "gpio69";
+                                       bias-disable;
+                                       drive-strength = <2>;
+                               };
+                       };
+               };
+
+               sdhc_2: sdhci@8804000 {
+                       compatible = "qcom,sc7180-sdhci", "qcom,sdhci-msm-v5";
+                       reg = <0 0x08804000 0 0x1000>;
+
+                       iommus = <&apps_smmu 0x80 0>;
+                       interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hc_irq", "pwr_irq";
+
+                       clocks = <&gcc GCC_SDCC2_APPS_CLK>,
+                                       <&gcc GCC_SDCC2_AHB_CLK>;
+                       clock-names = "core", "iface";
+
+                       bus-width = <4>;
+
+                       status = "disabled";
+               };
+
+               gpucc: clock-controller@5090000 {
+                       compatible = "qcom,sc7180-gpucc";
+                       reg = <0 0x05090000 0 0x9000>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_GPU_GPLL0_CLK_SRC>,
+                                <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
+                       clock-names = "bi_tcxo",
+                                     "gcc_gpu_gpll0_clk_src",
+                                     "gcc_gpu_gpll0_div_clk_src";
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
                };
 
                qspi: spi@88dc000 {
                                 <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>;
                        clock-names = "aux", "cfg_ahb", "ref", "com_aux";
 
-                       resets = <&gcc GCC_USB3_DP_PHY_PRIM_BCR>,
-                                <&gcc GCC_USB3_PHY_PRIM_BCR>;
+                       resets = <&gcc GCC_USB3_PHY_PRIM_BCR>,
+                                <&gcc GCC_USB3_DP_PHY_PRIM_BCR>;
                        reset-names = "phy", "common";
 
                        usb_1_ssphy: phy@88e9200 {
                        };
                };
 
+               dc_noc: interconnect@9160000 {
+                       compatible = "qcom,sc7180-dc-noc";
+                       reg = <0 0x09160000 0 0x03200>;
+                       #interconnect-cells = <1>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
                system-cache-controller@9200000 {
                        compatible = "qcom,sc7180-llcc";
                        reg = <0 0x09200000 0 0x200000>, <0 0x09600000 0 0x50000>;
                        interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>;
                };
 
+               gem_noc: interconnect@9680000 {
+                       compatible = "qcom,sc7180-gem-noc";
+                       reg = <0 0x09680000 0 0x3e200>;
+                       #interconnect-cells = <1>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               npu_noc: interconnect@9990000 {
+                       compatible = "qcom,sc7180-npu-noc";
+                       reg = <0 0x09990000 0 0x1600>;
+                       #interconnect-cells = <1>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
                usb_1: usb@a6f8800 {
                        compatible = "qcom,sc7180-dwc3", "qcom,dwc3";
                        reg = <0 0x0a6f8800 0 0x400>;
                        };
                };
 
+               venus: video-codec@aa00000 {
+                       compatible = "qcom,sc7180-venus";
+                       reg = <0 0x0aa00000 0 0xff000>;
+                       interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
+                       power-domains = <&videocc VENUS_GDSC>,
+                                       <&videocc VCODEC0_GDSC>;
+                       power-domain-names = "venus", "vcodec0";
+                       clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>,
+                                <&videocc VIDEO_CC_VENUS_AHB_CLK>,
+                                <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK>,
+                                <&videocc VIDEO_CC_VCODEC0_CORE_CLK>,
+                                <&videocc VIDEO_CC_VCODEC0_AXI_CLK>;
+                       clock-names = "core", "iface", "bus",
+                                     "vcodec0_core", "vcodec0_bus";
+                       iommus = <&apps_smmu 0x0c00 0x60>;
+                       memory-region = <&venus_mem>;
+
+                       video-decoder {
+                               compatible = "venus-decoder";
+                       };
+
+                       video-encoder {
+                               compatible = "venus-encoder";
+                       };
+               };
+
+               videocc: clock-controller@ab00000 {
+                       compatible = "qcom,sc7180-videocc";
+                       reg = <0 0x0ab00000 0 0x10000>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "bi_tcxo";
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
+               camnoc_virt: interconnect@ac00000 {
+                       compatible = "qcom,sc7180-camnoc-virt";
+                       reg = <0 0x0ac00000 0 0x1000>;
+                       #interconnect-cells = <1>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               mdss: mdss@ae00000 {
+                       compatible = "qcom,sc7180-mdss";
+                       reg = <0 0x0ae00000 0 0x1000>;
+                       reg-names = "mdss";
+
+                       power-domains = <&dispcc MDSS_GDSC>;
+
+                       clocks = <&gcc GCC_DISP_AHB_CLK>,
+                                <&gcc GCC_DISP_HF_AXI_CLK>,
+                                <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                <&dispcc DISP_CC_MDSS_MDP_CLK>;
+                       clock-names = "iface", "bus", "ahb", "core";
+
+                       assigned-clocks = <&dispcc DISP_CC_MDSS_MDP_CLK>;
+                       assigned-clock-rates = <300000000>;
+
+                       interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+
+                       iommus = <&apps_smmu 0x800 0x2>;
+
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       status = "disabled";
+
+                       mdp: mdp@ae01000 {
+                               compatible = "qcom,sc7180-dpu";
+                               reg = <0 0x0ae01000 0 0x8f000>,
+                                     <0 0x0aeb0000 0 0x2008>;
+                               reg-names = "mdp", "vbif";
+
+                               clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&dispcc DISP_CC_MDSS_ROT_CLK>,
+                                        <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>,
+                                        <&dispcc DISP_CC_MDSS_MDP_CLK>,
+                                        <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
+                               clock-names = "iface", "rot", "lut", "core",
+                                             "vsync";
+                               assigned-clocks = <&dispcc DISP_CC_MDSS_MDP_CLK>,
+                                                 <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
+                               assigned-clock-rates = <300000000>,
+                                                      <19200000>;
+
+                               interrupt-parent = <&mdss>;
+                               interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
+
+                               status = "disabled";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+                                               dpu_intf1_out: endpoint {
+                                                       remote-endpoint = <&dsi0_in>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       dsi0: dsi@ae94000 {
+                               compatible = "qcom,mdss-dsi-ctrl";
+                               reg = <0 0x0ae94000 0 0x400>;
+                               reg-names = "dsi_ctrl";
+
+                               interrupt-parent = <&mdss>;
+                               interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
+                                        <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
+                                        <&dispcc DISP_CC_MDSS_PCLK0_CLK>,
+                                        <&dispcc DISP_CC_MDSS_ESC0_CLK>,
+                                        <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&gcc GCC_DISP_HF_AXI_CLK>;
+                               clock-names = "byte",
+                                             "byte_intf",
+                                             "pixel",
+                                             "core",
+                                             "iface",
+                                             "bus";
+
+                               phys = <&dsi_phy>;
+                               phy-names = "dsi";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+                                               dsi0_in: endpoint {
+                                                       remote-endpoint = <&dpu_intf1_out>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+                                               dsi0_out: endpoint {
+                                               };
+                                       };
+                               };
+                       };
+
+                       dsi_phy: dsi-phy@ae94400 {
+                               compatible = "qcom,dsi-phy-10nm";
+                               reg = <0 0x0ae94400 0 0x200>,
+                                     <0 0x0ae94600 0 0x280>,
+                                     <0 0x0ae94a00 0 0x1e0>;
+                               reg-names = "dsi_phy",
+                                           "dsi_phy_lane",
+                                           "dsi_pll";
+
+                               #clock-cells = <1>;
+                               #phy-cells = <0>;
+
+                               clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&rpmhcc RPMH_CXO_CLK>;
+                               clock-names = "iface", "ref";
+
+                               status = "disabled";
+                       };
+               };
+
+               dispcc: clock-controller@af00000 {
+                       compatible = "qcom,sc7180-dispcc";
+                       reg = <0 0x0af00000 0 0x200000>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_DISP_GPLL0_CLK_SRC>,
+                                <&dsi_phy 0>,
+                                <&dsi_phy 1>,
+                                <0>,
+                                <0>;
+                       clock-names = "bi_tcxo",
+                                     "gcc_disp_gpll0_clk_src",
+                                     "dsi0_phy_pll_out_byteclk",
+                                     "dsi0_phy_pll_out_dsiclk",
+                                     "dp_phy_pll_link_clk",
+                                     "dp_phy_pll_vco_div_clk";
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
                pdc: interrupt-controller@b220000 {
                        compatible = "qcom,sc7180-pdc", "qcom,pdc";
                        reg = <0 0x0b220000 0 0x30000>;
                                        };
                                };
                        };
+
+                       apps_bcm_voter: bcm_voter {
+                               compatible = "qcom,bcm-voter";
+                       };
+               };
+
+               osm_l3: interconnect@18321000 {
+                       compatible = "qcom,sc7180-osm-l3";
+                       reg = <0 0x18321000 0 0x1400>;
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GPLL0>;
+                       clock-names = "xo", "alternate";
+
+                       #interconnect-cells = <1>;
                };
 
                cpufreq_hw: cpufreq@18323000 {
                                        hysteresis = <2000>;
                                        type = "hot";
                                };
+
+                               aoss0_crit: aoss0_crit {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
                        };
                };
 
                                        hysteresis = <2000>;
                                        type = "hot";
                                };
+
+                               gpuss0_crit: gpuss0_crit {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
                        };
                };
 
                                        hysteresis = <2000>;
                                        type = "hot";
                                };
+
+                               gpuss1_crit: gpuss1_crit {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
                        };
                };
 
                                        hysteresis = <2000>;
                                        type = "hot";
                                };
+
+                               aoss1_crit: aoss1_crit {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
                        };
                };
 
                                        hysteresis = <2000>;
                                        type = "hot";
                                };
+
+                               cwlan_crit: cwlan_crit {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
                        };
                };
 
                                        hysteresis = <2000>;
                                        type = "hot";
                                };
+
+                               audio_crit: audio_crit {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
                        };
                };
 
                                        hysteresis = <2000>;
                                        type = "hot";
                                };
+
+                               ddr_crit: ddr_crit {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
                        };
                };
 
                                        hysteresis = <2000>;
                                        type = "hot";
                                };
+
+                               q6_hvx_crit: q6_hvx_crit {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
                        };
                };
 
                                        hysteresis = <2000>;
                                        type = "hot";
                                };
+
+                               camera_crit: camera_crit {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
                        };
                };
 
                                        hysteresis = <2000>;
                                        type = "hot";
                                };
+
+                               mdm_crit: mdm_crit {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
                        };
                };
 
                                        hysteresis = <2000>;
                                        type = "hot";
                                };
+
+                               mdm_dsp_crit: mdm_dsp_crit {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
                        };
                };
 
                                        hysteresis = <2000>;
                                        type = "hot";
                                };
+
+                               npu_crit: npu_crit {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
                        };
                };
 
                                        hysteresis = <2000>;
                                        type = "hot";
                                };
+
+                               video_crit: video_crit {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
                        };
                };
        };
index 7b53b3c7ffe6bcda564e2c2f085bde9153307f22..9070be43a30964342103baadbc8b919fa7a8cf08 100644 (file)
@@ -614,6 +614,11 @@ ap_ts_i2c: &i2c14 {
        };
 };
 
+&ipa {
+       status = "okay";
+       modem-init;
+};
+
 &lpasscc {
        status = "okay";
 };
@@ -626,6 +631,10 @@ ap_ts_i2c: &i2c14 {
        status = "okay";
 };
 
+&pm8998_pwrkey {
+       status = "disabled";
+};
+
 &qupv3_id_0 {
        status = "okay";
 };
@@ -1292,3 +1301,9 @@ ap_ts_i2c: &i2c14 {
                };
        };
 };
+
+&venus {
+       video-firmware {
+               iommus = <&apps_smmu 0x10b2 0x0>;
+       };
+};
index eb77aaa6a8199debc43b6103d033c1d15560c180..a2e05926b429110005e04794b59e3a614c663f1b 100644 (file)
@@ -8,6 +8,8 @@
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include <dt-bindings/sound/qcom,q6afe.h>
+#include <dt-bindings/sound/qcom,q6asm.h>
 #include "sdm845.dtsi"
 #include "pm8998.dtsi"
 #include "pmi8998.dtsi"
        };
 };
 
+&i2c11 {
+       /* On Low speed expansion */
+       label = "LS-I2C1";
+       status = "okay";
+};
+
+&i2c14 {
+       /* On Low speed expansion */
+       label = "LS-I2C0";
+       status = "okay";
+};
+
 &mss_pil {
        status = "okay";
        firmware-name = "qcom/sdm845/mba.mbn", "qcom/sdm845/modem.mbn";
 };
 
+&pcie0 {
+       status = "okay";
+       perst-gpio = <&tlmm 35 GPIO_ACTIVE_LOW>;
+       enable-gpio = <&tlmm 134 GPIO_ACTIVE_HIGH>;
+
+       vddpe-3v3-supply = <&pcie0_3p3v_dual>;
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie0_default_state>;
+};
+
+&pcie0_phy {
+       status = "okay";
+
+       vdda-phy-supply = <&vreg_l1a_0p875>;
+       vdda-pll-supply = <&vreg_l26a_1p2>;
+};
+
+&pcie1 {
+       status = "okay";
+       perst-gpio = <&tlmm 102 GPIO_ACTIVE_LOW>;
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie1_default_state>;
+};
+
+&pcie1_phy {
+       status = "okay";
+
+       vdda-phy-supply = <&vreg_l1a_0p875>;
+       vdda-pll-supply = <&vreg_l26a_1p2>;
+};
+
 &pm8998_gpio {
        vol_up_pin_a: vol-up-active {
                pins = "gpio6";
        };
 };
 
+/* QUAT I2S Uses 4 I2S SD Lines for audio on LT9611 HDMI Bridge */
+&q6afedai {
+       qi2s@22 {
+               reg = <22>;
+               qcom,sd-lines = <0 1 2 3>;
+       };
+};
+
+&q6asmdai {
+       dai@0 {
+               reg = <0>;
+               direction = <2>;
+       };
+
+       dai@1 {
+               reg = <1>;
+               direction = <2>;
+       };
+
+       dai@2 {
+               reg = <2>;
+               direction = <1>;
+       };
+
+       dai@3 {
+               reg = <3>;
+               direction = <2>;
+               is-compress-dai;
+       };
+};
+
 &qupv3_id_0 {
        status = "okay";
 };
        cd-gpios = <&tlmm 126 GPIO_ACTIVE_LOW>;
 };
 
+&sound {
+       compatible = "qcom,db845c-sndcard";
+       pinctrl-0 = <&quat_mi2s_active
+                        &quat_mi2s_sd0_active
+                        &quat_mi2s_sd1_active
+                        &quat_mi2s_sd2_active
+                        &quat_mi2s_sd3_active>;
+       pinctrl-names = "default";
+       model = "DB845c";
+       audio-routing =
+               "RX_BIAS", "MCLK",
+               "AMIC1", "MIC BIAS1",
+               "AMIC2", "MIC BIAS2",
+               "DMIC0", "MIC BIAS1",
+               "DMIC1", "MIC BIAS1",
+               "DMIC2", "MIC BIAS3",
+               "DMIC3", "MIC BIAS3",
+               "SpkrLeft IN", "SPK1 OUT",
+               "SpkrRight IN", "SPK2 OUT",
+               "MM_DL1",  "MultiMedia1 Playback",
+               "MM_DL2",  "MultiMedia2 Playback",
+               "MM_DL4",  "MultiMedia4 Playback",
+               "MultiMedia3 Capture", "MM_UL3";
+
+       mm1-dai-link {
+               link-name = "MultiMedia1";
+               cpu {
+                       sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA1>;
+               };
+       };
+
+       mm2-dai-link {
+               link-name = "MultiMedia2";
+               cpu {
+                       sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA2>;
+               };
+       };
+
+       mm3-dai-link {
+               link-name = "MultiMedia3";
+               cpu {
+                       sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA3>;
+               };
+       };
+
+       mm4-dai-link {
+               link-name = "MultiMedia4";
+               cpu {
+                       sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA4>;
+               };
+       };
+
+       slim-dai-link {
+               link-name = "SLIM Playback";
+               cpu {
+                       sound-dai = <&q6afedai SLIMBUS_0_RX>;
+               };
+
+               platform {
+                       sound-dai = <&q6routing>;
+               };
+
+               codec {
+                       sound-dai =  <&left_spkr>, <&right_spkr>, <&swm 0>, <&wcd9340 0>;
+               };
+       };
+
+       slimcap-dai-link {
+               link-name = "SLIM Capture";
+               cpu {
+                       sound-dai = <&q6afedai SLIMBUS_0_TX>;
+               };
+
+               platform {
+                       sound-dai = <&q6routing>;
+               };
+
+               codec {
+                       sound-dai = <&wcd9340 1>;
+               };
+       };
+};
+
+&spi2 {
+       /* On Low speed expansion */
+       label = "LS-SPI0";
+       status = "okay";
+};
+
 &tlmm {
+       pcie0_default_state: pcie0-default {
+               clkreq {
+                       pins = "gpio36";
+                       function = "pci_e0";
+                       bias-pull-up;
+               };
+
+               reset-n {
+                       pins = "gpio35";
+                       function = "gpio";
+
+                       drive-strength = <2>;
+                       output-low;
+                       bias-pull-down;
+               };
+
+               wake-n {
+                       pins = "gpio37";
+                       function = "gpio";
+
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
+
        pcie0_pwren_state: pcie0-pwren {
                pins = "gpio90";
                function = "gpio";
                bias-disable;
        };
 
+       pcie1_default_state: pcie1-default {
+               perst-n {
+                       pins = "gpio102";
+                       function = "gpio";
+
+                       drive-strength = <16>;
+                       bias-disable;
+               };
+
+               clkreq {
+                       pins = "gpio103";
+                       function = "pci_e1";
+                       bias-pull-up;
+               };
+
+               wake-n {
+                       pins = "gpio11";
+                       function = "gpio";
+
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               reset-n {
+                       pins = "gpio75";
+                       function = "gpio";
+
+                       drive-strength = <16>;
+                       bias-pull-up;
+                       output-high;
+               };
+       };
+
        sdc2_default_state: sdc2-default {
                clk {
                        pins = "sdc2_clk";
                function = "gpio";
                bias-pull-up;
        };
+
+       wcd_intr_default: wcd_intr_default {
+               pins = <54>;
+               function = "gpio";
+
+               input-enable;
+               bias-pull-down;
+               drive-strength = <2>;
+       };
+};
+
+&uart3 {
+       label = "LS-UART0";
+       status = "disabled";
 };
 
 &uart6 {
 };
 
 &uart9 {
+       label = "LS-UART1";
        status = "okay";
 };
 
        vdda-pll-supply = <&vreg_l26a_1p2>;
 };
 
+&wcd9340{
+       pinctrl-0 = <&wcd_intr_default>;
+       pinctrl-names = "default";
+       clock-names = "extclk";
+       clocks = <&rpmhcc RPMH_LN_BB_CLK2>;
+       reset-gpios = <&tlmm 64 0>;
+       vdd-buck-supply = <&vreg_s4a_1p8>;
+       vdd-buck-sido-supply = <&vreg_s4a_1p8>;
+       vdd-tx-supply = <&vreg_s4a_1p8>;
+       vdd-rx-supply = <&vreg_s4a_1p8>;
+       vdd-io-supply = <&vreg_s4a_1p8>;
+
+       swm: swm@c85 {
+               left_spkr: wsa8810-left{
+                       compatible = "sdw10217201000";
+                       reg = <0 1>;
+                       powerdown-gpios = <&wcdgpio 2 GPIO_ACTIVE_HIGH>;
+                       #thermal-sensor-cells = <0>;
+                       sound-name-prefix = "SpkrLeft";
+                       #sound-dai-cells = <0>;
+               };
+
+               right_spkr: wsa8810-right{
+                       compatible = "sdw10217201000";
+                       powerdown-gpios = <&wcdgpio 2 GPIO_ACTIVE_HIGH>;
+                       reg = <0 2>;
+                       #thermal-sensor-cells = <0>;
+                       sound-name-prefix = "SpkrRight";
+                       #sound-dai-cells = <0>;
+               };
+       };
+};
+
 &wifi {
        status = "okay";
 
 };
 
 /* PINCTRL - additions to nodes defined in sdm845.dtsi */
+&qup_spi2_default {
+       drive-strength = <16>;
+};
+
+&qup_uart3_default{
+       pinmux {
+               pins = "gpio41", "gpio42", "gpio43", "gpio44";
+               function = "qup3";
+       };
+};
 
 &qup_uart6_default {
        pinmux {
index 09ad37b0dd71ded8ea4fd8d9854b42005be82886..023e8b04c7f65b78fc4022d31e57a8e34af5110b 100644 (file)
@@ -50,6 +50,7 @@
 
 &adsp_pas {
        status = "okay";
+       firmware-name = "qcom/sdm845/adsp.mdt";
 };
 
 &apps_rsc {
 
 &cdsp_pas {
        status = "okay";
+       firmware-name = "qcom/sdm845/cdsp.mdt";
+};
+
+&dsi0 {
+       status = "okay";
+       vdda-supply = <&vdda_mipi_dsi0_1p2>;
+
+       qcom,dual-dsi-mode;
+       qcom,master-dsi;
+
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       ports {
+               port@1 {
+                       endpoint {
+                               remote-endpoint = <&truly_in_0>;
+                               data-lanes = <0 1 2 3>;
+                       };
+               };
+       };
+
+       panel@0 {
+               compatible = "truly,nt35597-2K-display";
+               reg = <0>;
+               vdda-supply = <&vreg_l14a_1p88>;
+
+               reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
+               mode-gpios = <&tlmm 52 GPIO_ACTIVE_HIGH>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               truly_in_0: endpoint {
+                                       remote-endpoint = <&dsi0_out>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                               truly_in_1: endpoint {
+                                       remote-endpoint = <&dsi1_out>;
+                               };
+                       };
+               };
+       };
+};
+
+&dsi0_phy {
+       status = "okay";
+       vdds-supply = <&vdda_mipi_dsi0_pll>;
+};
+
+&dsi1 {
+       status = "okay";
+       vdda-supply = <&vdda_mipi_dsi1_1p2>;
+
+       qcom,dual-dsi-mode;
+
+       ports {
+               port@1 {
+                       endpoint {
+                               remote-endpoint = <&truly_in_1>;
+                               data-lanes = <0 1 2 3>;
+                       };
+               };
+       };
+};
+
+&dsi1_phy {
+       status = "okay";
+       vdds-supply = <&vdda_mipi_dsi1_pll>;
 };
 
 &gcc {
        clock-frequency = <400000>;
 };
 
+&mdss {
+       status = "okay";
+};
+
+&mdss_mdp {
+       status = "okay";
+};
+
+&mss_pil {
+       status = "okay";
+       firmware-name = "qcom/sdm845/mba.mbn", "qcom/sdm845/modem.mbn";
+};
+
 &qupv3_id_1 {
        status = "okay";
 };
index d42302b8889b6b18db2903d3a6c5cb8bd8b1ac85..8f926b5234d40c3ddfdf6abed4cce35a412b396a 100644 (file)
@@ -17,6 +17,7 @@
 #include <dt-bindings/power/qcom-rpmpd.h>
 #include <dt-bindings/reset/qcom,sdm845-aoss.h>
 #include <dt-bindings/reset/qcom,sdm845-pdc.h>
+#include <dt-bindings/soc/qcom,apr.h>
 #include <dt-bindings/soc/qcom,rpmh-rsc.h>
 #include <dt-bindings/clock/qcom,gcc-sdm845.h>
 #include <dt-bindings/thermal/thermal.h>
                        label = "lpass";
                        qcom,remote-pid = <2>;
                        mboxes = <&apss_shared 8>;
+
+                       apr {
+                               compatible = "qcom,apr-v2";
+                               qcom,glink-channels = "apr_audio_svc";
+                               qcom,apr-domain = <APR_DOMAIN_ADSP>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               qcom,intents = <512 20>;
+
+                               apr-service@3 {
+                                       reg = <APR_SVC_ADSP_CORE>;
+                                       compatible = "qcom,q6core";
+                                       qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
+                               };
+
+                               q6afe: apr-service@4 {
+                                       compatible = "qcom,q6afe";
+                                       reg = <APR_SVC_AFE>;
+                                       qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
+                                       q6afedai: dais {
+                                               compatible = "qcom,q6afe-dais";
+                                               #address-cells = <1>;
+                                               #size-cells = <0>;
+                                               #sound-dai-cells = <1>;
+                                       };
+                               };
+
+                               q6asm: apr-service@7 {
+                                       compatible = "qcom,q6asm";
+                                       reg = <APR_SVC_ASM>;
+                                       qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
+                                       q6asmdai: dais {
+                                               compatible = "qcom,q6asm-dais";
+                                               #address-cells = <1>;
+                                               #size-cells = <0>;
+                                               #sound-dai-cells = <1>;
+                                               iommus = <&apps_smmu 0x1821 0x0>;
+                                       };
+                               };
+
+                               q6adm: apr-service@8 {
+                                       compatible = "qcom,q6adm";
+                                       reg = <APR_SVC_ADM>;
+                                       qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
+                                       q6routing: routing {
+                                               compatible = "qcom,q6adm-routing";
+                                               #sound-dai-cells = <0>;
+                                       };
+                               };
+                       };
+
                        fastrpc {
                                compatible = "qcom,fastrpc";
                                qcom,glink-channels = "fastrpcglink-apps-dsp";
                        interrupt-controller;
                        #interrupt-cells = <2>;
                };
+
+               ipa_smp2p_out: ipa-ap-to-modem {
+                       qcom,entry-name = "ipa";
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               ipa_smp2p_in: ipa-modem-to-ap {
+                       qcom,entry-name = "ipa";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
        };
 
        smp2p-slpi {
                        interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>;
                };
 
+               pcie0: pci@1c00000 {
+                       compatible = "qcom,pcie-sdm845", "snps,dw-pcie";
+                       reg = <0 0x01c00000 0 0x2000>,
+                             <0 0x60000000 0 0xf1d>,
+                             <0 0x60000f20 0 0xa8>,
+                             <0 0x60100000 0 0x100000>;
+                       reg-names = "parf", "dbi", "elbi", "config";
+                       device_type = "pci";
+                       linux,pci-domain = <0>;
+                       bus-range = <0x00 0xff>;
+                       num-lanes = <1>;
+
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+
+                       ranges = <0x01000000 0x0 0x60200000 0 0x60200000 0x0 0x100000>,
+                                <0x02000000 0x0 0x60300000 0 0x60300000 0x0 0xd00000>;
+
+                       interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "msi";
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 0x7>;
+                       interrupt-map = <0 0 0 1 &intc 0 149 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
+                                       <0 0 0 2 &intc 0 150 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
+                                       <0 0 0 3 &intc 0 151 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
+                                       <0 0 0 4 &intc 0 152 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
+
+                       clocks = <&gcc GCC_PCIE_0_PIPE_CLK>,
+                                <&gcc GCC_PCIE_0_AUX_CLK>,
+                                <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_0_MSTR_AXI_CLK>,
+                                <&gcc GCC_PCIE_0_SLV_AXI_CLK>,
+                                <&gcc GCC_PCIE_0_SLV_Q2A_AXI_CLK>,
+                                <&gcc GCC_AGGRE_NOC_PCIE_TBU_CLK>;
+                       clock-names = "pipe",
+                                     "aux",
+                                     "cfg",
+                                     "bus_master",
+                                     "bus_slave",
+                                     "slave_q2a",
+                                     "tbu";
+
+                       iommus = <&apps_smmu 0x1c10 0xf>;
+                       iommu-map = <0x0   &apps_smmu 0x1c10 0x1>,
+                                   <0x100 &apps_smmu 0x1c11 0x1>,
+                                   <0x200 &apps_smmu 0x1c12 0x1>,
+                                   <0x300 &apps_smmu 0x1c13 0x1>,
+                                   <0x400 &apps_smmu 0x1c14 0x1>,
+                                   <0x500 &apps_smmu 0x1c15 0x1>,
+                                   <0x600 &apps_smmu 0x1c16 0x1>,
+                                   <0x700 &apps_smmu 0x1c17 0x1>,
+                                   <0x800 &apps_smmu 0x1c18 0x1>,
+                                   <0x900 &apps_smmu 0x1c19 0x1>,
+                                   <0xa00 &apps_smmu 0x1c1a 0x1>,
+                                   <0xb00 &apps_smmu 0x1c1b 0x1>,
+                                   <0xc00 &apps_smmu 0x1c1c 0x1>,
+                                   <0xd00 &apps_smmu 0x1c1d 0x1>,
+                                   <0xe00 &apps_smmu 0x1c1e 0x1>,
+                                   <0xf00 &apps_smmu 0x1c1f 0x1>;
+
+                       resets = <&gcc GCC_PCIE_0_BCR>;
+                       reset-names = "pci";
+
+                       power-domains = <&gcc PCIE_0_GDSC>;
+
+                       phys = <&pcie0_lane>;
+                       phy-names = "pciephy";
+
+                       status = "disabled";
+               };
+
+               pcie0_phy: phy@1c06000 {
+                       compatible = "qcom,sdm845-qmp-pcie-phy";
+                       reg = <0 0x01c06000 0 0x18c>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>,
+                                <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_0_CLKREF_CLK>,
+                                <&gcc GCC_PCIE_PHY_REFGEN_CLK>;
+                       clock-names = "aux", "cfg_ahb", "ref", "refgen";
+
+                       resets = <&gcc GCC_PCIE_0_PHY_BCR>;
+                       reset-names = "phy";
+
+                       assigned-clocks = <&gcc GCC_PCIE_PHY_REFGEN_CLK>;
+                       assigned-clock-rates = <100000000>;
+
+                       status = "disabled";
+
+                       pcie0_lane: lanes@1c06200 {
+                               reg = <0 0x01c06200 0 0x128>,
+                                     <0 0x01c06400 0 0x1fc>,
+                                     <0 0x01c06800 0 0x218>,
+                                     <0 0x01c06600 0 0x70>;
+                               clocks = <&gcc GCC_PCIE_0_PIPE_CLK>;
+                               clock-names = "pipe0";
+
+                               #phy-cells = <0>;
+                               clock-output-names = "pcie_0_pipe_clk";
+                       };
+               };
+
+               pcie1: pci@1c08000 {
+                       compatible = "qcom,pcie-sdm845", "snps,dw-pcie";
+                       reg = <0 0x01c08000 0 0x2000>,
+                             <0 0x40000000 0 0xf1d>,
+                             <0 0x40000f20 0 0xa8>,
+                             <0 0x40100000 0 0x100000>;
+                       reg-names = "parf", "dbi", "elbi", "config";
+                       device_type = "pci";
+                       linux,pci-domain = <1>;
+                       bus-range = <0x00 0xff>;
+                       num-lanes = <1>;
+
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+
+                       ranges = <0x01000000 0x0 0x40200000 0x0 0x40200000 0x0 0x100000>,
+                                <0x02000000 0x0 0x40300000 0x0 0x40300000 0x0 0x1fd00000>;
+
+                       interrupts = <GIC_SPI 307 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "msi";
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 0x7>;
+                       interrupt-map = <0 0 0 1 &intc 0 434 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
+                                       <0 0 0 2 &intc 0 435 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
+                                       <0 0 0 3 &intc 0 438 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
+                                       <0 0 0 4 &intc 0 439 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
+
+                       clocks = <&gcc GCC_PCIE_1_PIPE_CLK>,
+                                <&gcc GCC_PCIE_1_AUX_CLK>,
+                                <&gcc GCC_PCIE_1_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_1_MSTR_AXI_CLK>,
+                                <&gcc GCC_PCIE_1_SLV_AXI_CLK>,
+                                <&gcc GCC_PCIE_1_SLV_Q2A_AXI_CLK>,
+                                <&gcc GCC_PCIE_1_CLKREF_CLK>,
+                                <&gcc GCC_AGGRE_NOC_PCIE_TBU_CLK>;
+                       clock-names = "pipe",
+                                     "aux",
+                                     "cfg",
+                                     "bus_master",
+                                     "bus_slave",
+                                     "slave_q2a",
+                                     "ref",
+                                     "tbu";
+
+                       assigned-clocks = <&gcc GCC_PCIE_1_AUX_CLK>;
+                       assigned-clock-rates = <19200000>;
+
+                       iommus = <&apps_smmu 0x1c00 0xf>;
+                       iommu-map = <0x0   &apps_smmu 0x1c00 0x1>,
+                                   <0x100 &apps_smmu 0x1c01 0x1>,
+                                   <0x200 &apps_smmu 0x1c02 0x1>,
+                                   <0x300 &apps_smmu 0x1c03 0x1>,
+                                   <0x400 &apps_smmu 0x1c04 0x1>,
+                                   <0x500 &apps_smmu 0x1c05 0x1>,
+                                   <0x600 &apps_smmu 0x1c06 0x1>,
+                                   <0x700 &apps_smmu 0x1c07 0x1>,
+                                   <0x800 &apps_smmu 0x1c08 0x1>,
+                                   <0x900 &apps_smmu 0x1c09 0x1>,
+                                   <0xa00 &apps_smmu 0x1c0a 0x1>,
+                                   <0xb00 &apps_smmu 0x1c0b 0x1>,
+                                   <0xc00 &apps_smmu 0x1c0c 0x1>,
+                                   <0xd00 &apps_smmu 0x1c0d 0x1>,
+                                   <0xe00 &apps_smmu 0x1c0e 0x1>,
+                                   <0xf00 &apps_smmu 0x1c0f 0x1>;
+
+                       resets = <&gcc GCC_PCIE_1_BCR>;
+                       reset-names = "pci";
+
+                       power-domains = <&gcc PCIE_1_GDSC>;
+
+                       phys = <&pcie1_lane>;
+                       phy-names = "pciephy";
+
+                       status = "disabled";
+               };
+
+               pcie1_phy: phy@1c0a000 {
+                       compatible = "qcom,sdm845-qhp-pcie-phy";
+                       reg = <0 0x01c0a000 0 0x800>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>,
+                                <&gcc GCC_PCIE_1_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_1_CLKREF_CLK>,
+                                <&gcc GCC_PCIE_PHY_REFGEN_CLK>;
+                       clock-names = "aux", "cfg_ahb", "ref", "refgen";
+
+                       resets = <&gcc GCC_PCIE_1_PHY_BCR>;
+                       reset-names = "phy";
+
+                       assigned-clocks = <&gcc GCC_PCIE_PHY_REFGEN_CLK>;
+                       assigned-clock-rates = <100000000>;
+
+                       status = "disabled";
+
+                       pcie1_lane: lanes@1c06200 {
+                               reg = <0 0x01c0a800 0 0x800>,
+                                     <0 0x01c0a800 0 0x800>,
+                                     <0 0x01c0b800 0 0x400>;
+                               clocks = <&gcc GCC_PCIE_1_PIPE_CLK>;
+                               clock-names = "pipe0";
+
+                               #phy-cells = <0>;
+                               clock-output-names = "pcie_1_pipe_clk";
+                       };
+               };
+
+               mem_noc: interconnect@1380000 {
+                       compatible = "qcom,sdm845-mem-noc";
+                       reg = <0 0x01380000 0 0x27200>;
+                       #interconnect-cells = <1>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               dc_noc: interconnect@14e0000 {
+                       compatible = "qcom,sdm845-dc-noc";
+                       reg = <0 0x014e0000 0 0x400>;
+                       #interconnect-cells = <1>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               config_noc: interconnect@1500000 {
+                       compatible = "qcom,sdm845-config-noc";
+                       reg = <0 0x01500000 0 0x5080>;
+                       #interconnect-cells = <1>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               system_noc: interconnect@1620000 {
+                       compatible = "qcom,sdm845-system-noc";
+                       reg = <0 0x01620000 0 0x18080>;
+                       #interconnect-cells = <1>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               aggre1_noc: interconnect@16e0000 {
+                       compatible = "qcom,sdm845-aggre1-noc";
+                       reg = <0 0x016e0000 0 0x15080>;
+                       #interconnect-cells = <1>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               aggre2_noc: interconnect@1700000 {
+                       compatible = "qcom,sdm845-aggre2-noc";
+                       reg = <0 0x01700000 0 0x1f300>;
+                       #interconnect-cells = <1>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               mmss_noc: interconnect@1740000 {
+                       compatible = "qcom,sdm845-mmss-noc";
+                       reg = <0 0x01740000 0 0x1c100>;
+                       #interconnect-cells = <1>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
                ufs_mem_hc: ufshc@1d84000 {
                        compatible = "qcom,sdm845-ufshc", "qcom,ufshc",
                                     "jedec,ufs-2.0";
                        };
                };
 
+               ipa: ipa@1e40000 {
+                       compatible = "qcom,sdm845-ipa";
+                       reg = <0 0x1e40000 0 0x7000>,
+                             <0 0x1e47000 0 0x2000>,
+                             <0 0x1e04000 0 0x2c000>;
+                       reg-names = "ipa-reg",
+                                   "ipa-shared",
+                                   "gsi";
+
+                       interrupts-extended = <&intc 0 311 IRQ_TYPE_EDGE_RISING>,
+                                             <&intc 0 432 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&ipa_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&ipa_smp2p_in 1 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "ipa",
+                                         "gsi",
+                                         "ipa-clock-query",
+                                         "ipa-setup-ready";
+
+                       clocks = <&rpmhcc RPMH_IPA_CLK>;
+                       clock-names = "core";
+
+                       interconnects = <&aggre2_noc MASTER_IPA &mem_noc SLAVE_EBI1>,
+                                       <&aggre2_noc MASTER_IPA &system_noc SLAVE_IMEM>,
+                                       <&gladiator_noc MASTER_APPSS_PROC &config_noc SLAVE_IPA_CFG>;
+                       interconnect-names = "memory",
+                                            "imem",
+                                            "config";
+
+                       qcom,smem-states = <&ipa_smp2p_out 0>,
+                                          <&ipa_smp2p_out 1>;
+                       qcom,smem-state-names = "ipa-clock-enabled-valid",
+                                               "ipa-clock-enabled";
+
+                       modem-remoteproc = <&mss_pil>;
+
+                       status = "disabled";
+               };
+
                tcsr_mutex_regs: syscon@1f40000 {
                        compatible = "syscon";
                        reg = <0 0x01f40000 0 0x40000>;
                                        function = "qup15";
                                };
                        };
+
+                       quat_mi2s_sleep: quat_mi2s_sleep {
+                               mux {
+                                       pins = "gpio58", "gpio59";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio58", "gpio59";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                                       input-enable;
+                               };
+                       };
+
+                       quat_mi2s_active: quat_mi2s_active {
+                               mux {
+                                       pins = "gpio58", "gpio59";
+                                       function = "qua_mi2s";
+                               };
+
+                               config {
+                                       pins = "gpio58", "gpio59";
+                                       drive-strength = <8>;
+                                       bias-disable;
+                                       output-high;
+                               };
+                       };
+
+                       quat_mi2s_sd0_sleep: quat_mi2s_sd0_sleep {
+                               mux {
+                                       pins = "gpio60";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio60";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                                       input-enable;
+                               };
+                       };
+
+                       quat_mi2s_sd0_active: quat_mi2s_sd0_active {
+                               mux {
+                                       pins = "gpio60";
+                                       function = "qua_mi2s";
+                               };
+
+                               config {
+                                       pins = "gpio60";
+                                       drive-strength = <8>;
+                                       bias-disable;
+                               };
+                       };
+
+                       quat_mi2s_sd1_sleep: quat_mi2s_sd1_sleep {
+                               mux {
+                                       pins = "gpio61";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio61";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                                       input-enable;
+                               };
+                       };
+
+                       quat_mi2s_sd1_active: quat_mi2s_sd1_active {
+                               mux {
+                                       pins = "gpio61";
+                                       function = "qua_mi2s";
+                               };
+
+                               config {
+                                       pins = "gpio61";
+                                       drive-strength = <8>;
+                                       bias-disable;
+                               };
+                       };
+
+                       quat_mi2s_sd2_sleep: quat_mi2s_sd2_sleep {
+                               mux {
+                                       pins = "gpio62";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio62";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                                       input-enable;
+                               };
+                       };
+
+                       quat_mi2s_sd2_active: quat_mi2s_sd2_active {
+                               mux {
+                                       pins = "gpio62";
+                                       function = "qua_mi2s";
+                               };
+
+                               config {
+                                       pins = "gpio62";
+                                       drive-strength = <8>;
+                                       bias-disable;
+                               };
+                       };
+
+                       quat_mi2s_sd3_sleep: quat_mi2s_sd3_sleep {
+                               mux {
+                                       pins = "gpio63";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio63";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                                       input-enable;
+                               };
+                       };
+
+                       quat_mi2s_sd3_active: quat_mi2s_sd3_active {
+                               mux {
+                                       pins = "gpio63";
+                                       function = "qua_mi2s";
+                               };
+
+                               config {
+                                       pins = "gpio63";
+                                       drive-strength = <8>;
+                                       bias-disable;
+                               };
+                       };
                };
 
                mss_pil: remoteproc@4080000 {
                        #clock-cells = <1>;
                        #reset-cells = <1>;
                        #power-domain-cells = <1>;
-                       clocks = <&rpmhcc RPMH_CXO_CLK>;
-                       clock-names = "xo";
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_GPU_GPLL0_CLK_SRC>,
+                                <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
+                       clock-names = "bi_tcxo",
+                                     "gcc_gpu_gpll0_clk_src",
+                                     "gcc_gpu_gpll0_div_clk_src";
                };
 
                stm@6002000 {
                        status = "disabled";
                };
 
+               slim: slim@171c0000 {
+                       compatible = "qcom,slim-ngd-v2.1.0";
+                       reg = <0 0x171c0000 0 0x2c000>;
+                       interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;
+
+                       qcom,apps-ch-pipes = <0x780000>;
+                       qcom,ea-pc = <0x270>;
+                       status = "okay";
+                       dmas =  <&slimbam 3>, <&slimbam 4>,
+                               <&slimbam 5>, <&slimbam 6>;
+                       dma-names = "rx", "tx", "tx2", "rx2";
+
+                       iommus = <&apps_smmu 0x1806 0x0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       ngd@1 {
+                               reg = <1>;
+                               #address-cells = <2>;
+                               #size-cells = <0>;
+
+                               wcd9340_ifd: ifd@0{
+                                       compatible = "slim217,250";
+                                       reg  = <0 0>;
+                               };
+
+                               wcd9340: codec@1{
+                                       compatible = "slim217,250";
+                                       reg  = <1 0>;
+                                       slim-ifc-dev  = <&wcd9340_ifd>;
+
+                                       #sound-dai-cells = <1>;
+
+                                       interrupts-extended = <&tlmm 54 IRQ_TYPE_LEVEL_HIGH>;
+                                       interrupt-controller;
+                                       #interrupt-cells = <1>;
+
+                                       #clock-cells = <0>;
+                                       clock-frequency = <9600000>;
+                                       clock-output-names = "mclk";
+                                       qcom,micbias1-millivolt = <1800>;
+                                       qcom,micbias2-millivolt = <1800>;
+                                       qcom,micbias3-millivolt = <1800>;
+                                       qcom,micbias4-millivolt = <1800>;
+
+                                       #address-cells = <1>;
+                                       #size-cells = <1>;
+
+                                       wcdgpio: gpio-controller@42 {
+                                               compatible = "qcom,wcd9340-gpio";
+                                               gpio-controller;
+                                               #gpio-cells = <2>;
+                                               reg = <0x42 0x2>;
+                                       };
+
+                                       swm: swm@c85 {
+                                               compatible = "qcom,soundwire-v1.3.0";
+                                               reg = <0xc85 0x40>;
+                                               interrupts-extended = <&wcd9340 20>;
+
+                                               qcom,dout-ports = <6>;
+                                               qcom,din-ports  = <2>;
+                                               qcom,ports-sinterval-low =/bits/ 8  <0x07 0x1F 0x3F 0x7 0x1F 0x3F 0x0F 0x0F>;
+                                               qcom,ports-offset1 = /bits/ 8 <0x01 0x02 0x0C 0x6 0x12 0x0D 0x07 0x0A >;
+                                               qcom,ports-offset2 = /bits/ 8 <0x00 0x00 0x1F 0x00 0x00 0x1F 0x00 0x00>;
+
+                                               #sound-dai-cells = <1>;
+                                               clocks = <&wcd9340>;
+                                               clock-names = "iface";
+                                               #address-cells = <2>;
+                                               #size-cells = <0>;
+
+
+                                       };
+                               };
+                       };
+               };
+
+               sound: sound {
+               };
+
                usb_1_hsphy: phy@88e2000 {
                        compatible = "qcom,sdm845-qusb2-phy";
                        reg = <0 0x088e2000 0 0x400>;
                        };
                };
 
-               video-codec@aa00000 {
-                       compatible = "qcom,sdm845-venus";
+               venus: video-codec@aa00000 {
+                       compatible = "qcom,sdm845-venus-v2";
                        reg = <0 0x0aa00000 0 0xff000>;
                        interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
-                       power-domains = <&videocc VENUS_GDSC>;
+                       power-domains = <&videocc VENUS_GDSC>,
+                                       <&videocc VCODEC0_GDSC>,
+                                       <&videocc VCODEC1_GDSC>;
+                       power-domain-names = "venus", "vcodec0", "vcodec1";
                        clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>,
                                 <&videocc VIDEO_CC_VENUS_AHB_CLK>,
-                                <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK>;
-                       clock-names = "core", "iface", "bus";
+                                <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK>,
+                                <&videocc VIDEO_CC_VCODEC0_CORE_CLK>,
+                                <&videocc VIDEO_CC_VCODEC0_AXI_CLK>,
+                                <&videocc VIDEO_CC_VCODEC1_CORE_CLK>,
+                                <&videocc VIDEO_CC_VCODEC1_AXI_CLK>;
+                       clock-names = "core", "iface", "bus",
+                                     "vcodec0_core", "vcodec0_bus",
+                                     "vcodec1_core", "vcodec1_bus";
                        iommus = <&apps_smmu 0x10a0 0x8>,
                                 <&apps_smmu 0x10b0 0x0>;
                        memory-region = <&venus_mem>;
 
                        video-core0 {
                                compatible = "venus-decoder";
-                               clocks = <&videocc VIDEO_CC_VCODEC0_CORE_CLK>,
-                                        <&videocc VIDEO_CC_VCODEC0_AXI_CLK>;
-                               clock-names = "core", "bus";
-                               power-domains = <&videocc VCODEC0_GDSC>;
                        };
 
                        video-core1 {
                                compatible = "venus-encoder";
-                               clocks = <&videocc VIDEO_CC_VCODEC1_CORE_CLK>,
-                                        <&videocc VIDEO_CC_VCODEC1_AXI_CLK>;
-                               clock-names = "core", "bus";
-                               power-domains = <&videocc VCODEC1_GDSC>;
                        };
                };
 
                videocc: clock-controller@ab00000 {
                        compatible = "qcom,sdm845-videocc";
                        reg = <0 0x0ab00000 0 0x10000>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "bi_tcxo";
                        #clock-cells = <1>;
                        #power-domain-cells = <1>;
                        #reset-cells = <1>;
                dispcc: clock-controller@af00000 {
                        compatible = "qcom,sdm845-dispcc";
                        reg = <0 0x0af00000 0 0x10000>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_DISP_GPLL0_CLK_SRC>,
+                                <&gcc GCC_DISP_GPLL0_DIV_CLK_SRC>,
+                                <&dsi0_phy 0>,
+                                <&dsi0_phy 1>,
+                                <&dsi1_phy 0>,
+                                <&dsi1_phy 1>,
+                                <0>,
+                                <0>;
+                       clock-names = "bi_tcxo",
+                                     "gcc_disp_gpll0_clk_src",
+                                     "gcc_disp_gpll0_div_clk_src",
+                                     "dsi0_phy_pll_out_byteclk",
+                                     "dsi0_phy_pll_out_dsiclk",
+                                     "dsi1_phy_pll_out_byteclk",
+                                     "dsi1_phy_pll_out_dsiclk",
+                                     "dp_link_clk_divsel_ten",
+                                     "dp_vco_divided_clk_src_mux";
                        #clock-cells = <1>;
                        #reset-cells = <1>;
                        #power-domain-cells = <1>;
                        status = "disabled";
                };
 
+               gladiator_noc: interconnect@17900000 {
+                       compatible = "qcom,sdm845-gladiator-noc";
+                       reg = <0 0x17900000 0 0xd080>;
+                       #interconnect-cells = <1>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
                watchdog@17980000 {
                        compatible = "qcom,apss-wdt-sdm845", "qcom,kpss-wdt";
                        reg = <0 0x17980000 0 0x1000>;
                                          <WAKE_TCS    3>,
                                          <CONTROL_TCS 1>;
 
+                       apps_bcm_voter: bcm-voter {
+                               compatible = "qcom,bcm-voter";
+                       };
+
                        rpmhcc: clock-controller {
                                compatible = "qcom,sdm845-rpmh-clk";
                                #clock-cells = <1>;
                                        };
                                };
                        };
-
-                       rsc_hlos: interconnect {
-                               compatible = "qcom,sdm845-rsc-hlos";
-                               #interconnect-cells = <1>;
-                       };
                };
 
                intc: interrupt-controller@17a00000 {
                        };
                };
 
+               slimbam: dma@17184000 {
+                       compatible = "qcom,bam-v1.7.0";
+                       qcom,controlled-remotely;
+                       reg = <0 0x17184000 0 0x2a000>;
+                       num-channels  = <31>;
+                       interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
+                       #dma-cells = <1>;
+                       qcom,ee = <1>;
+                       qcom,num-ees = <2>;
+                       iommus = <&apps_smmu 0x1806 0x0>;
+               };
+
                timer@17c90000 {
                        #address-cells = <2>;
                        #size-cells = <2>;
                        };
                };
 
+               osm_l3: interconnect@17d41000 {
+                       compatible = "qcom,sdm845-osm-l3";
+                       reg = <0 0x17d41000 0 0x1400>;
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GPLL0>;
+                       clock-names = "xo", "alternate";
+
+                       #interconnect-cells = <1>;
+               };
+
                cpufreq_hw: cpufreq@17d43000 {
                        compatible = "qcom,cpufreq-hw";
                        reg = <0 0x17d43000 0 0x1400>, <0 0x17d45800 0 0x1400>;
index b255be3a4a0afb93a157c284837b83892fb78eee..3b617a75fafa92e8199c1b654d5351e1cf3d8326 100644 (file)
@@ -7,7 +7,10 @@
 
 /dts-v1/;
 
+#include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include <dt-bindings/sound/qcom,q6afe.h>
+#include <dt-bindings/sound/qcom,q6asm.h>
 #include "sdm845.dtsi"
 #include "pm8998.dtsi"
 
        status = "okay";
 };
 
+&q6asmdai {
+       dai@0 {
+               reg = <0>;
+               direction = <2>;
+       };
+
+       dai@1 {
+               reg = <1>;
+               direction = <1>;
+       };
+};
+
+&sound {
+       compatible = "qcom,db845c-sndcard";
+       model = "Lenovo-YOGA-C630-13Q50";
+
+       audio-routing =
+               "RX_BIAS", "MCLK",
+               "AMIC2", "MIC BIAS2",
+               "SpkrLeft IN", "SPK1 OUT",
+               "SpkrRight IN", "SPK2 OUT",
+               "MM_DL1",  "MultiMedia1 Playback",
+               "MultiMedia2 Capture", "MM_UL2";
+
+       mm1-dai-link {
+               link-name = "MultiMedia1";
+               cpu {
+                       sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA1>;
+               };
+       };
+
+       mm2-dai-link {
+               link-name = "MultiMedia2";
+               cpu {
+                       sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA2>;
+               };
+       };
+
+       slim-dai-link {
+               link-name = "SLIM Playback";
+               cpu {
+                       sound-dai = <&q6afedai SLIMBUS_0_RX>;
+               };
+
+               platform {
+                       sound-dai = <&q6routing>;
+               };
+
+               codec {
+                       sound-dai =  <&left_spkr>, <&right_spkr>, <&swm 0>, <&wcd9340 0>;
+               };
+       };
+
+       slimcap-dai-link {
+               link-name = "SLIM Capture";
+               cpu {
+                       sound-dai = <&q6afedai SLIMBUS_0_TX>;
+               };
+
+               platform {
+                       sound-dai = <&q6routing>;
+               };
+
+               codec {
+                       sound-dai = <&wcd9340 1>;
+               };
+       };
+};
+
 &tlmm {
        gpio-reserved-ranges = <0 4>, <81 4>;
 
                bias-pull-up;
                drive-strength = <2>;
        };
+
+       wcd_intr_default: wcd_intr_default {
+               pins = <54>;
+               function = "gpio";
+
+               input-enable;
+               bias-pull-down;
+               drive-strength = <2>;
+       };
 };
 
 &uart6 {
        vdda-phy-supply = <&vdda_usb2_ss_1p2>;
        vdda-pll-supply = <&vdda_usb2_ss_core>;
 };
+
+&wcd9340{
+       pinctrl-0 = <&wcd_intr_default>;
+       pinctrl-names = "default";
+       clock-names = "extclk";
+       clocks = <&rpmhcc RPMH_LN_BB_CLK2>;
+       reset-gpios = <&tlmm 64 0>;
+       vdd-buck-supply = <&vreg_s4a_1p8>;
+       vdd-buck-sido-supply = <&vreg_s4a_1p8>;
+       vdd-tx-supply = <&vreg_s4a_1p8>;
+       vdd-rx-supply = <&vreg_s4a_1p8>;
+       vdd-io-supply = <&vreg_s4a_1p8>;
+
+       swm: swm@c85 {
+               left_spkr: wsa8810-left{
+                       compatible = "sdw10217211000";
+                       reg = <0 3>;
+                       powerdown-gpios = <&wcdgpio 2 GPIO_ACTIVE_HIGH>;
+                       #thermal-sensor-cells = <0>;
+                       sound-name-prefix = "SpkrLeft";
+                       #sound-dai-cells = <0>;
+               };
+
+               right_spkr: wsa8810-right{
+                       compatible = "sdw10217211000";
+                       powerdown-gpios = <&wcdgpio 3 GPIO_ACTIVE_HIGH>;
+                       reg = <0 4>;
+                       #thermal-sensor-cells = <0>;
+                       sound-name-prefix = "SpkrRight";
+                       #sound-dai-cells = <0>;
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/qcom/sm8250-mtp.dts b/arch/arm64/boot/dts/qcom/sm8250-mtp.dts
new file mode 100644 (file)
index 0000000..224d0f1
--- /dev/null
@@ -0,0 +1,29 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2020, The Linux Foundation. All rights reserved.
+ */
+
+/dts-v1/;
+
+#include "sm8250.dtsi"
+
+/ {
+       model = "Qualcomm Technologies, Inc. SM8250 MTP";
+       compatible = "qcom,sm8250-mtp";
+
+       aliases {
+               serial0 = &uart2;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&qupv3_id_1 {
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
new file mode 100644 (file)
index 0000000..891d83b
--- /dev/null
@@ -0,0 +1,444 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2020, The Linux Foundation. All rights reserved.
+ */
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/clock/qcom,rpmh.h>
+#include <dt-bindings/soc/qcom,rpmh-rsc.h>
+
+/ {
+       interrupt-parent = <&intc>;
+
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       chosen { };
+
+       clocks {
+               xo_board: xo-board {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <38400000>;
+                       clock-output-names = "xo_board";
+               };
+
+               sleep_clk: sleep-clk {
+                       compatible = "fixed-clock";
+                       clock-frequency = <32000>;
+                       #clock-cells = <0>;
+               };
+       };
+
+       cpus {
+               #address-cells = <2>;
+               #size-cells = <0>;
+
+               CPU0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "qcom,kryo485";
+                       reg = <0x0 0x0>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_0>;
+                       L2_0: l2-cache {
+                             compatible = "cache";
+                             next-level-cache = <&L3_0>;
+                               L3_0: l3-cache {
+                                     compatible = "cache";
+                               };
+                       };
+               };
+
+               CPU1: cpu@100 {
+                       device_type = "cpu";
+                       compatible = "qcom,kryo485";
+                       reg = <0x0 0x100>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_100>;
+                       L2_100: l2-cache {
+                             compatible = "cache";
+                             next-level-cache = <&L3_0>;
+                       };
+               };
+
+               CPU2: cpu@200 {
+                       device_type = "cpu";
+                       compatible = "qcom,kryo485";
+                       reg = <0x0 0x200>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_200>;
+                       L2_200: l2-cache {
+                             compatible = "cache";
+                             next-level-cache = <&L3_0>;
+                       };
+               };
+
+               CPU3: cpu@300 {
+                       device_type = "cpu";
+                       compatible = "qcom,kryo485";
+                       reg = <0x0 0x300>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_300>;
+                       L2_300: l2-cache {
+                             compatible = "cache";
+                             next-level-cache = <&L3_0>;
+                       };
+               };
+
+               CPU4: cpu@400 {
+                       device_type = "cpu";
+                       compatible = "qcom,kryo485";
+                       reg = <0x0 0x400>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_400>;
+                       L2_400: l2-cache {
+                             compatible = "cache";
+                             next-level-cache = <&L3_0>;
+                       };
+               };
+
+               CPU5: cpu@500 {
+                       device_type = "cpu";
+                       compatible = "qcom,kryo485";
+                       reg = <0x0 0x500>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_500>;
+                       L2_500: l2-cache {
+                             compatible = "cache";
+                             next-level-cache = <&L3_0>;
+                       };
+
+               };
+
+               CPU6: cpu@600 {
+                       device_type = "cpu";
+                       compatible = "qcom,kryo485";
+                       reg = <0x0 0x600>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_600>;
+                       L2_600: l2-cache {
+                             compatible = "cache";
+                             next-level-cache = <&L3_0>;
+                       };
+               };
+
+               CPU7: cpu@700 {
+                       device_type = "cpu";
+                       compatible = "qcom,kryo485";
+                       reg = <0x0 0x700>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_700>;
+                       L2_700: l2-cache {
+                             compatible = "cache";
+                             next-level-cache = <&L3_0>;
+                       };
+               };
+       };
+
+       firmware {
+               scm: scm {
+                       compatible = "qcom,scm";
+                       #reset-cells = <1>;
+               };
+       };
+
+       tcsr_mutex: hwlock {
+               compatible = "qcom,tcsr-mutex";
+               syscon = <&tcsr_mutex_regs 0 0x1000>;
+               #hwlock-cells = <1>;
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               /* We expect the bootloader to fill in the size */
+               reg = <0x0 0x80000000 0x0 0x0>;
+       };
+
+       pmu {
+               compatible = "arm,armv8-pmuv3";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
+       };
+
+       psci {
+               compatible = "arm,psci-1.0";
+               method = "smc";
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               hyp_mem: memory@80000000 {
+                       reg = <0x0 0x80000000 0x0 0x600000>;
+                       no-map;
+               };
+
+               xbl_aop_mem: memory@80700000 {
+                       reg = <0x0 0x80700000 0x0 0x160000>;
+                       no-map;
+               };
+
+               cmd_db: memory@80860000 {
+                       compatible = "qcom,cmd-db";
+                       reg = <0x0 0x80860000 0x0 0x20000>;
+                       no-map;
+               };
+
+               smem_mem: memory@80900000 {
+                       reg = <0x0 0x80900000 0x0 0x200000>;
+                       no-map;
+               };
+
+               removed_mem: memory@80b00000 {
+                       reg = <0x0 0x80b00000 0x0 0x5300000>;
+                       no-map;
+               };
+
+               camera_mem: memory@86200000 {
+                       reg = <0x0 0x86200000 0x0 0x500000>;
+                       no-map;
+               };
+
+               wlan_mem: memory@86700000 {
+                       reg = <0x0 0x86700000 0x0 0x100000>;
+                       no-map;
+               };
+
+               ipa_fw_mem: memory@86800000 {
+                       reg = <0x0 0x86800000 0x0 0x10000>;
+                       no-map;
+               };
+
+               ipa_gsi_mem: memory@86810000 {
+                       reg = <0x0 0x86810000 0x0 0xa000>;
+                       no-map;
+               };
+
+               gpu_mem: memory@8681a000 {
+                       reg = <0x0 0x8681a000 0x0 0x2000>;
+                       no-map;
+               };
+
+               npu_mem: memory@86900000 {
+                       reg = <0x0 0x86900000 0x0 0x500000>;
+                       no-map;
+               };
+
+               video_mem: memory@86e00000 {
+                       reg = <0x0 0x86e00000 0x0 0x500000>;
+                       no-map;
+               };
+
+               cvp_mem: memory@87300000 {
+                       reg = <0x0 0x87300000 0x0 0x500000>;
+                       no-map;
+               };
+
+               cdsp_mem: memory@87800000 {
+                       reg = <0x0 0x87800000 0x0 0x1400000>;
+                       no-map;
+               };
+
+               slpi_mem: memory@88c00000 {
+                       reg = <0x0 0x88c00000 0x0 0x1500000>;
+                       no-map;
+               };
+
+               adsp_mem: memory@8a100000 {
+                       reg = <0x0 0x8a100000 0x0 0x1d00000>;
+                       no-map;
+               };
+
+               spss_mem: memory@8be00000 {
+                       reg = <0x0 0x8be00000 0x0 0x100000>;
+                       no-map;
+               };
+
+               cdsp_secure_heap: memory@8bf00000 {
+                       reg = <0x0 0x8bf00000 0x0 0x4600000>;
+                       no-map;
+               };
+       };
+
+       smem: qcom,smem {
+               compatible = "qcom,smem";
+               memory-region = <&smem_mem>;
+               hwlocks = <&tcsr_mutex 3>;
+       };
+
+       soc: soc@0 {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges = <0 0 0 0 0x10 0>;
+               dma-ranges = <0 0 0 0 0x10 0>;
+               compatible = "simple-bus";
+
+               gcc: clock-controller@100000 {
+                       compatible = "qcom,gcc-sm8250";
+                       reg = <0x0 0x00100000 0x0 0x1f0000>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+                       clock-names = "bi_tcxo", "sleep_clk";
+                       clocks = <&rpmhcc RPMH_CXO_CLK>, <&sleep_clk>;
+               };
+
+               qupv3_id_1: geniqup@ac0000 {
+                       compatible = "qcom,geni-se-qup";
+                       reg = <0x0 0x00ac0000 0x0 0x6000>;
+                       clock-names = "m-ahb", "s-ahb";
+                       clocks = <&gcc 133>, <&gcc 134>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       status = "disabled";
+
+                       uart2: serial@a90000 {
+                               compatible = "qcom,geni-debug-uart";
+                               reg = <0x0 0x00a90000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc 113>;
+                               interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
+                               status = "disabled";
+                       };
+               };
+
+               intc: interrupt-controller@17a00000 {
+                       compatible = "arm,gic-v3";
+                       #interrupt-cells = <3>;
+                       interrupt-controller;
+                       reg = <0x0 0x17a00000 0x0 0x10000>,     /* GICD */
+                             <0x0 0x17a60000 0x0 0x100000>;    /* GICR * 8 */
+                       interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               pdc: interrupt-controller@b220000 {
+                       compatible = "qcom,sm8250-pdc";
+                       reg = <0x0b220000 0x30000>, <0x17c000f0 0x60>;
+                       qcom,pdc-ranges = <0 480 94>, <94 609 31>,
+                                         <125 63 1>, <126 716 12>;
+                       #interrupt-cells = <2>;
+                       interrupt-parent = <&intc>;
+                       interrupt-controller;
+               };
+
+               spmi: qcom,spmi@c440000 {
+                       compatible = "qcom,spmi-pmic-arb";
+                       reg = <0x0 0x0c440000 0x0 0x0001100>,
+                             <0x0 0x0c600000 0x0 0x2000000>,
+                             <0x0 0x0e600000 0x0 0x0100000>,
+                             <0x0 0x0e700000 0x0 0x00a0000>,
+                             <0x0 0x0c40a000 0x0 0x0026000>;
+                       reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
+                       interrupt-names = "periph_irq";
+                       interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>;
+                       qcom,ee = <0>;
+                       qcom,channel = <0>;
+                       #address-cells = <2>;
+                       #size-cells = <0>;
+                       interrupt-controller;
+                       #interrupt-cells = <4>;
+               };
+
+               apps_rsc: rsc@18200000 {
+                       label = "apps_rsc";
+                       compatible = "qcom,rpmh-rsc";
+                       reg = <0x0 0x18200000 0x0 0x10000>,
+                               <0x0 0x18210000 0x0 0x10000>,
+                               <0x0 0x18220000 0x0 0x10000>;
+                       reg-names = "drv-0", "drv-1", "drv-2";
+                       interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
+                       qcom,tcs-offset = <0xd00>;
+                       qcom,drv-id = <2>;
+                       qcom,tcs-config = <ACTIVE_TCS  2>, <SLEEP_TCS   3>,
+                                         <WAKE_TCS    3>, <CONTROL_TCS 1>;
+
+                       rpmhcc: clock-controller {
+                               compatible = "qcom,sm8250-rpmh-clk";
+                               #clock-cells = <1>;
+                               clock-names = "xo";
+                               clocks = <&xo_board>;
+                       };
+               };
+
+               tcsr_mutex_regs: syscon@1f40000 {
+                       compatible = "syscon";
+                       reg = <0x0 0x01f40000 0x0 0x40000>;
+               };
+
+               timer@17c20000 {
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       compatible = "arm,armv7-timer-mem";
+                       reg = <0x0 0x17c20000 0x0 0x1000>;
+                       clock-frequency = <19200000>;
+
+                       frame@17c21000 {
+                               frame-number = <0>;
+                               interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0 0x17c21000 0x0 0x1000>,
+                                     <0x0 0x17c22000 0x0 0x1000>;
+                       };
+
+                       frame@17c23000 {
+                               frame-number = <1>;
+                               interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0 0x17c23000 0x0 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@17c25000 {
+                               frame-number = <2>;
+                               interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0 0x17c25000 0x0 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@17c27000 {
+                               frame-number = <3>;
+                               interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0 0x17c27000 0x0 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@17c29000 {
+                               frame-number = <4>;
+                               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0 0x17c29000 0x0 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@17c2b000 {
+                               frame-number = <5>;
+                               interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0 0x17c2b000 0x0 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@17c2d000 {
+                               frame-number = <6>;
+                               interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0 0x17c2d000 0x0 0x1000>;
+                               status = "disabled";
+                       };
+               };
+
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupts = <GIC_PPI 13
+                               (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 14
+                               (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 11
+                               (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 12
+                               (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
+       };
+};