You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/nrf/app_dev/device_guides/nrf54h/ug_nrf54h20_architecture_clockman.rst
+35Lines changed: 35 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -112,3 +112,38 @@ For more details, see the following links:
112
112
113
113
* ``DT_CLOCKS_CTLR_BY_IDX()``: Gets the node identifier for the controller phandle from a *clocks* phandle-array property at an index.
114
114
* ``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