You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
kernel_samsung_sm7125/arch/arm64/boot/dts/qcom/qcs405.dtsi

1976 lines
47 KiB

/*
* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include "skeleton64.dtsi"
#include <dt-bindings/clock/qcom,gcc-qcs405.h>
#include <dt-bindings/clock/qcom,cpu-qcs405.h>
#include <dt-bindings/clock/qcom,cmn-blk-pll.h>
#include <dt-bindings/clock/qcom,rpmcc.h>
#include <dt-bindings/regulator/qcom,rpm-smd-regulator.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/clock/mdss-28nm-pll-clk.h>
#define MHZ_TO_MBPS(mhz, w) ((mhz * 1000000 * w) / (1024 * 1024))
#define BW_OPP_ENTRY(mhz, w) opp-mhz {opp-hz = /bits/ 64 <MHZ_TO_MBPS(mhz, w)>;}
/ {
model = "Qualcomm Technologies, Inc. QCS405";
compatible = "qcom,qcs405";
qcom,msm-id = <352 0x0>, <452 0x0>;
interrupt-parent = <&wakegic>;
chosen {
bootargs = "rcupdate.rcu_expedited=1 rcu_nocbs=0-7";
};
reserved_mem: reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
removed_region0: removed_region@85900000 {
compatible = "removed-dma-pool";
no-map;
reg = <0x0 0x85900000 0x0 0x600000>;
};
smem_region: smem@85f00000 {
no-map;
reg = <0x0 0x85f00000 0x0 0x200000>;
};
removed_region1: removed_region@86100000 {
compatible = "removed-dma-pool";
no-map;
reg = <0x0 0x86100000 0x0 0x300000>;
};
wlan_fw_mem: wlan_fw_mem@86400000 {
compatible = "removed-dma-pool";
no-map;
reg = <0x0 0x86400000 0x0 0x1000000>;
};
adsp_fw_mem: adsp_fw_mem@87400000 {
compatible = "removed-dma-pool";
no-map;
reg = <0x0 0x87400000 0x0 0x1400000>;
};
cdsp_fw_mem: cdsp_fw_mem@88800000 {
compatible = "removed-dma-pool";
no-map;
reg = <0x0 0x88800000 0x0 0x800000>;
};
wlan_msa_mem: wlan_msa_region@88E00000 {
compatible = "removed-dma-pool";
no-map;
reg = <0x0 0x89000000 0x0 0x100000>;
};
secure_mem: secure_region {
status = "disabled";
compatible = "shared-dma-pool";
reusable;
alignment = <0 0x400000>;
size = <0 0x7000000>;
};
mdf_mem: mdf_region {
compatible = "shared-dma-pool";
alloc-ranges = <0 0x00000000 0 0xffffffff>;
reusable;
alignment = <0 0x400000>;
size = <0 0x800000>;
};
qseecom_mem: qseecom_region {
compatible = "shared-dma-pool";
reusable;
alignment = <0 0x400000>;
size = <0 0x1000000>;
};
qseecom_ta_mem: qseecom_ta_region {
compatible = "shared-dma-pool";
reusable;
alignment = <0 0x400000>;
size = <0 0x400000>;
};
adsp_mem: adsp_region {
compatible = "shared-dma-pool";
reusable;
alignment = <0 0x400000>;
size = <0 0x800000>;
};
dump_mem: mem_dump_region {
compatible = "shared-dma-pool";
reusable;
size = <0 0x400000>;
};
/* global autoconfigured region for contiguous allocations */
linux,cma {
compatible = "shared-dma-pool";
alloc-ranges = <0 0x00000000 0 0xffffffff>;
reusable;
alignment = <0 0x400000>;
size = <0 0x1000000>;
linux,cma-default;
};
};
aliases {
sdhc1 = &sdhc_1; /* SDC1 eMMC slot */
sdhc2 = &sdhc_2; /* SDC2 SD Card slot */
qpic_nand1 = &qnand_1;
pci-domain0 = &pcie0; /* PCIe0 domain */
};
soc: soc { };
};
#include "qcs405-pinctrl.dtsi"
#include "qcs405-blsp.dtsi"
#include "qcs405-cpu.dtsi"
#include "qcs405-ion.dtsi"
#include "qcs405-pm.dtsi"
#include "msm-arm-smmu-qcs405.dtsi"
#include "qcs405-gpu.dtsi"
#include "qcs405-mdss-pll.dtsi"
#include "qcs405-mdss.dtsi"
&i2c_5 { /* BLSP (NTAG) */
nq@55 {
status = "disabled";
compatible = "qcom,nq-ntag";
reg = <0x55>;
qcom,nq-ntagfd = <&tlmm 53 GPIO_ACTIVE_LOW>;
interrupt-parent = <&tlmm>;
interrupts = <53 0>;
interrupt-names = "ntag_fd";
pinctrl-names = "ntag_active", "ntag_suspend";
pinctrl-0 = <&ntag_int_active>;
pinctrl-1 = <&ntag_int_suspend>;
};
};
&soc {
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0 0 0xffffffff>;
compatible = "simple-bus";
intc: interrupt-controller@b000000 {
compatible = "qcom,msm-qgic2";
interrupt-controller;
interrupt-parent = <&intc>;
#interrupt-cells = <3>;
reg = <0x0b000000 0x1000>,
<0x0b002000 0x1000>;
};
wakegic: wake-gic {
compatible = "qcom,mpm-gic-qcs405", "qcom,mpm-gic";
interrupts = <GIC_SPI 171 IRQ_TYPE_EDGE_RISING>;
reg = <0x601b8 0x1000>,
<0xb011008 0x4>; /* MSM_APCS_GCC_BASE 4K */
reg-names = "vmpm", "ipc";
qcom,num-mpm-irqs = <96>;
interrupt-controller;
interrupt-parent = <&intc>;
#interrupt-cells = <3>;
};
wakegpio: wake-gpio {
compatible = "qcom,mpm-gpio-qcs405", "qcom,mpm-gpio";
interrupt-controller;
interrupt-parent = <&intc>;
#interrupt-cells = <2>;
};
timer {
compatible = "arm,armv8-timer";
interrupts = <1 2 0xff08>,
<1 3 0xff08>,
<1 4 0xff08>,
<1 1 0xff08>;
clock-frequency = <19200000>;
};
timer@b120000 {
#address-cells = <1>;
#size-cells = <1>;
ranges;
compatible = "arm,armv7-timer-mem";
reg = <0xb120000 0x1000>;
clock-frequency = <19200000>;
frame@b121000 {
frame-number = <0>;
interrupts = <0 8 0x4>,
<0 7 0x4>;
reg = <0xb121000 0x1000>,
<0xb122000 0x1000>;
};
frame@b123000 {
frame-number = <1>;
interrupts = <0 9 0x4>;
reg = <0xb123000 0x1000>;
status = "disabled";
};
frame@b124000 {
frame-number = <2>;
interrupts = <0 10 0x4>;
reg = <0xb124000 0x1000>;
status = "disabled";
};
frame@b125000 {
frame-number = <3>;
interrupts = <0 11 0x4>;
reg = <0xb125000 0x1000>;
status = "disabled";
};
frame@b126000 {
frame-number = <4>;
interrupts = <0 12 0x4>;
reg = <0xb126000 0x1000>;
status = "disabled";
};
frame@b127000 {
frame-number = <5>;
interrupts = <0 13 0x4>;
reg = <0xb127000 0x1000>;
status = "disabled";
};
frame@b128000 {
frame-number = <6>;
interrupts = <0 14 0x4>;
reg = <0xb128000 0x1000>;
status = "disabled";
};
};
clocks {
xo_board {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <19200000>;
clock-output-names = "xo_board";
};
};
restart@4ab000 {
compatible = "qcom,pshold";
reg = <0x4ab000 0x4>,
<0x193d100 0x4>;
reg-names = "pshold-base", "tcsr-boot-misc-detect";
};
qcom,msm-rtb {
compatible = "qcom,msm-rtb";
qcom,rtb-size = <0x100000>;
};
qcom,mpm2-sleep-counter@4a3000 {
compatible = "qcom,mpm2-sleep-counter";
reg = <0x4a3000 0x1000>;
clock-frequency = <32768>;
};
pdm_pwm0: pdm_pwm@600000 {
compatible = "qcom,pdm-pwm";
reg = <0x600000 0xc000>;
clocks = <&clock_gcc GCC_PDM_AHB_CLK>,
<&clock_gcc GCC_PWM0_XO512_CLK>;
clock-names = "pdm_ahb_clk", "pwm_core_clk";
#pwm-cells = <2>;
pwm@0{
frame-index = <0>;
frame-offset = <0x1000>;
};
pwm@1{
frame-index = <1>;
frame-offset = <0x2000>;
};
pwm@2{
frame-index = <2>;
frame-offset = <0x3000>;
};
pwm@3{
frame-index = <3>;
frame-offset = <0x4000>;
};
pwm@4{
frame-index = <4>;
frame-offset = <0x5000>;
};
pwm@5{
frame-index = <5>;
frame-offset = <0x6000>;
};
pwm@6{
frame-index = <6>;
frame-offset = <0x7000>;
};
pwm@7{
frame-index = <7>;
frame-offset = <0x8000>;
};
pwm@8{
frame-index = <8>;
frame-offset = <0x9000>;
};
pwm@9{
frame-index = <9>;
frame-offset = <0xA000>;
};
};
pdm_pwm1: pdm_pwm@614000 {
compatible = "qcom,pdm-pwm";
reg = <0x614000 0xc000>;
clocks = <&clock_gcc GCC_PDM_AHB_CLK>,
<&clock_gcc GCC_PWM1_XO512_CLK>;
clock-names = "pdm_ahb_clk", "pwm_core_clk";
#pwm-cells = <2>;
pwm@0{
frame-index = <0>;
frame-offset = <0x1000>;
};
pwm@1{
frame-index = <1>;
frame-offset = <0x2000>;
};
pwm@2{
frame-index = <2>;
frame-offset = <0x3000>;
};
pwm@3{
frame-index = <3>;
frame-offset = <0x4000>;
};
pwm@4{
frame-index = <4>;
frame-offset = <0x5000>;
};
pwm@5{
frame-index = <5>;
frame-offset = <0x6000>;
};
pwm@6{
frame-index = <6>;
frame-offset = <0x7000>;
};
pwm@7{
frame-index = <7>;
frame-offset = <0x8000>;
};
pwm@8{
frame-index = <8>;
frame-offset = <0x9000>;
};
pwm@9{
frame-index = <9>;
frame-offset = <0xA000>;
};
};
pdm_pwm2: pdm_pwm@628000 {
compatible = "qcom,pdm-pwm";
reg = <0x628000 0xc000>;
clocks = <&clock_gcc GCC_PDM_AHB_CLK>,
<&clock_gcc GCC_PWM2_XO512_CLK>;
clock-names = "pdm_ahb_clk", "pwm_core_clk";
#pwm-cells = <2>;
pwm@0{
frame-index = <0>;
frame-offset = <0x1000>;
};
pwm@1{
frame-index = <1>;
frame-offset = <0x2000>;
};
pwm@2{
frame-index = <2>;
frame-offset = <0x3000>;
};
pwm@3{
frame-index = <3>;
frame-offset = <0x4000>;
};
pwm@4{
frame-index = <4>;
frame-offset = <0x5000>;
};
pwm@5{
frame-index = <5>;
frame-offset = <0x6000>;
};
pwm@6{
frame-index = <6>;
frame-offset = <0x7000>;
};
pwm@7{
frame-index = <7>;
frame-offset = <0x8000>;
};
pwm@8{
frame-index = <8>;
frame-offset = <0x9000>;
};
pwm@9{
frame-index = <9>;
frame-offset = <0xA000>;
};
};
clock_rpmcc: qcom,rpmcc {
compatible = "qcom,rpmcc-qcs405";
#clock-cells = <1>;
};
clock_gcc: qcom,gcc {
compatible = "qcom,gcc-qcs405", "syscon";
reg = <0x1800000 0x80000>;
reg-names = "cc_base";
vdd_cx-supply = <&pms405_s1_level>;
vdd_sr_pll-supply = <&pms405_l3>;
clocks = <&clock_rpmcc RPM_SMD_XO_CLK_SRC>;
qcom,gcc_oxili_gfx3d_clk-opp-handle = <&msm_gpu>;
clock-names = "cxo";
#clock-cells = <1>;
#reset-cells = <1>;
};
clock_cmn_blk_pll: qcom,cmn_blk_pll@2f780 {
compatible = "qcom,cmn_blk_pll";
reg = <0x2f780 0x4>;
reg-names = "cmn_blk";
clocks = <&clock_gcc GCC_BIAS_PLL_MISC_RESET_CLK>,
<&clock_gcc GCC_BIAS_PLL_AHB_CLK>,
<&clock_gcc GCC_BIAS_PLL_AON_CLK>;
clock-names = "misc_reset_clk", "ahb_clk", "aon_clk";
resets = <&clock_gcc GCC_BIAS_PLL_BCR>;
reset-names = "cmn_blk_pll_reset";
#clock-cells = <1>;
};
clock_gcc_mdss: qcom,gcc-mdss@1800000 {
compatible = "qcom,gcc-mdss-qcs405";
reg = <0x1800000 0x80000>;
clocks = <&mdss_dsi0_pll PCLK_SRC_0_CLK>,
<&mdss_dsi0_pll BYTECLK_SRC_0_CLK>;
clock-names = "pclk0_src", "byte0_src";
#clock-cells = <1>;
};
clock_debugcc: qcom,cc-debug {
compatible = "qcom,debugcc-qcs405";
qcom,gcc = <&clock_gcc>;
qcom,cpucc = <&cpucc_debug>;
clocks = <&clock_rpmcc RPM_SMD_XO_CLK_SRC>;
clock-names = "xo_clk_src";
#clock-cells = <1>;
};
cpucc_debug: syscon@0b01101c {
compatible = "syscon";
reg = <0xb01101c 0x4>;
};
clock_cpu: qcom,clock-cpu@0b011050 {
compatible = "qcom,cpu-qcs405";
clocks = <&clock_rpmcc RPM_SMD_XO_A_CLK_SRC>,
<&clock_gcc GPLL0_AO_OUT_MAIN>;
clock-names = "xo_ao", "gpll0_ao" ;
reg = <0x0b011050 0x8>,
<0xb016000 0x34>;
reg-names = "apcs_cmd" , "apcs_pll";
cpu-vdd-supply = <&apc_vreg_corner>;
vdd_dig_ao-supply = <&pms405_s1_level_ao>;
vdd_hf_pll-supply = <&pms405_l5_ao>;
qcom,speed0-bin-v0 =
< 0 0>,
< 1094400000 1>,
< 1248000000 2>,
< 1401600000 3>;
#clock-cells = <1>;
};
cpu-pmu {
compatible = "arm,armv8-pmuv3";
interrupts = <1 7 0xff00>;
};
qcom,sps {
compatible = "qcom,msm-sps-4k";
qcom,pipe-attr-ee;
};
slim_aud: slim@c1c0000 {
cell-index = <1>;
compatible = "qcom,slim-ngd";
reg = <0xc1c0000 0x2c000>,
<0xc184000 0x2a000>;
reg-names = "slimbus_physical", "slimbus_bam_physical";
interrupts = <0 163 0>, <0 180 0>;
interrupt-names = "slimbus_irq", "slimbus_bam_irq";
qcom,apps-ch-pipes = <0x7c0000>;
qcom,ea-pc = <0x2e0>;
status = "disabled";
};
slim_qca: slim@c240000 {
cell-index = <3>;
compatible = "qcom,slim-ngd";
reg = <0xc240000 0x2c000>,
<0xc204000 0x20000>;
reg-names = "slimbus_physical", "slimbus_bam_physical";
interrupts = <0 191 0>, <0 63 0>;
interrupt-names = "slimbus_irq", "slimbus_bam_irq";
status = "ok";
/* Slimbus Slave DT for WCN3990 */
btfmslim_codec: wcn3990 {
compatible = "qcom,btfmslim_slave";
elemental-addr = [00 01 20 02 17 02];
qcom,btfm-slim-ifd = "btfmslim_slave_ifd";
qcom,btfm-slim-ifd-elemental-addr = [00 00 20 02 17 02];
};
};
blsp1_uart2_console: serial@78b1000 {
compatible = "qcom,msm-uartdm", "qcom,msm-uartdm-v1.4";
reg = <0x78b1000 0x200>;
interrupts = <0 118 0>;
clocks = <&clock_gcc GCC_BLSP1_UART2_APPS_CLK>,
<&clock_gcc GCC_BLSP1_AHB_CLK>;
clock-names = "core", "iface";
pinctrl-names = "active", "sleep";
pinctrl-0 = <&blsp_uart_tx_a2_active
&blsp_uart_rx_a2_active>;
pinctrl-1 = <&blsp_uart_tx_rx_a2_sleep>;
status = "okay";
};
dcc: dcc_v2@b2000 {
compatible = "qcom,dcc-v2";
reg = <0x000b2000 0x1000>,
<0x000bfc00 0x400>;
reg-names = "dcc-base", "dcc-ram-base";
dcc-ram-offset = <0x400>;
qcom,curr-link-list = <1>;
};
rpm_bus: qcom,rpm-smd {
compatible = "qcom,rpm-smd";
rpm-channel-name = "rpm_requests";
interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
rpm-channel-type = <15>; /* SMD_APPS_RPM */
};
spmi_bus: qcom,spmi@200f000 {
compatible = "qcom,spmi-pmic-arb";
reg = <0x200f000 0x1000>,
<0x2400000 0x800000>,
<0x2c00000 0x800000>,
<0x3800000 0x200000>,
<0x200a000 0x2100>;
reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
interrupt-names = "periph_irq";
interrupts = <GIC_SPI 190 IRQ_TYPE_NONE>;
qcom,ee = <0>;
qcom,channel = <0>;
#address-cells = <1>;
#size-cells = <1>;
interrupt-controller;
#interrupt-cells = <4>;
cell-index = <0>;
};
qcom,wdt@b017000 {
compatible = "qcom,msm-watchdog";
reg = <0xb017000 0x1000>;
reg-names = "wdt-base";
interrupts = <0 3 0>, <0 4 0>;
qcom,bark-time = <11000>;
qcom,pet-time = <9744>;
qcom,ipi-ping;
qcom,wakeup-enable;
status = "okay";
};
qcom,chd {
compatible = "qcom,core-hang-detect";
label = "gold";
qcom,threshold-arr = <0xb088094 0xb098094 0xb0a8094
0xb0b8094>;
qcom,config-arr = <0xb08809c 0xb09809c 0xb0a809c
0xb0b809c>;
staus = "disabled";
};
qcom,msm-imem@8600000 {
compatible = "qcom,msm-imem";
reg = <0x08600000 0x1000>; /* Address and size of IMEM */
ranges = <0x0 0x08600000 0x1000>;
#address-cells = <1>;
#size-cells = <1>;
mem_dump_table@10 {
compatible = "qcom,msm-imem-mem_dump_table";
reg = <0x10 8>;
};
dload_type@18 {
compatible = "qcom,msm-imem-dload-type";
reg = <0x18 4>;
};
restart_reason@65c {
compatible = "qcom,msm-imem-restart_reason";
reg = <0x65c 4>;
};
boot_stats@6b0 {
compatible = "qcom,msm-imem-boot_stats";
reg = <0x6b0 32>;
};
pil@94c {
compatible = "qcom,msm-imem-pil";
reg = <0x94c 200>;
};
diag_dload@c8 {
compatible = "qcom,msm-imem-diag-dload";
reg = <0xc8 200>;
};
kaslr_offset@6d0 {
compatible = "qcom,msm-imem-kaslr_offset";
reg = <0x6d0 12>;
};
};
qcom,lpass@c000000 {
compatible = "qcom,pil-tz-generic";
reg = <0xc000000 0x00100>;
vdd_cx-supply = <&pms405_s2_level>;
qcom,proxy-reg-names = "vdd_cx";
qcom,vdd_cx-uV-uA = <RPM_SMD_REGULATOR_LEVEL_TURBO 100000>;
clocks = <&clock_rpmcc CXO_SMD_PIL_LPASS_CLK>;
clock-names = "xo";
qcom,proxy-clock-names = "xo";
qcom,pas-id = <1>;
qcom,mas-crypto = <&mas_crypto>;
qcom,complete-ramdump;
qcom,proxy-timeout-ms = <10000>;
qcom,smem-id = <423>;
qcom,sysmon-id = <1>;
qcom,ssctl-instance-id = <0x14>;
qcom,firmware-name = "adsp";
/* GPIO inputs from lpass */
interrupts-extended = <&intc 0 293 1>,
<&adsp_smp2p_in 0 0>,
<&adsp_smp2p_in 2 0>,
<&adsp_smp2p_in 1 0>,
<&adsp_smp2p_in 3 0>;
interrupt-names = "qcom,wdog",
"qcom,err-fatal",
"qcom,proxy-unvote",
"qcom,err-ready",
"qcom,stop-ack";
/* GPIO output to lpass */
qcom,smem-states = <&adsp_smp2p_out 0>;
qcom,smem-state-names = "qcom,force-stop";
memory-region = <&adsp_fw_mem>;
};
qcom,turing@800000 {
compatible = "qcom,pil-tz-generic";
reg = <0x800000 0x00100>;
vdd_cx-supply = <&pms405_s1_level>;
qcom,proxy-reg-names = "vdd_cx";
qcom,vdd_cx-uV-uA = <RPM_SMD_REGULATOR_LEVEL_TURBO 100000>;
clocks = <&clock_rpmcc CXO_SMD_PIL_CDSP_CLK>;
clock-names = "xo";
qcom,proxy-clock-names = "xo";
qcom,pas-id = <18>;
qcom,mas-crypto = <&mas_crypto>;
qcom,complete-ramdump;
qcom,proxy-timeout-ms = <10000>;
qcom,smem-id = <601>;
qcom,sysmon-id = <7>;
qcom,ssctl-instance-id = <0x17>;
qcom,firmware-name = "cdsp";
/* GPIO inputs from turing */
interrupts-extended = <&intc 0 229 1>,
<&cdsp_smp2p_in 0 0>,
<&cdsp_smp2p_in 2 0>,
<&cdsp_smp2p_in 1 0>,
<&cdsp_smp2p_in 3 0>;
interrupt-names = "qcom,wdog",
"qcom,err-fatal",
"qcom,proxy-unvote",
"qcom,err-ready",
"qcom,stop-ack";
/* GPIO output to turing */
qcom,smem-states = <&cdsp_smp2p_out 0>;
qcom,smem-state-names = "qcom,force-stop";
memory-region = <&cdsp_fw_mem>;
};
qcom,wlan_dsp@7000000 {
compatible = "qcom,pil-tz-generic";
reg = <0x07000000 0x580000>;
vdd_cx-supply = <&pms405_s1_level>;
qcom,proxy-reg-names = "vdd_cx";
qcom,vdd_cx-uV-uA = <RPM_SMD_REGULATOR_LEVEL_TURBO 100000>;
clocks = <&clock_rpmcc CXO_SMD_PIL_PRONTO_CLK>;
clock-names = "xo";
qcom,proxy-clock-names = "xo";
qcom,pas-id = <6>;
qcom,mas-crypto = <&mas_crypto>;
qcom,proxy-timeout-ms = <10000>;
qcom,smem-id = <421>;
qcom,sysmon-id = <0>;
qcom,ssctl-instance-id = <0x12>;
qcom,firmware-name = "wcnss";
/* GPIO inputs from wcnss */
interrupts-extended = <&intc 0 153 1>,
<&modem_smp2p_in 0 0>,
<&modem_smp2p_in 2 0>,
<&modem_smp2p_in 1 0>,
<&modem_smp2p_in 3 0>,
<&modem_smp2p_in 7 0>;
interrupt-names = "qcom,wdog",
"qcom,err-fatal",
"qcom,proxy-unvote",
"qcom,err-ready",
"qcom,stop-ack",
"qcom,shutdown-ack";
/* GPIO output to wcnss */
qcom,smem-states = <&modem_smp2p_out 0>;
qcom,smem-state-names = "qcom,force-stop";
memory-region = <&wlan_fw_mem>;
};
tsens0: tsens@4a8000 {
compatible = "qcom,qcs405-tsens";
reg = <0x4a8000 0x1000>,
<0x4a9000 0x1000>,
<0xa4000 0x1000>;
reg-names = "tsens_srot_physical",
"tsens_tm_physical",
"tsens_eeprom_physical";
interrupts = <0 184 0>;
interrupt-names = "tsens-upper-lower";
#thermal-sensor-cells = <1>;
};
tcsr_mutex_block: syscon@1905000 {
compatible = "syscon";
reg = <0x1905000 0x20000>;
};
tcsr_mutex: hwlock {
compatible = "qcom,tcsr-mutex";
syscon = <&tcsr_mutex_block 0 0x1000>;
#hwlock-cells = <1>;
};
smem: qcom,smem {
compatible = "qcom,smem";
memory-region = <&smem_region>;
hwlocks = <&tcsr_mutex 3>;
};
rpm_msg_ram: memory@60000 {
compatible = "qcom,rpm-msg-ram";
reg = <0x60000 0x6000>;
};
apcs: syscon@b011008 {
compatible = "syscon";
reg = <0xb011008 0x4>;
};
apcs_glb: mailbox@b011000 {
compatible = "qcom,msm8916-apcs-kpss-global";
reg = <0xb011000 0x1000>;
#mbox-cells = <1>;
};
qcom,msm-adsprpc-mem {
compatible = "qcom,msm-adsprpc-mem-region";
memory-region = <&adsp_mem>;
};
smp2p_sleepstate: qcom,smp2p_sleepstate {
compatible = "qcom,smp2p-sleepstate";
qcom,smem-states = <&sleepstate_smp2p_out 0>;
};
qcom,msm_fastrpc {
compatible = "qcom,msm-fastrpc-compute";
qcom,rpc-latency-us = <611>;
qcom,fastrpc-adsp-audio-pdr;
qcom,fastrpc-adsp-sensors-pdr;
qcom,fastrpc-legacy-remote-heap;
qcom,msm_fastrpc_compute_cb1 {
compatible = "qcom,msm-fastrpc-compute-cb";
label = "cdsprpc-smd";
iommus = <&apps_smmu 0x1001 0x0>;
};
qcom,msm_fastrpc_compute_cb2 {
compatible = "qcom,msm-fastrpc-compute-cb";
label = "cdsprpc-smd";
iommus = <&apps_smmu 0x1002 0x0>;
};
qcom,msm_fastrpc_compute_cb3 {
compatible = "qcom,msm-fastrpc-compute-cb";
label = "cdsprpc-smd";
iommus = <&apps_smmu 0x1003 0x0>;
};
qcom,msm_fastrpc_compute_cb4 {
compatible = "qcom,msm-fastrpc-compute-cb";
label = "cdsprpc-smd";
iommus = <&apps_smmu 0x1004 0x0>;
};
qcom,msm_fastrpc_compute_cb5 {
compatible = "qcom,msm-fastrpc-compute-cb";
label = "cdsprpc-smd";
iommus = <&apps_smmu 0x1005 0x0>;
};
qcom,msm_fastrpc_compute_cb6 {
compatible = "qcom,msm-fastrpc-compute-cb";
label = "adsprpc-smd";
iommus = <&apps_smmu 0x804 0x0>;
};
qcom,msm_fastrpc_compute_cb7 {
compatible = "qcom,msm-fastrpc-compute-cb";
label = "adsprpc-smd";
iommus = <&apps_smmu 0x805 0x0>;
};
qcom,msm_fastrpc_compute_cb8 {
compatible = "qcom,msm-fastrpc-compute-cb";
label = "adsprpc-smd";
iommus = <&apps_smmu 0x806 0x0>;
shared-cb = <5>;
};
};
qcom,msm-mdf-mem {
compatible = "qcom,msm-mdf-mem-region";
qcom,msm-mdf-mem-data-size = <0x800000>;
memory-region = <&mdf_mem>;
};
qcom,msm-mdf {
compatible = "qcom,msm-mdf";
qcom,msm_mdf_cb1 {
compatible = "qcom,msm-mdf-cb";
label = "adsp";
qcom,smmu-enabled;
iommus = <&apps_smmu 0x0800 0x0>;
qcom,smmu-sid-mask = /bits/ 64 <0xf>;
};
qcom,msm_mdf_cb2 {
compatible = "qcom,msm-mdf-cb";
label = "dsps";
};
qcom,msm_mdf_cb3 {
compatible = "qcom,msm-mdf-cb";
label = "modem";
};
qcom,msm_mdf_cb4 {
compatible = "qcom,msm-mdf-cb";
label = "cdsp";
};
};
rpm-glink {
compatible = "qcom,glink-rpm";
interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
qcom,rpm-msg-ram = <&rpm_msg_ram>;
mboxes = <&apcs_glb 0>;
qcom,rpm_glink_ssr {
qcom,glink-channels = "glink_ssr";
qcom,notify-edges = <&glink_adsp>,
<&glink_cdsp>,
<&glink_wcnss>;
};
};
qcom,msm-cdsp-loader {
compatible = "qcom,cdsp-loader";
qcom,proc-img-to-load = "cdsp";
};
qcom,eth_dev_qrtr {
compatible = "qcom,qrtr-ethernet-dev";
qcom,low-latency;
};
qcom,glink {
compatible = "qcom,glink";
#address-cells = <1>;
#size-cells = <1>;
ranges;
glink_wcnss: wcnss {
qcom,remote-pid = <1>;
transport = "smem";
mboxes = <&apcs_glb 16>;
mbox-names = "wcnss_smem";
interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
label = "wcnss";
qcom,glink-label = "mpss";
qcom,wcnss_qrtr {
qcom,glink-channels = "IPCRTR";
qcom,intents = <0x800 5
0x2000 3
0x4400 2>;
};
qcom,msm_fastrpc_rpmsg {
compatible = "qcom,msm-fastrpc-rpmsg";
qcom,glink-channels = "fastrpcglink-apps-dsp";
qcom,intents = <0x64 64>;
};
qcom,wcnss_glink_ssr {
qcom,glink-channels = "glink_ssr";
qcom,notify-edges = <&glink_adsp>,
<&glink_cdsp>;
};
};
glink_adsp: adsp {
qcom,remote-pid = <2>;
transport = "smem";
mboxes = <&apcs_glb 8>;
mbox-names = "adsp_smem";
interrupts = <GIC_SPI 289 IRQ_TYPE_EDGE_RISING>;
label = "adsp";
qcom,glink-label = "lpass";
qcom,adsp_qrtr {
qcom,glink-channels = "IPCRTR";
qcom,intents = <0x800 5
0x2000 3
0x4400 2>;
};
qcom,apr_tal_rpmsg {
qcom,glink-channels = "apr_audio_svc";
qcom,intents = <0x200 20>;
};
qcom,msm_fastrpc_rpmsg {
compatible = "qcom,msm-fastrpc-rpmsg";
qcom,glink-channels = "fastrpcglink-apps-dsp";
qcom,intents = <0x64 64>;
};
qcom,adsp_glink_ssr {
qcom,glink-channels = "glink_ssr";
qcom,notify-edges = <&glink_wcnss>,
<&glink_cdsp>;
};
};
glink_cdsp: cdsp {
qcom,remote-pid = <5>;
transport = "smem";
mboxes = <&apcs_glb 12>;
mbox-names = "cdsp_smem";
interrupts = <GIC_SPI 141 IRQ_TYPE_EDGE_RISING>;
label = "cdsp";
qcom,glink-label = "cdsp";
qcom,cdsp_qrtr {
qcom,glink-channels = "IPCRTR";
qcom,intents = <0x800 5
0x2000 3
0x4400 2>;
};
qcom,msm_fastrpc_rpmsg {
compatible = "qcom,msm-fastrpc-rpmsg";
qcom,glink-channels = "fastrpcglink-apps-dsp";
qcom,intents = <0x64 64>;
};
qcom,cdsp_glink_ssr {
qcom,glink-channels = "glink_ssr";
qcom,notify-edges = <&glink_wcnss>,
<&glink_adsp>;
};
};
};
qcom,glinkpkt {
compatible = "qcom,glinkpkt";
qcom,glinkpkt-at-mdm0 {
qcom,glinkpkt-edge = "mpss";
qcom,glinkpkt-ch-name = "DS";
qcom,glinkpkt-dev-name = "at_mdm0";
};
qcom,glinkpkt-apr-apps2 {
qcom,glinkpkt-edge = "adsp";
qcom,glinkpkt-ch-name = "apr_apps2";
qcom,glinkpkt-dev-name = "apr_apps2";
};
qcom,glinkpkt-data40-cntl {
qcom,glinkpkt-edge = "mpss";
qcom,glinkpkt-ch-name = "DATA40_CNTL";
qcom,glinkpkt-dev-name = "smdcntl8";
};
qcom,glinkpkt-data1 {
qcom,glinkpkt-edge = "mpss";
qcom,glinkpkt-ch-name = "DATA1";
qcom,glinkpkt-dev-name = "smd7";
};
qcom,glinkpkt-data4 {
qcom,glinkpkt-edge = "mpss";
qcom,glinkpkt-ch-name = "DATA4";
qcom,glinkpkt-dev-name = "smd8";
};
qcom,glinkpkt-data11 {
qcom,glinkpkt-edge = "mpss";
qcom,glinkpkt-ch-name = "DATA11";
qcom,glinkpkt-dev-name = "smd11";
};
};
qcom,smp2p-modem {
compatible = "qcom,smp2p";
qcom,smem = <435>, <428>;
interrupts = <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
qcom,ipc = <&apcs 0 18>;
qcom,local-pid = <0>;
qcom,remote-pid = <1>;
modem_smp2p_out: master-kernel {
qcom,entry-name = "master-kernel";
#qcom,smem-state-cells = <1>;
};
modem_smp2p_in: slave-kernel {
qcom,entry-name = "slave-kernel";
interrupt-controller;
#interrupt-cells = <2>;
};
};
qcom,smp2p-adsp {
compatible = "qcom,smp2p";
qcom,smem = <443>, <429>;
interrupts = <GIC_SPI 291 IRQ_TYPE_EDGE_RISING>;
qcom,ipc = <&apcs 0 10>;
qcom,local-pid = <0>;
qcom,remote-pid = <2>;
adsp_smp2p_out: master-kernel {
qcom,entry-name = "master-kernel";
#qcom,smem-state-cells = <1>;
};
adsp_smp2p_in: slave-kernel {
qcom,entry-name = "slave-kernel";
interrupt-controller;
#interrupt-cells = <2>;
};
sleepstate_smp2p_out: sleepstate-out {
qcom,entry-name = "sleepstate";
#qcom,smem-state-cells = <1>;
};
};
qcom,smp2p-cdsp {
compatible = "qcom,smp2p";
qcom,smem = <94>, <432>;
interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;
qcom,ipc = <&apcs 0 14>;
qcom,local-pid = <0>;
qcom,remote-pid = <5>;
cdsp_smp2p_out: master-kernel {
qcom,entry-name = "master-kernel";
#qcom,smem-state-cells = <1>;
};
cdsp_smp2p_in: slave-kernel {
qcom,entry-name = "slave-kernel";
interrupt-controller;
#interrupt-cells = <2>;
};
};
qcom_crypto: qcrypto@720000 {
compatible = "qcom,qcrypto";
reg = <0x720000 0x20000>,
<0x704000 0x20000>;
reg-names = "crypto-base","crypto-bam-base";
interrupts = <0 206 0>;
qcom,bam-pipe-pair = <2>;
qcom,ce-hw-instance = <0>;
qcom,ce-device = <0>;
qcom,bam-ee = <0>;
qcom,ce-hw-shared;
qcom,clk-mgmt-sus-res;
qcom,msm-bus,name = "qcrypto-noc";
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<55 512 0 0>,
<55 512 393600 393600>;
clock-names =
"core_clk_src", "core_clk",
"iface_clk", "bus_clk";
clocks =
<&clock_rpmcc QCRYPTO_CE1_CLK>,
<&clock_rpmcc QCRYPTO_CE1_CLK>,
<&clock_rpmcc QCRYPTO_CE1_CLK>,
<&clock_rpmcc QCRYPTO_CE1_CLK>;
qcom,use-sw-aes-cbc-ecb-ctr-algo;
qcom,use-sw-aes-xts-algo;
qcom,use-sw-aes-ccm-algo;
qcom,use-sw-ahash-algo;
qcom,use-sw-hmac-algo;
qcom,use-sw-aead-algo;
qcom,smmu-s1-enable;
iommus = <&apps_smmu 0x0064 0x0011>,
<&apps_smmu 0x0074 0x0011>;
};
qcom_cedev: qcedev@720000 {
compatible = "qcom,qcedev";
reg = <0x720000 0x20000>,
<0x704000 0x20000>;
reg-names = "crypto-base","crypto-bam-base";
interrupts = <0 206 0>;
qcom,ce-device = <0>;
qcom,bam-ee = <0>;
qcom,ce-hw-shared;
qcom,clk-mgmt-sus-res;
qcom,bam-pipe-pair = <3>;
qcom,ce-hw-instance = <0>;
qcom,msm-bus,name = "qcedev-noc";
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<55 512 0 0>,
<55 512 393600 393600>;
clock-names =
"core_clk_src", "core_clk",
"iface_clk", "bus_clk";
clocks =
<&clock_rpmcc QCEDEV_CE1_CLK>,
<&clock_rpmcc QCEDEV_CE1_CLK>,
<&clock_rpmcc QCEDEV_CE1_CLK>,
<&clock_rpmcc QCEDEV_CE1_CLK>;
qcom,smmu-s1-enable;
iommus = <&apps_smmu 0x0066 0x0011>,
<&apps_smmu 0x0076 0x0011>;
};
qcom_tzlog: tz-log@8600720 {
compatible = "qcom,tz-log";
reg = <0x08600720 0x2000>;
};
thermal_zones: thermal-zones {};
mem_dump {
compatible = "qcom,mem-dump";
memory-region = <&dump_mem>;
rpm_sw_dump {
qcom,dump-size = <0x28000>;
qcom,dump-id = <0xea>;
};
pmic_dump {
qcom,dump-size = <0x10000>;
qcom,dump-id = <0xe4>;
};
misc_data_dump {
qcom,dump-size = <0x1000>;
qcom,dump-id = <0xe8>;
};
vsense_dump {
qcom,dump-size = <0x10000>;
qcom,dump-id = <0xe9>;
};
tmc_etf_dump {
qcom,dump-size = <0x10000>;
qcom,dump-id = <0xf0>;
};
tmc_etr_reg_dump {
qcom,dump-size = <0x1000>;
qcom,dump-id = <0x100>;
};
tmc_etf_reg_dump {
qcom,dump-size = <0x1000>;
qcom,dump-id = <0x101>;
};
};
qcom_seecom: qseecom@85900000 {
compatible = "qcom,qseecom";
reg = <0x85900000 0x500000>;
reg-names = "secapp-region";
qcom,hlos-num-ce-hw-instances = <1>;
qcom,hlos-ce-hw-instance = <0>;
qcom,qsee-ce-hw-instance = <0>;
qcom,disk-encrypt-pipe-pair = <2>;
qcom,support-fde;
qcom,fde-key-size;
qcom,no-clock-support;
qcom,appsbl-qseecom-support;
qcom,msm-bus,name = "qseecom-noc";
qcom,msm-bus,num-cases = <4>;
qcom,msm-bus,num-paths = <1>;
qcom,ce-opp-freq = <171430000>;
qcom,qsee-reentrancy-support = <2>;
};
qcom_smcinvoke: smcinvoke@85900000 {
compatible = "qcom,smcinvoke";
reg = <0x85900000 0x500000>;
reg-names = "secapp-region";
};
qcom_rng: qrng@e3000 {
compatible = "qcom,msm-rng";
reg = <0xe3000 0x1000>;
qcom,msm-rng-iface-clk;
qcom,no-qrng-config;
qcom,msm-bus,name = "msm-rng-noc";
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<1 618 0 0>, /* No vote */
<1 618 0 800>; /* 100 MB/s */
clocks = <&clock_gcc GCC_PRNG_AHB_CLK>;
clock-names = "iface_clk";
};
sdcc1_ice: sdcc1ice@7808000 {
compatible = "qcom,ice";
reg = <0x7808000 0x8000>;
qcom,enable-ice-clk;
clock-names = "ice_core_clk_src", "ice_core_clk",
"bus_clk", "iface_clk";
clocks = <&clock_gcc SDCC1_ICE_CORE_CLK_SRC>,
<&clock_gcc GCC_SDCC1_ICE_CORE_CLK>,
<&clock_gcc GCC_SDCC1_AHB_CLK>,
<&clock_gcc GCC_SDCC1_APPS_CLK>;
qcom,op-freq-hz = <266666667>, <0>, <0>, <0>;
qcom,msm-bus,name = "sdcc_ice_noc";
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<1 757 0 0>, /* No vote */
<1 757 1000 0>; /* Max. bandwidth */
qcom,bus-vector-names = "MIN",
"MAX";
qcom,instance-type = "sdcc";
};
sdhc_1: sdhci@7804000 {
compatible = "qcom,sdhci-msm-v5";
reg = <0x7804000 0x1000>, <0x7805000 0x1000>;
reg-names = "hc_mem", "cmdq_mem";
interrupts = <0 123 0>, <0 138 0>;
interrupt-names = "hc_irq", "pwr_irq";
sdhc-msm-crypto = <&sdcc1_ice>;
qcom,bus-width = <8>;
qcom,large-address-bus;
qcom,pm-qos-irq-type = "affine_irq";
qcom,pm-qos-irq-latency = <13 651>;
qcom,pm-qos-cpu-groups = <0x0f>;
qcom,pm-qos-cmdq-latency-us = <13 651>;
qcom,pm-qos-legacy-latency-us = <13 651>;
qcom,msm-bus,name = "sdhc1";
qcom,msm-bus,num-cases = <9>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps = <78 512 0 0>, /* No vote */
<78 512 1046 3200>, /* 400 KB/s*/
<78 512 52286 160000>, /* 20 MB/s */
<78 512 65360 200000>, /* 25 MB/s */
<78 512 130718 400000>, /* 50 MB/s */
<78 512 130718 400000>, /* 100 MB/s */
<78 512 261438 800000>, /* 200 MB/s */
<78 512 261438 800000>, /* 400 MB/s */
<78 512 1338562 4096000>; /* Max. bandwidth */
qcom,bus-bw-vectors-bps = <0 400000 20000000 25000000
50000000 100000000 200000000 400000000 4294967295>;
qcom,clk-rates = <400000 20000000 25000000 50000000 100000000
192000000 384000000>;
qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v";
qcom,devfreq,freq-table = <50000000 200000000>;
clocks = <&clock_gcc GCC_SDCC1_AHB_CLK>,
<&clock_gcc GCC_SDCC1_APPS_CLK>,
<&clock_gcc GCC_SDCC1_ICE_CORE_CLK>;
clock-names = "iface_clk", "core_clk", "ice_core_clk";
qcom,ice-clk-rates = <266666667 160000000>;
qcom,nonremovable;
/* VDD external regulator is enabled/disabled by pms405_l6 */
vdd-io-supply = <&pms405_l6>;
qcom,vdd-io-always-on;
qcom,vdd-io-lpm-sup;
qcom,vdd-io-voltage-level = <1800000 1800000>;
qcom,vdd-io-current-level = <0 325000>;
pinctrl-names = "active", "sleep";
pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on
&sdc1_rclk_on>;
pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off
&sdc1_rclk_off>;
status = "ok";
};
sdhc_2: sdhci@7844000 {
compatible = "qcom,sdhci-msm-v5";
reg = <0x7844000 0x1000>;
reg-names = "hc_mem";
interrupts = <0 125 0>, <0 221 0>;
interrupt-names = "hc_irq", "pwr_irq";
qcom,bus-width = <4>;
qcom,large-address-bus;
qcom,restore-after-cx-collapse;
qcom,pm-qos-irq-type = "affine_irq";
qcom,pm-qos-irq-latency = <13 651>;
qcom,pm-qos-cpu-groups = <0x0f>;
qcom,pm-qos-legacy-latency-us = <13 651>;
qcom,msm-bus,name = "sdhc2";
qcom,msm-bus,num-cases = <8>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps = <81 512 0 0>, /* No vote */
<81 512 1046 3200>, /* 400 KB/s*/
<81 512 52286 160000>, /* 20 MB/s */
<81 512 65360 200000>, /* 25 MB/s */
<81 512 130718 400000>, /* 50 MB/s */
<81 512 261438 800000>, /* 100 MB/s */
<81 512 261438 800000>, /* 200 MB/s */
<81 512 1338562 4096000>; /* Max. bandwidth */
qcom,bus-bw-vectors-bps = <0 400000 20000000 25000000 50000000
100000000 200000000 4294967295>;
qcom,clk-rates = <400000 20000000 25000000
50000000 100000000 200000000>;
qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50",
"SDR104";
qcom,devfreq,freq-table = <50000000 200000000>;
clocks = <&clock_gcc GCC_SDCC2_AHB_CLK>,
<&clock_gcc GCC_SDCC2_APPS_CLK>;
clock-names = "iface_clk", "core_clk";
qcom,nonhotplug;
/* VDD is an external regulator eLDO5 */
vdd-io-supply = <&pms405_l11>;
qcom,vdd-io-voltage-level = <1800000 2950000>;
qcom,vdd-io-current-level = <0 24200>;
pinctrl-names = "active", "sleep";
pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on>;
pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>;
status = "ok";
};
qnand_1: nand@4c0000 {
compatible = "qcom,msm-nand";
reg = <0x004c0000 0x1000>,
<0x004c4000 0x1a000>;
reg-names = "nand_phys",
"bam_phys";
qcom,reg-adjustment-offset = <0x4000>;
interrupts = <0 49 0>;
interrupt-names = "bam_irq";
qcom,msm-bus,name = "qpic_nand";
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<91 512 0 0>,
/* Voting for max b/w on PNOC bus for now */
<91 512 400000 400000>;
clock-names = "core_clk";
clocks = <&clock_rpmcc RPM_SMD_QPIC_CLK>;
status = "disabled";
};
msm_cpufreq: qcom,msm-cpufreq {
compatible = "qcom,msm-cpufreq";
clock-names = "cpu0_clk";
clocks = <&clock_cpu APCS_MUX_CLK>;
qcom,cpufreq-table =
< 1094400 >,
< 1248000 >,
< 1401600 >;
};
ddr_bw_opp_table: ddr-bw-opp-table {
compatible = "operating-points-v2";
BW_OPP_ENTRY( 297, 8); /* 2265 MB/s */
BW_OPP_ENTRY( 595, 8); /* 4539 MB/s */
BW_OPP_ENTRY( 710, 8); /* 5416 MB/s */
};
cpubw: qcom,cpubw {
compatible = "qcom,devbw";
governor = "performance";
qcom,src-dst-ports = <1 512>;
qcom,active-only;
operating-points-v2 = <&ddr_bw_opp_table>;
};
qcom,cpu-bwmon {
compatible = "qcom,bimc-bwmon2";
reg = <0x408000 0x300>, <0x401000 0x200>;
reg-names = "base", "global_base";
interrupts = <0 183 4>;
qcom,mport = <0>;
qcom,target-dev = <&cpubw>;
};
cpu0_cpu_ddr_latfloor: qcom,cpu0-cpu-ddr-latfloor {
compatible = "qcom,devbw";
governor = "performance";
qcom,src-dst-ports = <1 512>;
qcom,active-only;
operating-points-v2 = <&ddr_bw_opp_table>;
};
cpu0_computemon: qcom,cpu0-computemon {
compatible = "qcom,arm-cpu-mon";
qcom,cpulist = <&CPU0 &CPU1 &CPU2 &CPU3>;
qcom,target-dev = <&cpu0_cpu_ddr_latfloor>;
qcom,core-dev-table =
< 1094400 MHZ_TO_MBPS( 297, 8) >,
< 1248000 MHZ_TO_MBPS( 597, 8) >,
< 1401600 MHZ_TO_MBPS( 710, 8) >;
};
mtl_rx_setup: rx-queues-config {
snps,rx-queues-to-use = <4>;
snps,rx-sched-sp;
queue0 {
snps,dcb-algorithm;
snps,map-to-dma-channel = <0x0>;
snps,route-up;
snps,priority = <0x1>;
};
queue1 {
snps,dcb-algorithm;
snps,map-to-dma-channel = <0x1>;
snps,route-ptp;
};
queue2 {
snps,avb-algorithm;
snps,map-to-dma-channel = <0x2>;
snps,route-avcp;
};
queue3 {
snps,avb-algorithm;
snps,map-to-dma-channel = <0x3>;
snps,priority = <0xC>;
};
};
mtl_tx_setup: tx-queues-config {
snps,tx-queues-to-use = <4>;
snps,tx-sched-sp;
queue0 {
snps,dcb-algorithm;
};
queue1 {
snps,dcb-algorithm;
};
queue2 {
snps,avb-algorithm;
snps,send_slope = <0x1000>;
snps,idle_slope = <0x1000>;
snps,high_credit = <0x3E800>;
snps,low_credit = <0xFFC18000>;
};
queue3 {
snps,avb-algorithm;
snps,send_slope = <0x1000>;
snps,idle_slope = <0x1000>;
snps,high_credit = <0x3E800>;
snps,low_credit = <0xFFC18000>;
};
};
ethqos_hw: qcom,ethernet@07A80000 {
compatible = "qcom,stmmac-ethqos";
reg = <0x07A80000 0x10000>,
<0x7A96000 0x100>;
qcom,arm-smmu;
reg-names = "stmmaceth", "rgmii";
dma-bit-mask = <32>;
emac-core-version = <0x20030000>;
interrupts-extended = <&wakegic 0 56 4>, <&wakegic 0 55 4>,
<&tlmm 61 2>, <&wakegic 0 300 4>,
<&wakegic 0 301 4>, <&wakegic 0 302 4>,
<&wakegic 0 303 4>, <&wakegic 0 304 4>,
<&wakegic 0 305 4>, <&wakegic 0 306 4>,
<&wakegic 0 307 4>, <&wakegic 0 308 4>;
interrupt-names = "macirq", "eth_lpi",
"phy-intr", "tx-ch0-intr",
"tx-ch1-intr", "tx-ch2-intr",
"tx-ch3-intr", "tx-ch4-intr",
"rx-ch0-intr", "rx-ch1-intr",
"rx-ch2-intr", "rx-ch3-intr";
qcom,msm-bus,name = "emac";
qcom,msm-bus,num-cases = <4>;
qcom,msm-bus,num-paths = <2>;
qcom,msm-bus,vectors-KBps =
<98 512 0 0>, <1 781 0 0>, /* No vote */
<98 512 2500 0>, <1 781 0 40000>, /* 10Mbps vote */
<98 512 25000 0>, <1 781 0 40000>, /* 100Mbps vote */
<98 512 250000 0>, <1 781 0 40000>; /* 1000Mbps vote */
qcom,bus-vector-names = "0", "10", "100", "1000";
snps,tso;
snps,pbl = <32>;
clocks = <&clock_gcc GCC_ETH_AXI_CLK>,
<&clock_gcc GCC_ETH_SLAVE_AHB_CLK>,
<&clock_gcc GCC_ETH_PTP_CLK>,
<&clock_gcc GCC_ETH_RGMII_CLK>;
clock-names = "stmmaceth", "pclk", "ptp_ref", "rgmii";
snps,ptp-ref-clk-rate = <230400000>;
snps,ptp-req-clk-rate = <57600000>;
snps,reset-gpio = <&tlmm 60 GPIO_ACTIVE_HIGH>;
qcom,phy-intr-redirect = <&tlmm 61 GPIO_ACTIVE_LOW>;
/*gdsc_emac-supply = <&emac_gdsc>;*/
rx-fifo-depth = <16384>;
tx-fifo-depth = <20480>;
snps,mtl-rx-config = <&mtl_rx_setup>;
snps,mtl-tx-config = <&mtl_tx_setup>;
pinctrl-names = "dev-emac-mdc", "dev-emac-mdio",
"dev-emac-rgmii_txd0_state", "dev-emac-rgmii_txd1_state",
"dev-emac-rgmii_txd2_state", "dev-emac-rgmii_txd3_state",
"dev-emac-rgmii_txc_state", "dev-emac-rgmii_tx_ctl_state",
"dev-emac-rgmii_rxd0_state", "dev-emac-rgmii_rxd1_state",
"dev-emac-rgmii_rxd2_state", "dev-emac-rgmii_rxd3_state",
"dev-emac-rgmii_rxc_state", "dev-emac-rgmii_rx_ctl_state",
"dev-emac-phy_intr";
pinctrl-0 = <&emac_mdc>;
pinctrl-1 = <&emac_mdio>;
pinctrl-2 = <&emac_rgmii_txd0>;
pinctrl-3 = <&emac_rgmii_txd1>;
pinctrl-4 = <&emac_rgmii_txd2>;
pinctrl-5 = <&emac_rgmii_txd3>;
pinctrl-6 = <&emac_rgmii_txc>;
pinctrl-7 = <&emac_rgmii_tx_ctl>;
pinctrl-8 = <&emac_rgmii_rxd0>;
pinctrl-9 = <&emac_rgmii_rxd1>;
pinctrl-10 = <&emac_rgmii_rxd2>;
pinctrl-11 = <&emac_rgmii_rxd3>;
pinctrl-12 = <&emac_rgmii_rxc>;
pinctrl-13 = <&emac_rgmii_rx_ctl>;
pinctrl-14 = <&emac_phy_intr>;
snps,reset-active-low;
snps,reset-delays-us = <0 10000 100000>;
phy-mode = "rgmii";
io-macro-info {
io-macro-bypass-mode = <0>;
io-interface = "rgmii";
};
ethqos_emb_smmu: ethqos_emb_smmu {
compatible = "qcom,emac-smmu-embedded";
iommus = <&apps_smmu 0x1400 0x0>;
qcom,iova-mapping = <0x80000000 0x40000000>;
qcom,smmu-geometry;
};
};
emac_hw: qcom,emac@07A80000 {
compatible = "qcom,emac-dwc-eqos";
reg = <0x07A80000 0x10000>,
<0x7A96000 0x100>;
reg-names = "emac-base", "rgmii-base";
dma-bit-mask = <32>;
emac-core-version = <6>;
interrupts-extended = <&wakegic 0 56 4>, <&wakegic 0 55 4>,
<&tlmm 61 2>, <&wakegic 0 300 4>,
<&wakegic 0 301 4>, <&wakegic 0 302 4>,
<&wakegic 0 303 4>, <&wakegic 0 304 4>,
<&wakegic 0 305 4>, <&wakegic 0 306 4>,
<&wakegic 0 307 4>, <&wakegic 0 308 4>;
interrupt-names = "sbd-intr", "lpi-intr",
"phy-intr", "tx-ch0-intr",
"tx-ch1-intr", "tx-ch2-intr",
"tx-ch3-intr", "tx-ch4-intr",
"rx-ch0-intr", "rx-ch1-intr",
"rx-ch2-intr", "rx-ch3-intr";
qcom,msm-bus,name = "emac";
qcom,msm-bus,num-cases = <4>;
qcom,msm-bus,num-paths = <2>;
qcom,msm-bus,vectors-KBps =
<98 512 0 0>, <1 781 0 0>, /* No vote */
<98 512 2500 0>, <1 781 0 40000>, /* 10Mbps vote */
<98 512 25000 0>, <1 781 0 40000>, /* 100Mbps vote */
<98 512 250000 0>, <1 781 0 40000>; /* 1000Mbps vote */
qcom,bus-vector-names = "0", "10", "100", "1000";
clocks = <&clock_gcc GCC_ETH_AXI_CLK>,
<&clock_gcc GCC_ETH_PTP_CLK>,
<&clock_gcc GCC_ETH_RGMII_CLK>,
<&clock_gcc GCC_ETH_SLAVE_AHB_CLK>;
clock-names = "eth_axi_clk", "eth_ptp_clk",
"eth_rgmii_clk", "eth_slave_ahb_clk";
qcom,phy-reset = <&tlmm 60 GPIO_ACTIVE_HIGH>;
qcom,phy-intr-redirect = <&tlmm 61 GPIO_ACTIVE_LOW>;
/*gdsc_emac-supply = <&emac_gdsc>;*/
pinctrl-names = "dev-emac-mdc", "dev-emac-mdio",
"dev-emac-rgmii_txd0_state", "dev-emac-rgmii_txd1_state",
"dev-emac-rgmii_txd2_state", "dev-emac-rgmii_txd3_state",
"dev-emac-rgmii_txc_state", "dev-emac-rgmii_tx_ctl_state",
"dev-emac-rgmii_rxd0_state", "dev-emac-rgmii_rxd1_state",
"dev-emac-rgmii_rxd2_state", "dev-emac-rgmii_rxd3_state",
"dev-emac-rgmii_rxc_state", "dev-emac-rgmii_rx_ctl_state",
"dev-emac-phy_intr";
pinctrl-0 = <&emac_mdc>;
pinctrl-1 = <&emac_mdio>;
pinctrl-2 = <&emac_rgmii_txd0>;
pinctrl-3 = <&emac_rgmii_txd1>;
pinctrl-4 = <&emac_rgmii_txd2>;
pinctrl-5 = <&emac_rgmii_txd3>;
pinctrl-6 = <&emac_rgmii_txc>;
pinctrl-7 = <&emac_rgmii_tx_ctl>;
pinctrl-8 = <&emac_rgmii_rxd0>;
pinctrl-9 = <&emac_rgmii_rxd1>;
pinctrl-10 = <&emac_rgmii_rxd2>;
pinctrl-11 = <&emac_rgmii_rxd3>;
pinctrl-12 = <&emac_rgmii_rxc>;
pinctrl-13 = <&emac_rgmii_rx_ctl>;
pinctrl-14 = <&emac_phy_intr>;
io-macro-info {
io-macro-bypass-mode = <0>;
io-interface = "rgmii";
};
};
bluetooth: bt_wcn3990 {
compatible = "qca,wcn3990";
qca,bt-vdd-xtal-supply = <&pms405_l5>;
qca,bt-vdd-io-supply = <&pms405_l6>;
qca,bt-vdd-ldo-supply = <&pms405_l1>;
qca,bt-vdd-xtal-voltage-level = <1800000 1900000>;
qca,bt-vdd-io-voltage-level = <1800000 1900000>;
qca,bt-vdd-ldo-voltage-level = <1300000 1350000>;
qca,bt-vdd-xtal-current-level = <80000>;
qca,bt-vdd-io-current-level = <10000>;
qca,bt-vdd-ldo-current-level = <300000>;
};
qcom,icnss@18800000 {
compatible = "qcom,icnss";
reg = <0x0A000000 0x800000>,
<0xa0000000 0x10000000>,
<0xb0000000 0x10000>;
reg-names = "membase", "smmu_iova_base", "smmu_iova_ipa";
iommus = <&apps_smmu 0x400 0x1>;
interrupts = <0 277 0 /* CE0 */ >,
<0 278 0 /* CE1 */ >,
<0 279 0 /* CE2 */ >,
<0 280 0 /* CE3 */ >,
<0 281 0 /* CE4 */ >,
<0 282 0 /* CE5 */ >,
<0 283 0 /* CE6 */ >,
<0 284 0 /* CE7 */ >,
<0 285 0 /* CE8 */ >,
<0 286 0 /* CE9 */ >,
<0 287 0 /* CE10 */ >,
<0 288 0 /* CE11 */ >;
qcom,wlan-msa-memory = <0x100000>;
qcom,wlan-msa-fixed-region = <&wlan_msa_mem>;
vdd-cx-mx-supply = <&pms405_l2>;
vdd-1.8-xo-supply = <&pms405_l5>;
vdd-1.3-rfa-supply = <&pms405_l1>;
qcom,vdd-cx-mx-config = <1224000 1224000>;
qcom,smmu-s1-bypass;
qcom,hyp_disabled;
};
cnss_sdio: qcom,cnss_sdio {
compatible = "qcom,cnss_sdio";
subsys-name = "AR6320";
/**
* There is no vdd-wlan on board and this is not for DSRC.
* IO and XTAL share the same vreg.
**/
vdd-wlan-io-supply = <&pms405_l5>;
qcom,cap-tsf-gpio = <&tlmm 53 1>;
qcom,wlan-ramdump-dynamic = <0x200000>;
qcom,msm-bus,name = "msm-cnss";
qcom,msm-bus,num-cases = <4>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<79 512 0 0>, /* No vote */
<79 512 6250 200000>, /* 50 Mbps */
<79 512 25000 200000>, /* 200 Mbps */
<79 512 2048000 4096000>; /* MAX */
};
};
#include "qcs405-gdsc.dtsi"
#include "pms405.dtsi"
#include "pms405-rpm-regulator.dtsi"
#include "qcs405-regulator.dtsi"
#include "qcs405-thermal.dtsi"
#include "qcs405-bus.dtsi"
#include "qcs405-audio.dtsi"
&gdsc_mdss {
status = "ok";
};
&gdsc_oxili_gx {
status = "ok";
};
&blsp1_uart4_hs {
status = "ok";
};
#include "qcs405-coresight.dtsi"
#include "qcs405-usb.dtsi"
#include "qcs405-pcie.dtsi"
&i2c_5 {
smb1351_otg_supply: smb1351-charger@55 {
status = "disabled";
compatible = "qcom,smb1351-charger";
reg = <0x55>;
interrupt-parent = <&tlmm>;
interrupts = <107 IRQ_TYPE_LEVEL_LOW>;
qcom,float-voltage-mv = <4350>;
qcom,charging-timeout = <1536>;
qcom,recharge-thresh-mv = <200>;
qcom,iterm-ma = <100>;
regulator-name = "smb1351_otg_supply";
pinctrl-names = "default";
pinctrl-0 = <&smb_stat>;
qcom,switch-freq = <2>;
dpdm-supply = <&usb2_phy0>;
qcom,otg-enable;
};
usb_typec: usb_typec@3d {
compatible = "nxp,5150a";
reg = <0x3d>;
interrupt-parent = <&tlmm>;
interrupts = <35 IRQ_TYPE_LEVEL_LOW>;
pintctrl-names = "default";
pinctrl-0 = <&nxp_i2c_intr>;
status = "disabled";
};
};
&pms405_gpios {
usb3_vbus_boost {
usb3_vbus_boost_default: usb3_vbus_boost_default {
pins = "gpio3";
function = "normal";
output-low;
power-source = <1>;
};
};
usb3_vbus_det {
usb3_vbus_det_default: usb3_vbus_det_default {
pins = "gpio12";
function = "normal";
input-enable;
bias-pull-down;
power-source = <1>;
};
};
};
&soc {
usb3_extcon: usb3_extcon {
compatible = "linux,extcon-usb-gpio";
id-gpio = <&tlmm 116 GPIO_ACTIVE_HIGH>;
vbus-gpio = <&pms405_gpios 12 GPIO_ACTIVE_HIGH>;
vbus-out-gpio = <&pms405_gpios 3 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&usb3_vbus_det_default
&usb3_id_det_default
&usb3_vbus_boost_default>;
};
};
&usb3 {
extcon = <&usb3_extcon>;
};
&soc {
gpio_keys {
compatible = "gpio-keys";
label = "gpio-keys";
input-name = "gpio-keys";
pinctrl-names = "default";
pinctrl-0 = <&tlmm_gpio_key_active>;
vol_mute {
label = "vol_mute";
gpios = <&tlmm 21 GPIO_ACTIVE_LOW>;
linux,input-type = <1>;
linux,code = <KEY_MUTE>;
debounce-interval = <15>;
gpio-key,wakeup;
linux,can-disable;
};
vol_down {
label = "vol_down";
gpios = <&tlmm 54 GPIO_ACTIVE_LOW>;
linux,input-type = <1>;
linux,code = <KEY_VOLUMEDOWN>;
debounce-interval = <15>;
gpio-key,wakeup;
linux,can-disable;
};
vol_up {
label = "vol_up";
gpios = <&tlmm 52 GPIO_ACTIVE_LOW>;
linux,input-type = <1>;
linux,code = <KEY_VOLUMEUP>;
debounce-interval = <15>;
gpio-key,wakeup;
linux,can-disable;
};
home {
label = "action";
gpios = <&tlmm 115 GPIO_ACTIVE_LOW>;
linux,input-type = <1>;
linux,code = <KEY_HOME>;
debounce-interval = <15>;
gpio-key,wakeup;
linux,can-disable;
};
};
};