- 
                Notifications
    
You must be signed in to change notification settings  - Fork 8.2k
 
modules: hal_nordic: Add multi-instance DPPI and PPIB drivers #79857
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
7d0bb13
              5493079
              9e1fe34
              ab861fd
              895b8bc
              File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | 
|---|---|---|
| 
          
            
          
           | 
    @@ -30,71 +30,85 @@ config NRFX_DPPI | |
| 
     | 
||
| config NRFX_DPPI0 | ||
| bool "DPPI0 driver instance" | ||
| default y if NRFX_GPPI | ||
| depends on $(dt_nodelabel_has_compat,dppic,$(DT_COMPAT_NORDIC_NRF_DPPIC)) | ||
| 
         There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think that for consistency it would be good to use  There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm reluctant to changing labels of nodes that existed for years, as it might break compatibility somewhere for no good reason really. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You can extend the existing nodelabel like this: in devicetree and update  to keep backward compatibility There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I haven't suggested changing a label but adding another one:  There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'll address this in a follow up commit then. I want to avoid adding more changes here, as it will block further activities related to nrfx v3.9.  | 
||
| select NRFX_DPPI | ||
| 
     | 
||
| config NRFX_DPPI00 | ||
| bool "DPPI00 driver instance" | ||
| default y if NRFX_GPPI | ||
| depends on $(dt_nodelabel_has_compat,dppic00,$(DT_COMPAT_NORDIC_NRF_DPPIC)) | ||
| select NRFX_DPPI | ||
| 
     | 
||
| config NRFX_DPPI10 | ||
| bool "DPPI10 driver instance" | ||
| default y if NRFX_GPPI | ||
| depends on $(dt_nodelabel_has_compat,dppic10,$(DT_COMPAT_NORDIC_NRF_DPPIC)) | ||
| select NRFX_DPPI | ||
| 
     | 
||
| config NRFX_DPPI20 | ||
| bool "DPPI20 driver instance" | ||
| default y if NRFX_GPPI | ||
| depends on $(dt_nodelabel_has_compat,dppic20,$(DT_COMPAT_NORDIC_NRF_DPPIC)) | ||
| select NRFX_DPPI | ||
| 
     | 
||
| config NRFX_DPPI30 | ||
| bool "DPPI30 driver instance" | ||
| default y if NRFX_GPPI | ||
| depends on $(dt_nodelabel_has_compat,dppic30,$(DT_COMPAT_NORDIC_NRF_DPPIC)) | ||
| select NRFX_DPPI | ||
| 
     | 
||
| config NRFX_DPPI020 | ||
| bool "DPPI020 driver instance" | ||
| default y if NRFX_GPPI | ||
| depends on $(dt_nodelabel_has_compat,dppic020,$(DT_COMPAT_NORDIC_NRF_DPPIC_LOCAL)) | ||
| select NRFX_DPPI | ||
| 
     | 
||
| config NRFX_DPPI120 | ||
| bool "DPPI120 driver instance" | ||
| default y if NRFX_GPPI | ||
| depends on $(dt_nodelabel_has_compat,dppic120,$(DT_COMPAT_NORDIC_NRF_DPPIC_GLOBAL)) | ||
| select NRFX_DPPI | ||
| 
     | 
||
| config NRFX_DPPI130 | ||
| bool "DPPI130 driver instance" | ||
| default y if NRFX_GPPI | ||
| depends on $(dt_nodelabel_has_compat,dppic130,$(DT_COMPAT_NORDIC_NRF_DPPIC_GLOBAL)) | ||
| select NRFX_DPPI | ||
| 
     | 
||
| config NRFX_DPPI131 | ||
| bool "DPPI131 driver instance" | ||
| default y if NRFX_GPPI | ||
| depends on $(dt_nodelabel_has_compat,dppic131,$(DT_COMPAT_NORDIC_NRF_DPPIC_GLOBAL)) | ||
| select NRFX_DPPI | ||
| 
     | 
||
| config NRFX_DPPI132 | ||
| bool "DPPI132 driver instance" | ||
| default y if NRFX_GPPI | ||
| depends on $(dt_nodelabel_has_compat,dppic132,$(DT_COMPAT_NORDIC_NRF_DPPIC_GLOBAL)) | ||
| select NRFX_DPPI | ||
| 
     | 
||
| config NRFX_DPPI133 | ||
| bool "DPPI133 driver instance" | ||
| default y if NRFX_GPPI | ||
| depends on $(dt_nodelabel_has_compat,dppic133,$(DT_COMPAT_NORDIC_NRF_DPPIC_GLOBAL)) | ||
| select NRFX_DPPI | ||
| 
     | 
||
| config NRFX_DPPI134 | ||
| bool "DPPI134 driver instance" | ||
| default y if NRFX_GPPI | ||
| depends on $(dt_nodelabel_has_compat,dppic134,$(DT_COMPAT_NORDIC_NRF_DPPIC_GLOBAL)) | ||
| select NRFX_DPPI | ||
| 
     | 
||
| config NRFX_DPPI135 | ||
| bool "DPPI135 driver instance" | ||
| default y if NRFX_GPPI | ||
| depends on $(dt_nodelabel_has_compat,dppic135,$(DT_COMPAT_NORDIC_NRF_DPPIC_GLOBAL)) | ||
| select NRFX_DPPI | ||
| 
     | 
