Zephyr API Documentation 4.3.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
renesas_rx_dtc.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2025 Renesas Electronics Corporation
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
11
12#ifndef ZEPHYR_DRIVERS_MISC_RENESAS_RX_DTC_H_
13#define ZEPHYR_DRIVERS_MISC_RENESAS_RX_DTC_H_
14
15#include <zephyr/drivers/gpio.h>
16
21#define DTC_PLACE_IN_SECTION(x) \
22 __attribute__((section(x))) \
23 __attribute__((__used__))
24#define DTC_ALIGN_VARIABLE(x) __aligned(x)
25#define DTC_SECTION_ATTRIBUTE \
26 DTC_PLACE_IN_SECTION(".dtc_vector_table")
27
28#define DTC_VECTOR_TABLE_ENTRIES (CONFIG_NUM_IRQS)
29#define DTC_PRV_ACT_BIT_MASK (1 << 15)
30#define DTC_PRV_VECT_NR_MASK (0x00FF)
31#define DTC_PRV_MASK_CRAL (0xFFU)
32#define DTC_PRV_OFFSET_CRAH (8U)
33
34#define DTC_MAX_NORMAL_TRANSFER_LENGTH \
35 (0x10000)
36
37#define DTC_MAX_REPEAT_TRANSFER_LENGTH \
38 (0x100)
39
40#define DTC_MAX_BLOCK_TRANSFER_LENGTH \
41 (0x100)
42#define DTC_MAX_BLOCK_COUNT \
43 (0x10000)
44
46
54
60
66
73
80
88
95
128
136
142
149int dtc_renesas_rx_off(const struct device *dev);
150
157int dtc_renesas_rx_on(const struct device *dev);
158
169int dtc_renesas_rx_configuration(const struct device *dev, uint8_t activation_irq,
170 transfer_info_t *p_info);
171
181
191
202int dtc_renesas_rx_start_transfer(const struct device *dev, uint8_t activation_irq);
203
214int dtc_renesas_rx_stop_transfer(const struct device *dev, uint8_t activation_irq);
215
228int dtc_renesas_rx_reset_transfer(const struct device *dev, uint8_t activation_irq,
229 void const *p_src, void *p_dest, uint16_t const num_transfers);
230
238 struct dtc_transfer_status *status);
239
250int dtc_renesas_rx_info_get(const struct device *dev, uint8_t activation_irq,
251 transfer_properties_t *const p_properties);
252
254{
255 if (activation_irq < 0 || activation_irq > DTC_VECTOR_TABLE_ENTRIES) {
256 return false;
257 }
258
259 return true;
260}
261
262#endif /* ZEPHYR_DRIVERS_MISC_RENESAS_RX_DTC_H_ */
Main header file for GPIO driver API.
#define ALWAYS_INLINE
Definition common.h:160
e_transfer_chain_mode
Definition renesas_rx_dtc.h:68
@ TRANSFER_CHAIN_MODE_END
Chain at end.
Definition renesas_rx_dtc.h:71
@ TRANSFER_CHAIN_MODE_EACH
Chaining disabled.
Definition renesas_rx_dtc.h:70
@ TRANSFER_CHAIN_MODE_DISABLED
Chaining disabled.
Definition renesas_rx_dtc.h:69
e_transfer_addr_mode
Transfer address mode.
Definition renesas_rx_dtc.h:48
@ TRANSFER_ADDR_MODE_DECREMENTED
Mode decremented.
Definition renesas_rx_dtc.h:52
@ TRANSFER_ADDR_MODE_INCREMENTED
Mode incremented.
Definition renesas_rx_dtc.h:51
@ TRANSFER_ADDR_MODE_OFFSET
Mode offset.
Definition renesas_rx_dtc.h:50
@ TRANSFER_ADDR_MODE_FIXED
Mode fixed.
Definition renesas_rx_dtc.h:49
int dtc_renesas_rx_start_transfer(const struct device *dev, uint8_t activation_irq)
Start transfers on this activation source.
enum e_transfer_chain_mode transfer_chain_mode_t
int dtc_renesas_rx_configuration(const struct device *dev, uint8_t activation_irq, transfer_info_t *p_info)
Configure the p_info state and write p_info to DTC vector table.
e_transfer_irq
Transfer interrupt type.
Definition renesas_rx_dtc.h:62
@ TRANSFER_IRQ_EACH
Interrupt on each transfer.
Definition renesas_rx_dtc.h:64
@ TRANSFER_IRQ_END
Interrupt at end of transfer.
Definition renesas_rx_dtc.h:63
e_dtc_act_status
DTC activation status.
Definition renesas_rx_dtc.h:90
@ DTC_ACT_IN_PROGRESS
In-progress state.
Definition renesas_rx_dtc.h:93
@ DTC_ACT_CONFIGURED
Configured state.
Definition renesas_rx_dtc.h:92
@ DTC_ACT_IDLE
Idle state.
Definition renesas_rx_dtc.h:91
int dtc_renesas_rx_off(const struct device *dev)
Turn off module DTC.
e_transfer_size
Transfer data size.
Definition renesas_rx_dtc.h:75
@ TRANSFER_SIZE_4_BYTE
4-byte transfer.
Definition renesas_rx_dtc.h:78
@ TRANSFER_SIZE_2_BYTE
2-byte transfer.
Definition renesas_rx_dtc.h:77
@ TRANSFER_SIZE_1_BYTE
1-byte transfer.
Definition renesas_rx_dtc.h:76
enum e_dtc_act_status dtc_act_status_t
DTC activation status.
struct st_transfer_info transfer_info_t
Transfer information structure.
#define DTC_VECTOR_TABLE_ENTRIES
Number of DTC vector entries.
Definition renesas_rx_dtc.h:28
struct st_transfer_properties transfer_properties_t
Detailed transfer properties.
int dtc_renesas_rx_info_get(const struct device *dev, uint8_t activation_irq, transfer_properties_t *const p_properties)
Get information about this transfer and store it into p_properties.
int dtc_renesas_rx_stop_transfer(const struct device *dev, uint8_t activation_irq)
Stop transfers on this activation source.
int dtc_renesas_rx_disable_transfer(uint8_t activation_irq)
Disable transfer in ICU on this activation source.
e_transfer_repeat_area
Area that repeats during repeat transfer mode.
Definition renesas_rx_dtc.h:56
@ TRANSFER_REPEAT_AREA_SOURCE
Source repeats.
Definition renesas_rx_dtc.h:58
@ TRANSFER_REPEAT_AREA_DESTINATION
Destination repeats.
Definition renesas_rx_dtc.h:57
int dtc_renesas_rx_enable_transfer(uint8_t activation_irq)
Enable transfer in ICU on this activation source.
enum e_transfer_irq transfer_irq_t
Transfer interrupt type.
enum e_transfer_size transfer_size_t
Transfer data size.
enum e_transfer_addr_mode transfer_addr_mode_t
Transfer address mode.
int dtc_renesas_rx_reset_transfer(const struct device *dev, uint8_t activation_irq, void const *p_src, void *p_dest, uint16_t const num_transfers)
Reset transfer on this activation source.
enum e_transfer_mode transfer_mode_t
Transfer mode.
int dtc_renesas_rx_on(const struct device *dev)
Turn on module DTC.
static ALWAYS_INLINE bool is_valid_activation_irq(uint8_t activation_irq)
Definition renesas_rx_dtc.h:253
enum e_transfer_repeat_area transfer_repeat_area_t
Area that repeats during repeat transfer mode.
e_transfer_mode
Transfer mode.
Definition renesas_rx_dtc.h:82
@ TRANSFER_MODE_REPEAT
Repeat transfer mode.
Definition renesas_rx_dtc.h:84
@ TRANSFER_MODE_BLOCK
Block transfer mode.
Definition renesas_rx_dtc.h:85
@ TRANSFER_MODE_NORMAL
Normal transfer mode.
Definition renesas_rx_dtc.h:83
@ TRANSFER_MODE_REPEAT_BLOCK
Repeat block transfer mode.
Definition renesas_rx_dtc.h:86
void dtc_renesas_rx_get_transfer_status(const struct device *dev, struct dtc_transfer_status *status)
Get status transfer of DTC module and store it into status pointer.
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
Runtime device structure (in ROM) per driver instance.
Definition device.h:513
DTC transfer status.
Definition renesas_rx_dtc.h:138
uint8_t activation_irq
Activation IRQ number.
Definition renesas_rx_dtc.h:139
bool in_progress
Transfer in progress flag.
Definition renesas_rx_dtc.h:140
Transfer information structure.
Definition renesas_rx_dtc.h:97
unsigned int
Definition renesas_rx_dtc.h:100
transfer_addr_mode_t src_addr_mode
Source address mode.
Definition renesas_rx_dtc.h:113
transfer_addr_mode_t dest_addr_mode
Destination address mode.
Definition renesas_rx_dtc.h:103
struct st_transfer_info::@147024215137123322300162031257154033001257074021::@041037305166012015177273140354344105173041057016 transfer_settings_word_b
transfer_repeat_area_t repeat_area
Destination address mode.
Definition renesas_rx_dtc.h:105
void const *volatile p_src
Source address.
Definition renesas_rx_dtc.h:123
transfer_size_t size
Transfer data size.
Definition renesas_rx_dtc.h:115
void *volatile p_dest
Destination address.
Definition renesas_rx_dtc.h:124
volatile uint16_t num_blocks
Number of blocks.
Definition renesas_rx_dtc.h:125
transfer_irq_t irq
IRQ type.
Definition renesas_rx_dtc.h:107
transfer_chain_mode_t chain_mode
Chain mode.
Definition renesas_rx_dtc.h:109
transfer_mode_t mode
Transfer mode.
Definition renesas_rx_dtc.h:117
volatile uint16_t length
Transfer length.
Definition renesas_rx_dtc.h:126
uint32_t transfer_settings_word
Raw settings.
Definition renesas_rx_dtc.h:120
Detailed transfer properties.
Definition renesas_rx_dtc.h:130
uint32_t transfer_length_remaining
Number of transfers remaining.
Definition renesas_rx_dtc.h:134
uint32_t block_count_max
Maximum number of blocks.
Definition renesas_rx_dtc.h:131
uint32_t block_count_remaining
Number of blocks remaining.
Definition renesas_rx_dtc.h:132
uint32_t transfer_length_max
Maximum number of transfers.
Definition renesas_rx_dtc.h:133