// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/mfd/qcom-rpm.h>
#include <dt-bindings/clock/qcom,rpmcc.h>
#include <dt-bindings/clock/qcom,gcc-ipq806x.h>
#include <dt-bindings/clock/qcom,lcc-ipq806x.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/reset/qcom,gcc-ipq806x.h>
#include <dt-bindings/soc/qcom,gsbi.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
/ {
#address-cells = <1>;
#size-cells = <1>;
model = "Qualcomm IPQ8064";
compatible = "qcom,ipq8064";
interrupt-parent = <&intc>;
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu0: cpu@0 {
compatible = "qcom,krait";
enable-method = "qcom,kpss-acc-v1";
device_type = "cpu";
reg = <0>;
next-level-cache = <&L2>;
qcom,acc = <&acc0>;
qcom,saw = <&saw0>;
};
cpu1: cpu@1 {
compatible = "qcom,krait";
enable-method = "qcom,kpss-acc-v1";
device_type = "cpu";
reg = <1>;
next-level-cache = <&L2>;
qcom,acc = <&acc1>;
qcom,saw = <&saw1>;
};
L2: l2-cache {
compatible = "cache";
cache-level = <2>;
cache-unified;
};
};
thermal-zones {
sensor0-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens 0>;
trips {
cpu-critical {
temperature = <105000>;
hysteresis = <2000>;
type = "critical";
};
cpu-hot {
temperature = <95000>;
hysteresis = <2000>;
type = "hot";
};
};
};
sensor1-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens 1>;
trips {
cpu-critical {
temperature = <105000>;
hysteresis = <2000>;
type = "critical";
};
cpu-hot {
temperature = <95000>;
hysteresis = <2000>;
type = "hot";
};
};
};
sensor2-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens 2>;
trips {
cpu-critical {
temperature = <105000>;
hysteresis = <2000>;
type = "critical";
};
cpu-hot {
temperature = <95000>;
hysteresis = <2000>;
type = "hot";
};
};
};
sensor3-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens 3>;
trips {
cpu-critical {
temperature = <105000>;
hysteresis = <2000>;
type = "critical";
};
cpu-hot {
temperature = <95000>;
hysteresis = <2000>;
type = "hot";
};
};
};
sensor4-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens 4>;
trips {
cpu-critical {
temperature = <105000>;
hysteresis = <2000>;
type = "critical";
};
cpu-hot {
temperature = <95000>;
hysteresis = <2000>;
type = "hot";
};
};
};
sensor5-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens 5>;
trips {
cpu-critical {
temperature = <105000>;
hysteresis = <2000>;
type = "critical";
};
cpu-hot {
temperature = <95000>;
hysteresis = <2000>;
type = "hot";
};
};
};
sensor6-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens 6>;
trips {
cpu-critical {
temperature = <105000>;
hysteresis = <2000>;
type = "critical";
};
cpu-hot {
temperature = <95000>;
hysteresis = <2000>;
type = "hot";
};
};
};
sensor7-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens 7>;
trips {
cpu-critical {
temperature = <105000>;
hysteresis = <2000>;
type = "critical";
};
cpu-hot {
temperature = <95000>;
hysteresis = <2000>;
type = "hot";
};
};
};
sensor8-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens 8>;
trips {
cpu-critical {
temperature = <105000>;
hysteresis = <2000>;
type = "critical";
};
cpu-hot {
temperature = <95000>;
hysteresis = <2000>;
type = "hot";
};
};
};
sensor9-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens 9>;
trips {
cpu-critical {
temperature = <105000>;
hysteresis = <2000>;
type = "critical";
};
cpu-hot {
temperature = <95000>;
hysteresis = <2000>;
type = "hot";
};
};
};
sensor10-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens 10>;
trips {
cpu-critical {
temperature = <105000>;
hysteresis = <2000>;
type = "critical";
};
cpu-hot {
temperature = <95000>;
hysteresis = <2000>;
type = "hot";
};
};
};
};
memory {
device_type = "memory";
reg = <0x0 0x0>;
};
cpu-pmu {
compatible = "qcom,krait-pmu";
interrupts = <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) |
IRQ_TYPE_LEVEL_HIGH)>;
};
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
ranges;
nss@40000000 {
reg = <0x40000000 0x1000000>;
no-map;
};
smem: smem@41000000 {
compatible = "qcom,smem";
reg = <0x41000000 0x200000>;
no-map;
hwlocks = <&sfpb_mutex 3>;
};
};
clocks {
cxo_board: cxo_board {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <25000000>;
};
pxo_board: pxo_board {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <25000000>;
};
sleep_clk: sleep_clk {
compatible = "fixed-clock";
clock-frequency = <32768>;
#clock-cells = <0>;
};
};
firmware {
scm {
compatible = "qcom,scm-ipq806x", "qcom,scm";
};
};
stmmac_axi_setup: stmmac-axi-config {
snps,wr_osr_lmt = <7>;
snps,rd_osr_lmt = <7>;
snps,blen = <16 0 0 0 0 0 0>;
};
vsdcc_fixed: vsdcc-regulator {
compatible = "regulator-fixed";
regulator-name = "SDCC Power";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
soc: soc {
#address-cells = <1>;
#size-cells = <1>;
ranges;
compatible = "simple-bus";
rpm: rpm@108000 {
compatible = "qcom,rpm-ipq8064";
reg = <0x00108000 0x1000>;
qcom,ipc = <&l2cc 0x8 2>;
interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "ack", "err", "wakeup";
clocks = <&gcc RPM_MSG_RAM_H_CLK>;
clock-names = "ram";
rpmcc: clock-controller {
compatible = "qcom,rpmcc-ipq806x", "qcom,rpmcc";
#clock-cells = <1>;
};
};
ssbi@500000 {
compatible = "qcom,ssbi";
reg = <0x00500000 0x1000>;
qcom,controller-type = "pmic-arbiter";
};
qfprom: efuse@700000 {
compatible = "qcom,ipq8064-qfprom", "qcom,qfprom";
reg = <0x00700000 0x1000>;
#address-cells = <1>;
#size-cells = <1>;
speedbin_efuse: speedbin@c0 {
reg = <0xc0 0x4>;
};
tsens_calib: calib@400 {
reg = <0x400 0xb>;
};
tsens_calib_backup: calib_backup@410 {
reg = <0x410 0xb>;
};
};
qcom_pinmux: pinmux@800000 {
compatible = &quo