zephyr/dts/xtensa/intel/intel_adsp_cavs20_jsl.dtsi

143 lines
2.7 KiB
Plaintext
Raw Normal View History

/*
* Copyright (c) 2019 Intel Corporation
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <xtensa/intel/intel_adsp_cavs.dtsi>
#include <mem.h>
/ {
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu0: cpu@0 {
device_type = "cpu";
compatible = "cdns,tensilica-xtensa-lx6";
reg = <0>;
};
cpu1: cpu@1 {
device_type = "cpu";
compatible = "cdns,tensilica-xtensa-lx6";
reg = <1>;
};
};
sram0: memory@be000000 {
device_type = "memory";
compatible = "mmio-sram";
reg = <0xbe000000 DT_SIZE_K(1024)>;
};
sram1: memory@be800000 {
device_type = "memory";
compatible = "mmio-sram";
reg = <0xbe800000 DT_SIZE_K(64)>;
};
soc {
shim: shim@71f00 {
compatible = "intel,adsp-shim";
reg = <0x71f00 0x100>;
};
timer: timer {
compatible = "intel,adsp-timer";
syscon = <&shim>;
};
mem_window0: mem_window@71a00 {
compatible = "intel,adsp-mem-window";
reg = <0x71a00 0x8>;
offset = <0x4000>;
memory = <&sram0>;
initialize;
read-only;
};
mem_window1: mem_window@71a08 {
compatible = "intel,adsp-mem-window";
reg = <0x71a08 0x8>;
memory = <&sram0>;
};
mem_window2: mem_window@71a10 {
compatible = "intel,adsp-mem-window";
reg = <0x71a10 0x8>;
memory = <&sram0>;
};
mem_window3: mem_window@71a18 {
compatible = "intel,adsp-mem-window";
reg = <0x71a18 0x8>;
memory = <&sram0>;
read-only;
};
l2lm: l2lm@71d00 {
compatible = "intel,cavs-l2lm";
reg = <0x71d00 0x20>;
};
core_intc: core_intc@0 {
compatible = "cdns,xtensa-core-intc";
reg = <0x00 0x400>;
interrupt-controller;
#interrupt-cells = <3>;
};
soc: intel_adsp: Refactored IPC/IDC Changes to code: 1. Renamed CAVS_IPC API from common/include/cavs_ipc.h to common/include/intel_adsp_ipc.h. Renamed all API functions and structs - added "intel_adsp_" prefix. 2. Moved definitions from intel-ipc-regs.h and ace-ipc-regs.g to SOC specific headers include/<soc_name>/adsp_ipc_regs.h. 3. Added new common intel_adsp_ipc_devtree.h header with new macros to retrieve IPC and IDC nodes and register addresses. Put those new macros in code replacing hardcoded values outside of devicetree. 4. Changed documentation of IDC and renamed IDC register struct to have common name between all intel adsp socs. 5. Removed excessive docs description on cAVS IPC protocol. Changes to Devicetree: 1. Renamed in all CAVS boards .dtsi files content in IPC nodes: - "cavs_host_ipc" node labels to "adsp_ipc" labels. - compatible "intel,cavs-host-ipc" renamed to "intel,adsp-host-ipc". 2. Added (previously missing) yaml file for "intel,adsp-host-ipc" compatible. 3. Renamed in all CAVS boards .dtsi files content in IDC nodes: - "idc" node labels to "adsp_idc" labels. - compatible "intel,cavs-idc" renamed to "intel-adsp-idc" 4. Renamed intel,cavs_idc.yaml file to intel,adsp_idc.yaml so it is suitable for both CAVS and ACE SoC family. Moved it from ipm bindings to ipc bindings where it belongs. Changes to Kconfig: 1. Renamed existing Kconfig option CONFIG_CAVS_IPC to INTEL_ADSP_IPC. 2. For renamed INTEL_ADSP_IPC addded default value based on status of the "adsp-ipc" and "adsp-ipc" node. Signed-off-by: Andrey Borisovich <andrey.borisovich@intel.com>
2022-07-12 23:15:06 +02:00
adsp_host_ipc: cavs_host_ipc@71e00 {
compatible = "intel,adsp-host-ipc";
reg = <0x71e00 0x30>;
interrupts = <7 0 0>;
interrupt-parent = <&cavs_intc0>;
};
cavs_intc0: cavs@78800 {
compatible = "intel,cavs-intc";
reg = <0x78800 0x10>;
interrupt-controller;
#interrupt-cells = <3>;
interrupts = <6 0 0>;
interrupt-parent = <&core_intc>;
};
cavs_intc1: cavs@78810 {
compatible = "intel,cavs-intc";
reg = <0x78810 0x10>;
interrupt-controller;
#interrupt-cells = <3>;
interrupts = <0xA 0 0>;
interrupt-parent = <&core_intc>;
};
cavs_intc2: cavs@78820 {
compatible = "intel,cavs-intc";
reg = <0x78820 0x10>;
interrupt-controller;
#interrupt-cells = <3>;
interrupts = <0XD 0 0>;
interrupt-parent = <&core_intc>;
};
cavs_intc3: cavs@78830 {
compatible = "intel,cavs-intc";
reg = <0x78830 0x10>;
interrupt-controller;
#interrupt-cells = <3>;
interrupts = <0x10 0 0>;
interrupt-parent = <&core_intc>;
};
soc: intel_adsp: Refactored IPC/IDC Changes to code: 1. Renamed CAVS_IPC API from common/include/cavs_ipc.h to common/include/intel_adsp_ipc.h. Renamed all API functions and structs - added "intel_adsp_" prefix. 2. Moved definitions from intel-ipc-regs.h and ace-ipc-regs.g to SOC specific headers include/<soc_name>/adsp_ipc_regs.h. 3. Added new common intel_adsp_ipc_devtree.h header with new macros to retrieve IPC and IDC nodes and register addresses. Put those new macros in code replacing hardcoded values outside of devicetree. 4. Changed documentation of IDC and renamed IDC register struct to have common name between all intel adsp socs. 5. Removed excessive docs description on cAVS IPC protocol. Changes to Devicetree: 1. Renamed in all CAVS boards .dtsi files content in IPC nodes: - "cavs_host_ipc" node labels to "adsp_ipc" labels. - compatible "intel,cavs-host-ipc" renamed to "intel,adsp-host-ipc". 2. Added (previously missing) yaml file for "intel,adsp-host-ipc" compatible. 3. Renamed in all CAVS boards .dtsi files content in IDC nodes: - "idc" node labels to "adsp_idc" labels. - compatible "intel,cavs-idc" renamed to "intel-adsp-idc" 4. Renamed intel,cavs_idc.yaml file to intel,adsp_idc.yaml so it is suitable for both CAVS and ACE SoC family. Moved it from ipm bindings to ipc bindings where it belongs. Changes to Kconfig: 1. Renamed existing Kconfig option CONFIG_CAVS_IPC to INTEL_ADSP_IPC. 2. For renamed INTEL_ADSP_IPC addded default value based on status of the "adsp-ipc" and "adsp-ipc" node. Signed-off-by: Andrey Borisovich <andrey.borisovich@intel.com>
2022-07-12 23:15:06 +02:00
adsp_idc: idc@1200 {
compatible = "intel,adsp-idc";
reg = <0x1200 0x80>;
interrupts = <8 0 0>;
interrupt-parent = <&cavs_intc0>;
};
};
};