Browse Source
Add configuration and feedback implementation necessary to run UAC2 samples on nRF54H20. Limit nRF54H20 to Full-Speed only operation because the samples currently don't have necessary logic to support High-Speed. Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>pull/91613/merge
11 changed files with 253 additions and 21 deletions
@ -0,0 +1,8 @@ |
|||||||
|
# Enable timer for asynchronous feedback |
||||||
|
CONFIG_NRFX_GPPI=y |
||||||
|
CONFIG_NRFX_TIMER131=y |
||||||
|
CONFIG_NRFX_GPIOTE130=y |
||||||
|
|
||||||
|
# Sample is Full-Speed only, prevent High-Speed enumeration |
||||||
|
CONFIG_UDC_DRIVER_HIGH_SPEED_SUPPORT_ENABLED=n |
||||||
|
CONFIG_USBD_MAX_SPEED_FULL=y |
@ -0,0 +1,72 @@ |
|||||||
|
/* |
||||||
|
* Copyright (c) 2025 Nordic Semiconductor ASA |
||||||
|
* |
||||||
|
* SPDX-License-Identifier: Apache-2.0 |
||||||
|
*/ |
||||||
|
|
||||||
|
#include "../app.overlay" |
||||||
|
|
||||||
|
&pinctrl { |
||||||
|
tdm130_default_alt: tdm130_default_alt { |
||||||
|
group1 { |
||||||
|
psels = <NRF_PSEL(TDM_SCK_M, 1, 3)>, |
||||||
|
<NRF_PSEL(TDM_FSYNC_M, 1, 6)>, |
||||||
|
<NRF_PSEL(TDM_SDOUT, 1, 4)>; |
||||||
|
}; |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
i2s_tx: &tdm130 { |
||||||
|
status = "okay"; |
||||||
|
pinctrl-0 = <&tdm130_default_alt>; |
||||||
|
pinctrl-names = "default"; |
||||||
|
memory-regions = <&cpuapp_dma_region>; |
||||||
|
mck-clock-source = "ACLK"; |
||||||
|
sck-clock-source = "ACLK"; |
||||||
|
}; |
||||||
|
|
||||||
|
&audiopll { |
||||||
|
frequency = <NRFS_AUDIOPLL_FREQ_AUDIO_48K>; |
||||||
|
status = "okay"; |
||||||
|
}; |
||||||
|
|
||||||
|
&cpuapp_dma_region { |
||||||
|
status = "okay"; |
||||||
|
}; |
||||||
|
|
||||||
|
/* PPI channel 0 for TDM130 MAXCNT */ |
||||||
|
&dppic132 { |
||||||
|
compatible = "nordic,nrf-dppic-global"; |
||||||
|
owned-channels = <0>; |
||||||
|
source-channels = <0>; |
||||||
|
nonsecure-channels = <0>; |
||||||
|
status = "okay"; |
||||||
|
}; |
||||||
|
|
||||||
|
/* PPI channel 1 for GPIOTE used for feedback in edge counter mode */ |
||||||
|
&gpiote130 { |
||||||
|
status = "okay"; |
||||||
|
owned-channels = <1>; |
||||||
|
}; |
||||||
|
|
||||||
|
/* GPIOTE130 and TDM130 PPI needs routing to TIMER131 through main APB */ |
||||||
|
&dppic130 { |
||||||
|
compatible = "nordic,nrf-dppic-global"; |
||||||
|
owned-channels = <0 1>; |
||||||
|
sink-channels = <0 1>; |
||||||
|
source-channels = <0 1>; |
||||||
|
nonsecure-channels = <0 1>; |
||||||
|
status = "okay"; |
||||||
|
}; |
||||||
|
|
||||||
|
/* TIMER131 PPI channel 2 is used for SOF */ |
||||||
|
&dppic133 { |
||||||
|
compatible = "nordic,nrf-dppic-global"; |
||||||
|
owned-channels = <0 1 2>; |
||||||
|
sink-channels = <0 1 2>; |
||||||
|
status = "okay"; |
||||||
|
}; |
||||||
|
|
||||||
|
&timer131 { |
||||||
|
status = "okay"; |
||||||
|
}; |
@ -0,0 +1,7 @@ |
|||||||
|
# Enable timer for asynchronous feedback |
||||||
|
CONFIG_NRFX_GPPI=y |
||||||
|
CONFIG_NRFX_TIMER131=y |
||||||
|
|
||||||
|
# Sample is Full-Speed only, prevent High-Speed enumeration |
||||||
|
CONFIG_UDC_DRIVER_HIGH_SPEED_SUPPORT_ENABLED=n |
||||||
|
CONFIG_USBD_MAX_SPEED_FULL=y |
@ -0,0 +1,67 @@ |
|||||||
|
/* |
||||||
|
* Copyright (c) 2025 Nordic Semiconductor ASA |
||||||
|
* |
||||||
|
* SPDX-License-Identifier: Apache-2.0 |
||||||
|
*/ |
||||||
|
|
||||||
|
#include "../app.overlay" |
||||||
|
|
||||||
|
&pinctrl { |
||||||
|
tdm130_default_alt: tdm130_default_alt { |
||||||
|
group1 { |
||||||
|
psels = <NRF_PSEL(TDM_SCK_M, 1, 3)>, |
||||||
|
<NRF_PSEL(TDM_FSYNC_M, 1, 6)>, |
||||||
|
<NRF_PSEL(TDM_SDOUT, 1, 4)>, |
||||||
|
<NRF_PSEL(TDM_SDIN, 1, 5)>; |
||||||
|
}; |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
i2s_rxtx: &tdm130 { |
||||||
|
status = "okay"; |
||||||
|
pinctrl-0 = <&tdm130_default_alt>; |
||||||
|
pinctrl-names = "default"; |
||||||
|
memory-regions = <&cpuapp_dma_region>; |
||||||
|
mck-clock-source = "ACLK"; |
||||||
|
sck-clock-source = "ACLK"; |
||||||
|
}; |
||||||
|
|
||||||
|
&audiopll { |
||||||
|
frequency = <NRFS_AUDIOPLL_FREQ_AUDIO_48K>; |
||||||
|
status = "okay"; |
||||||
|
}; |
||||||
|
|
||||||
|
&cpuapp_dma_region { |
||||||
|
status = "okay"; |
||||||
|
}; |
||||||
|
|
||||||
|
/* PPI channel 0 for TDM130 MAXCNT */ |
||||||
|
&dppic132 { |
||||||
|
compatible = "nordic,nrf-dppic-global"; |
||||||
|
owned-channels = <0>; |
||||||
|
source-channels = <0>; |
||||||
|
nonsecure-channels = <0>; |
||||||
|
status = "okay"; |
||||||
|
}; |
||||||
|
|
||||||
|
/* TDM130 PPI needs routing to TIMER131 through main APB */ |
||||||
|
&dppic130 { |
||||||
|
compatible = "nordic,nrf-dppic-global"; |
||||||
|
owned-channels = <0>; |
||||||
|
sink-channels = <0>; |
||||||
|
source-channels = <0>; |
||||||
|
nonsecure-channels = <0>; |
||||||
|
status = "okay"; |
||||||
|
}; |
||||||
|
|
||||||
|
/* TIMER131 PPI channel 1 is used for SOF */ |
||||||
|
&dppic133 { |
||||||
|
compatible = "nordic,nrf-dppic-global"; |
||||||
|
owned-channels = <0 1>; |
||||||
|
sink-channels = <0 1>; |
||||||
|
status = "okay"; |
||||||
|
}; |
||||||
|
|
||||||
|
&timer131 { |
||||||
|
status = "okay"; |
||||||
|
}; |
Loading…
Reference in new issue