diff --git a/boards/renesas/rzg2l_smarc/rzg2l_smarc_r9a07g044l23gbg_cm33.dts b/boards/renesas/rzg2l_smarc/rzg2l_smarc_r9a07g044l23gbg_cm33.dts index 7dc022ec4272e..09195dc27cb5d 100644 --- a/boards/renesas/rzg2l_smarc/rzg2l_smarc_r9a07g044l23gbg_cm33.dts +++ b/boards/renesas/rzg2l_smarc/rzg2l_smarc_r9a07g044l23gbg_cm33.dts @@ -32,3 +32,7 @@ pinctrl-names = "default"; status = "okay"; }; + +&adc { + status = "okay"; +}; diff --git a/boards/renesas/rzg2l_smarc/rzg2l_smarc_r9a07g044l23gbg_cm33.yaml b/boards/renesas/rzg2l_smarc/rzg2l_smarc_r9a07g044l23gbg_cm33.yaml index f2f11f6f5d8c4..be87c483cbcb6 100644 --- a/boards/renesas/rzg2l_smarc/rzg2l_smarc_r9a07g044l23gbg_cm33.yaml +++ b/boards/renesas/rzg2l_smarc/rzg2l_smarc_r9a07g044l23gbg_cm33.yaml @@ -6,5 +6,6 @@ toolchain: - zephyr - gnuarmemb supported: + - adc - uart - gpio diff --git a/boards/renesas/rzg2ul_smarc/rzg2ul_smarc_r9a07g043u11gbg_cm33.dts b/boards/renesas/rzg2ul_smarc/rzg2ul_smarc_r9a07g043u11gbg_cm33.dts index 56d363e2fa54c..07d86b7c82c3c 100644 --- a/boards/renesas/rzg2ul_smarc/rzg2ul_smarc_r9a07g043u11gbg_cm33.dts +++ b/boards/renesas/rzg2ul_smarc/rzg2ul_smarc_r9a07g043u11gbg_cm33.dts @@ -23,3 +23,7 @@ reg = <0x60010000 DT_SIZE_M(46)>; }; }; + +&adc { + status = "okay"; +}; diff --git a/boards/renesas/rzg2ul_smarc/rzg2ul_smarc_r9a07g043u11gbg_cm33.yaml b/boards/renesas/rzg2ul_smarc/rzg2ul_smarc_r9a07g043u11gbg_cm33.yaml index c547a2c5385e2..39af63f176a4f 100644 --- a/boards/renesas/rzg2ul_smarc/rzg2ul_smarc_r9a07g043u11gbg_cm33.yaml +++ b/boards/renesas/rzg2ul_smarc/rzg2ul_smarc_r9a07g043u11gbg_cm33.yaml @@ -6,5 +6,6 @@ toolchain: - zephyr - gnuarmemb supported: + - adc - uart - gpio diff --git a/boards/renesas/rzt2l_rsk/rzt2l_rsk.dts b/boards/renesas/rzt2l_rsk/rzt2l_rsk.dts index 00fe010130d06..09fc814abcc7b 100644 --- a/boards/renesas/rzt2l_rsk/rzt2l_rsk.dts +++ b/boards/renesas/rzt2l_rsk/rzt2l_rsk.dts @@ -92,3 +92,11 @@ pinctrl-names = "default"; status = "okay"; }; + +&adc0 { + status = "okay"; +}; + +&adc1 { + status = "okay"; +}; diff --git a/boards/renesas/rzt2l_rsk/rzt2l_rsk.yaml b/boards/renesas/rzt2l_rsk/rzt2l_rsk.yaml index 6bfd1397438cd..7defad78999f9 100644 --- a/boards/renesas/rzt2l_rsk/rzt2l_rsk.yaml +++ b/boards/renesas/rzt2l_rsk/rzt2l_rsk.yaml @@ -8,6 +8,7 @@ arch: arm toolchain: - zephyr supported: + - adc - uart - gpio vendor: renesas diff --git a/boards/renesas/rzv2h_evk/rzv2h_evk_r9a09g057h44gbg_cm33.dts b/boards/renesas/rzv2h_evk/rzv2h_evk_r9a09g057h44gbg_cm33.dts index e9714ad044ba8..a3a287020d83b 100644 --- a/boards/renesas/rzv2h_evk/rzv2h_evk_r9a09g057h44gbg_cm33.dts +++ b/boards/renesas/rzv2h_evk/rzv2h_evk_r9a09g057h44gbg_cm33.dts @@ -65,3 +65,7 @@ status = "okay"; }; }; + +&adc0 { + status = "okay"; +}; diff --git a/boards/renesas/rzv2h_evk/rzv2h_evk_r9a09g057h44gbg_cm33.yaml b/boards/renesas/rzv2h_evk/rzv2h_evk_r9a09g057h44gbg_cm33.yaml index 9e45f21aa0469..a3a7af0896491 100644 --- a/boards/renesas/rzv2h_evk/rzv2h_evk_r9a09g057h44gbg_cm33.yaml +++ b/boards/renesas/rzv2h_evk/rzv2h_evk_r9a09g057h44gbg_cm33.yaml @@ -6,6 +6,7 @@ toolchain: - zephyr - gnuarmemb supported: + - adc - uart - gpio vendor: renesas diff --git a/boards/renesas/rzv2h_evk/rzv2h_evk_r9a09g057h44gbg_cr8_0.dts b/boards/renesas/rzv2h_evk/rzv2h_evk_r9a09g057h44gbg_cr8_0.dts index ecad70dc71657..e71ae240aff4f 100644 --- a/boards/renesas/rzv2h_evk/rzv2h_evk_r9a09g057h44gbg_cr8_0.dts +++ b/boards/renesas/rzv2h_evk/rzv2h_evk_r9a09g057h44gbg_cr8_0.dts @@ -63,3 +63,7 @@ status = "okay"; }; }; + +&adc0 { + status = "okay"; +}; diff --git a/boards/renesas/rzv2h_evk/rzv2h_evk_r9a09g057h44gbg_cr8_0.yaml b/boards/renesas/rzv2h_evk/rzv2h_evk_r9a09g057h44gbg_cr8_0.yaml index 1195932fbc850..f77f8956978a1 100644 --- a/boards/renesas/rzv2h_evk/rzv2h_evk_r9a09g057h44gbg_cr8_0.yaml +++ b/boards/renesas/rzv2h_evk/rzv2h_evk_r9a09g057h44gbg_cr8_0.yaml @@ -6,6 +6,7 @@ toolchain: - zephyr - gnuarmemb supported: + - adc - uart - gpio vendor: renesas diff --git a/boards/renesas/rzv2n_evk/rzv2n_evk_r9a09g056n48gbg_cm33.dts b/boards/renesas/rzv2n_evk/rzv2n_evk_r9a09g056n48gbg_cm33.dts index 9f560ddf782a4..71bb12193c4f5 100644 --- a/boards/renesas/rzv2n_evk/rzv2n_evk_r9a09g056n48gbg_cm33.dts +++ b/boards/renesas/rzv2n_evk/rzv2n_evk_r9a09g056n48gbg_cm33.dts @@ -69,3 +69,15 @@ &gpio0 { status = "okay"; }; + +&adc0 { + status = "okay"; +}; + +&adc1 { + status = "okay"; +}; + +&adc2 { + status = "okay"; +}; diff --git a/boards/renesas/rzv2n_evk/rzv2n_evk_r9a09g056n48gbg_cm33.yaml b/boards/renesas/rzv2n_evk/rzv2n_evk_r9a09g056n48gbg_cm33.yaml index 7bdedda75f7ed..9815bf9f3a325 100644 --- a/boards/renesas/rzv2n_evk/rzv2n_evk_r9a09g056n48gbg_cm33.yaml +++ b/boards/renesas/rzv2n_evk/rzv2n_evk_r9a09g056n48gbg_cm33.yaml @@ -6,6 +6,7 @@ toolchain: - zephyr - gnuarmemb supported: + - adc - uart - gpio vendor: renesas diff --git a/drivers/adc/CMakeLists.txt b/drivers/adc/CMakeLists.txt index 46158ec30d29a..edeb96c5e81c6 100644 --- a/drivers/adc/CMakeLists.txt +++ b/drivers/adc/CMakeLists.txt @@ -61,6 +61,7 @@ zephyr_library_sources_ifdef(CONFIG_ADC_RENESAS_RA adc_renesas_ra.c) zephyr_library_sources_ifdef(CONFIG_ADC_RENESAS_RX adc_renesas_rx.c) zephyr_library_sources_ifdef(CONFIG_ADC_RENESAS_RZ adc_renesas_rz.c) zephyr_library_sources_ifdef(CONFIG_ADC_RENESAS_RZ_ADC_C adc_renesas_rz.c) +zephyr_library_sources_ifdef(CONFIG_ADC_RENESAS_RZ_ADC_E adc_renesas_rz.c) zephyr_library_sources_ifdef(CONFIG_ADC_RPI_PICO adc_rpi_pico.c) zephyr_library_sources_ifdef(CONFIG_ADC_SAM adc_sam.c) zephyr_library_sources_ifdef(CONFIG_ADC_SAM0 adc_sam0.c) diff --git a/drivers/adc/Kconfig.renesas_rz b/drivers/adc/Kconfig.renesas_rz index a2840ca7d6e2b..c8a9892a3b110 100644 --- a/drivers/adc/Kconfig.renesas_rz +++ b/drivers/adc/Kconfig.renesas_rz @@ -15,6 +15,14 @@ config ADC_RENESAS_RZ_ADC_C bool "Renesas RZ ADC-C Driver" default y depends on DT_HAS_RENESAS_RZ_ADC_C_ENABLED - select USE_RZ_FSP_ADC + select USE_RZ_FSP_ADC_C help Enable the RZ ADC-C driver. + +config ADC_RENESAS_RZ_ADC_E + bool "Renesas RZ ADC-E Driver" + default y + depends on DT_HAS_RENESAS_RZ_ADC_E_ENABLED + select USE_RZ_FSP_ADC_E + help + Enable the RZ ADC-E driver. diff --git a/drivers/adc/adc_renesas_rz.c b/drivers/adc/adc_renesas_rz.c index 7690826989dfd..009abb7d635c1 100644 --- a/drivers/adc/adc_renesas_rz.c +++ b/drivers/adc/adc_renesas_rz.c @@ -17,6 +17,43 @@ typedef adc_c_instance_ctrl_t adc_instance_ctrl_t; typedef adc_c_extended_cfg_t adc_extended_cfg_t; void adc_c_scan_end_isr(void *irq); #define ADC_SCAN_END_ISR adc_c_scan_end_isr + +#elif defined(CONFIG_ADC_RENESAS_RZ_ADC_E) +#include "r_adc_e.h" +typedef adc_e_channel_cfg_t adc_channel_cfg_t; +typedef adc_e_instance_ctrl_t adc_instance_ctrl_t; +typedef adc_e_extended_cfg_t adc_extended_cfg_t; +void adc_e_scan_end_isr(void *irq); +#define ADC_SCAN_END_ISR adc_e_scan_end_isr +#if defined(CONFIG_SOC_SERIES_RZV2H) || defined(CONFIG_SOC_SERIES_RZV2N) +#define RZ_INTC_BASE DT_REG_ADDR(DT_NODELABEL(intc)) + +#ifdef CONFIG_CPU_CORTEX_M33 +#define RZ_INTM33SEL_ADDR_OFFSET 0x200 +#define RZ_INTC_INTSEL_BASE RZ_INTC_BASE + RZ_INTM33SEL_ADDR_OFFSET +#else /* CONFIG_CPU_CORTEX_R8 */ +#define RZ_INTR8SEL_ADDR_OFFSET 0x140 +#define RZ_INTC_INTSEL_BASE RZ_INTC_BASE + RZ_INTR8SEL_ADDR_OFFSET +#endif + +#define OFFSET(y) ((y) - 353 - COND_CODE_1(CONFIG_GIC, (GIC_SPI_INT_BASE), (0))) +#define REG_INTSEL_READ(y) sys_read32(RZ_INTC_INTSEL_BASE + (OFFSET(y) / 3) * 4) +#define REG_INTSEL_WRITE(y, v) sys_write32((v), RZ_INTC_INTSEL_BASE + (OFFSET(y) / 3) * 4) +#define REG_INTSEL_SPIk_SEL_MASK(y) (BIT_MASK(10) << ((OFFSET(y) % 3) * 10)) + +/** + * @brief Connect an @p irq number with an @p event + */ +static void intc_connect_irq_event(IRQn_Type irq, IRQSELn_Type event) +{ + uint32_t reg_val = REG_INTSEL_READ(irq); + + reg_val &= ~REG_INTSEL_SPIk_SEL_MASK(irq); + reg_val |= FIELD_PREP(REG_INTSEL_SPIk_SEL_MASK(irq), event); + REG_INTSEL_WRITE(irq, reg_val); +} +#endif /* CONFIG_SOC_SERIES_RZV2H || CONFIG_SOC_SERIES_RZV2N */ + #else /* CONFIG_ADC_RENESAS_RZ */ #include "r_adc.h" void adc_scan_end_isr(void *irq); @@ -62,6 +99,8 @@ struct adc_rz_data { uint16_t *buf; /** Mask with channels that will be sampled */ uint32_t channels; + /** Mask of channels that have been configured via setup API */ + uint32_t configured_channels; /** Buffer id */ uint16_t buf_id; }; @@ -79,12 +118,11 @@ struct adc_rz_data { static int adc_rz_channel_setup(const struct device *dev, const struct adc_channel_cfg *channel_cfg) { - fsp_err_t fsp_err = FSP_SUCCESS; struct adc_rz_data *data = dev->data; const struct adc_rz_config *config = dev->config; if (!((config->channel_available_mask & BIT(channel_cfg->channel_id)) != 0)) { - LOG_ERR("unsupported channel id '%d'", channel_cfg->channel_id); + LOG_ERR("Unsupported channel id '%d'", channel_cfg->channel_id); return -ENOTSUP; } @@ -100,20 +138,15 @@ static int adc_rz_channel_setup(const struct device *dev, const struct adc_chann if (channel_cfg->gain != ADC_GAIN_1) { LOG_ERR("Unsupported channel gain %d", channel_cfg->gain); - return -ENOTSUP; + return -EINVAL; } if (channel_cfg->reference != ADC_REF_INTERNAL) { LOG_ERR("Unsupported channel reference"); - return -ENOTSUP; + return -EINVAL; } - data->fsp_channel_cfg.scan_mask |= (1U << channel_cfg->channel_id); - /** Enable channels. */ - fsp_err = config->fsp_api->scanCfg(&data->fsp_ctrl, &data->fsp_channel_cfg); - if (FSP_SUCCESS != fsp_err) { - return -ENOTSUP; - } + data->configured_channels |= (1U << channel_cfg->channel_id); return 0; } @@ -193,23 +226,52 @@ static int adc_rz_start_read(const struct device *dev, const struct adc_sequence { const struct adc_rz_config *config = dev->config; struct adc_rz_data *data = dev->data; + fsp_err_t fsp_err; int err; + if (sequence->channels == 0) { + LOG_ERR("No channel to read"); + return -EINVAL; + } + if (sequence->resolution > ADC_RZ_MAX_RESOLUTION || sequence->resolution == 0) { - LOG_ERR("unsupported resolution %d", sequence->resolution); - return -ENOTSUP; + LOG_ERR("Unsupported resolution %d", sequence->resolution); + return -EINVAL; + } + + if (sequence->oversampling != 0) { + LOG_ERR("Oversampling is not supported"); + return -EINVAL; } if ((sequence->channels & ~config->channel_available_mask) != 0) { - LOG_ERR("unsupported channels in mask: 0x%08x", sequence->channels); + LOG_ERR("Unsupported channels in mask: 0x%08x", sequence->channels); return -ENOTSUP; } + + /* Check if channels have been configured via channel_setup */ + if ((sequence->channels & ~data->configured_channels) != 0) { + LOG_ERR("Attempted to read from unconfigured channels in mask: 0x%08x", + sequence->channels); + return -EINVAL; + } + err = adc_rz_check_buffer_size(dev, sequence); if (err) { LOG_ERR("buffer size too small"); return err; } + + data->fsp_channel_cfg.scan_mask = sequence->channels; + + /* Enable channels selected by the sequence */ + fsp_err = config->fsp_api->scanCfg(&data->fsp_ctrl, &data->fsp_channel_cfg); + + if (FSP_SUCCESS != fsp_err) { + return -ENOTSUP; + } + data->buf_id = 0; data->buf = sequence->buffer; adc_context_start_read(&data->ctx, sequence); @@ -348,6 +410,66 @@ static int adc_rz_init(const struct device *dev) #endif /* CONFIG_ADC_RENESAS_RZ_ADC_C */ +#if defined(CONFIG_SOC_SERIES_RZV2H) || defined(CONFIG_SOC_SERIES_RZV2N) +#define ADC_RZ_CONNECT_IRQ_EVENT(idx) \ + intc_connect_irq_event(DT_INST_IRQ_BY_NAME(idx, scanend, irq), \ + CONCAT(ADC, DT_INST_PROP(idx, unit), _ADA_ADIREQ_N_IRQSELn)) + +#else +#define ADC_RZ_CONNECT_IRQ_EVENT(idx) +#endif /* CONFIG_SOC_SERIES_RZV2H || CONFIG_SOC_SERIES_RZV2N */ + +#if defined(CONFIG_ADC_RENESAS_RZ_ADC_E) +#define ADC_RZ_EXTENDED_FSP_CFG(idx) \ + static const adc_extended_cfg_t g_adc##idx##_cfg_extend = { \ + .add_average_count = ADC_E_ADD_OFF, \ + .clearing = ADC_E_CLEAR_AFTER_READ_ON, \ + .trigger_group_b = ADC_TRIGGER_SYNC_ELC, \ + .double_trigger_mode = ADC_E_DOUBLE_TRIGGER_DISABLED, \ + .adc_start_trigger_a = ADC_E_ACTIVE_TRIGGER_DISABLED, \ + .adc_start_trigger_b = ADC_E_ACTIVE_TRIGGER_DISABLED, \ + .adc_start_trigger_c_enabled = 0, \ + .adc_start_trigger_c = ADC_E_ACTIVE_TRIGGER_DISABLED, \ + .adc_elc_ctrl = ADC_E_ELC_GROUP_A_SCAN, \ + .window_a_irq = FSP_INVALID_VECTOR, \ + .window_a_ipl = BSP_IRQ_DISABLED, \ + .window_b_irq = FSP_INVALID_VECTOR, \ + .window_b_ipl = BSP_IRQ_DISABLED, \ + }; \ + static const struct adc_rz_config adc_rz_config_##idx = { \ + .channel_available_mask = DT_INST_PROP(idx, channel_available_mask), \ + .fsp_api = &g_adc_on_adc_e, \ + }; + +#define ADC_RZ_FSP_CFG(idx) \ + .fsp_cfg = \ + { \ + .unit = DT_INST_PROP(idx, unit), \ + .mode = ADC_MODE_SINGLE_SCAN, \ + .resolution = ADC_RESOLUTION_12_BIT, \ + .alignment = (adc_alignment_t)ADC_ALIGNMENT_RIGHT, \ + .trigger = ADC_TRIGGER_SOFTWARE, \ + .p_callback = NULL, \ + .p_context = NULL, \ + .p_extend = &g_adc##idx##_cfg_extend, \ + .scan_end_irq = DT_INST_IRQ_BY_NAME(idx, scanend, irq), \ + .scan_end_ipl = DT_INST_IRQ_BY_NAME(idx, scanend, priority), \ + .scan_end_b_irq = FSP_INVALID_VECTOR, \ + .scan_end_b_ipl = BSP_IRQ_DISABLED, \ + .scan_end_c_irq = FSP_INVALID_VECTOR, \ + .scan_end_c_ipl = BSP_IRQ_DISABLED, \ + }, \ + .fsp_channel_cfg = { \ + .scan_mask = 0, \ + .scan_mask_group_b = 0, \ + .priority_group_a = ADC_E_GRPA_PRIORITY_OFF, \ + .add_mask = 0, \ + .scan_mask_group_c = 0, \ + .p_window_cfg = NULL, \ + } + +#endif /* CONFIG_ADC_RENESAS_RZ_ADC_E */ + #if defined(CONFIG_ADC_RENESAS_RZ) #define ADC_RZ_EXTENDED_FSP_CFG(idx) \ static const adc_extended_cfg_t g_adc##idx##_cfg_extend = { \ @@ -396,25 +518,25 @@ static int adc_rz_init(const struct device *dev) .sample_hold_mask = 0, \ .sample_hold_states = 24, \ .scan_mask_group_c = 0, \ + .p_window_cfg = NULL, \ } #endif /* CONFIG_ADC_RENESAS_RZ */ -#ifdef CONFIG_CPU_CORTEX_M -#define GET_IRQ_FLAGS(index) 0 -#else /* Cortex-A/R */ -#define GET_IRQ_FLAGS(index) DT_INST_IRQ_BY_IDX(index, 0, flags) -#endif +#define GET_IRQ_FLAGS(index, name) \ + COND_CODE_1(CONFIG_GIC, (DT_INST_IRQ_BY_NAME(index, name, flags)), (0)) #define ADC_RZ_IRQ_CONNECT(idx, irq_name, isr) \ do { \ IRQ_CONNECT(DT_INST_IRQ_BY_NAME(idx, irq_name, irq), \ DT_INST_IRQ_BY_NAME(idx, irq_name, priority), isr, \ - DEVICE_DT_INST_GET(idx), GET_IRQ_FLAGS(idx)); \ + DEVICE_DT_INST_GET(idx), GET_IRQ_FLAGS(idx, irq_name)); \ irq_enable(DT_INST_IRQ_BY_NAME(idx, irq_name, irq)); \ } while (0) -#define ADC_RZ_CONFIG_FUNC(idx) ADC_RZ_IRQ_CONNECT(idx, scanend, adc_rz_isr); +#define ADC_RZ_CONFIG_FUNC(idx) \ + ADC_RZ_IRQ_CONNECT(idx, scanend, adc_rz_isr); \ + ADC_RZ_CONNECT_IRQ_EVENT(idx); #define ADC_RZ_INIT(idx) \ ADC_RZ_EXTENDED_FSP_CFG(idx) \ @@ -446,3 +568,8 @@ DT_INST_FOREACH_STATUS_OKAY(ADC_RZ_INIT); #define DT_DRV_COMPAT renesas_rz_adc_c DT_INST_FOREACH_STATUS_OKAY(ADC_RZ_INIT); + +#undef DT_DRV_COMPAT +#define DT_DRV_COMPAT renesas_rz_adc_e + +DT_INST_FOREACH_STATUS_OKAY(ADC_RZ_INIT); diff --git a/dts/arm/renesas/rz/rzg/r9a07g043.dtsi b/dts/arm/renesas/rz/rzg/r9a07g043.dtsi index de1500ab9ad96..1d9506cf3036a 100644 --- a/dts/arm/renesas/rz/rzg/r9a07g043.dtsi +++ b/dts/arm/renesas/rz/rzg/r9a07g043.dtsi @@ -6,6 +6,7 @@ #include #include #include +#include / { compatible = "renesas,r9a07g043"; @@ -224,6 +225,17 @@ }; }; + adc: adc@40059000 { + compatible = "renesas,rz-adc-c"; + reg = <0x40059000 DT_SIZE_K(1)>; + interrupts = <347 3>; + interrupt-names = "scanend"; + #io-channel-cells = <1>; + vref-mv = <1800>; + channel-available-mask = <0x3>; + status = "disabled"; + }; + scif0: serial@4004b800 { compatible = "renesas,rz-scif-uart"; channel = <0>; diff --git a/dts/arm/renesas/rz/rzg/r9a07g044.dtsi b/dts/arm/renesas/rz/rzg/r9a07g044.dtsi index a81fc9eac987c..d23979b22d965 100644 --- a/dts/arm/renesas/rz/rzg/r9a07g044.dtsi +++ b/dts/arm/renesas/rz/rzg/r9a07g044.dtsi @@ -6,6 +6,7 @@ #include #include #include +#include / { compatible = "renesas,r9a07g044"; @@ -494,6 +495,17 @@ }; }; + adc: adc@40059000 { + compatible = "renesas,rz-adc-c"; + reg = <0x40059000 DT_SIZE_K(1)>; + interrupts = <347 3>; + interrupt-names = "scanend"; + #io-channel-cells = <1>; + vref-mv = <1800>; + channel-available-mask = <0xFF>; + status = "disabled"; + }; + scif0: serial@4004b800 { compatible = "renesas,rz-scif-uart"; channel = <0>; diff --git a/dts/arm/renesas/rz/rzt/r9a07g074.dtsi b/dts/arm/renesas/rz/rzt/r9a07g074.dtsi index 05e4e39657ed5..fe057a38d1fa3 100644 --- a/dts/arm/renesas/rz/rzt/r9a07g074.dtsi +++ b/dts/arm/renesas/rz/rzt/r9a07g074.dtsi @@ -7,6 +7,7 @@ #include #include #include +#include / { compatible = "renesas,r9a07g074"; @@ -482,6 +483,30 @@ }; }; + adc0: adc0@90004000 { + compatible = "renesas,rz-adc"; + reg = <0x90004000 0x800>; + unit = <0>; + interrupts = ; + interrupt-names = "scanend"; + #io-channel-cells = <1>; + vref-mv = <1800>; + channel-available-mask = <0xF>; + status = "disabled"; + }; + + adc1: adc1@90004800 { + compatible = "renesas,rz-adc"; + reg = <0x90004800 0x800>; + unit = <1>; + interrupts = ; + interrupt-names = "scanend"; + #io-channel-cells = <1>; + vref-mv = <1800>; + channel-available-mask = <0xF>; + status = "disabled"; + }; + sci0: sci0@80001000 { compatible = "renesas,rz-sci"; reg = <0x80001000 0x400>; diff --git a/dts/arm/renesas/rz/rzv/r9a09g056.dtsi b/dts/arm/renesas/rz/rzv/r9a09g056.dtsi index b7ccddee27596..7baa06e71ac38 100644 --- a/dts/arm/renesas/rz/rzv/r9a09g056.dtsi +++ b/dts/arm/renesas/rz/rzv/r9a09g056.dtsi @@ -6,6 +6,7 @@ #include #include #include +#include / { compatible = "renesas,r9a09g056"; @@ -161,6 +162,42 @@ }; }; + adc0: adc0@41c00000 { + compatible = "renesas,rz-adc-e"; + reg = <0x41c00000 0x400>; + unit = <0>; + interrupts = <403 3>; + interrupt-names = "scanend"; + #io-channel-cells = <1>; + vref-mv = <1800>; + channel-available-mask = <0xFF>; + status = "disabled"; + }; + + adc1: adc1@41c02800 { + compatible = "renesas,rz-adc-e"; + reg = <0x41c02800 0x400>; + unit = <1>; + interrupts = <404 3>; + interrupt-names = "scanend"; + #io-channel-cells = <1>; + vref-mv = <1800>; + channel-available-mask = <0xFF>; + status = "disabled"; + }; + + adc2: adc2@41c02c00 { + compatible = "renesas,rz-adc-e"; + reg = <0x41c02c00 0x400>; + unit = <2>; + interrupts = <405 3>; + interrupt-names = "scanend"; + #io-channel-cells = <1>; + vref-mv = <1800>; + channel-available-mask = <0xFF>; + status = "disabled"; + }; + sci0: sci0@42800c00 { compatible = "renesas,rz-sci-b"; reg = <0x42800c00 0x400>; @@ -310,6 +347,14 @@ status = "disabled"; }; }; + + intc: intc@40400000 { + compatible = "renesas,rz-intc"; + reg = <0x40400000 DT_SIZE_K(64)>; + #address-cells = <1>; + #size-cells = <0>; + interrupt-parent = <&nvic>; + }; }; }; diff --git a/dts/arm/renesas/rz/rzv/r9a09g057_cm33.dtsi b/dts/arm/renesas/rz/rzv/r9a09g057_cm33.dtsi index 2209abd57467c..f231e12300733 100644 --- a/dts/arm/renesas/rz/rzv/r9a09g057_cm33.dtsi +++ b/dts/arm/renesas/rz/rzv/r9a09g057_cm33.dtsi @@ -6,6 +6,7 @@ #include #include #include +#include / { compatible = "renesas,r9a09g057-m33"; @@ -161,6 +162,18 @@ }; }; + adc0: adc0@41c00000 { + compatible = "renesas,rz-adc-e"; + reg = <0x41c00000 0x400>; + unit = <0>; + interrupts = <403 3>; + interrupt-names = "scanend"; + #io-channel-cells = <1>; + vref-mv = <1800>; + channel-available-mask = <0xFF>; + status = "disabled"; + }; + sci0: sci0@42800c00 { compatible = "renesas,rz-sci-b"; reg = <0x42800c00 0x400>; @@ -310,6 +323,14 @@ status = "disabled"; }; }; + + intc: intc@40400000 { + compatible = "renesas,rz-intc"; + reg = <0x40400000 DT_SIZE_K(64)>; + #address-cells = <1>; + #size-cells = <0>; + interrupt-parent = <&nvic>; + }; }; }; diff --git a/dts/arm/renesas/rz/rzv/r9a09g057_cr8.dtsi b/dts/arm/renesas/rz/rzv/r9a09g057_cr8.dtsi index d4fdd5fee2440..e65b89144fd19 100644 --- a/dts/arm/renesas/rz/rzv/r9a09g057_cr8.dtsi +++ b/dts/arm/renesas/rz/rzv/r9a09g057_cr8.dtsi @@ -7,6 +7,7 @@ #include #include #include +#include / { #address-cells = <1>; @@ -206,6 +207,18 @@ }; }; + adc0: adc0@11c00000 { + compatible = "renesas,rz-adc-e"; + reg = <0x11c00000 0x400>; + unit = <0>; + interrupts = ; + interrupt-names = "scanend"; + #io-channel-cells = <1>; + vref-mv = <1800>; + channel-available-mask = <0xFF>; + status = "disabled"; + }; + sci0: sci0@12800c00 { compatible = "renesas,rz-sci-b"; reg = <0x12800c00 0x400>; @@ -385,5 +398,13 @@ status = "disabled"; }; }; + + intc: intc@10400000 { + compatible = "renesas,rz-intc"; + reg = <0x10400000 DT_SIZE_K(64)>; + #address-cells = <1>; + #size-cells = <0>; + interrupt-parent = <&gic>; + }; }; }; diff --git a/dts/bindings/adc/renesas,rz-adc-e.yaml b/dts/bindings/adc/renesas,rz-adc-e.yaml new file mode 100644 index 0000000000000..586864050f082 --- /dev/null +++ b/dts/bindings/adc/renesas,rz-adc-e.yaml @@ -0,0 +1,36 @@ +# Copyright (c) 2025 Renesas Electronics Corporation +# SPDX-License-Identifier: Apache-2.0 + +description: "Renesas RZ ADC-E driver" + +compatible: "renesas,rz-adc-e" + +include: [adc-controller.yaml, pinctrl-device.yaml] + +properties: + reg: + required: true + + interrupts: + required: true + + vref-mv: + type: int + required: true + description: Indicates the reference voltage of the ADC in mV. + + unit: + type: int + description: Indicates the unit number of the ADC device. + required: true + + channel-available-mask: + type: int + required: true + description: Mask for ADC channels existed in each board + + "#io-channel-cells": + const: 1 + +io-channel-cells: + - input diff --git a/modules/Kconfig.renesas b/modules/Kconfig.renesas index 8434c47091f99..38b6b8a4858a0 100644 --- a/modules/Kconfig.renesas +++ b/modules/Kconfig.renesas @@ -297,6 +297,16 @@ config USE_RZ_FSP_ADC help Enable RZ FSP ADC driver +config USE_RZ_FSP_ADC_C + bool + help + Enable RZ FSP ADC-C driver + +config USE_RZ_FSP_ADC_E + bool + help + Enable RZ FSP ADC-E driver + config USE_RZ_FSP_IOPORT bool help diff --git a/samples/drivers/adc/adc_dt/boards/rzg2l_smarc_r9a07g044l23gbg_cm33.overlay b/samples/drivers/adc/adc_dt/boards/rzg2l_smarc_r9a07g044l23gbg_cm33.overlay new file mode 100644 index 0000000000000..df36456d1cc92 --- /dev/null +++ b/samples/drivers/adc/adc_dt/boards/rzg2l_smarc_r9a07g044l23gbg_cm33.overlay @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + zephyr,user { + io-channels = <&adc 0>, <&adc 2>; + }; +}; + +&adc { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; + + channel@2 { + reg = <2>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; +}; diff --git a/samples/drivers/adc/adc_dt/boards/rzg2ul_smarc_r9a07g043u11gbg_cm33.overlay b/samples/drivers/adc/adc_dt/boards/rzg2ul_smarc_r9a07g043u11gbg_cm33.overlay new file mode 100644 index 0000000000000..0a27122fc5c74 --- /dev/null +++ b/samples/drivers/adc/adc_dt/boards/rzg2ul_smarc_r9a07g043u11gbg_cm33.overlay @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + zephyr,user { + io-channels = <&adc 0>, <&adc 1>; + }; +}; + +&adc { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; + + channel@1 { + reg = <1>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; +}; diff --git a/samples/drivers/adc/adc_dt/boards/rzt2l_rsk.overlay b/samples/drivers/adc/adc_dt/boards/rzt2l_rsk.overlay new file mode 100644 index 0000000000000..5795af428bcab --- /dev/null +++ b/samples/drivers/adc/adc_dt/boards/rzt2l_rsk.overlay @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + zephyr,user { + io-channels = <&adc0 0>, <&adc1 3>; + }; +}; + +&adc0 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; +}; + +&adc1 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + channel@3 { + reg = <3>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; +}; diff --git a/samples/drivers/adc/adc_dt/boards/rzv2h_evk_r9a09g057h44gbg_cm33.overlay b/samples/drivers/adc/adc_dt/boards/rzv2h_evk_r9a09g057h44gbg_cm33.overlay new file mode 100644 index 0000000000000..bbcbce74bb365 --- /dev/null +++ b/samples/drivers/adc/adc_dt/boards/rzv2h_evk_r9a09g057h44gbg_cm33.overlay @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + zephyr,user { + io-channels = <&adc0 0>, <&adc0 2>; + }; +}; + +&adc0 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; + + channel@2 { + reg = <2>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; +}; diff --git a/samples/drivers/adc/adc_dt/boards/rzv2h_evk_r9a09g057h44gbg_cr8_0.overlay b/samples/drivers/adc/adc_dt/boards/rzv2h_evk_r9a09g057h44gbg_cr8_0.overlay new file mode 100644 index 0000000000000..bbcbce74bb365 --- /dev/null +++ b/samples/drivers/adc/adc_dt/boards/rzv2h_evk_r9a09g057h44gbg_cr8_0.overlay @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + zephyr,user { + io-channels = <&adc0 0>, <&adc0 2>; + }; +}; + +&adc0 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; + + channel@2 { + reg = <2>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; +}; diff --git a/samples/drivers/adc/adc_dt/boards/rzv2n_evk_r9a09g056n48gbg_cm33.overlay b/samples/drivers/adc/adc_dt/boards/rzv2n_evk_r9a09g056n48gbg_cm33.overlay new file mode 100644 index 0000000000000..2dc9d090e2aa8 --- /dev/null +++ b/samples/drivers/adc/adc_dt/boards/rzv2n_evk_r9a09g056n48gbg_cm33.overlay @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + zephyr,user { + io-channels = <&adc0 0>, <&adc1 7>; + }; +}; + +&adc0 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; +}; + +&adc1 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + channel@7 { + reg = <7>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; +}; diff --git a/samples/drivers/adc/adc_sequence/boards/rzg2l_smarc_r9a07g044l23gbg_cm33.conf b/samples/drivers/adc/adc_sequence/boards/rzg2l_smarc_r9a07g044l23gbg_cm33.conf new file mode 100644 index 0000000000000..65f176fd23b9c --- /dev/null +++ b/samples/drivers/adc/adc_sequence/boards/rzg2l_smarc_r9a07g044l23gbg_cm33.conf @@ -0,0 +1 @@ +CONFIG_SEQUENCE_RESOLUTION=12 diff --git a/samples/drivers/adc/adc_sequence/boards/rzg2l_smarc_r9a07g044l23gbg_cm33.overlay b/samples/drivers/adc/adc_sequence/boards/rzg2l_smarc_r9a07g044l23gbg_cm33.overlay new file mode 100644 index 0000000000000..18e4fbb8700d1 --- /dev/null +++ b/samples/drivers/adc/adc_sequence/boards/rzg2l_smarc_r9a07g044l23gbg_cm33.overlay @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + aliases { + adc0 = &adc; + }; +}; + +&adc { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; + + channel@2 { + reg = <2>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; +}; diff --git a/samples/drivers/adc/adc_sequence/boards/rzg2ul_smarc_r9a07g043u11gbg_cm33.conf b/samples/drivers/adc/adc_sequence/boards/rzg2ul_smarc_r9a07g043u11gbg_cm33.conf new file mode 100644 index 0000000000000..65f176fd23b9c --- /dev/null +++ b/samples/drivers/adc/adc_sequence/boards/rzg2ul_smarc_r9a07g043u11gbg_cm33.conf @@ -0,0 +1 @@ +CONFIG_SEQUENCE_RESOLUTION=12 diff --git a/samples/drivers/adc/adc_sequence/boards/rzg2ul_smarc_r9a07g043u11gbg_cm33.overlay b/samples/drivers/adc/adc_sequence/boards/rzg2ul_smarc_r9a07g043u11gbg_cm33.overlay new file mode 100644 index 0000000000000..7646d429ce7ae --- /dev/null +++ b/samples/drivers/adc/adc_sequence/boards/rzg2ul_smarc_r9a07g043u11gbg_cm33.overlay @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + aliases { + adc0 = &adc; + }; +}; + +&adc { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; + + channel@1 { + reg = <1>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; +}; diff --git a/samples/drivers/adc/adc_sequence/boards/rzt2l_rsk.conf b/samples/drivers/adc/adc_sequence/boards/rzt2l_rsk.conf new file mode 100644 index 0000000000000..65f176fd23b9c --- /dev/null +++ b/samples/drivers/adc/adc_sequence/boards/rzt2l_rsk.conf @@ -0,0 +1 @@ +CONFIG_SEQUENCE_RESOLUTION=12 diff --git a/samples/drivers/adc/adc_sequence/boards/rzt2l_rsk.overlay b/samples/drivers/adc/adc_sequence/boards/rzt2l_rsk.overlay new file mode 100644 index 0000000000000..af12380e170a3 --- /dev/null +++ b/samples/drivers/adc/adc_sequence/boards/rzt2l_rsk.overlay @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + aliases { + adc0 = &adc0; + }; +}; + +&adc0 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; + + channel@2 { + reg = <2>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; +}; diff --git a/samples/drivers/adc/adc_sequence/boards/rzv2h_evk_r9a09g057h44gbg_cm33.conf b/samples/drivers/adc/adc_sequence/boards/rzv2h_evk_r9a09g057h44gbg_cm33.conf new file mode 100644 index 0000000000000..65f176fd23b9c --- /dev/null +++ b/samples/drivers/adc/adc_sequence/boards/rzv2h_evk_r9a09g057h44gbg_cm33.conf @@ -0,0 +1 @@ +CONFIG_SEQUENCE_RESOLUTION=12 diff --git a/samples/drivers/adc/adc_sequence/boards/rzv2h_evk_r9a09g057h44gbg_cm33.overlay b/samples/drivers/adc/adc_sequence/boards/rzv2h_evk_r9a09g057h44gbg_cm33.overlay new file mode 100644 index 0000000000000..af12380e170a3 --- /dev/null +++ b/samples/drivers/adc/adc_sequence/boards/rzv2h_evk_r9a09g057h44gbg_cm33.overlay @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + aliases { + adc0 = &adc0; + }; +}; + +&adc0 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; + + channel@2 { + reg = <2>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; +}; diff --git a/samples/drivers/adc/adc_sequence/boards/rzv2h_evk_r9a09g057h44gbg_cr8_0.conf b/samples/drivers/adc/adc_sequence/boards/rzv2h_evk_r9a09g057h44gbg_cr8_0.conf new file mode 100644 index 0000000000000..65f176fd23b9c --- /dev/null +++ b/samples/drivers/adc/adc_sequence/boards/rzv2h_evk_r9a09g057h44gbg_cr8_0.conf @@ -0,0 +1 @@ +CONFIG_SEQUENCE_RESOLUTION=12 diff --git a/samples/drivers/adc/adc_sequence/boards/rzv2h_evk_r9a09g057h44gbg_cr8_0.overlay b/samples/drivers/adc/adc_sequence/boards/rzv2h_evk_r9a09g057h44gbg_cr8_0.overlay new file mode 100644 index 0000000000000..af12380e170a3 --- /dev/null +++ b/samples/drivers/adc/adc_sequence/boards/rzv2h_evk_r9a09g057h44gbg_cr8_0.overlay @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + aliases { + adc0 = &adc0; + }; +}; + +&adc0 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; + + channel@2 { + reg = <2>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; +}; diff --git a/samples/drivers/adc/adc_sequence/boards/rzv2n_evk_r9a09g056n48gbg_cm33.conf b/samples/drivers/adc/adc_sequence/boards/rzv2n_evk_r9a09g056n48gbg_cm33.conf new file mode 100644 index 0000000000000..65f176fd23b9c --- /dev/null +++ b/samples/drivers/adc/adc_sequence/boards/rzv2n_evk_r9a09g056n48gbg_cm33.conf @@ -0,0 +1 @@ +CONFIG_SEQUENCE_RESOLUTION=12 diff --git a/samples/drivers/adc/adc_sequence/boards/rzv2n_evk_r9a09g056n48gbg_cm33.overlay b/samples/drivers/adc/adc_sequence/boards/rzv2n_evk_r9a09g056n48gbg_cm33.overlay new file mode 100644 index 0000000000000..af12380e170a3 --- /dev/null +++ b/samples/drivers/adc/adc_sequence/boards/rzv2n_evk_r9a09g056n48gbg_cm33.overlay @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + aliases { + adc0 = &adc0; + }; +}; + +&adc0 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; + + channel@2 { + reg = <2>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; +}; diff --git a/tests/drivers/adc/adc_api/boards/rzg2l_smarc_r9a07g044l23gbg_cm33.overlay b/tests/drivers/adc/adc_api/boards/rzg2l_smarc_r9a07g044l23gbg_cm33.overlay new file mode 100644 index 0000000000000..df36456d1cc92 --- /dev/null +++ b/tests/drivers/adc/adc_api/boards/rzg2l_smarc_r9a07g044l23gbg_cm33.overlay @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + zephyr,user { + io-channels = <&adc 0>, <&adc 2>; + }; +}; + +&adc { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; + + channel@2 { + reg = <2>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; +}; diff --git a/tests/drivers/adc/adc_api/boards/rzg2ul_smarc_r9a07g043u11gbg_cm33.overlay b/tests/drivers/adc/adc_api/boards/rzg2ul_smarc_r9a07g043u11gbg_cm33.overlay new file mode 100644 index 0000000000000..0a27122fc5c74 --- /dev/null +++ b/tests/drivers/adc/adc_api/boards/rzg2ul_smarc_r9a07g043u11gbg_cm33.overlay @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + zephyr,user { + io-channels = <&adc 0>, <&adc 1>; + }; +}; + +&adc { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; + + channel@1 { + reg = <1>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; +}; diff --git a/tests/drivers/adc/adc_api/boards/rzt2l_rsk.overlay b/tests/drivers/adc/adc_api/boards/rzt2l_rsk.overlay new file mode 100644 index 0000000000000..dcb70d6d74a89 --- /dev/null +++ b/tests/drivers/adc/adc_api/boards/rzt2l_rsk.overlay @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + zephyr,user { + io-channels = <&adc0 0>, <&adc0 3>; + }; +}; + +&adc0 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; + + channel@3 { + reg = <3>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; +}; diff --git a/tests/drivers/adc/adc_api/boards/rzv2h_evk_r9a09g057h44gbg_cm33.overlay b/tests/drivers/adc/adc_api/boards/rzv2h_evk_r9a09g057h44gbg_cm33.overlay new file mode 100644 index 0000000000000..bbcbce74bb365 --- /dev/null +++ b/tests/drivers/adc/adc_api/boards/rzv2h_evk_r9a09g057h44gbg_cm33.overlay @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + zephyr,user { + io-channels = <&adc0 0>, <&adc0 2>; + }; +}; + +&adc0 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; + + channel@2 { + reg = <2>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; +}; diff --git a/tests/drivers/adc/adc_api/boards/rzv2h_evk_r9a09g057h44gbg_cr8_0.overlay b/tests/drivers/adc/adc_api/boards/rzv2h_evk_r9a09g057h44gbg_cr8_0.overlay new file mode 100644 index 0000000000000..bbcbce74bb365 --- /dev/null +++ b/tests/drivers/adc/adc_api/boards/rzv2h_evk_r9a09g057h44gbg_cr8_0.overlay @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + zephyr,user { + io-channels = <&adc0 0>, <&adc0 2>; + }; +}; + +&adc0 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; + + channel@2 { + reg = <2>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; +}; diff --git a/tests/drivers/adc/adc_api/boards/rzv2n_evk_r9a09g056n48gbg_cm33.overlay b/tests/drivers/adc/adc_api/boards/rzv2n_evk_r9a09g056n48gbg_cm33.overlay new file mode 100644 index 0000000000000..32b18fbc7ec02 --- /dev/null +++ b/tests/drivers/adc/adc_api/boards/rzv2n_evk_r9a09g056n48gbg_cm33.overlay @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + zephyr,user { + io-channels = <&adc1 0>, <&adc1 2>; + }; +}; + +&adc1 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; + + channel@2 { + reg = <2>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,resolution = <12>; + zephyr,acquisition-time = ; + zephyr,vref-mv = <1800>; + }; +}; diff --git a/tests/drivers/adc/adc_error_cases/boards/rza3ul_smarc.overlay b/tests/drivers/adc/adc_error_cases/boards/rza3ul_smarc.overlay new file mode 100644 index 0000000000000..fe9cdcf9f0bc3 --- /dev/null +++ b/tests/drivers/adc/adc_error_cases/boards/rza3ul_smarc.overlay @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + aliases { + adc = &adc; + }; +}; + +&adc { + status = "okay"; +}; diff --git a/tests/drivers/adc/adc_error_cases/boards/rzg2l_smarc_r9a07g044l23gbg_cm33.overlay b/tests/drivers/adc/adc_error_cases/boards/rzg2l_smarc_r9a07g044l23gbg_cm33.overlay new file mode 100644 index 0000000000000..fe9cdcf9f0bc3 --- /dev/null +++ b/tests/drivers/adc/adc_error_cases/boards/rzg2l_smarc_r9a07g044l23gbg_cm33.overlay @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + aliases { + adc = &adc; + }; +}; + +&adc { + status = "okay"; +}; diff --git a/tests/drivers/adc/adc_error_cases/boards/rzg2ul_smarc_r9a07g043u11gbg_cm33.overlay b/tests/drivers/adc/adc_error_cases/boards/rzg2ul_smarc_r9a07g043u11gbg_cm33.overlay new file mode 100644 index 0000000000000..fe9cdcf9f0bc3 --- /dev/null +++ b/tests/drivers/adc/adc_error_cases/boards/rzg2ul_smarc_r9a07g043u11gbg_cm33.overlay @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + aliases { + adc = &adc; + }; +}; + +&adc { + status = "okay"; +}; diff --git a/tests/drivers/adc/adc_error_cases/boards/rzg3s_smarc_r9a08g045s33gbg_cm33.overlay b/tests/drivers/adc/adc_error_cases/boards/rzg3s_smarc_r9a08g045s33gbg_cm33.overlay new file mode 100644 index 0000000000000..fe9cdcf9f0bc3 --- /dev/null +++ b/tests/drivers/adc/adc_error_cases/boards/rzg3s_smarc_r9a08g045s33gbg_cm33.overlay @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + aliases { + adc = &adc; + }; +}; + +&adc { + status = "okay"; +}; diff --git a/tests/drivers/adc/adc_error_cases/boards/rzn2l_rsk.overlay b/tests/drivers/adc/adc_error_cases/boards/rzn2l_rsk.overlay new file mode 100644 index 0000000000000..7f5bbaa7e5d4e --- /dev/null +++ b/tests/drivers/adc/adc_error_cases/boards/rzn2l_rsk.overlay @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + aliases { + adc = &adc0; + }; +}; + +&adc0 { + status = "okay"; +}; diff --git a/tests/drivers/adc/adc_error_cases/boards/rzt2l_rsk.overlay b/tests/drivers/adc/adc_error_cases/boards/rzt2l_rsk.overlay new file mode 100644 index 0000000000000..7f5bbaa7e5d4e --- /dev/null +++ b/tests/drivers/adc/adc_error_cases/boards/rzt2l_rsk.overlay @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + aliases { + adc = &adc0; + }; +}; + +&adc0 { + status = "okay"; +}; diff --git a/tests/drivers/adc/adc_error_cases/boards/rzt2m_rsk_r9a07g075m24gbg_cr520.overlay b/tests/drivers/adc/adc_error_cases/boards/rzt2m_rsk_r9a07g075m24gbg_cr520.overlay new file mode 100644 index 0000000000000..7f5bbaa7e5d4e --- /dev/null +++ b/tests/drivers/adc/adc_error_cases/boards/rzt2m_rsk_r9a07g075m24gbg_cr520.overlay @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + aliases { + adc = &adc0; + }; +}; + +&adc0 { + status = "okay"; +}; diff --git a/tests/drivers/adc/adc_error_cases/boards/rzv2h_evk_r9a09g057h44gbg_cm33.overlay b/tests/drivers/adc/adc_error_cases/boards/rzv2h_evk_r9a09g057h44gbg_cm33.overlay new file mode 100644 index 0000000000000..7f5bbaa7e5d4e --- /dev/null +++ b/tests/drivers/adc/adc_error_cases/boards/rzv2h_evk_r9a09g057h44gbg_cm33.overlay @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + aliases { + adc = &adc0; + }; +}; + +&adc0 { + status = "okay"; +}; diff --git a/tests/drivers/adc/adc_error_cases/boards/rzv2h_evk_r9a09g057h44gbg_cr8_0.overlay b/tests/drivers/adc/adc_error_cases/boards/rzv2h_evk_r9a09g057h44gbg_cr8_0.overlay new file mode 100644 index 0000000000000..7f5bbaa7e5d4e --- /dev/null +++ b/tests/drivers/adc/adc_error_cases/boards/rzv2h_evk_r9a09g057h44gbg_cr8_0.overlay @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + aliases { + adc = &adc0; + }; +}; + +&adc0 { + status = "okay"; +}; diff --git a/tests/drivers/adc/adc_error_cases/boards/rzv2l_smarc_r9a07g054l23gbg_cm33.overlay b/tests/drivers/adc/adc_error_cases/boards/rzv2l_smarc_r9a07g054l23gbg_cm33.overlay new file mode 100644 index 0000000000000..fe9cdcf9f0bc3 --- /dev/null +++ b/tests/drivers/adc/adc_error_cases/boards/rzv2l_smarc_r9a07g054l23gbg_cm33.overlay @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + aliases { + adc = &adc; + }; +}; + +&adc { + status = "okay"; +}; diff --git a/tests/drivers/adc/adc_error_cases/boards/rzv2n_evk_r9a09g056n48gbg_cm33.overlay b/tests/drivers/adc/adc_error_cases/boards/rzv2n_evk_r9a09g056n48gbg_cm33.overlay new file mode 100644 index 0000000000000..7f5bbaa7e5d4e --- /dev/null +++ b/tests/drivers/adc/adc_error_cases/boards/rzv2n_evk_r9a09g056n48gbg_cm33.overlay @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2025 Renesas Electronics Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + aliases { + adc = &adc0; + }; +}; + +&adc0 { + status = "okay"; +}; diff --git a/west.yml b/west.yml index 246259cdef2fc..38c183740e830 100644 --- a/west.yml +++ b/west.yml @@ -226,7 +226,7 @@ manifest: - hal - name: hal_renesas path: modules/hal/renesas - revision: d01039075990309dcbbec9b86510ed9f70a01dff + revision: pull/176/head groups: - hal - name: hal_rpi_pico