ARM: dts: msm: Add initial device tree for SA2150P

Add initial device tree for SA2150P target.

Change-Id: I107ed97c75f15c91e94a470182d4ec749abce7a8
This commit is contained in:
Akshaya Bhat 2021-03-15 07:49:06 +05:30
commit 87c8a2379a
8 changed files with 446 additions and 0 deletions

View file

@ -163,6 +163,9 @@ Generic board variants:
- HDK device:
compatible = "qcom,hdk"
- SA2150P
compatible = "qcom,sa2150p"
Boards (SoC type + board variant):
@ -272,6 +275,7 @@ compatible = "qcom,sa6155-adp-air"
compatible = "qcom,sa6155p-adp-air"
compatible = "qcom,qcs405-rumi"
compatible = "qcom,qcs405-iot"
compatible = "qcom,sa2150p-ccard"
compatible = "qcom,qcs403-iot"
compatible = "qcom,sa8150-adp-star"
compatible = "qcom,adp-star"

View file

@ -27,6 +27,7 @@ Properties:
"qcom,mpm-gic-scuba"
"qcom,mpm-gic-sdxnightjar"
"qcom,mpm-gic-monaco"
"qcom,mpm-gic-qcs405"
- interrupts:
Usage: required

View file

@ -357,6 +357,8 @@ else
dtb-$(CONFIG_ARCH_SA8195) += sa8195p-adp-star.dtb \
sa8195p-v2-adp-air.dtb
endif
dtb-$(CONFIG_ARCH_SA2150P) += sa2150p-ccard-emmc.dtb
endif
ifeq ($(CONFIG_ARCH_LAHAINA), y)

114
qcom/qcs405-cpu.dtsi Normal file
View file

@ -0,0 +1,114 @@
/ {
psci {
compatible = "arm,psci-1.0";
method = "smc";
};
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu-map {
cluster0 {
core0 {
cpu = <&CPU0>;
};
core1 {
cpu = <&CPU1>;
};
core2 {
cpu = <&CPU2>;
};
core3 {
cpu = <&CPU3>;
};
};
};
CPU0: cpu@100 {
device_type = "cpu";
compatible = "arm,cortex-a53";
reg = <0x100>;
enable-method = "psci";
capacity-dmips-mhz = <1024>;
next-level-cache = <&L2_1>;
#cooling-cells = <2>;
L2_1: l2-cache {
compatible = "arm,arch-cache";
cache-level = <2>;
/* A53 L2 dump not supported */
qcom,dump-size = <0x0>;
};
L1_I_100: l1-icache {
compatible = "arm,arch-cache";
qcom,dump-size = <0x8800>;
};
L1_D_100: l1-dcache {
compatible = "arm,arch-cache";
qcom,dump-size = <0x9000>;
};
};
CPU1: cpu@101 {
device_type = "cpu";
compatible = "arm,cortex-a53";
reg = <0x101>;
enable-method = "psci";
capacity-dmips-mhz = <1024>;
next-level-cache = <&L2_1>;
#cooling-cells = <2>;
L1_I_101: l1-icache {
compatible = "arm,arch-cache";
qcom,dump-size = <0x8800>;
};
L1_D_101: l1-dcache {
compatible = "arm,arch-cache";
qcom,dump-size = <0x9000>;
};
};
CPU2: cpu@102 {
device_type = "cpu";
compatible = "arm,cortex-a53";
reg = <0x102>;
enable-method = "psci";
capacity-dmips-mhz = <1024>;
next-level-cache = <&L2_1>;
#cooling-cells = <2>;
L1_I_102: l1-icache {
compatible = "arm,arch-cache";
qcom,dump-size = <0x8800>;
};
L1_D_102: l1-dcache {
compatible = "arm,arch-cache";
qcom,dump-size = <0x9000>;
};
};
CPU3: cpu@103 {
device_type = "cpu";
compatible = "arm,cortex-a53";
reg = <0x103>;
enable-method = "psci";
capacity-dmips-mhz = <1024>;
next-level-cache = <&L2_1>;
#cooling-cells = <2>;
L1_I_103: l1-icache {
compatible = "arm,arch-cache";
qcom,dump-size = <0x8800>;
};
L1_D_103: l1-dcache {
compatible = "arm,arch-cache";
qcom,dump-size = <0x9000>;
};
};
};
};

