diff --git a/config/sun.mk b/config/sun.mk index 6b319c3d..ef5df50f 100644 --- a/config/sun.mk +++ b/config/sun.mk @@ -1,4 +1,7 @@ dtbo-y := synx/sun-synx.dtbo +ifeq ($(CONFIG_ARCH_TUNA), y) + dtbo-y += synx/tuna-synx.dtbo +endif #dtbo-y += sun-synx-cdp.dtbo #dtbo-y += sun-synx-mtp.dtbo #dtbo-y += sun-synx-qrd.dtbo diff --git a/synx/tuna-synx.dts b/synx/tuna-synx.dts new file mode 100644 index 00000000..17dd3b19 --- /dev/null +++ b/synx/tuna-synx.dts @@ -0,0 +1,16 @@ +/* Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + */ +/dts-v1/; +/plugin/; + +#include +#include +#include "tuna-synx.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. tuna SoC"; + compatible = "qcom,tuna"; + qcom,msm-id = <655 0x10000>, <681 0x10000>, <694 0x10000>; + qcom,board-id = <0 0>, <15 0>; +}; \ No newline at end of file diff --git a/synx/tuna-synx.dtsi b/synx/tuna-synx.dtsi new file mode 100644 index 00000000..e64e131b --- /dev/null +++ b/synx/tuna-synx.dtsi @@ -0,0 +1,292 @@ +/* Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + */ +#include + +&soc { + #address-cells = <1>; + #size-cells = <1>; + interrupt-parent = <&intc>; + + ipcc_compute_l0: qcom,ipcc_compute_l0@443000 { + compatible = "qcom,ipcc"; + reg = <0x443000 0x1000>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <3>; + #mbox-cells = <2>; + }; + ipclite { + compatible = "qcom,ipclite"; + memory-region = <&global_sync_mem>; + hwlocks = <&tcsr_mutex 11>; + #address-cells = <1>; + #size-cells = <1>; + major_version = <1>; + minor_version = <0>; + feature_mask_low = <0x0003>; + feature_mask_high = <0x0000>; + ranges; + + ipclite_apss: apss { + qcom,remote-pid = <0>; + label = "apss"; + + ipclite_signal_0 { + index = <0>; + mboxes = <&ipcc_compute_l0 IPCC_CLIENT_APSS + IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MSG>; + interrupt-parent = <&ipcc_compute_l0>; + interrupts = ; + }; + + ipclite_signal_1 { + index = <1>; + mboxes = <&ipcc_compute_l0 IPCC_CLIENT_BROADCAST + IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MEM_INIT>; + interrupt-parent = <&ipcc_compute_l0>; + interrupts = ; + }; + + ipclite_signal_2 { + index = <2>; + mboxes = <&ipcc_compute_l0 IPCC_CLIENT_APSS + IPCC_COMPUTE_L0_SIGNAL_IPCLITE_VERSION>; + interrupt-parent = <&ipcc_compute_l0>; + interrupts = ; + }; + + ipclite_signal_3 { + index = <3>; + mboxes = <&ipcc_compute_l0 IPCC_CLIENT_APSS + IPCC_COMPUTE_L0_SIGNAL_IPCLITE_TEST>; + interrupt-parent = <&ipcc_compute_l0>; + interrupts = ; + }; + + ipclite_signal_4 { + index = <4>; + mboxes = <&ipcc_compute_l0 IPCC_CLIENT_APSS + IPCC_COMPUTE_L0_SIGNAL_IPCLITE_SSR>; + interrupt-parent = <&ipcc_compute_l0>; + interrupts = ; + }; + + ipclite_signal_5 { + index = <5>; + mboxes = <&ipcc_compute_l0 IPCC_CLIENT_APSS + IPCC_COMPUTE_L0_SIGNAL_IPCLITE_DEBUG>; + interrupt-parent = <&ipcc_compute_l0>; + interrupts = ; + }; + }; + + ipclite_cdsp: cdsp { + qcom,remote-pid = <5>; + label = "cdsp"; + + ipclite_signal_0 { + index = <0>; + mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CDSP + IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MSG>; + interrupt-parent = <&ipcc_compute_l0>; + interrupts = ; + }; + + ipclite_signal_1 { + index = <1>; + mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CDSP + IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MEM_INIT>; + interrupt-parent = <&ipcc_compute_l0>; + interrupts = ; + }; + + ipclite_signal_2 { + index = <2>; + mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CDSP + IPCC_COMPUTE_L0_SIGNAL_IPCLITE_VERSION>; + interrupt-parent = <&ipcc_compute_l0>; + interrupts = ; + }; + + ipclite_signal_3 { + index = <3>; + mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CDSP + IPCC_COMPUTE_L0_SIGNAL_IPCLITE_TEST>; + interrupt-parent = <&ipcc_compute_l0>; + interrupts = ; + }; + + ipclite_signal_4 { + index = <4>; + mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CDSP + IPCC_COMPUTE_L0_SIGNAL_IPCLITE_SSR>; + interrupt-parent = <&ipcc_compute_l0>; + interrupts = ; + }; + + ipclite_signal_5 { + index = <5>; + mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CDSP + IPCC_COMPUTE_L0_SIGNAL_IPCLITE_DEBUG>; + interrupt-parent = <&ipcc_compute_l0>; + interrupts = ; + }; + }; + + ipclite_cvp: cvp { + qcom,remote-pid = <6>; + label = "cvp"; + + ipclite_signal_0 { + index = <0>; + mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CVP + IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MSG>; + interrupt-parent = <&ipcc_compute_l0>; + interrupts = ; + }; + + ipclite_signal_1 { + index = <1>; + mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CVP + IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MEM_INIT>; + interrupt-parent = <&ipcc_compute_l0>; + interrupts = ; + }; + + ipclite_signal_2 { + index = <2>; + mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CVP + IPCC_COMPUTE_L0_SIGNAL_IPCLITE_VERSION>; + interrupt-parent = <&ipcc_compute_l0>; + interrupts = ; + }; + + ipclite_signal_3 { + index = <3>; + mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CVP + IPCC_COMPUTE_L0_SIGNAL_IPCLITE_TEST>; + interrupt-parent = <&ipcc_compute_l0>; + interrupts = ; + }; + + ipclite_signal_4 { + index = <4>; + mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CVP + IPCC_COMPUTE_L0_SIGNAL_IPCLITE_SSR>; + interrupt-parent = <&ipcc_compute_l0>; + interrupts = ; + }; + + ipclite_signal_5 { + index = <5>; + mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CVP + IPCC_COMPUTE_L0_SIGNAL_IPCLITE_DEBUG>; + interrupt-parent = <&ipcc_compute_l0>; + interrupts = ; + }; + }; + + ipclite_cam: cam { + qcom,remote-pid = <7>; + label = "cam"; + + ipclite_signal_0 { + index = <0>; + mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CAM + IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MSG>; + interrupt-parent = <&ipcc_compute_l0>; + interrupts = ; + }; + + ipclite_signal_1 { + index = <1>; + mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CAM + IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MEM_INIT>; + interrupt-parent = <&ipcc_compute_l0>; + interrupts = ; + }; + + ipclite_signal_2 { + index = <2>; + mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CAM + IPCC_COMPUTE_L0_SIGNAL_IPCLITE_VERSION>; + interrupt-parent = <&ipcc_compute_l0>; + interrupts = ; + }; + + ipclite_signal_3 { + index = <3>; + mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CAM + IPCC_COMPUTE_L0_SIGNAL_IPCLITE_TEST>; + interrupt-parent = <&ipcc_compute_l0>; + interrupts = ; + }; + + ipclite_signal_4 { + index = <4>; + mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CAM + IPCC_COMPUTE_L0_SIGNAL_IPCLITE_SSR>; + interrupt-parent = <&ipcc_compute_l0>; + interrupts = ; + }; + + ipclite_signal_5 { + index = <5>; + mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CAM + IPCC_COMPUTE_L0_SIGNAL_IPCLITE_DEBUG>; + interrupt-parent = <&ipcc_compute_l0>; + interrupts = ; + }; + }; + }; + +};