From 71d0394752f1563e9b9fcac7762c59fe49b4a399 Mon Sep 17 00:00:00 2001 From: Kamil Serwus Date: Mon, 3 Apr 2023 18:34:40 +0200 Subject: [PATCH] sam: atsamc2x: dmac enable, fix uart-async Enable dmac driver for C2x in dtsi file. Fix tests for atsamc21n_xpro board by adding overlay. Signed-off-by: Kamil Serwus --- boards/arm/atsamc21n_xpro/atsamc21n_xpro.yaml | 1 + dts/arm/atmel/samc2x.dtsi | 7 +++++ .../boards/atsamc21n_xpro.overlay | 7 +++++ .../boards/atsamc21n_xpro.overlay | 7 +++++ .../boards/atsamc21n_xpro.overlay | 29 +++++++++++++++++++ .../drivers/uart/uart_async_api/testcase.yaml | 4 +-- 6 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 tests/drivers/dma/chan_blen_transfer/boards/atsamc21n_xpro.overlay create mode 100644 tests/drivers/dma/loop_transfer/boards/atsamc21n_xpro.overlay create mode 100644 tests/drivers/uart/uart_async_api/boards/atsamc21n_xpro.overlay diff --git a/boards/arm/atsamc21n_xpro/atsamc21n_xpro.yaml b/boards/arm/atsamc21n_xpro/atsamc21n_xpro.yaml index f9102d4c560..0d8fbeb75e1 100644 --- a/boards/arm/atsamc21n_xpro/atsamc21n_xpro.yaml +++ b/boards/arm/atsamc21n_xpro/atsamc21n_xpro.yaml @@ -12,6 +12,7 @@ toolchain: - xtools supported: - adc + - dma - gpio - i2c - pwm diff --git a/dts/arm/atmel/samc2x.dtsi b/dts/arm/atmel/samc2x.dtsi index b6e84c9e464..0ed9ddcb085 100644 --- a/dts/arm/atmel/samc2x.dtsi +++ b/dts/arm/atmel/samc2x.dtsi @@ -102,6 +102,13 @@ interrupts = <1 0>; }; + dmac: dmac@41006000 { + compatible = "atmel,sam0-dmac"; + reg = <0x41006000 0x50>; + interrupts = <7 0>; + #dma-cells = <2>; + }; + adc0: adc@42004400 { compatible = "atmel,sam0-adc"; status = "disabled"; diff --git a/tests/drivers/dma/chan_blen_transfer/boards/atsamc21n_xpro.overlay b/tests/drivers/dma/chan_blen_transfer/boards/atsamc21n_xpro.overlay new file mode 100644 index 00000000000..c2343bf0892 --- /dev/null +++ b/tests/drivers/dma/chan_blen_transfer/boards/atsamc21n_xpro.overlay @@ -0,0 +1,7 @@ +/* + * Copyright (c) 2022 Kumar Gala + * + * SPDX-License-Identifier: Apache-2.0 + */ + +test_dma0: &dmac { }; diff --git a/tests/drivers/dma/loop_transfer/boards/atsamc21n_xpro.overlay b/tests/drivers/dma/loop_transfer/boards/atsamc21n_xpro.overlay new file mode 100644 index 00000000000..c2343bf0892 --- /dev/null +++ b/tests/drivers/dma/loop_transfer/boards/atsamc21n_xpro.overlay @@ -0,0 +1,7 @@ +/* + * Copyright (c) 2022 Kumar Gala + * + * SPDX-License-Identifier: Apache-2.0 + */ + +test_dma0: &dmac { }; diff --git a/tests/drivers/uart/uart_async_api/boards/atsamc21n_xpro.overlay b/tests/drivers/uart/uart_async_api/boards/atsamc21n_xpro.overlay new file mode 100644 index 00000000000..071025938c1 --- /dev/null +++ b/tests/drivers/uart/uart_async_api/boards/atsamc21n_xpro.overlay @@ -0,0 +1,29 @@ +/* SPDX-License-Identifier: Apache-2.0 */ + +&dmac { + status = "okay"; +}; + +dut: &sercom0 { + /* Internally loop-back TX and RX on PAD0 */ + rxpo = <0>; + txpo = <0>; + + /* Configure DMA channels for async operation */ + dmas = <&dmac 0 0x02>, <&dmac 1 0x03>; + dma-names = "rx", "tx"; +}; + +&sercom2 { + status = "disabled"; +}; + +&sercom3 { + status = "disabled"; +}; + +&sercom4 { + /* configure DMA channels for async operation */ + dmas = <&dmac 10 0x0A>, <&dmac 11 0x0B>; + dma-names = "rx", "tx"; +}; diff --git a/tests/drivers/uart/uart_async_api/testcase.yaml b/tests/drivers/uart/uart_async_api/testcase.yaml index fdd03b3f7df..1a4b97d021f 100644 --- a/tests/drivers/uart/uart_async_api/testcase.yaml +++ b/tests/drivers/uart/uart_async_api/testcase.yaml @@ -1,9 +1,9 @@ common: platform_exclude: seeeduino_xiao serpente arduino_nano_33_iot atsamr21_xpro - adafruit_itsybitsy_m4_express atsame54_xpro atsamd21_xpro adafruit_trinket_m0 + adafruit_itsybitsy_m4_express atsame54_xpro atsamc21n_xpro adafruit_trinket_m0 arduino_nano_33_iot arduino_zero atsamd21_xpro adafruit_feather_m0_basic_proto adafruit_feather_m0_lora arduino_mkrzero atsaml21_xpro atsamr34_xpro stamp_c3 - wio_terminal xiao_esp32c3 + wio_terminal xiao_esp32c3 atsamd20_xpro xmc45_relax_kit tags: drivers uart tests: drivers.uart.async_api: