dts: nordic: Add DPPIC and IPCT nodes to nRF54H20 EngA

And add the corresponding bindings.

Move alse the already existing bindings for nrf-dppic, nrf-ppi,
and nrf-ipc so they are located together with the new ones and
in more appropriate folders (DPPIC and PPI peripherals are not
related to ARM, and IPC is for sending and receiving events,
not messages, so ipm/ does not seem to be the best fit for it).

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
This commit is contained in:
Andrzej Głąbek 2024-02-29 16:30:41 +01:00 committed by Fabio Baltieri
parent 9f9a6c547b
commit 796d09d2a6
11 changed files with 236 additions and 0 deletions

View file

@ -0,0 +1,45 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
description: Nordic IPCT (Interprocessor Communication Transceiver)
include: base.yaml
properties:
reg:
required: true
channels:
type: int
required: true
description: Number of channels implemented by the IPCT instance.
source-channel-links:
type: array
description: |
Mapping of IPCT channels that are mapped between two IPCT instances on
separate domains, in which a channel on this IPCT node is considered
the source. This array is then comprised of a 3-integer-wide "unit"
that defines one connection of the mapping. The format of this unit
is <source_channel sink_domain_id sink_channel>. Units are sequential
in the array, therefore requiring the length of this property to be
a factor of 3.
For example, if channel 2 is to be mapped to Radio Core (ID: 3) IPCT
channel 4, then the array "unit" would be <2 NRF_DOMAIN_ID_RADIOCORE 4>
or <2 3 4>.
sink-channel-links:
type: array
description: |
Mapping of IPCT channels that are mapped between two IPCT instances on
separate domains, in which a channel on this IPCT node is considered
the sink. This array is then comprised of a 3-integer-wide "unit"
that defines one connection of the mapping. The format of this unit
is <sink_channel source_domain_id source_channel>. Units are sequential
in the array, therefore requiring the length of this property to be
a factor of 3.
For example, if channel 2 is to be mapped to Radio Core (ID: 3) IPCT
channel 4, then the array "unit" would be <2 NRF_DOMAIN_ID_RADIOCORE 4>
or <2 3 4>.

View file

@ -0,0 +1,17 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
description: Nordic Global IPCT (Interprocessor Communication Transceiver)
compatible: "nordic,nrf-ipct-global"
include: ["nordic,nrf-ipct-common.yaml", "nordic,split-channels.yaml"]
properties:
global-domain-id:
required: true
type: int
description: |
Global IPCT instances reside on specific buses within the Global Domain,
such as fast and slow, which have different IDs that do not match the
standard Global Domain ID presented in their address.

View file

@ -0,0 +1,12 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
description: Nordic Local IPCT (Interprocessor Communication Transceiver)
compatible: "nordic,nrf-ipct-local"
include: "nordic,nrf-ipct-common.yaml"
properties:
interrupts:
required: true

View file

@ -0,0 +1,18 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
description: |
Nordic Global DPPIC
(Distributed Programmable Peripheral Interconnect Controller)
Updated DPPIC binding set for Nordic products that have global DPPIC instances
with inter-bridge functionality. These instances also have split-ownership
of its channels and channel groups.
compatible: "nordic,nrf-dppic-global"
include:
- "nordic,nrf-dppic.yaml"
- "nordic,nrf-dppic-links.yaml"
- "nordic,split-channels.yaml"
- "nordic,split-channel-groups.yaml"

View file

@ -0,0 +1,17 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
description: Nordic DPPIC Channel Linking
properties:
source-channels:
type: array
description: |
Channels that are linked to channels of DPPIC instances on separate
bridges as publishing sources.
sink-channels:
type: array
description: |
Channels that are linked to channels of DPPIC instances on separate
bridges as subscribing sinks.

View file

@ -0,0 +1,13 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
description: |
Nordic Local DPPIC
(Distributed Programmable Peripheral Interconnect Controller)
Updated DPPIC binding set for Nordic products that have local DPPIC instances
with inter-bridge functionality.
compatible: "nordic,nrf-dppic-local"
include: ["nordic,nrf-dppic.yaml", "nordic,nrf-dppic-links.yaml"]

View file

@ -0,0 +1,20 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
description: Nordic Split Channel Groups
properties:
owned-channel-groups:
type: array
description: |
List of channel groups of a split-ownership peripheral that are to be
owned for use by the compiled domain.
nonsecure-channel-groups:
type: array
description: |
List of channel groups in a split-ownership, split-security peripheral
that are to be configured as nonsecure. In Trustzone systems, this
property is only evaluated for secure peripherals, as nonsecure channels
are implicitly specified through the owned-channels property. This
property is ignored in non-Trustzone systems.

View file

