Skip to content

Instantly share code, notes, and snippets.

@kimocoder
Created July 28, 2025 17:50
Show Gist options
  • Save kimocoder/02a48c73f5669d2cfd641d350cdd1817 to your computer and use it in GitHub Desktop.
Save kimocoder/02a48c73f5669d2cfd641d350cdd1817 to your computer and use it in GitHub Desktop.
ipq5018.dtsi
// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
/*
* IPQ5018 SoC device tree source
*
* Copyright (c) 2023-2025 The Linux Foundation. All rights reserved.
*/
#include <dt-bindings/clock/qcom,apss-ipq.h>
#include <dt-bindings/clock/qcom,gcc-ipq5018.h>
#include <dt-bindings/clock/qcom,ipq5018-cmn-pll.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/reset/qcom,gcc-ipq5018.h>
#include <dt-bindings/thermal/thermal.h>
/ {
interrupt-parent = <&intc>;
#address-cells = <2>;
#size-cells = <2>;
clocks {
cmn_pll_ref_clk: cmn-pll-ref-clk {
compatible = "fixed-clock";
clock-frequency = <96000000>;
#clock-cells = <0>;
};
gephy_rx_clk: gephy-rx-clk {
compatible = "fixed-clock";
clock-frequency = <125000000>;
#clock-cells = <0>;
};
gephy_tx_clk: gephy-tx-clk {
compatible = "fixed-clock";
clock-frequency = <125000000>;
#clock-cells = <0>;
};
ref_96mhz_clk: ref-96mhz-clk {
compatible = "fixed-factor-clock";
clocks = <&xo_clk>;
#clock-cells = <0>;
clock-div = <1>;
clock-mult = <2>;
};
sleep_clk: sleep-clk {
compatible = "fixed-clock";
#clock-cells = <0>;
};
xo_board_clk: xo-board-clk {
compatible = "fixed-factor-clock";
clocks = <&ref_96mhz_clk>;
#clock-cells = <0>;
};
xo_clk: xo-clk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <48000000>;
};
};
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>;
clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
operating-points-v2 = <&cpu_opp_table>;
#cooling-cells = <2>;
};
cpu1: cpu@1 {
device_type = "cpu";
compatible = "arm,cortex-a53";
reg = <0x1>;
enable-method = "psci";
next-level-cache = <&l2_0>;
clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
operating-points-v2 = <&cpu_opp_table>;
#cooling-cells = <2>;
};
l2_0: l2-cache {
compatible = "cache";
cache-level = <2>;
cache-size = <0x80000>;
cache-unified;
};
};
cpu_opp_table: opp-table-cpu {
compatible = "operating-points-v2";
opp-shared;
opp-800000000 {
opp-hz = /bits/ 64 <800000000>;
opp-microvolt = <1100000>;
clock-latency-ns = <200000>;
};
opp-1008000000 {
opp-hz = /bits/ 64 <1008000000>;
opp-microvolt = <1100000>;
clock-latency-ns = <200000>;
};
};
firmware {
scm {
compatible = "qcom,scm-ipq5018", "qcom,scm";
qcom,dload-mode = <&tcsr 0x6100>;
qcom,sdi-enabled;
};
};
memory@40000000 {
device_type = "memory";
/* We expect the bootloader to fill in the size */
reg = <0x0 0x40000000 0x0 0x0>;
};
pmu {
compatible = "arm,cortex-a53-pmu";
interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
};
psci {
compatible = "arm,psci-1.0";
method = "smc";
};
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
tz_apps@4a400000 {
reg = <0x0 0x4a400000 0x0 0x400000>;
no-map;
};
bootloader_region: bootloader@4a800000 {
reg = <0x0 0x4a800000 0x0 0x200000>;
no-map;
};
sbl@4aa00000 {
reg = <0x0 0x4aa00000 0x0 0x100000>;
no-map;
};
smem@4ab00000 {
compatible = "qcom,smem";
reg = <0x0 0x4ab00000 0x0 0x100000>;
no-map;
hwlocks = <&tcsr_mutex 3>;
};
tz_region: tz@4ac00000 {
reg = <0x0 0x4ac00000 0x0 0x200000>;
no-map;
};
};
soc: soc@0 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0 0 0xffffffff>;
usbphy0: phy@5b000 {
compatible = "qcom,ipq5018-usb-hsphy";
reg = <0x0005b000 0x120>;
clocks = <&gcc GCC_USB0_PHY_CFG_AHB_CLK>;
resets = <&gcc GCC_QUSB2_0_PHY_BCR>;
#phy-cells = <0>;
status = "disabled";
};
pcie1_phy: phy@7e000 {
compatible = "qcom,ipq5018-uniphy-pcie-phy";
reg = <0x0007e000 0x800>;
clocks = <&gcc GCC_PCIE1_PIPE_CLK>;
resets = <&gcc GCC_PCIE1_PHY_BCR>,
<&gcc GCC_PCIE1PHY_PHY_BCR>;
#clock-cells = <0>;
#phy-cells = <0>;
num-lanes = <1>;
status = "disabled";
};
pcie0_phy: phy@86000 {
compatible = "qcom,ipq5018-uniphy-pcie-phy";
reg = <0x00086000 0x1000>;
clocks = <&gcc GCC_PCIE0_PIPE_CLK>;
resets = <&gcc GCC_PCIE0_PHY_BCR>,
<&gcc GCC_PCIE0PHY_PHY_BCR>;
#clock-cells = <0>;
#phy-cells = <0>;
num-lanes = <2>;
status = "disabled";
};
mdio0: mdio@88000 {
compatible = "qcom,ipq5018-mdio", "qcom,ipq40xx-mdio";
reg = <0x00088000 0x64>,
<0x019475c4 0x4>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&gcc GCC_MDIO0_AHB_CLK>;
clock-names = "gcc_mdio_ahb_clk";
status = "disabled";
ge_phy: ethernet-phy@7 {
compatible = "ethernet-phy-id004d.d0c0";
reg = <7>;
resets = <&gcc GCC_GEPHY_MISC_ARES>;
};
};
mdio1: mdio@90000 {
compatible = "qcom,ipq5018-mdio";
reg = <0x00090000 0x64>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&gcc GCC_MDIO1_AHB_CLK>;
clock-names = "gcc_mdio_ahb_clk";
status = "disabled";
};
cmn_pll: clock-controller@9b000 {
compatible = "qcom,ipq5018-cmn-pll";
reg = <0x0009b000 0x800>;
clocks = <&ref_96mhz_clk>,
<&gcc GCC_CMN_BLK_AHB_CLK>,
<&gcc GCC_CMN_BLK_SYS_CLK>;
clock-names = "ref",
"ahb",
"sys";
#clock-cells = <1>;
assigned-clocks = <&cmn_pll IPQ5018_CMN_PLL_CLK>;
assigned-clock-rates-u64 = /bits/ 64 <9600000000>;
};
qfprom: qfprom@a0000 {
compatible = "qcom,ipq5018-qfprom", "qcom,qfprom";
reg = <0x000a0000 0x1000>;
#address-cells = <1>;
#size-cells = <1>;
tsens_mode: mode@249 {
reg = <0x249 0x1>;
bits = <0 3>;
};
tsens_base1: base1@249 {
reg = <0x249 0x2>;
bits = <3 8>;
};
tsens_base2: base2@24a {
reg = <0x24a 0x2>;
bits = <3 8>;
};
tsens_s0_p1: s0-p1@24b {
reg = <0x24b 0x2>;
bits = <2 6>;
};
tsens_s0_p2: s0-p2@24c {
reg = <0x24c 0x1>;
bits = <1 6>;
};
tsens_s1_p1: s1-p1@24c {
reg = <0x24c 0x2>;
bits = <7 6>;
};
tsens_s1_p2: s1-p2@24d {
reg = <0x24d 0x2>;
bits = <5 6>;
};
tsens_s2_p1: s2-p1@24e {
reg = <0x24e 0x2>;
bits = <3 6>;
};
tsens_s2_p2: s2-p2@24f {
reg = <0x24f 0x1>;
bits = <1 6>;
};
tsens_s3_p1: s3-p1@24f {
reg = <0x24f 0x2>;
bits = <7 6>;
};
tsens_s3_p2: s3-p2@250 {
reg = <0x250 0x2>;
bits = <5 6>;
};
tsens_s4_p1: s4-p1@251 {
reg = <0x251 0x2>;
bits = <3 6>;
};
tsens_s4_p2: s4-p2@254 {
reg = <0x254 0x1>;
bits = <0 6>;
};
};
prng: rng@e3000 {
compatible = "qcom,prng-ee";
reg = <0x000e3000 0x1000>;
clocks = <&gcc GCC_PRNG_AHB_CLK>;
clock-names = "core";
status = "disabled";
};
tsens: thermal-sensor@4a9000 {
compatible = "qcom,ipq5018-tsens";
reg = <0x004a9000 0x1000>,
<0x004a8000 0x1000>;
nvmem-cells = <&tsens_mode>,
<&tsens_base1>,
<&tsens_base2>,
<&tsens_s0_p1>,
<&tsens_s0_p2>,
<&tsens_s1_p1>,
<&tsens_s1_p2>,
<&tsens_s2_p1>,
<&tsens_s2_p2>,
<&tsens_s3_p1>,
<&tsens_s3_p2>,
<&tsens_s4_p1>,
<&tsens_s4_p2>;
nvmem-cell-names = "mode",
"base1",
"base2",
"s0_p1",
"s0_p2",
"s1_p1",
"s1_p2",
"s2_p1",
"s2_p2",
"s3_p1",
"s3_p2",
"s4_p1",
"s4_p2";
interrupts = <GIC_SPI 184 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "uplow";
#qcom,sensors = <5>;
#thermal-sensor-cells = <1>;
};
cryptobam: dma-controller@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;
status = "disabled";
};
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";
status = "disabled";
};
tlmm: pinctrl@1000000 {
compatible = "qcom,ipq5018-tlmm";
reg = <0x01000000 0x300000>;
interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
gpio-controller;
#gpio-cells = <2>;
gpio-ranges = <&tlmm 0 0 47>;
interrupt-controller;
#interrupt-cells = <2>;
uart1_pins: uart1-state {
pins = "gpio31", "gpio32", "gpio33", "gpio34";
function = "blsp1_uart1";
drive-strength = <8>;
bias-pull-down;
};
};
gcc: clock-controller@1800000 {
compatible = "qcom,gcc-ipq5018";
reg = <0x01800000 0x80000>;
clocks = <&xo_board_clk>,
<&sleep_clk>,
<&pcie0_phy>,
<&pcie1_phy>,
<0>,
<&gephy_rx_clk>,
<&gephy_tx_clk>,
<0>,
<0>;
#clock-cells = <1>;
#reset-cells = <1>;
};
tcsr_mutex: hwlock@1905000 {
compatible = "qcom,tcsr-mutex";
reg = <0x01905000 0x20000>;
#hwlock-cells = <1>;
};
tcsr: syscon@1937000 {
compatible = "qcom,tcsr-ipq5018", "syscon";
reg = <0x01937000 0x21000>;
};
pwm: pwm@1941010 {
compatible = "qcom,ipq5018-pwm", "qcom,ipq6018-pwm";
reg = <0x01941010 0x20>;
clocks = <&gcc GCC_ADSS_PWM_CLK>;
assigned-clocks = <&gcc GCC_ADSS_PWM_CLK>;
assigned-clock-rates = <100000000>;
#pwm-cells = <2>;
status = "disabled";
};
sdhc_1: mmc@7804000 {
compatible = "qcom,ipq5018-sdhci", "qcom,sdhci-msm-v5";
reg = <0x7804000 0x1000>;
reg-names = "hc";
interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "hc_irq", "pwr_irq";
clocks = <&gcc GCC_SDCC1_AHB_CLK>,
<&gcc GCC_SDCC1_APPS_CLK>,
<&xo_board_clk>;
clock-names = "iface", "core", "xo";
non-removable;
status = "disabled";
};
blsp_dma: dma-controller@7884000 {
compatible = "qcom,bam-v1.7.0";
reg = <0x07884000 0x1d000>;
interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gcc GCC_BLSP1_AHB_CLK>;
clock-names = "bam_clk";
#dma-cells = <1>;
qcom,ee = <0>;
};
blsp1_uart1: serial@78af000 {
compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
reg = <0x078af000 0x200>;
interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>,
<&gcc GCC_BLSP1_AHB_CLK>;
clock-names = "core", "iface";
status = "disabled";
};
blsp1_uart2: serial@78b0000 {
compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
reg = <0x078b0000 0x200>;
interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>,
<&gcc GCC_BLSP1_AHB_CLK>;
clock-names = "core", "iface";
status = "disabled";
};
blsp1_spi1: 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>;
clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
<&gcc GCC_BLSP1_AHB_CLK>;
clock-names = "core", "iface";
dmas = <&blsp_dma 4>, <&blsp_dma 5>;
dma-names = "tx", "rx";
status = "disabled";
};
blsp1_i2c3: i2c@78b7000 {
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_QUP3_I2C_APPS_CLK>,
<&gcc GCC_BLSP1_AHB_CLK>;
clock-names = "core", "iface";
clock-frequency = <400000>;
dmas = <&blsp_dma 9>, <&blsp_dma 8>;
dma-names = "tx", "rx";
status = "disabled";
};
qpic_bam: dma@7984000 {
compatible = "qcom,bam-v1.7.0";
reg = <0x07984000 0x1c000>;
interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gcc GCC_QPIC_AHB_CLK>;
clock-names = "bam_clk";
#dma-cells = <1>;
qcom,ee = <0>;
status = "disabled";
};
qpic_nand: qpic-nand@79b0000 {
compatible = "qcom,ipq5018-snand", "qcom,ipq9574-snand";
reg = <0x079b0000 0x10000>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&gcc GCC_QPIC_CLK>,
<&gcc GCC_QPIC_AHB_CLK>,
<&gcc GCC_QPIC_IO_MACRO_CLK>;
clock-names = "core", "aon", "iom";
dmas = <&qpic_bam 0>,
<&qpic_bam 1>,
<&qpic_bam 2>,
<&qpic_bam 3>;
dma-names = "tx", "rx", "cmd", "status";
status = "disabled";
};
sram@8600000 {
compatible = "qcom,ipq5018-imem", "syscon", "simple-mfd";
reg = <0x08600000 0x14000>;
ranges = <0 0x08600000 0x14000>;
#address-cells = <1>;
#size-cells = <1>;
};
usb: usb@8af8800 {
compatible = "qcom,ipq5018-dwc3", "qcom,dwc3";
reg = <0x08af8800 0x400>;
interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "hs_phy_irq";
clocks = <&gcc GCC_USB0_MASTER_CLK>,
<&gcc GCC_SYS_NOC_USB0_AXI_CLK>,
<&gcc GCC_USB0_SLEEP_CLK>,
<&gcc GCC_USB0_MOCK_UTMI_CLK>;
clock-names = "core",
"iface",
"sleep",
"mock_utmi";
resets = <&gcc GCC_USB0_BCR>;
qcom,select-utmi-as-pipe-clk;
#address-cells = <1>;
#size-cells = <1>;
ranges;
status = "disabled";
usb_dwc: usb@8a00000 {
compatible = "snps,dwc3";
reg = <0x08a00000 0xe000>;
clocks = <&gcc GCC_USB0_MOCK_UTMI_CLK>;
clock-names = "ref";
interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
phy-names = "usb2-phy";
phys = <&usbphy0>;
tx-fifo-resize;
snps,is-utmi-l1-suspend;
snps,hird-threshold = /bits/ 8 <0x0>;
snps,dis_u2_susphy_quirk;
snps,dis_u3_susphy_quirk;
};
};
intc: interrupt-controller@b000000 {
compatible = "qcom,msm-qgic2";
reg = <0x0b000000 0x1000>, /* GICD */
<0x0b002000 0x2000>, /* GICC */
<0x0b001000 0x1000>, /* GICH */
<0x0b004000 0x2000>; /* GICV */
interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
interrupt-controller;
#interrupt-cells = <3>;
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x0b00a000 0x1ffa>;
v2m0: v2m@0 {
compatible = "arm,gic-v2m-frame";
reg = <0x00000000 0xff8>;
msi-controller;
};
v2m1: v2m@1000 {
compatible = "arm,gic-v2m-frame";
reg = <0x00001000 0xff8>;
msi-controller;
};
};
watchdog: watchdog@b017000 {
compatible = "qcom,apss-wdt-ipq5018", "qcom,kpss-wdt";
reg = <0x0b017000 0x40>;
interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
clocks = <&sleep_clk>;
};
apcs_glb: mailbox@b111000 {
compatible = "qcom,ipq5018-apcs-apps-global",
"qcom,ipq6018-apcs-apps-global";
reg = <0x0b111000 0x1000>;
#clock-cells = <1>;
clocks = <&a53pll>, <&xo_board_clk>, <&gcc GPLL0>;
clock-names = "pll", "xo", "gpll0";
#mbox-cells = <1>;
};
a53pll: clock@b116000 {
compatible = "qcom,ipq5018-a53pll";
reg = <0x0b116000 0x40>;
#clock-cells = <0>;
clocks = <&xo_board_clk>;
clock-names = "xo";
};
timer@b120000 {
compatible = "arm,armv7-timer-mem";
reg = <0x0b120000 0x1000>;
#address-cells = <1>;
#size-cells = <1>;
ranges;
frame@b120000 {
reg = <0x0b121000 0x1000>,
<0x0b122000 0x1000>;
interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
frame-number = <0>;
};
frame@b123000 {
reg = <0xb123000 0x1000>;
interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
frame-number = <1>;
status = "disabled";
};
frame@b124000 {
frame-number = <2>;
interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
reg = <0x0b124000 0x1000>;
status = "disabled";
};
frame@b125000 {
reg = <0x0b125000 0x1000>;
interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
frame-number = <3>;
status = "disabled";
};
frame@b126000 {
reg = <0x0b126000 0x1000>;
interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
frame-number = <4>;
status = "disabled";
};
frame@b127000 {
reg = <0x0b127000 0x1000>;
interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
frame-number = <5>;
status = "disabled";
};
frame@b128000 {
reg = <0x0b128000 0x1000>;
interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
frame-number = <6>;
status = "disabled";
};
};
wifi0: wifi@c000000 {
compatible = "qcom,ipq5018-wifi";
reg = <0xc000000 0x1000000>;
interrupts = <GIC_SPI 288 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 289 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 290 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 291 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 292 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 293 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 294 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 295 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 296 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 297 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 298 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 299 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 300 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 301 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 302 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 303 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 304 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 305 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 306 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 307 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 308 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 309 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 310 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 311 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 312 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 313 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 314 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 315 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 316 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 317 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 318 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 319 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 320 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 321 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 322 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 323 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 324 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 325 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 326 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 327 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 328 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 329 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 330 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 331 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 332 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 333 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 334 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 335 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 336 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 337 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 338 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 339 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "misc-pulse1",
"misc-latch",
"sw-exception",
"watchdog",
"ce0",
"ce1",
"ce2",
"ce3",
"ce4",
"ce5",
"ce6",
"ce7",
"ce8",
"ce9",
"ce10",
"ce11",
"host2wbm-desc-feed",
"host2reo-re-injection",
"host2reo-command",
"host2rxdma-monitor-ring3",
"host2rxdma-monitor-ring2",
"host2rxdma-monitor-ring1",
"reo2ost-exception",
"wbm2host-rx-release",
"reo2host-status",
"reo2host-destination-ring4",
"reo2host-destination-ring3",
"reo2host-destination-ring2",
"reo2host-destination-ring1",
"rxdma2host-monitor-destination-mac3",
"rxdma2host-monitor-destination-mac2",
"rxdma2host-monitor-destination-mac1",
"ppdu-end-interrupts-mac3",
"ppdu-end-interrupts-mac2",
"ppdu-end-interrupts-mac1",
"rxdma2host-monitor-status-ring-mac3",
"rxdma2host-monitor-status-ring-mac2",
"rxdma2host-monitor-status-ring-mac1",
"host2rxdma-host-buf-ring-mac3",
"host2rxdma-host-buf-ring-mac2",
"host2rxdma-host-buf-ring-mac1",
"rxdma2host-destination-ring-mac3",
"rxdma2host-destination-ring-mac2",
"rxdma2host-destination-ring-mac1",
"host2tcl-input-ring4",
"host2tcl-input-ring3",
"host2tcl-input-ring2",
"host2tcl-input-ring1",
"wbm2host-tx-completions-ring3",
"wbm2host-tx-completions-ring2",
"wbm2host-tx-completions-ring1",
"tcl2host-status-ring";
status = "disabled";
};
//QCN6102 5G
wifi1: wifi1@c000000 {
reg = <0x0b00a040 0x0>;
compatible = "qcom,qcn6122-wifi";
interrupts = <GIC_SPI 416 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 417 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 418 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 419 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 420 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 421 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 422 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 423 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 424 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 425 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 426 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 427 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 428 IRQ_TYPE_EDGE_RISING>;
status = "disabled";
};
//QCN6122 5G/6G
wifi2: wifi2@c000000 {
reg = <0x0b00a040 0x0>;
compatible = "qcom,qcn6122-wifi";
interrupts = <GIC_SPI 448 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 449 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 450 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 451 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 452 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 453 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 454 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 455 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 456 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 457 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 458 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 459 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 460 IRQ_TYPE_EDGE_RISING>;
status = "disabled";
};
q6v5_wcss: remoteproc@cd00000 {
compatible = "qcom,ipq5018-q6-mpd";
reg = <0x0cd00000 0x4040>;
#address-cells = <1>;
#size-cells = <1>;
ranges;
clocks = <&gcc GCC_XO_CLK>,
<&gcc GCC_SLEEP_CLK_SRC>,
<&gcc GCC_SYS_NOC_WCSS_AHB_CLK>;
interrupts-extended = <&intc GIC_SPI 291 IRQ_TYPE_EDGE_RISING>,
<&wcss_smp2p_in 0 IRQ_TYPE_NONE>,
<&wcss_smp2p_in 1 IRQ_TYPE_NONE>,
<&wcss_smp2p_in 2 IRQ_TYPE_NONE>,
<&wcss_smp2p_in 3 IRQ_TYPE_NONE>;
interrupt-names = "wdog",
"fatal",
"ready",
"handover",
"stop-ack";
qcom,smem-states = <&wcss_smp2p_out 0>,
<&wcss_smp2p_out 1>;
qcom,smem-state-names = "shutdown",
"stop";
status = "disabled";
glink-edge {
interrupts = <GIC_SPI 179 IRQ_TYPE_EDGE_RISING>;
label = "rtr";
qcom,remote-pid = <1>;
mboxes = <&apcs_glb 8>;
qrtr_requests {
qcom,glink-channels = "IPCRTR";
};
};
};
wcss: smp2p-wcss {
compatible = "qcom,smp2p";
qcom,smem = <435>, <428>;
interrupt-parent = <&intc>;
interrupts = <GIC_SPI 177 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,smp2p-feature-ssr-ack;
#qcom,smem-state-cells = <1>;
};
wcss_smp2p_in: slave-kernel {
qcom,entry-name = "slave-kernel";
interrupt-controller;
#interrupt-cells = <2>;
};
};
pcie1: pcie@80000000 {
compatible = "qcom,pcie-ipq5018";
reg = <0x80000000 0xf1d>,
<0x80000f20 0xa8>,
<0x80001000 0x1000>,
<0x00078000 0x3000>,
<0x80100000 0x1000>,
<0x0007b000 0x1000>;
reg-names = "dbi",
"elbi",
"atu",
"parf",
"config",
"mhi";
device_type = "pci";
linux,pci-domain = <1>;
bus-range = <0x00 0xff>;
num-lanes = <1>;
#address-cells = <3>;
#size-cells = <2>;
/* The controller supports Gen3, but the connected PHY is Gen2-capable */
max-link-speed = <2>;
phys = <&pcie1_phy>;
phy-names ="pciephy";
ranges = <0x01000000 0 0x00000000 0x80200000 0 0x00100000>,
<0x02000000 0 0x80300000 0x80300000 0 0x10000000>;
msi-map = <0x0 &v2m0 0x0 0xff8>;
interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "msi0",
"msi1",
"msi2",
"msi3",
"msi4",
"msi5",
"msi6",
"msi7",
"global";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0x7>;
interrupt-map = <0 0 0 1 &intc 0 0 142 IRQ_TYPE_LEVEL_HIGH>,
<0 0 0 2 &intc 0 0 143 IRQ_TYPE_LEVEL_HIGH>,
<0 0 0 3 &intc 0 0 144 IRQ_TYPE_LEVEL_HIGH>,
<0 0 0 4 &intc 0 0 145 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gcc GCC_SYS_NOC_PCIE1_AXI_CLK>,
<&gcc GCC_PCIE1_AXI_M_CLK>,
<&gcc GCC_PCIE1_AXI_S_CLK>,
<&gcc GCC_PCIE1_AHB_CLK>,
<&gcc GCC_PCIE1_AUX_CLK>,
<&gcc GCC_PCIE1_AXI_S_BRIDGE_CLK>;
clock-names = "iface",
"axi_m",
"axi_s",
"ahb",
"aux",
"axi_bridge";
resets = <&gcc GCC_PCIE1_PIPE_ARES>,
<&gcc GCC_PCIE1_SLEEP_ARES>,
<&gcc GCC_PCIE1_CORE_STICKY_ARES>,
<&gcc GCC_PCIE1_AXI_MASTER_ARES>,
<&gcc GCC_PCIE1_AXI_SLAVE_ARES>,
<&gcc GCC_PCIE1_AHB_ARES>,
<&gcc GCC_PCIE1_AXI_MASTER_STICKY_ARES>,
<&gcc GCC_PCIE1_AXI_SLAVE_STICKY_ARES>;
reset-names = "pipe",
"sleep",
"sticky",
"axi_m",
"axi_s",
"ahb",
"axi_m_sticky",
"axi_s_sticky";
status = "disabled";
pcie@0 {
device_type = "pci";
reg = <0x0 0x0 0x0 0x0 0x0>;
bus-range = <0x01 0xff>;
#address-cells = <3>;
#size-cells = <2>;
ranges;
};
};
pcie0: pcie@a0000000 {
compatible = "qcom,pcie-ipq5018";
reg = <0xa0000000 0xf1d>,
<0xa0000f20 0xa8>,
<0xa0001000 0x1000>,
<0x00080000 0x3000>,
<0xa0100000 0x1000>,
<0x00083000 0x1000>;
reg-names = "dbi",
"elbi",
"atu",
"parf",
"config",
"mhi";
device_type = "pci";
linux,pci-domain = <0>;
bus-range = <0x00 0xff>;
num-lanes = <2>;
#address-cells = <3>;
#size-cells = <2>;
/* The controller supports Gen3, but the connected PHY is Gen2-capable */
max-link-speed = <2>;
phys = <&pcie0_phy>;
phy-names ="pciephy";
ranges = <0x01000000 0 0x00000000 0xa0200000 0 0x00100000>,
<0x02000000 0 0xa0300000 0xa0300000 0 0x10000000>;
msi-map = <0x0 &v2m0 0x0 0xff8>;
interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "msi0",
"msi1",
"msi2",
"msi3",
"msi4",
"msi5",
"msi6",
"msi7",
"global";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0x7>;
interrupt-map = <0 0 0 1 &intc 0 0 75 IRQ_TYPE_LEVEL_HIGH>,
<0 0 0 2 &intc 0 0 78 IRQ_TYPE_LEVEL_HIGH>,
<0 0 0 3 &intc 0 0 79 IRQ_TYPE_LEVEL_HIGH>,
<0 0 0 4 &intc 0 0 83 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>,
<&gcc GCC_PCIE0_AXI_M_CLK>,
<&gcc GCC_PCIE0_AXI_S_CLK>,
<&gcc GCC_PCIE0_AHB_CLK>,
<&gcc GCC_PCIE0_AUX_CLK>,
<&gcc GCC_PCIE0_AXI_S_BRIDGE_CLK>;
clock-names = "iface",
"axi_m",
"axi_s",
"ahb",
"aux",
"axi_bridge";
resets = <&gcc GCC_PCIE0_PIPE_ARES>,
<&gcc GCC_PCIE0_SLEEP_ARES>,
<&gcc GCC_PCIE0_CORE_STICKY_ARES>,
<&gcc GCC_PCIE0_AXI_MASTER_ARES>,
<&gcc GCC_PCIE0_AXI_SLAVE_ARES>,
<&gcc GCC_PCIE0_AHB_ARES>,
<&gcc GCC_PCIE0_AXI_MASTER_STICKY_ARES>,
<&gcc GCC_PCIE0_AXI_SLAVE_STICKY_ARES>;
reset-names = "pipe",
"sleep",
"sticky",
"axi_m",
"axi_s",
"ahb",
"axi_m_sticky",
"axi_s_sticky";
status = "disabled";
pcie@0 {
device_type = "pci";
reg = <0x0 0x0 0x0 0x0 0x0>;
bus-range = <0x01 0xff>;
#address-cells = <3>;
#size-cells = <2>;
ranges;
};
};
};
thermal-zones {
cpu-thermal {
thermal-sensors = <&tsens 2>;
trips {
cpu-critical {
temperature = <120000>;
hysteresis = <1000>;
type = "critical";
};
cpu_alert: cpu-passive {
temperature = <100000>;
hysteresis = <1000>;
type = "passive";
};
};
cooling-maps {
map0 {
trip = <&cpu_alert>;
cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
};
gephy-thermal {
thermal-sensors = <&tsens 4>;
trips {
gephy-critical {
temperature = <120000>;
hysteresis = <1000>;
type = "critical";
};
};
};
top-glue-thermal {
thermal-sensors = <&tsens 3>;
trips {
top-glue-critical {
temperature = <120000>;
hysteresis = <1000>;
type = "critical";
};
};
};
ubi32-thermal {
thermal-sensors = <&tsens 1>;
trips {
ubi32-critical {
temperature = <120000>;
hysteresis = <1000>;
type = "critical";
};
};
};
};
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)>;
};
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment