Skip to content

Commit

Permalink
[nrf fromlist] dts: nordic: Add DPPIC and IPCT nodes to nRF54H20 EngA
Browse files Browse the repository at this point in the history
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 <[email protected]>
(cherry picked from commit ae33b354173ab96065abe69d26c73b8ebe30aeac)

Upstream PR: zephyrproject-rtos/zephyr#69811
  • Loading branch information
anangl authored and jfischer-no committed Mar 8, 2024
1 parent 157e483 commit cbe75dd
Show file tree
Hide file tree
Showing 11 changed files with 236 additions and 0 deletions.
File renamed without changes.
45 changes: 45 additions & 0 deletions dts/bindings/ipc/nordic,nrf-ipct-common.yaml
Original file line number Diff line number Diff line change
@@ -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>.
17 changes: 17 additions & 0 deletions dts/bindings/ipc/nordic,nrf-ipct-global.yaml
Original file line number Diff line number Diff line change
@@ -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.
12 changes: 12 additions & 0 deletions dts/bindings/ipc/nordic,nrf-ipct-local.yaml
Original file line number Diff line number Diff line change
@@ -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
18 changes: 18 additions & 0 deletions dts/bindings/misc/nordic,nrf-dppic-global.yaml
Original file line number Diff line number Diff line change
@@ -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"
17 changes: 17 additions & 0 deletions dts/bindings/misc/nordic,nrf-dppic-links.yaml
Original file line number Diff line number Diff line change
@@ -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.
13 changes: 13 additions & 0 deletions dts/bindings/misc/nordic,nrf-dppic-local.yaml
Original file line number Diff line number Diff line change
@@ -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"]
File renamed without changes.
File renamed without changes.
20 changes: 20 additions & 0 deletions dts/bindings/misc/nordic,split-channel-groups.yaml
Original file line number Diff line number Diff line change
@@ -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.
94 changes: 94 additions & 0 deletions dts/common/nordic/nrf54h20_enga.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -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;

/ {
Expand Down Expand Up @@ -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 {
Expand All @@ -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>;
Expand Down Expand Up @@ -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>;
Expand Down Expand Up @@ -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>;
Expand Down Expand Up @@ -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>;
Expand All @@ -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>;
Expand All @@ -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>;
Expand Down Expand Up @@ -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>;
Expand Down Expand Up @@ -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>;
Expand Down Expand Up @@ -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>;
Expand Down

0 comments on commit cbe75dd

Please sign in to comment.