28
qcom/qcs405-pinctrl.dtsi Normal file
View file

@ -0,0 +1,28 @@
&soc {
tlmm: pinctrl@1000000 {
compatible = "qcom,qcs404-pinctrl";
reg = <0x01000000 0x200000>,
<0x01300000 0x200000>,
<0x07b00000 0x200000>;
reg-names = "south", "north", "east";
interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
interrupt-controller;
#interrupt-cells = <2>;
gpio-ranges = <&tlmm 0 0 120>;
gpio-controller;
#gpio-cells = <2>;
blsp1_uart2_default: blsp1-uart2-default {
rx {
pins = "gpio18";
function = "blsp_uart_rx_a2";
};
tx {
pins = "gpio17";
function = "blsp_uart_tx_a2";
};
};
};
};

286
qcom/qcs405.dtsi Normal file
View file

@ -0,0 +1,286 @@
#include <dt-bindings/interrupt-controller/arm-gic.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>
/ {
model = "Qualcomm Technologies, Inc. QCS405";
compatible = "qcom,qcs405";
qcom,msm-id = <352 0x0>, <452 0x0>;
interrupt-parent = <&intc>;
#address-cells = <2>;
#size-cells = <2>;
aliases {
serial0 = &blsp1_uart2_console;
};
chosen {
};
memory { device_type = "memory"; reg = <0 0 0 0>; };
reserved_mem: reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
removed_region0: removed_region@85900000 {
no-map;
reg = <0x0 0x85900000 0x0 0x600000>;
};
smem_region: smem@85f00000 {
no-map;
reg = <0x0 0x85f00000 0x0 0x200000>;
};
removed_region1: removed_region@86100000 {
no-map;
reg = <0x0 0x86100000 0x0 0x300000>;
};
wlan_fw_mem: wlan_fw_mem@86400000 {
no-map;
reg = <0x0 0x86400000 0x0 0x1000000>;
};
adsp_fw_mem: adsp_fw_mem@87400000 {
no-map;
reg = <0x0 0x87400000 0x0 0x1400000>;
};
cdsp_fw_mem: cdsp_fw_mem@88800000 {
no-map;
reg = <0x0 0x88800000 0x0 0x800000>;
};
wlan_msa_mem: wlan_msa_region@88E00000 {
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;
};
};
soc: soc { };
};
&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";
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 = <2>;
};
arch_timer: timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
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";
};
};
qcom,msm-rtb {
compatible = "qcom,msm-rtb";
qcom,rtb-size = <0x100000>;
};
blsp1_uart2_console: serial@78b1000 {
compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
reg = <0x078b1000 0x200>;
interrupts = <0 118 0>;
pinctrl-names = "default";
pinctrl-0 = <&blsp1_uart2_default>;
status = "okay";
};
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 0x8>;
};
dload_type@18 {
compatible = "qcom,msm-imem-dload-type";
reg = <0x18 0x4>;
};
restart_reason@65c {
compatible = "qcom,msm-imem-restart_reason";
reg = <0x65c 0x4>;
};
boot_stats@6b0 {
compatible = "qcom,msm-imem-boot_stats";
reg = <0x6b0 0x20>;
};
pil@94c {
compatible = "qcom,msm-imem-pil";
reg = <0x94c 0xc8>;
};
diag_dload@c8 {
compatible = "qcom,msm-imem-diag-dload";
reg = <0xc8 0xc8>;
};
kaslr_offset@6d0 {
compatible = "qcom,msm-imem-kaslr_offset";
reg = <0x6d0 0xc>;
};
};
};
#include "qcs405-pinctrl.dtsi"
#include "qcs405-cpu.dtsi"

View file

@ -0,0 +1,10 @@
/dts-v1/;
#include "sa2150p-ccard.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SA2150P CCARD EMMC";
compatible = "qcom,sa2150p-ccard", "qcom,qcs405", "qcom,sa2150p",
"qcom,ccard";
qcom,board-id = <25 0>, <25 0x100>;
};

1
qcom/sa2150p-ccard.dtsi Normal file
View file

@ -0,0 +1 @@
#include "qcs405.dtsi"