From 39c3362b1259c8b6872923ab5a3ea2a8ed7044a2 Mon Sep 17 00:00:00 2001 From: Shivendra Pratap Date: Mon, 8 Apr 2024 07:50:01 -0700 Subject: [PATCH] ARM: dts: msm: Add initial device trees for Tuna SoC Add initial device trees to support tuna SoC. Change-Id: I3caa9859791478f81abbc8110a50af5905a01279 Signed-off-by: Shivendra Pratap --- qcom/Makefile | 8 ++ qcom/platform_map.bzl | 12 ++ qcom/tuna-rumi-overlay.dts | 16 +++ qcom/tuna-rumi.dtsi | 12 ++ qcom/tuna.dts | 12 ++ qcom/tuna.dtsi | 284 +++++++++++++++++++++++++++++++++++++ 6 files changed, 344 insertions(+) create mode 100644 qcom/tuna-rumi-overlay.dts create mode 100644 qcom/tuna-rumi.dtsi create mode 100644 qcom/tuna.dts create mode 100644 qcom/tuna.dtsi diff --git a/qcom/Makefile b/qcom/Makefile index b6f67d4e..eceb4612 100644 --- a/qcom/Makefile +++ b/qcom/Makefile @@ -50,6 +50,14 @@ sun-dtb-$(CONFIG_ARCH_SUN) += \ $(call add-overlays, $(SUN_BOARDS) $(NOAPQ_SUN_BOARDS),$(SUN_BASE_DTB))\ $(call add-overlays, $(SUN_BOARDS) $(APQ_SUN_BOARDS),$(SUN_APQ_BASE_DTB)) sun-overlays-dtb-$(CONFIG_ARCH_SUN) += $(SUN_BOARDS) $(NOAPQ_SUN_BOARDS) $(SUN_BASE_DTB) $(SUN_APQ_BASE_DTB) + +TUNA_BASE_DTB += tuna.dtb +NOAPQ_TUNA_BOARDS += \ + tuna-rumi-overlay.dtbo + +sun-dtb-$(CONFIG_ARCH_TUNA) += \ + $(call add-overlays, $(NOAPQ_TUNA_BOARDS),$(TUNA_BASE_DTB)) +sun-overlays-dtb-$(CONFIG_ARCH_TUNA) += $(NOAPQ_TUNA_BOARDS) $(TUNA_BASE_DTB) dtb-y += $(sun-dtb-y) PINEAPPLE_BASE_DTB += pineapple.dtb pineapple-v2.dtb diff --git a/qcom/platform_map.bzl b/qcom/platform_map.bzl index eea59c6e..7a32204c 100644 --- a/qcom/platform_map.bzl +++ b/qcom/platform_map.bzl @@ -40,6 +40,18 @@ _platform_map = { {"name": "sunp-hdk-overlay.dtbo"}, {"name": "sun-rumi-overlay.dtbo"}, ], + "binary_compatible_with": ["tuna"], + }, + "tuna": { + "dtb_list": [ + {"name": "tuna.dtb"}, + ], + "dtbo_list": [ + { + "name": "tuna-rumi-overlay.dtbo", + "apq": False, + }, + ], }, "sun-tuivm": { "dtb_list": [ diff --git a/qcom/tuna-rumi-overlay.dts b/qcom/tuna-rumi-overlay.dts new file mode 100644 index 00000000..66024c8c --- /dev/null +++ b/qcom/tuna-rumi-overlay.dts @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; +/plugin/; + +#include "tuna-rumi.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Tuna RUMI"; + compatible = "qcom,tuna-rumi", "qcom,tuna", "qcom,rumi"; + qcom,msm-id = <655 0x10000>; + qcom,board-id = <15 0>; +}; diff --git a/qcom/tuna-rumi.dtsi b/qcom/tuna-rumi.dtsi new file mode 100644 index 00000000..9a0f3db9 --- /dev/null +++ b/qcom/tuna-rumi.dtsi @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +&arch_timer { + clock-frequency = <500000>; +}; + +&memtimer { + clock-frequency = <500000>; +}; diff --git a/qcom/tuna.dts b/qcom/tuna.dts new file mode 100644 index 00000000..c7e1e120 --- /dev/null +++ b/qcom/tuna.dts @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ +/dts-v1/; +#include "tuna.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Tuna SoC"; + compatible = "qcom,tuna"; + qcom,board-id = <0 0>; +}; diff --git a/qcom/tuna.dtsi b/qcom/tuna.dtsi new file mode 100644 index 00000000..d07a0955 --- /dev/null +++ b/qcom/tuna.dtsi @@ -0,0 +1,284 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include + +/ { + model = "Qualcomm Technologies, Inc. Tuna"; + compatible = "qcom,tuna"; + qcom,msm-id = <655 0x10000>; + interrupt-parent = <&intc>; + + #address-cells = <2>; + #size-cells = <2>; + + memory { + device_type = "memory"; + reg = <0 0 0 0>; + }; + + chosen: chosen { + bootargs = "nokaslr kpti=0 log_buf_len=256K swiotlb=0 loop.max_part=7"; + }; + + reserved_memory: reserved-memory {}; + + firmware: firmware {}; + + aliases {}; + + cpus { + #address-cells = <2>; + #size-cells = <0>; + + CPU0: cpu@0 { + device_type = "cpu"; + compatible = "qcom,kryo"; + reg = <0x0 0x0>; + enable-method = "spin-table"; /* TODO: Update to psci */ + cpu-release-addr = <0x0 0xE3940000>; + next-level-cache = <&L2_0>; + L2_0: l2-cache { + compatible = "cache"; + cache-level = <2>; + next-level-cache = <&L3_0>; + + L3_0: l3-cache { + compatible = "cache"; + cache-level = <3>; + }; + }; + }; + + CPU1: cpu@100 { + device_type = "cpu"; + compatible = "qcom,kryo"; + reg = <0x0 0x100>; + enable-method = "spin-table"; /* TODO: Update to psci */ + cpu-release-addr = <0x0 0xE3940000>; + next-level-cache = <&L2_1>; + L2_1: l2-cache { + compatible = "cache"; + cache-level = <2>; + next-level-cache = <&L3_0>; + }; + + }; + + CPU2: cpu@200 { + device_type = "cpu"; + compatible = "qcom,kryo"; + reg = <0x0 0x200>; + enable-method = "spin-table"; /* TODO: Update to psci */ + cpu-release-addr = <0x0 0xE3940000>; + next-level-cache = <&L2_2>; + L2_2: l2-cache { + compatible = "cache"; + cache-level = <2>; + next-level-cache = <&L3_0>; + }; + }; + + CPU3: cpu@300 { + device_type = "cpu"; + compatible = "qcom,kryo"; + reg = <0x0 0x300>; + enable-method = "spin-table"; /* TODO: Update to psci */ + cpu-release-addr = <0x0 0xE3940000>; + next-level-cache = <&L2_3>; + L2_3: l2-cache { + compatible = "cache"; + cache-level = <2>; + next-level-cache = <&L3_0>; + }; + }; + + CPU4: cpu@400 { + device_type = "cpu"; + compatible = "qcom,kryo"; + reg = <0x0 0x400>; + enable-method = "spin-table"; /* TODO: Update to psci */ + cpu-release-addr = <0x0 0xE3940000>; + next-level-cache = <&L2_4>; + L2_4: l2-cache { + compatible = "cache"; + cache-level = <2>; + next-level-cache = <&L3_0>; + }; + }; + + CPU5: cpu@500 { + device_type = "cpu"; + compatible = "qcom,kryo"; + reg = <0x0 0x500>; + enable-method = "spin-table"; /* TODO: Update to psci */ + cpu-release-addr = <0x0 0xE3940000>; + next-level-cache = <&L2_5>; + L2_5: l2-cache { + compatible = "cache"; + cache-level = <2>; + next-level-cache = <&L3_0>; + }; + }; + + CPU6: cpu@600 { + device_type = "cpu"; + compatible = "qcom,kryo"; + reg = <0x0 0x600>; + enable-method = "spin-table"; /* TODO: Update to psci */ + cpu-release-addr = <0x0 0xE3940000>; + next-level-cache = <&L2_6>; + L2_6: l2-cache { + compatible = "cache"; + cache-level = <2>; + next-level-cache = <&L3_0>; + }; + }; + + CPU7: cpu@700 { + device_type = "cpu"; + compatible = "qcom,kryo"; + reg = <0x0 0x700>; + enable-method = "spin-table"; /* TODO: Update to psci */ + cpu-release-addr = <0x0 0xE3940000>; + next-level-cache = <&L2_7>; + L2_7: l2-cache { + compatible = "cache"; + cache-level = <2>; + next-level-cache = <&L3_0>; + }; + }; + + cpu-map { + cluster0 { + core0 { + cpu = <&CPU0>; + }; + + core1 { + cpu = <&CPU1>; + }; + }; + + cluster1 { + core0 { + cpu = <&CPU2>; + }; + + core1 { + cpu = <&CPU3>; + }; + + core2 { + cpu = <&CPU4>; + }; + }; + + cluster2 { + core0 { + cpu = <&CPU5>; + }; + + core1 { + cpu = <&CPU6>; + }; + }; + + cluster3 { + core0 { + cpu = <&CPU7>; + }; + }; + }; + }; + + soc: soc { }; +}; + +&soc { + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0 0xffffffff>; + compatible = "simple-bus"; + + intc: interrupt-controller@17100000 { + compatible = "arm,gic-v3"; + #interrupt-cells = <3>; + interrupt-controller; + #redistributor-regions = <1>; + redistributor-stride = <0x0 0x40000>; + reg = <0x17100000 0x10000>, /* GICD */ + <0x17180000 0x200000>; /* GICR * 8 */ + interrupts = ; + }; + + arch_timer: timer { + compatible = "arm,armv8-timer"; + interrupts = , + , + , + ; + clock-frequency = <19200000>; + }; + + memtimer: timer@17420000 { + #address-cells = <1>; + #size-cells = <1>; + ranges; + compatible = "arm,armv7-timer-mem"; + reg = <0x17420000 0x1000>; + clock-frequency = <19200000>; + + frame@17421000 { + frame-number = <0>; + interrupts = , + ; + reg = <0x17421000 0x1000>, + <0x17422000 0x1000>; + }; + + frame@17423000 { + frame-number = <1>; + interrupts = ; + reg = <0x17423000 0x1000>; + status = "disabled"; + }; + + frame@17425000 { + frame-number = <2>; + interrupts = ; + reg = <0x17425000 0x1000>; + status = "disabled"; + }; + + frame@17427000 { + frame-number = <3>; + interrupts = ; + reg = <0x17427000 0x1000>; + status = "disabled"; + }; + + frame@17429000 { + frame-number = <4>; + interrupts = ; + reg = <0x17429000 0x1000>; + status = "disabled"; + }; + + frame@1742b000 { + frame-number = <5>; + interrupts = ; + reg = <0x1742b000 0x1000>; + status = "disabled"; + }; + + frame@1742d000 { + frame-number = <6>; + interrupts = ; + reg = <0x1742d000 0x1000>; + status = "disabled"; + }; + }; +};