||
| config NRFX_DPPI136 | ||
| bool "DPPI136 driver instance" | ||
| default y if NRFX_GPPI | ||
| depends on $(dt_nodelabel_has_compat,dppic136,$(DT_COMPAT_NORDIC_NRF_DPPIC_GLOBAL)) | ||
| select NRFX_DPPI | ||
| 
     | 
||
| 
          
            
          
           | 
    @@ -192,6 +206,12 @@ config NRFX_GPIOTE_NUM_OF_EVT_HANDLERS | |
| Specifies number of handlers that can be registered to nrfx_gpiote driver | ||
| by the user. | ||
| 
     | 
||
| config NRFX_GPPI | ||
| bool "Generic PPI layer" | ||
| help | ||
| Enable the nrfx_gppi utilities providing unified API for creating PPI | ||
| connections across SoC families. | ||
| 
     | 
||
| config NRFX_GRTC | ||
| bool "GRTC driver" | ||
| depends on $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_GRTC)) | ||
| 
          
            
          
           | 
    @@ -257,48 +277,57 @@ config NRFX_POWER | |
| 
     | 
||
| config NRFX_PPI | ||
| bool "PPI allocator" | ||
| default y if NRFX_GPPI | ||
| depends on $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_PPI)) | ||
| 
     | 
||
| config NRFX_PPIB | ||
| bool | ||
| 
     | 
||
| config NRFX_PPIB00 | ||
| bool "PPIB00 driver instance" | ||
| default y if NRFX_GPPI | ||
| depends on $(dt_nodelabel_has_compat,ppib00,$(DT_COMPAT_NORDIC_NRF_PPIB)) | ||
| select NRFX_PPIB | ||
| 
     | 
||
| config NRFX_PPIB01 | ||
| bool "PPIB01 driver instance" | ||
| default y if NRFX_GPPI | ||
| depends on $(dt_nodelabel_has_compat,ppib01,$(DT_COMPAT_NORDIC_NRF_PPIB)) | ||
| select NRFX_PPIB | ||
| 
     | 
||
| config NRFX_PPIB10 | ||
| bool "PPIB10 driver instance" | ||
| default y if NRFX_GPPI | ||
| depends on $(dt_nodelabel_has_compat,ppib10,$(DT_COMPAT_NORDIC_NRF_PPIB)) | ||
| select NRFX_PPIB | ||
| 
     | 
||
| config NRFX_PPIB11 | ||
| bool "PPIB11 driver instance" | ||
| default y if NRFX_GPPI | ||
| depends on $(dt_nodelabel_has_compat,ppib11,$(DT_COMPAT_NORDIC_NRF_PPIB)) | ||
| select NRFX_PPIB | ||
| 
     | 
||
| config NRFX_PPIB20 | ||
| bool "PPIB20 driver instance" | ||
| default y if NRFX_GPPI | ||
| depends on $(dt_nodelabel_has_compat,ppib20,$(DT_COMPAT_NORDIC_NRF_PPIB)) | ||
| select NRFX_PPIB | ||
| 
     | 
||
| config NRFX_PPIB21 | ||
| bool "PPIB21 driver instance" | ||
| default y if NRFX_GPPI | ||
| depends on $(dt_nodelabel_has_compat,ppib21,$(DT_COMPAT_NORDIC_NRF_PPIB)) | ||
| select NRFX_PPIB | ||
| 
     | 
||
| config NRFX_PPIB22 | ||
| bool "PPIB22 driver instance" | ||
| default y if NRFX_GPPI | ||
| depends on $(dt_nodelabel_has_compat,ppib22,$(DT_COMPAT_NORDIC_NRF_PPIB)) | ||
| select NRFX_PPIB | ||
| 
     | 
||
| config NRFX_PPIB30 | ||
| bool "PPIB30 driver instance" | ||
| default y if NRFX_GPPI | ||
| depends on $(dt_nodelabel_has_compat,ppib30,$(DT_COMPAT_NORDIC_NRF_PPIB)) | ||
| select NRFX_PPIB | ||
| 
     | 
||
| 
          
            
          
           | 
    ||
| Original file line number | Diff line number | Diff line change | 
|---|---|---|
| @@ -1,3 +1,4 @@ | ||
| CONFIG_GPIO=n | ||
| CONFIG_LOG=y | ||
| CONFIG_LOG_PROCESS_THREAD_SLEEP_MS=100 | ||
| CONFIG_NRFX_GPPI=y | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This does not seem to be necessary/beneficial.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you elaborate? Do you mean that
CONFIG_NRFX_GPPIkconfig is not beneficial or something else?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
NRFX_GPPIenablesNRFX_DPPI, so the change is not really needed. But it causes thatnrfx_gppi_dppi.cwill be compiled also forNRFX_PPI, unnecessarily.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is possible to enable NRFX_DPPI without enabling any GPPI functionality now. Also NRFX_GPPI does more, as it is unified across the SoC families. Regardless of whether working with nRF52 or nRF54L or anything else, NRFX_GPPI will enable everything that's needed.
I just noticed that that
NRFX_PPIin the next line should be replaced withNRFX_GPPIas well. I'll add this subsequent commit as well, if you don't mind.