Skip to content

Commit f38d311

Browse files
FrancescoSerbjarki-andreasen
authored andcommitted
doc: Added GDFS to 54H clock Arch doc
Added GDFS to 54H clock Arch doc. Signed-off-by: Francesco Domenico Servidio <[email protected]>
1 parent 4825324 commit f38d311

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

doc/nrf/app_dev/device_guides/nrf54h/ug_nrf54h20_architecture_clockman.rst

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,3 +112,38 @@ For more details, see the following links:
112112

113113
* ``DT_CLOCKS_CTLR_BY_IDX()``: Gets the node identifier for the controller phandle from a *clocks* phandle-array property at an index.
114114
* ``DT_CLOCKS_CTLR()``: It is equivalent to ``DT_CLOCKS_CTLR_BY_IDX()`` with index (idx) set to 0.
115+
116+
Global Domain Frequency Scaling (GDFS)
117+
======================================
118+
119+
Global Domain Frequency Scaling (GDFS) is a backend service that allows one processing core to request configuration changes to the global HSFLL clock domain via the system controller firmware.
120+
121+
To use this feature, you can use the existing Zephyr clock control API without needing detailed knowledge of GDFS.
122+
Through the clock control API, when an application invokes standard clock control functions (such as ``clock_control_request()``), the system controller firmware automatically configures the global HSFLL clock as requested, with GDFS handling the communication and adjustments internally.
123+
124+
Direct interaction with GDFS
125+
----------------------------
126+
127+
You can also use GDFS in specialized scenarios, like implementing proprietary radio protocols or optimizing low-level performance, where you might want to use GDFS directly.
128+
For specialized applications, you have the option to work directly with the GDFS service by initializing IPC, setting up handlers, and issuing frequency requests as needed.
129+
In such cases, developers must:
130+
131+
1. Initialize the IPC backend.
132+
133+
GDFS relies on Interprocessor Communication (IPC) to exchange configuration requests and responses between the application core and the System Controller firmware (SCFW).
134+
Before invoking GDFS functions, the application must properly initialize the underlying IPC backend.
135+
136+
#. Initialize GDFS and configure handlers.
137+
138+
After the IPC setup, you can initialize GDFS by calling its initialization routine and providing a callback handler.
139+
This callback receives status responses whenever the application submits a request.
140+
If it is needed to modify the callback handler, you can uninitialize and reinitialize GDFS.
141+
142+
#. Request specific frequencies.
143+
144+
GDFS provides functions to request one of several supported HSFLL frequencies on the nRF54H20 SoC (specifically, 320 MHz, 256 MHz, 128 MHz, 64 MHz).
145+
When issuing such a request, you must include a context pointer passed directly to the callback handler.
146+
The handler then receives success or failure notifications.
147+
148+
You can find the header files in the :file:`modules/hal/nordic/nrfs` directory.
149+
Within this directory, :file:`nrf_gdfs.h` and related source files define the GDFS interface.

0 commit comments

Comments
 (0)