From 69b010b7c11883a40da512d98bfa0a16fa301d0c Mon Sep 17 00:00:00 2001 From: Adam Kondraciuk Date: Wed, 27 Nov 2024 16:06:44 +0100 Subject: [PATCH] [nrf fromlist] dts: nordic: nrf54: add TDM support for nRF54 Add TDM support for nRF54H20 and nRF54L20 Upstream PR #: 82144 Signed-off-by: Adam Kondraciuk --- dts/bindings/i2s/nordic,nrf-tdm.yaml | 48 ++++++++++++++++++++++++++++ dts/common/nordic/nrf54h20.dtsi | 28 ++++++++++++++++ dts/common/nordic/nrf54l20.dtsi | 19 +++++++++++ 3 files changed, 95 insertions(+) create mode 100644 dts/bindings/i2s/nordic,nrf-tdm.yaml diff --git a/dts/bindings/i2s/nordic,nrf-tdm.yaml b/dts/bindings/i2s/nordic,nrf-tdm.yaml new file mode 100644 index 00000000000..82f51147848 --- /dev/null +++ b/dts/bindings/i2s/nordic,nrf-tdm.yaml @@ -0,0 +1,48 @@ +# Copyright (c) 2024 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +description: Nordic TDM (Time division multiplexed audio interface) + +compatible: "nordic,nrf-tdm" + +include: [i2s-controller.yaml, pinctrl-device.yaml, nordic-clockpin.yaml, "memory-region.yaml"] + +properties: + reg: + required: true + + interrupts: + required: true + + mck-frequency: + type: int + description: | + Frequency of the MCK clock. Configured independently of SCK. + + pinctrl-0: + required: true + + pinctrl-names: + required: true + + easydma-maxcnt-bits: + type: int + required: true + description: | + Maximum number of bits available in the EasyDMA MAXCNT register. This + property must be set at SoC level DTS files. + + clock-source: + type: string + default: "PCLK" + description: | + Clock source to be used by the TDM peripheral. The following options + are available: + - "PCLK": Peripheral clock + - "ACLK": Audio PLL clock with configurable frequency (frequency for + this clock must be set via the "hfclkaudio-frequency" property + in the "nordic,nrf-clock" node); this clock source is only available + in the nRF53 Series SoCs and it requires the use of HFXO + enum: + - "PCLK" + - "ACLK" diff --git a/dts/common/nordic/nrf54h20.dtsi b/dts/common/nordic/nrf54h20.dtsi index 77b8dc9fb55..e2fee055c88 100644 --- a/dts/common/nordic/nrf54h20.dtsi +++ b/dts/common/nordic/nrf54h20.dtsi @@ -1491,6 +1491,34 @@ endtx-stoptx-supported; frame-timeout-supported; }; + + tdm130: tdm@992000 { + compatible = "nordic,nrf-tdm"; + easydma-maxcnt-bits = <15>; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x992000 0x1000>; + interrupts = <402 NRF_DEFAULT_IRQ_PRIORITY>; + status = "disabled"; + clocks = <&fll16m>; + power-domains = <&gpd NRF_GPD_SLOW_ACTIVE>; + nordic,clockpin-enable = , + ; + }; + + tdm131: tdm@997000 { + compatible = "nordic,nrf-tdm"; + easydma-maxcnt-bits = <15>; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x997000 0x1000>; + interrupts = <407 NRF_DEFAULT_IRQ_PRIORITY>; + status = "disabled"; + clocks = <&fll16m>; + power-domains = <&gpd NRF_GPD_SLOW_ACTIVE>; + nordic,clockpin-enable = , + ; + }; }; }; diff --git a/dts/common/nordic/nrf54l20.dtsi b/dts/common/nordic/nrf54l20.dtsi index a7f72bf5a30..0736c5239e8 100644 --- a/dts/common/nordic/nrf54l20.dtsi +++ b/dts/common/nordic/nrf54l20.dtsi @@ -41,6 +41,12 @@ clock-frequency = ; }; + pclk32m: pclk32m { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = ; + }; + lfxo: lfxo { compatible = "nordic,nrf-lfxo"; #clock-cells = <0>; @@ -645,6 +651,19 @@ frame-timeout-supported; }; + tdm: tdm@e8000 { + compatible = "nordic,nrf-tdm"; + easydma-maxcnt-bits = <15>; + #address-cells = <1>; + #size-cells = <0>; + reg = <0xe8000 0x1000>; + interrupts = <232 NRF_DEFAULT_IRQ_PRIORITY>; + status = "disabled"; + clocks = <&pclk32m>; + nordic,clockpin-enable = , + ; + }; + wdt30: watchdog@108000 { compatible = "nordic,nrf-wdt"; reg = <0x108000 0x620>;