@ -9,6 +9,12 @@
#include <zephyr/dt-bindings/misc/nordic-nrf-ficr-nrf54h20-enga.h>
/* Domain IDs. Can be used to specify channel links in IPCT nodes. */
#define NRF_DOMAIN_ID_APPLICATION 2
#define NRF_DOMAIN_ID_RADIOCORE 3
#define NRF_DOMAIN_ID_GLOBALFAST 12
#define NRF_DOMAIN_ID_GLOBALSLOW 13
/delete-node/ &sw_pwm;
/ {
@ -153,6 +159,15 @@
<&ficr NRF_FICR_TRIM_APPLICATION_HSFLL_TRIM_FINE_0>;
nordic,ficr-names = "vsup", "coarse", "fine";
};
cpuapp_ipct: ipct@13000 {
compatible = "nordic,nrf-ipct-local";
reg = <0x13000 0x1000>;
status = "disabled";
channels = <4>;
interrupts = <64 NRF_DEFAULT_IRQ_PRIORITY>,
<65 NRF_DEFAULT_IRQ_PRIORITY>;
};
};
cpurad_peripherals: peripheral@53000000 {
@ -173,6 +188,21 @@
nordic,ficr-names = "vsup", "coarse", "fine";
};
dppic020: dppic@22000 {
compatible = "nordic,nrf-dppic-local";
reg = <0x22000 0x1000>;
status = "disabled";
};
cpurad_ipct: ipct@24000 {
compatible = "nordic,nrf-ipct-local";
reg = <0x24000 0x1000>;
status = "disabled";
channels = <8>;
interrupts = <64 NRF_DEFAULT_IRQ_PRIORITY>,
<65 NRF_DEFAULT_IRQ_PRIORITY>;
};
egu020: egu@25000 {
compatible = "nordic,nrf-egu";
reg = <0x25000 0x1000>;
@ -267,6 +297,20 @@
#mbox-cells = <1>;
};
ipct120: ipct@8d1000 {
compatible = "nordic,nrf-ipct-global";
reg = <0x8d1000 0x1000>;
status = "disabled";
channels = <8>;
global-domain-id = <12>;
};
dppic120: dppic@8e1000 {
compatible = "nordic,nrf-dppic-global";
reg = <0x8e1000 0x1000>;
status = "disabled";
};
timer120: timer@8e2000 {
compatible = "nordic,nrf-timer";
reg = <0x8e2000 0x1000>;
@ -344,6 +388,20 @@
};
};
ipct130: ipct@921000 {
compatible = "nordic,nrf-ipct-global";
reg = <0x921000 0x1000>;
status = "disabled";
channels = <8>;
global-domain-id = <13>;
};
dppic130: dppic@922000 {
compatible = "nordic,nrf-dppic-global";
reg = <0x922000 0x1000>;
status = "disabled";
};
rtc130: rtc@928000 {
compatible = "nordic,nrf-rtc";
reg = <0x928000 0x1000>;
@ -449,6 +507,12 @@
port = <9>;
};
dppic131: dppic@981000 {
compatible = "nordic,nrf-dppic-global";
reg = <0x981000 0x1000>;
status = "disabled";
};
comp: comparator@983000 {
compatible = "nordic,nrf-comp";
reg = <0x983000 0x1000>;
@ -471,6 +535,12 @@
interrupts = <389 NRF_DEFAULT_IRQ_PRIORITY>;
};
dppic132: dppic@991000 {
compatible = "nordic,nrf-dppic-global";
reg = <0x991000 0x1000>;
status = "disabled";
};
qdec130: qdec@994000 {
compatible = "nordic,nrf-qdec";
reg = <0x994000 0x1000>;
@ -492,6 +562,12 @@
cc-num = <16>;
};
dppic133: dppic@9a1000 {
compatible = "nordic,nrf-dppic-global";
reg = <0x9a1000 0x1000>;
status = "disabled";
};
timer130: timer@9a2000 {
compatible = "nordic,nrf-timer";
reg = <0x9a2000 0x1000>;
@ -568,6 +644,12 @@
interrupts = <422 NRF_DEFAULT_IRQ_PRIORITY>;
};
dppic134: dppic@9b1000 {
compatible = "nordic,nrf-dppic-global";
reg = <0x9b1000 0x1000>;
status = "disabled";
};
timer132: timer@9b2000 {
compatible = "nordic,nrf-timer";
reg = <0x9b2000 0x1000>;
@ -644,6 +726,12 @@
interrupts = <438 NRF_DEFAULT_IRQ_PRIORITY>;
};
dppic135: dppic@9c1000 {
compatible = "nordic,nrf-dppic-global";
reg = <0x9c1000 0x1000>;
status = "disabled";
};
timer134: timer@9c2000 {
compatible = "nordic,nrf-timer";
reg = <0x9c2000 0x1000>;
@ -720,6 +808,12 @@
interrupts = <454 NRF_DEFAULT_IRQ_PRIORITY>;
};
dppic136: dppic@9d1000 {
compatible = "nordic,nrf-dppic-global";
reg = <0x9d1000 0x1000>;
status = "disabled";
};
timer136: timer@9d2000 {
compatible = "nordic,nrf-timer";
reg = <0x9d2000 0x1000>;