blob: c2cc6f426b16b82a21fda857c94ebe238fc26a15 [file] [log] [blame]
// SPDX-License-Identifier: GPL-2.0-only
/dts-v1/;
/* Copyright (c) 2020 The Linux Foundation. All rights reserved.
*/
#include "ipq8074.dtsi"
#include "ipq8074-hk-cpu.dtsi"
/* Internal radio is not enabled on hk12, so delete the
* references to internal radio's reserved memory
*/
#if !defined(__IPQ_MEM_PROFILE_256_MB__)
&tmc_etr {
/delete-property/ memory-region;
};
&q6v5_wcss {
/delete-property/ memory-region;
};
#endif
/ {
#address-cells = <0x2>;
#size-cells = <0x2>;
model = "Qualcomm Technologies, Inc. IPQ8074/AP-HK12";
compatible = "qcom,ipq8074-ap-hk12", "qcom,ipq8074-ap-hk12", "qcom,ipq8074";
qcom,msm-id = <0x143 0x0>, <0x186 0x0>;
interrupt-parent = <&intc>;
aliases {
serial0 = &blsp1_uart5;
/* Aliases as required by u-boot to patch MAC addresses */
ethernet0 = "/soc/dp1";
ethernet1 = "/soc/dp2";
ethernet2 = "/soc/dp3";
ethernet3 = "/soc/dp4";
ethernet4 = "/soc/dp5";
ethernet5 = "/soc/dp6";
};
chosen {
stdout-path = "serial0";
};
reserved-memory {
/* No Pine attach in 256M profile */
#if !defined(__IPQ_MEM_PROFILE_256_MB__)
#ifdef __IPQ_MEM_PROFILE_512_MB__
/* 512 MB Profile
* +========+==============+=========================+
* | Region | Start Offset | Size |
* +--------+--------------+-------------------------+
* | NSS | 0x40000000 | 16MB |
* +--------+--------------+-------------------------+
* | Linux | 0x41000000 | Depends on total memory |
* +--------+--------------+-------------------------+
* | TZ APP | 0x4A400000 | 1MB |
* +--------+--------------+-------------------------+
* | uboot | 0x4A600000 | 4MB |
* +--------+--------------+-------------------------+
* | SBL | 0x4AA00000 | 1MB |
* +--------+--------------+-------------------------+
* | smem | 0x4AB00000 | 1MB |
* +--------+--------------+-------------------------+
* | TZ | 0x4AC00000 | 4MB |
* +--------+--------------+-------------------------+
* | Pine0 | 0x4B000000 | 30MB |
* +--------+--------------+-------------------------+
* | Pine1 | 0x4CE00000 | 30MB |
* +--------+--------------+-------------------------+
* | MHI0 | 0x4EC00000 | 16MB |
* +--------+--------------+-------------------------+
* | MHI1 | 0x4FC00000 | 16MB |
* +--------+--------------+-------------------------+
* | |
* | Rest of the memory for Linux |
* | |
* +=================================================+
*/
/delete-node/ wcnss@4b000000;
/delete-node/ q6_etr_dump@4e700000;
/delete-node/ m3_dump@4e800000;
qcn9000_pcie0: qcn9000_pcie0@4b000000 {
no-map;
reg = <0x0 0x4b000000 0x0 0x01E00000>;
};
qcn9000_pcie1: qcn9000_pcie1@4ce00000 {
no-map;
reg = <0x0 0x4CE00000 0x0 0x01E00000>;
};
mhi_region0: dma_pool0@4ec00000 {
compatible = "shared-dma-pool";
no-map;
reg = <0x0 0x4EC00000 0x0 0x01000000>;
};
mhi_region1: dma_pool1@4fc00000 {
compatible = "shared-dma-pool";
no-map;
reg = <0x0 0x4FC00000 0x0 0x01000000>;
};
#else
/* Default Profile
* +========+==============+=========================+
* | Region | Start Offset | Size |
* +--------+--------------+-------------------------+
* | NSS | 0x40000000 | 16MB |
* +--------+--------------+-------------------------+
* | Linux | 0x41000000 | Depends on total memory |
* +--------+--------------+-------------------------+
* | TZ APP | 0x4A400000 | 2MB |
* +--------+--------------+-------------------------+
* | uboot | 0x4A600000 | 4MB |
* +--------+--------------+-------------------------+
* | SBL | 0x4AA00000 | 1MB |
* +--------+--------------+-------------------------+
* | smem | 0x4AB00000 | 1MB |
* +--------+--------------+-------------------------+
* | TZ | 0x4AC00000 | 4MB |
* +--------+--------------+-------------------------+
* | Pine0 | 0x4B000000 | 45MB |
* +--------+--------------+-------------------------+
* | Pine1 | 0x4DD00000 | 45MB |
* +--------+--------------+-------------------------+
* | MHI0 | 0x50A00000 | 24MB |
* +--------+--------------+-------------------------+
* | MHI1 | 0x52200000 | 24MB |
* +--------+--------------+-------------------------+
* | |
* | Rest of the memory for Linux |
* | |
* +=================================================+
*/
/delete-node/ wcnss@4b000000;
/delete-node/ q6_etr_dump@50f00000;
/delete-node/ m3_dump@51000000;
qcn9000_pcie0: qcn9000_pcie0@4b000000 {
no-map;
reg = <0x0 0x4b000000 0x0 0x02D00000>;
};
qcn9000_pcie1: qcn9000_pcie1@4dd00000 {
no-map;
reg = <0x0 0x4DD00000 0x0 0x02D00000>;
};
mhi_region0: dma_pool0@50a00000 {
compatible = "shared-dma-pool";
no-map;
reg = <0x0 0x50A00000 0x0 0x01800000>;
};
mhi_region1: dma_pool1@52200000 {
compatible = "shared-dma-pool";
no-map;
reg = <0x0 0x52200000 0x0 0x01800000>;
};
#endif
#endif
};
soc {
pinctrl@1000000 {
button_pins: button_pins {
wps_button {
pins = "gpio34";
function = "gpio";
drive-strength = <8>;
bias-pull-up;
};
};
usb_mux_sel_pins: usb_mux_pins {
mux {
pins = "gpio27";
function = "gpio";
drive-strength = <8>;
bias-pull-down;
};
};
pcie0_pins: pcie_pins {
pcie0_rst {
pins = "gpio58";
function = "pcie0_rst";
drive-strength = <8>;
bias-pull-down;
};
pcie0_wake {
pins = "gpio59";
function = "pcie0_wake";
drive-strength = <8>;
bias-pull-down;
};
};
led_pins: led_pins {
led_2g {
pins = "gpio18";
function = "gpio";
drive-strength = <8>;
bias-pull-down;
};
};
};
serial@78b3000 {
status = "ok";
};
spi@78b5000 {
status = "ok";
pinctrl-0 = <&spi_0_pins>;
pinctrl-names = "default";
cs-select = <0>;
m25p80@0 {
compatible = "n25q128a11";
#address-cells = <1>;
#size-cells = <1>;
reg = <0>;
spi-max-frequency = <50000000>;
};
};
dma@7984000 {
status = "ok";
};
nand@79b0000 {
status = "ok";
nand@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <1>;
nand-ecc-strength = <4>;
nand-ecc-step-size = <512>;
nand-bus-width = <8>;
};
};
qusb@79000 {
status = "ok";
};
ssphy@78000 {
status = "ok";
};
usb3@8A00000 {
status = "ok";
};
qusb@59000 {
status = "ok";
};
ssphy@58000 {
status = "ok";
};
usb3@8C00000 {
status = "ok";
};
qcom,test@0 {
status = "ok";
};
phy@84000 {
status = "ok";
};
phy@86000 {
status = "ok";
};
pci@20000000 {
perst-gpio = <&tlmm 58 1>;
status = "ok";
pcie0_rp {
reg = <0 0 0 0 0>;
qcom,mhi@0 {
reg = <0 0 0 0 0>;
qrtr_instance_id = <0x20>;
#if !defined(__IPQ_MEM_PROFILE_256_MB__)
memory-region = <&mhi_region0>;
#endif
};
};
};
phy@8e000 {
status = "ok";
};
pci@10000000 {
perst-gpio = <&tlmm 61 0x1>;
status = "ok";
pcie1_rp {
reg = <0 0 0 0 0>;
qcom,mhi@1 {
reg = <0 0 0 0 0>;
qrtr_instance_id = <0x21>;
#if !defined(__IPQ_MEM_PROFILE_256_MB__)
memory-region = <&mhi_region1>;
#endif
};
};
};
gpio_keys {
compatible = "gpio-keys";
pinctrl-0 = <&button_pins>;
pinctrl-names = "default";
status = "ok";
button@1 {
label = "wps";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&tlmm 34 GPIO_ACTIVE_LOW>;
linux,input-type = <1>;
debounce-interval = <60>;
};
};
leds {
compatible = "gpio-leds";
pinctrl-0 = <&led_pins>;
pinctrl-names = "default";
led_2g {
label = "led_2g";
gpio = <&tlmm 18 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
};
};
};
&wifi0 {
/delete-property/ mem-region;
status = "disabled";
};
&wifi1 {
/delete-property/ mem-region;
status = "disabled";
};
&wifi2 {
#if !defined(__IPQ_MEM_PROFILE_256_MB__)
#ifdef __IPQ_MEM_PROFILE_512_MB__
/* QCN9000 tgt-mem-mode=1 layout - 30MB
* +=========+==============+=========+
* | Region | Start Offset | Size |
* +---------+--------------+---------+
* | HREMOTE | 0x4B000000 | 20MB |
* +---------+--------------+---------+
* | M3 Dump | 0x4C400000 | 1MB |
* +---------+--------------+---------+
* | ETR | 0x4C500000 | 1MB |
* +---------+--------------+---------+
* | Caldb | 0x4C600000 | 8MB |
* +==================================+
*/
base-addr = <0x4B000000>;
m3-dump-addr = <0x4C400000>;
etr-addr = <0x4C500000>;
caldb-addr = <0x4C600000>;
hremote-size = <0x1400000>;
tgt-mem-mode = <0x1>;
#else
/* QCN9000 tgt-mem-mode=0 layout - 45MB
* +=========+==============+=========+
* | Region | Start Offset | Size |
* +---------+--------------+---------+
* | HREMOTE | 0x4B000000 | 35MB |
* +---------+--------------+---------+
* | M3 Dump | 0x4D300000 | 1MB |
* +---------+--------------+---------+
* | ETR | 0x4D400000 | 1MB |
* +---------+--------------+---------+
* | Caldb | 0x4D500000 | 8MB |
* +==================================+
*/
base-addr = <0x4B000000>;
m3-dump-addr = <0x4D300000>;
etr-addr = <0x4D400000>;
caldb-addr = <0x4D500000>;
hremote-size = <0x2300000>;
tgt-mem-mode = <0x0>;
#endif
caldb-size = <0x800000>;
hremote_node = <&qcn9000_pcie0>;
mhi_node = <&mhi_region0>;
status = "ok";
#endif
};
#if !defined(__IPQ_MEM_PROFILE_256_MB__)
&wifi3 {
#ifdef __IPQ_MEM_PROFILE_512_MB__
/* QCN9000 tgt-mem-mode=1 layout - 30MB
* +=========+==============+=========+
* | Region | Start Offset | Size |
* +---------+--------------+---------+
* | HREMOTE | 0x4CE00000 | 20MB |
* +---------+--------------+---------+
* | M3 Dump | 0x4E200000 | 1MB |
* +---------+--------------+---------+
* | ETR | 0x4E300000 | 1MB |
* +---------+--------------+---------+
* | Caldb | 0x4E400000 | 8MB |
* +==================================+
*/
base-addr = <0x4CE00000>;
m3-dump-addr = <0x4E200000>;
etr-addr = <0x4E300000>;
caldb-addr = <0x4E400000>;
hremote-size = <0x1400000>;
tgt-mem-mode = <0x1>;
#else
/* QCN9000 tgt-mem-mode=0 layout - 45MB
* +=========+==============+=========+
* | Region | Start Offset | Size |
* +---------+--------------+---------+
* | HREMOTE | 0x4DD00000 | 35MB |
* +---------+--------------+---------+
* | M3 Dump | 0x50000000 | 1MB |
* +---------+--------------+---------+
* | ETR | 0x50100000 | 1MB |
* +---------+--------------+---------+
* | Caldb | 0x50200000 | 8MB |
* +==================================+
*/
base-addr = <0x4DD00000>;
m3-dump-addr = <0x50000000>;
etr-addr = <0x50100000>;
caldb-addr = <0x50200000>;
hremote-size = <0x2300000>;
tgt-mem-mode = <0x0>;
#endif
caldb-size = <0x800000>;
hremote_node = <&qcn9000_pcie1>;
mhi_node = <&mhi_region1>;
status = "ok";
};
#endif