diff --git a/boards/silabs/dev_kits/sltb010a/sltb010a-pinctrl.dtsi b/boards/silabs/dev_kits/sltb010a/sltb010a-pinctrl.dtsi index 9e930284b12e9..f3ead2b73760e 100644 --- a/boards/silabs/dev_kits/sltb010a/sltb010a-pinctrl.dtsi +++ b/boards/silabs/dev_kits/sltb010a/sltb010a-pinctrl.dtsi @@ -23,6 +23,14 @@ }; }; + timer0_default: timer0_default { + group0 { + pins = ; + drive-push-pull; + output-high; + }; + }; + usart0_default: usart0_default { group0 { pins = , ; diff --git a/boards/silabs/dev_kits/sltb010a/sltb010a.dts b/boards/silabs/dev_kits/sltb010a/sltb010a.dts index 602ef95af048c..8e94c86a297a7 100644 --- a/boards/silabs/dev_kits/sltb010a/sltb010a.dts +++ b/boards/silabs/dev_kits/sltb010a/sltb010a.dts @@ -14,6 +14,7 @@ /* These aliases are provided for compatibility with samples */ aliases { led0 = &led0; + pwm-led0 = &pwm_led0; spi0 = &usart0; sw0 = &button0; watchdog0 = &wdog0; diff --git a/boards/silabs/dev_kits/sltb010a/sltb010a_0.yaml b/boards/silabs/dev_kits/sltb010a/sltb010a_0.yaml index fd679198dc93b..f85f435a4bbd4 100644 --- a/boards/silabs/dev_kits/sltb010a/sltb010a_0.yaml +++ b/boards/silabs/dev_kits/sltb010a/sltb010a_0.yaml @@ -14,6 +14,8 @@ supported: - uart - i2c - dma + - pwm - spi - clock_control + - watchdog vendor: silabs diff --git a/boards/silabs/dev_kits/sltb010a/sltb010a_2.overlay b/boards/silabs/dev_kits/sltb010a/sltb010a_2.overlay index ead0fc78f41be..2f52846d81b70 100644 --- a/boards/silabs/dev_kits/sltb010a/sltb010a_2.overlay +++ b/boards/silabs/dev_kits/sltb010a/sltb010a_2.overlay @@ -27,6 +27,10 @@ enable-gpios = <&gpioc 7 GPIO_ACTIVE_HIGH>; }; +&timer0_default { + pins = ; +}; + &exp_header { gpio-map = <3 0 &gpioa 8 0>, <4 0 &gpioc 0 0>, diff --git a/boards/silabs/dev_kits/sltb010a/sltb010a_2.yaml b/boards/silabs/dev_kits/sltb010a/sltb010a_2.yaml index fbd9f8c972445..139654299437a 100644 --- a/boards/silabs/dev_kits/sltb010a/sltb010a_2.yaml +++ b/boards/silabs/dev_kits/sltb010a/sltb010a_2.yaml @@ -14,5 +14,7 @@ supported: - uart - i2c - dma + - pwm - spi + - watchdog vendor: silabs diff --git a/boards/silabs/dev_kits/sltb010a/thunderboard.dtsi b/boards/silabs/dev_kits/sltb010a/thunderboard.dtsi index 664efbe178123..480f9dd81ef2c 100644 --- a/boards/silabs/dev_kits/sltb010a/thunderboard.dtsi +++ b/boards/silabs/dev_kits/sltb010a/thunderboard.dtsi @@ -5,6 +5,7 @@ */ #include +#include / { chosen { @@ -25,6 +26,15 @@ }; }; + pwmleds { + compatible = "pwm-leds"; + + pwm_led0: pwm_led_0 { + pwms = <&timer0_pwm 0 PWM_MSEC(20) PWM_POLARITY_NORMAL>; + label = "PWM LED 0"; + }; + }; + buttons { compatible = "gpio-keys"; @@ -74,6 +84,16 @@ swo-ref-frequency = ; }; +&timer0 { + status = "okay"; + + timer0_pwm: pwm { + pinctrl-0 = <&timer0_default>; + pinctrl-names = "default"; + status = "okay"; + }; +}; + &usart0 { pinctrl-0 = <&usart0_default>; pinctrl-names = "default"; diff --git a/boards/silabs/dev_kits/xg24_dk2601b/xg24_dk2601b.dts b/boards/silabs/dev_kits/xg24_dk2601b/xg24_dk2601b.dts index 3d30acb7e2be8..42fec3949ed90 100644 --- a/boards/silabs/dev_kits/xg24_dk2601b/xg24_dk2601b.dts +++ b/boards/silabs/dev_kits/xg24_dk2601b/xg24_dk2601b.dts @@ -32,6 +32,9 @@ pwm-led0 = &red_pwm_led; pwm-led1 = &green_pwm_led; pwm-led2 = &blue_pwm_led; + red-pwm-led = &red_pwm_led; + green-pwm-led = &green_pwm_led; + blue-pwm-led = &blue_pwm_led; sw0 = &button0; sw1 = &button1; watchdog0 = &wdog0; diff --git a/boards/silabs/dev_kits/xg24_dk2601b/xg24_dk2601b.yaml b/boards/silabs/dev_kits/xg24_dk2601b/xg24_dk2601b.yaml index 70aa8f6263897..4ccec71e88e53 100644 --- a/boards/silabs/dev_kits/xg24_dk2601b/xg24_dk2601b.yaml +++ b/boards/silabs/dev_kits/xg24_dk2601b/xg24_dk2601b.yaml @@ -18,6 +18,7 @@ supported: - comparator - adc - dac + - pwm testing: ignore_tags: - pm diff --git a/boards/silabs/dev_kits/xg24_ek2703a/xg24_ek2703a-pinctrl.dtsi b/boards/silabs/dev_kits/xg24_ek2703a/xg24_ek2703a-pinctrl.dtsi index cf81ff6990a64..b4bfbac2256d1 100644 --- a/boards/silabs/dev_kits/xg24_ek2703a/xg24_ek2703a-pinctrl.dtsi +++ b/boards/silabs/dev_kits/xg24_ek2703a/xg24_ek2703a-pinctrl.dtsi @@ -15,6 +15,12 @@ }; }; + iadc0_default: iadc0_default { + group0 { + silabs,analog-bus = ; + }; + }; + i2c0_default: i2c0_default { group0 { pins = , ; @@ -31,6 +37,14 @@ }; }; + timer0_default: timer0_default { + group0 { + pins = , ; + drive-push-pull; + output-high; + }; + }; + usart0_default: usart0_default { group0 { pins = ; @@ -44,4 +58,10 @@ silabs,input-filter; }; }; + + vdac0_default: vdac0_default { + group0 { + silabs,analog-bus = ; + }; + }; }; diff --git a/boards/silabs/dev_kits/xg24_ek2703a/xg24_ek2703a.dts b/boards/silabs/dev_kits/xg24_ek2703a/xg24_ek2703a.dts index 824f9aaaa4169..786dd03f9716f 100644 --- a/boards/silabs/dev_kits/xg24_ek2703a/xg24_ek2703a.dts +++ b/boards/silabs/dev_kits/xg24_ek2703a/xg24_ek2703a.dts @@ -6,7 +6,10 @@ /dts-v1/; #include +#include +#include #include +#include #include #include "xg24_ek2703a-pinctrl.dtsi" @@ -27,6 +30,8 @@ aliases { led0 = &led0; led1 = &led1; + pwm-led0 = &pwm_led0; + pwm-led1 = &pwm_led1; sw0 = &button0; sw1 = &button1; watchdog0 = &wdog0; @@ -44,6 +49,20 @@ }; }; + pwmleds { + compatible = "pwm-leds"; + + pwm_led0: pwm_led_0 { + pwms = <&timer0_pwm 0 PWM_MSEC(20) PWM_POLARITY_INVERTED>; + label = "PWM LED 0"; + }; + + pwm_led1: pwm_led_1 { + pwms = <&timer0_pwm 1 PWM_MSEC(20) PWM_POLARITY_INVERTED>; + label = "PWM LED 1"; + }; + }; + buttons { compatible = "gpio-keys"; @@ -57,6 +76,13 @@ zephyr,code = ; }; }; + + mikrobus_adc: mikrobus_dac: zephyr,user { + io-channels = <&adc0 0>; + dac = <&vdac0>; + dac-channel-id = <0>; + dac-resolution = <12>; + }; }; &cpu0 { @@ -124,6 +150,16 @@ status = "okay"; }; +&timer0 { + status = "okay"; + + timer0_pwm: pwm { + pinctrl-0 = <&timer0_default>; + pinctrl-names = "default"; + status = "okay"; + }; +}; + &gpio { status = "okay"; }; @@ -193,11 +229,33 @@ }; &adc0 { + pinctrl-0 = <&iadc0_default>; + pinctrl-names = "default"; + #address-cells = <1>; + #size-cells = <0>; status = "okay"; + + channel@0 { + reg = <0>; + zephyr,acquisition-time = ; + zephyr,gain = "ADC_GAIN_1"; + zephyr,input-positive = ; + zephyr,reference = "ADC_REF_VDD_1"; + zephyr,resolution = <12>; + zephyr,vref-mv = <3300>; + }; }; &vdac0 { + pinctrl-0 = <&vdac0_default>; + pinctrl-names = "default"; + voltage-reference = "AVDD"; status = "okay"; + + channel@0 { + reg = <0>; + aux-output = ; + }; }; &vdac1 { diff --git a/boards/silabs/dev_kits/xg24_ek2703a/xg24_ek2703a.yaml b/boards/silabs/dev_kits/xg24_ek2703a/xg24_ek2703a.yaml index e5c360b43a602..3c4c784a05ebc 100644 --- a/boards/silabs/dev_kits/xg24_ek2703a/xg24_ek2703a.yaml +++ b/boards/silabs/dev_kits/xg24_ek2703a/xg24_ek2703a.yaml @@ -8,6 +8,7 @@ toolchain: - zephyr - gnuarmemb supported: + - adc - bluetooth - counter - gpio @@ -16,6 +17,7 @@ supported: - clock_control - comparator - dac + - pwm testing: ignore_tags: - pm diff --git a/boards/silabs/dev_kits/xg27_dk2602a/thunderboard.dtsi b/boards/silabs/dev_kits/xg27_dk2602a/thunderboard.dtsi index 90dad770149ca..69b6caab224d2 100644 --- a/boards/silabs/dev_kits/xg27_dk2602a/thunderboard.dtsi +++ b/boards/silabs/dev_kits/xg27_dk2602a/thunderboard.dtsi @@ -5,6 +5,7 @@ */ #include +#include / { chosen { @@ -25,6 +26,15 @@ }; }; + pwmleds { + compatible = "pwm-leds"; + + pwm_led0: pwm_led_0 { + pwms = <&timer0_pwm 0 PWM_MSEC(20) PWM_POLARITY_NORMAL>; + label = "PWM LED 0"; + }; + }; + buttons { compatible = "gpio-keys"; @@ -88,6 +98,16 @@ swo-ref-frequency = ; }; +&timer0 { + status = "okay"; + + timer0_pwm: pwm { + pinctrl-0 = <&timer0_default>; + pinctrl-names = "default"; + status = "okay"; + }; +}; + &usart0 { status = "okay"; pinctrl-0 = <&usart0_default>; diff --git a/boards/silabs/dev_kits/xg27_dk2602a/xg27_dk2602a-pinctrl.dtsi b/boards/silabs/dev_kits/xg27_dk2602a/xg27_dk2602a-pinctrl.dtsi index 3d91497a84038..18a687c1695b4 100644 --- a/boards/silabs/dev_kits/xg27_dk2602a/xg27_dk2602a-pinctrl.dtsi +++ b/boards/silabs/dev_kits/xg27_dk2602a/xg27_dk2602a-pinctrl.dtsi @@ -31,6 +31,14 @@ }; }; + timer0_default: timer0_default { + group0 { + pins = ; + drive-push-pull; + output-low; + }; + }; + usart0_default: usart0_default { group0 { pins = , ; diff --git a/boards/silabs/dev_kits/xg27_dk2602a/xg27_dk2602a.dts b/boards/silabs/dev_kits/xg27_dk2602a/xg27_dk2602a.dts index 6381cb8b4170d..e8d6268f288c1 100644 --- a/boards/silabs/dev_kits/xg27_dk2602a/xg27_dk2602a.dts +++ b/boards/silabs/dev_kits/xg27_dk2602a/xg27_dk2602a.dts @@ -18,6 +18,7 @@ /* These aliases are provided for compatibility with samples */ aliases { led0 = &led0; + pwm-led0 = &pwm_led0; spi0 = &usart0; sw0 = &button0; watchdog0 = &wdog0; diff --git a/boards/silabs/dev_kits/xg27_dk2602a/xg27_dk2602a.yaml b/boards/silabs/dev_kits/xg27_dk2602a/xg27_dk2602a.yaml index 73d0ba0dc8d69..85fc88413e012 100644 --- a/boards/silabs/dev_kits/xg27_dk2602a/xg27_dk2602a.yaml +++ b/boards/silabs/dev_kits/xg27_dk2602a/xg27_dk2602a.yaml @@ -16,5 +16,6 @@ supported: - clock_control - comparator - adc + - pwm - watchdog vendor: silabs diff --git a/boards/silabs/explorer_kits/xg22/bg22_ek4108a.yaml b/boards/silabs/explorer_kits/xg22/bg22_ek4108a.yaml index 69df78c027785..a57fa9bfc8d48 100644 --- a/boards/silabs/explorer_kits/xg22/bg22_ek4108a.yaml +++ b/boards/silabs/explorer_kits/xg22/bg22_ek4108a.yaml @@ -8,6 +8,7 @@ toolchain: - zephyr - gnuarmemb supported: + - adc - bluetooth - counter - gpio @@ -18,6 +19,7 @@ supported: - i2c - dma - spi + - pwm testing: ignore_tags: - pm diff --git a/boards/silabs/explorer_kits/xg22/xg22_ek2710a.yaml b/boards/silabs/explorer_kits/xg22/xg22_ek2710a.yaml index ed8b28059a08e..103883506f567 100644 --- a/boards/silabs/explorer_kits/xg22/xg22_ek2710a.yaml +++ b/boards/silabs/explorer_kits/xg22/xg22_ek2710a.yaml @@ -8,6 +8,7 @@ toolchain: - zephyr - gnuarmemb supported: + - adc - bluetooth - counter - gpio diff --git a/boards/silabs/radio_boards/xg29_rb4412a/xg29_rb4412a.yaml b/boards/silabs/radio_boards/xg29_rb4412a/xg29_rb4412a.yaml index dbb61719e50a4..454c7c807ff50 100644 --- a/boards/silabs/radio_boards/xg29_rb4412a/xg29_rb4412a.yaml +++ b/boards/silabs/radio_boards/xg29_rb4412a/xg29_rb4412a.yaml @@ -11,6 +11,7 @@ supported: - adc - bluetooth - comparator + - counter - dma - entropy - gpio diff --git a/drivers/spi/spi_silabs_siwx91x_gspi.c b/drivers/spi/spi_silabs_siwx91x_gspi.c index 1ff4723c44b43..9f18b7ce45525 100644 --- a/drivers/spi/spi_silabs_siwx91x_gspi.c +++ b/drivers/spi/spi_silabs_siwx91x_gspi.c @@ -24,8 +24,6 @@ LOG_MODULE_REGISTER(spi_siwx91x_gspi, CONFIG_SPI_LOG_LEVEL); #include "spi_context.h" -#define GSPI_MAX_BAUDRATE_FOR_DYNAMIC_CLOCK 110000000 -#define GSPI_MAX_BAUDRATE_FOR_POS_EDGE_SAMPLE 40000000 #define GSPI_DMA_MAX_DESCRIPTOR_TRANSFER_SIZE 4096 #define SPI_HIGH_BURST_FREQ_THRESHOLD_HZ 10000000 @@ -77,27 +75,17 @@ static bool spi_siwx91x_is_dma_enabled_instance(const struct device *dev) #endif } -void gspi_siwx91x_pick_lower_freq(uint32_t clock_hz, uint32_t requested_hz, uint32_t *actual_hz_out, - uint32_t *div_out) +static uint32_t gspi_siwx91x_get_divider(uint32_t clock_hz, uint32_t requested_hz) { - /* Calculate divider that ensures freq <= requested */ uint32_t divider = DIV_ROUND_UP(clock_hz, 2 * requested_hz); - uint32_t actual_hz; + uint32_t actual_freq = clock_hz / (2U * divider); - if (divider == 0U) { - divider = 1U; + if (requested_hz != actual_freq) { + LOG_INF("Requested %u Hz, programmed %u Hz (divider=%u)", + requested_hz, actual_freq, divider); } - /* Compute the actual achievable frequency */ - actual_hz = clock_hz / (2U * divider); - - if (actual_hz_out) { - *actual_hz_out = actual_hz; - } - - if (div_out) { - *div_out = divider; - } + return divider; } static int gspi_siwx91x_config(const struct device *dev, const struct spi_config *spi_cfg, @@ -105,9 +93,6 @@ static int gspi_siwx91x_config(const struct device *dev, const struct spi_config { __maybe_unused struct gspi_siwx91x_data *data = dev->data; const struct gspi_siwx91x_config *cfg = dev->config; - uint32_t bit_rate = spi_cfg->frequency; - uint32_t clk_div_factor; - uint32_t actual_freq; uint32_t clock_rate; int ret; __maybe_unused int channel_filter; @@ -137,34 +122,11 @@ static int gspi_siwx91x_config(const struct device *dev, const struct spi_config } /* Configure clock divider based on the requested bit rate */ - if (bit_rate > GSPI_MAX_BAUDRATE_FOR_DYNAMIC_CLOCK) { - clk_div_factor = 1; - } else { - ret = clock_control_get_rate(cfg->clock_dev, cfg->clock_subsys, &clock_rate); - if (ret) { - return ret; - } - - gspi_siwx91x_pick_lower_freq(clock_rate, spi_cfg->frequency, &actual_freq, - &clk_div_factor); - if (spi_cfg->frequency != actual_freq) { - LOG_INF("Requested %u Hz, programmed %u Hz (divider=%u)", - spi_cfg->frequency, actual_freq, clk_div_factor); - } - } - - if (clk_div_factor < 1) { - cfg->reg->GSPI_CLK_CONFIG_b.GSPI_CLK_EN = 1; - cfg->reg->GSPI_CLK_CONFIG_b.GSPI_CLK_SYNC = 1; - } - - /* Configure data sampling edge for high-speed transfers */ - if (bit_rate > GSPI_MAX_BAUDRATE_FOR_POS_EDGE_SAMPLE) { - cfg->reg->GSPI_BUS_MODE_b.GSPI_DATA_SAMPLE_EDGE = 1; + ret = clock_control_get_rate(cfg->clock_dev, cfg->clock_subsys, &clock_rate); + if (ret) { + return ret; } - - /* Set the clock divider factor */ - cfg->reg->GSPI_CLK_DIV = clk_div_factor; + cfg->reg->GSPI_CLK_DIV = gspi_siwx91x_get_divider(clock_rate, spi_cfg->frequency); /* Configure SPI clock mode */ if ((spi_cfg->operation & (SPI_MODE_CPOL | SPI_MODE_CPHA)) == 0) { @@ -627,7 +589,7 @@ static int gspi_siwx91x_transceive(const struct device *dev, const struct spi_co spi_callback_t cb, void *userdata) { struct gspi_siwx91x_data *data = dev->data; - int ret = 0; + int ret; ret = pm_device_runtime_get(dev); if (ret < 0) { @@ -636,40 +598,38 @@ static int gspi_siwx91x_transceive(const struct device *dev, const struct spi_co if (!spi_siwx91x_is_dma_enabled_instance(dev) && asynchronous) { ret = -ENOTSUP; - pm_device_runtime_put(dev); - return ret; + goto pm; } spi_context_lock(&data->ctx, asynchronous, cb, userdata, config); - /* Configure the device if it is not already configured */ if (!spi_context_configured(&data->ctx, config)) { ret = gspi_siwx91x_config(dev, config, cb, userdata); if (ret) { - spi_context_release(&data->ctx, ret); - pm_device_runtime_put(dev); - return ret; + goto context; } } spi_context_buffers_setup(&data->ctx, tx_bufs, rx_bufs, SPI_WORD_SIZE_GET(config->operation) / 8); - /* Check if DMA is enabled */ if (spi_siwx91x_is_dma_enabled_instance(dev)) { - /* Perform DMA transceive */ ret = gspi_siwx91x_transceive_dma(dev, config); - if (ret < 0) { - pm_device_runtime_put(dev); - } - spi_context_release(&data->ctx, ret); } else { - /* Perform synchronous polling transceive */ ret = gspi_siwx91x_transceive_polling_sync(dev, &data->ctx); - spi_context_unlock_unconditionally(&data->ctx); - pm_device_runtime_put(dev); } + if (spi_siwx91x_is_dma_enabled_instance(dev) && !ret) { + /* pm_device_runtime_put(dev) is called from the dma callback */ + spi_context_release(&data->ctx, ret); + return ret; + } + +context: + spi_context_release(&data->ctx, ret); +pm: + pm_device_runtime_put(dev); return ret; + } static int gspi_siwx91x_transceive_sync(const struct device *dev, const struct spi_config *config, diff --git a/samples/application_development/code_relocation_nocopy/linker_arm_nocopy.ld b/samples/application_development/code_relocation_nocopy/linker_arm_nocopy.ld index b1c0e64302bfd..dfbedce8599fe 100644 --- a/samples/application_development/code_relocation_nocopy/linker_arm_nocopy.ld +++ b/samples/application_development/code_relocation_nocopy/linker_arm_nocopy.ld @@ -68,8 +68,9 @@ * Add another fake portion of FLASH to simulate a secondary or external FLASH * that we can do XIP from. */ -#define EXTFLASH_ADDR 0x7000 -#define EXTFLASH_SIZE (CONFIG_FLASH_SIZE * 1K - EXTFLASH_ADDR) +#define EXTFLASH_OFFSET 0x9000 +#define EXTFLASH_ADDR (CONFIG_FLASH_BASE_ADDRESS + CONFIG_FLASH_LOAD_OFFSET + EXTFLASH_OFFSET) +#define EXTFLASH_SIZE (CONFIG_FLASH_SIZE * 1K - CONFIG_FLASH_LOAD_OFFSET - EXTFLASH_OFFSET) #endif diff --git a/samples/drivers/counter/alarm/sample.yaml b/samples/drivers/counter/alarm/sample.yaml index 1b4c34b9146f3..064284aa48873 100644 --- a/samples/drivers/counter/alarm/sample.yaml +++ b/samples/drivers/counter/alarm/sample.yaml @@ -49,6 +49,10 @@ tests: - s32z2xxdc2@D/s32z270/rtu0 - s32z2xxdc2@D/s32z270/rtu1 - lp_em_cc2340r5 + - slwrb4180b + - xg24_rb4187c + - xg27_rb4194a + - xg29_rb4412a integration_platforms: - nucleo_f746zg sample.drivers.counter.alarm.stm32_rtc: diff --git a/samples/drivers/counter/alarm/src/main.c b/samples/drivers/counter/alarm/src/main.c index bffa3fdd9a4f2..86c3257f451bc 100644 --- a/samples/drivers/counter/alarm/src/main.c +++ b/samples/drivers/counter/alarm/src/main.c @@ -48,7 +48,10 @@ struct counter_alarm_cfg alarm_cfg; #elif defined(CONFIG_COUNTER_GECKO_RTCC) #define TIMER DT_NODELABEL(rtcc0) #elif defined(CONFIG_COUNTER_GECKO_STIMER) -#define TIMER DT_NODELABEL(stimer0) +#ifdef TIMER +#undef TIMER +#endif +#define TIMER DT_CHOSEN(silabs_sleeptimer) #elif defined(CONFIG_COUNTER_INFINEON_CAT1) || defined(CONFIG_COUNTER_INFINEON_TCPWM) #define TIMER DT_NODELABEL(counter0_0) #elif defined(CONFIG_COUNTER_AMBIQ) diff --git a/samples/drivers/uart/async_api/boards/bg29_rb4420a.overlay b/samples/drivers/uart/async_api/boards/bg29_rb4420a.overlay new file mode 100644 index 0000000000000..e2c563243a166 --- /dev/null +++ b/samples/drivers/uart/async_api/boards/bg29_rb4420a.overlay @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2025 Silicon Laboratories Inc. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +&dma0 { + status = "okay"; +}; + +&usart1 { + dmas = <&dma0 DMA_REQSEL_USART1TXBL>, + <&dma0 DMA_REQSEL_USART1RXDATAV>; + dma-names = "tx", "rx"; +}; diff --git a/samples/drivers/uart/async_api/boards/slwrb4182a.overlay b/samples/drivers/uart/async_api/boards/slwrb4182a.overlay new file mode 100644 index 0000000000000..e2c563243a166 --- /dev/null +++ b/samples/drivers/uart/async_api/boards/slwrb4182a.overlay @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2025 Silicon Laboratories Inc. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +&dma0 { + status = "okay"; +}; + +&usart1 { + dmas = <&dma0 DMA_REQSEL_USART1TXBL>, + <&dma0 DMA_REQSEL_USART1RXDATAV>; + dma-names = "tx", "rx"; +}; diff --git a/samples/drivers/uart/async_api/boards/slwrb4311a.overlay b/samples/drivers/uart/async_api/boards/slwrb4311a.overlay new file mode 100644 index 0000000000000..e2c563243a166 --- /dev/null +++ b/samples/drivers/uart/async_api/boards/slwrb4311a.overlay @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2025 Silicon Laboratories Inc. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +&dma0 { + status = "okay"; +}; + +&usart1 { + dmas = <&dma0 DMA_REQSEL_USART1TXBL>, + <&dma0 DMA_REQSEL_USART1RXDATAV>; + dma-names = "tx", "rx"; +}; diff --git a/samples/drivers/uart/async_api/boards/xg24_rb4186c.overlay b/samples/drivers/uart/async_api/boards/xg24_rb4186c.overlay new file mode 100644 index 0000000000000..6473330b83cd4 --- /dev/null +++ b/samples/drivers/uart/async_api/boards/xg24_rb4186c.overlay @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2025 Silicon Laboratories Inc. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +&dma0 { + status = "okay"; +}; + +&usart0 { + dmas = <&dma0 DMA_REQSEL_USART0TXBL>, + <&dma0 DMA_REQSEL_USART0RXDATAV>; + dma-names = "tx", "rx"; +}; diff --git a/samples/drivers/uart/async_api/boards/xg24_rb4187c.overlay b/samples/drivers/uart/async_api/boards/xg24_rb4187c.overlay new file mode 100644 index 0000000000000..6473330b83cd4 --- /dev/null +++ b/samples/drivers/uart/async_api/boards/xg24_rb4187c.overlay @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2025 Silicon Laboratories Inc. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +&dma0 { + status = "okay"; +}; + +&usart0 { + dmas = <&dma0 DMA_REQSEL_USART0TXBL>, + <&dma0 DMA_REQSEL_USART0RXDATAV>; + dma-names = "tx", "rx"; +}; diff --git a/samples/drivers/uart/async_api/boards/xg27_rb4194a.overlay b/samples/drivers/uart/async_api/boards/xg27_rb4194a.overlay new file mode 100644 index 0000000000000..e2c563243a166 --- /dev/null +++ b/samples/drivers/uart/async_api/boards/xg27_rb4194a.overlay @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2025 Silicon Laboratories Inc. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +&dma0 { + status = "okay"; +}; + +&usart1 { + dmas = <&dma0 DMA_REQSEL_USART1TXBL>, + <&dma0 DMA_REQSEL_USART1RXDATAV>; + dma-names = "tx", "rx"; +}; diff --git a/samples/drivers/uart/async_api/boards/xg29_rb4412a.overlay b/samples/drivers/uart/async_api/boards/xg29_rb4412a.overlay new file mode 100644 index 0000000000000..e2c563243a166 --- /dev/null +++ b/samples/drivers/uart/async_api/boards/xg29_rb4412a.overlay @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2025 Silicon Laboratories Inc. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +&dma0 { + status = "okay"; +}; + +&usart1 { + dmas = <&dma0 DMA_REQSEL_USART1TXBL>, + <&dma0 DMA_REQSEL_USART1RXDATAV>; + dma-names = "tx", "rx"; +};