da14683_pac/
lib.rs

1/*
2DISCLAIMER
3This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products.
4No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all
5applicable laws, including copyright laws.
6THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED
7OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
8NON-INFRINGEMENT.  ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY
9LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT,
10INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR
11ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
12Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability
13of this software. By using this software, you agree to the additional terms and conditions found by accessing the
14following link:
15http://www.renesas.com/disclaimer
16
17*/
18// Generated from SVD 1.2, with svd2pac 0.4.0 on Sat, 12 Apr 2025 22:14:22 +0000
19#![cfg_attr(not(feature = "tracing"), no_std)]
20#![allow(non_camel_case_types)]
21#![doc = "DA1468x"]
22pub mod common;
23pub use common::*;
24
25#[cfg(feature = "tracing")]
26pub mod reg_name;
27#[cfg(feature = "tracing")]
28pub mod tracing;
29
30#[cfg(feature = "aes_hash")]
31pub mod aes_hash;
32#[cfg(feature = "anamisc")]
33pub mod anamisc;
34#[cfg(feature = "apu")]
35pub mod apu;
36#[cfg(feature = "ble")]
37pub mod ble;
38#[cfg(feature = "cache")]
39pub mod cache;
40#[cfg(feature = "chip_version")]
41pub mod chip_version;
42#[cfg(feature = "coex")]
43pub mod coex;
44#[cfg(feature = "crg_per")]
45pub mod crg_per;
46#[cfg(feature = "crg_top")]
47pub mod crg_top;
48#[cfg(feature = "dcdc")]
49pub mod dcdc;
50#[cfg(feature = "dem")]
51pub mod dem;
52#[cfg(feature = "dma")]
53pub mod dma;
54#[cfg(feature = "ecc")]
55pub mod ecc;
56#[cfg(feature = "ftdf")]
57pub mod ftdf;
58#[cfg(feature = "gp_timers")]
59pub mod gp_timers;
60#[cfg(feature = "gpadc")]
61pub mod gpadc;
62#[cfg(feature = "gpio")]
63pub mod gpio;
64#[cfg(feature = "gpreg")]
65pub mod gpreg;
66#[cfg(feature = "i2c")]
67pub mod i2c;
68#[cfg(feature = "i2c2")]
69pub mod i2c2;
70#[cfg(feature = "ir")]
71pub mod ir;
72#[cfg(feature = "kbscan")]
73pub mod kbscan;
74#[cfg(feature = "nvic")]
75pub mod nvic;
76#[cfg(feature = "otpc")]
77pub mod otpc;
78#[cfg(feature = "qspic")]
79pub mod qspic;
80#[cfg(feature = "quad")]
81pub mod quad;
82#[cfg(feature = "scb")]
83pub mod scb;
84#[cfg(feature = "spi")]
85pub mod spi;
86#[cfg(feature = "spi2")]
87pub mod spi2;
88#[cfg(feature = "systick")]
89pub mod systick;
90#[cfg(feature = "timer1")]
91pub mod timer1;
92#[cfg(feature = "trng")]
93pub mod trng;
94#[cfg(feature = "uart")]
95pub mod uart;
96#[cfg(feature = "uart2")]
97pub mod uart2;
98#[cfg(feature = "usb")]
99pub mod usb;
100#[cfg(feature = "wakeup")]
101pub mod wakeup;
102#[cfg(feature = "wdog")]
103pub mod wdog;
104
105#[cfg(feature = "nvic")]
106#[derive(Copy, Clone, Eq, PartialEq)]
107pub struct Nvic {
108    ptr: *mut u8,
109}
110#[cfg(feature = "nvic")]
111pub const NVIC: self::Nvic = self::Nvic {
112    ptr: 0xe000e100u32 as _,
113};
114#[cfg(feature = "scb")]
115#[derive(Copy, Clone, Eq, PartialEq)]
116pub struct Scb {
117    ptr: *mut u8,
118}
119#[cfg(feature = "scb")]
120pub const SCB: self::Scb = self::Scb {
121    ptr: 0xe000ed00u32 as _,
122};
123#[cfg(feature = "systick")]
124#[derive(Copy, Clone, Eq, PartialEq)]
125pub struct SysTick {
126    ptr: *mut u8,
127}
128#[cfg(feature = "systick")]
129pub const SYSTICK: self::SysTick = self::SysTick {
130    ptr: 0xe000e010u32 as _,
131};
132#[cfg(feature = "aes_hash")]
133#[derive(Copy, Clone, Eq, PartialEq)]
134pub struct AesHash {
135    ptr: *mut u8,
136}
137#[cfg(feature = "aes_hash")]
138pub const AES_HASH: self::AesHash = self::AesHash {
139    ptr: 0x40020000u32 as _,
140};
141#[cfg(feature = "anamisc")]
142#[derive(Copy, Clone, Eq, PartialEq)]
143pub struct Anamisc {
144    ptr: *mut u8,
145}
146#[cfg(feature = "anamisc")]
147pub const ANAMISC: self::Anamisc = self::Anamisc {
148    ptr: 0x50001b00u32 as _,
149};
150#[cfg(feature = "apu")]
151#[derive(Copy, Clone, Eq, PartialEq)]
152pub struct Apu {
153    ptr: *mut u8,
154}
155#[cfg(feature = "apu")]
156pub const APU: self::Apu = self::Apu {
157    ptr: 0x50004000u32 as _,
158};
159#[cfg(feature = "ble")]
160#[derive(Copy, Clone, Eq, PartialEq)]
161pub struct Ble {
162    ptr: *mut u8,
163}
164#[cfg(feature = "ble")]
165pub const BLE: self::Ble = self::Ble {
166    ptr: 0x40000000u32 as _,
167};
168#[cfg(feature = "cache")]
169#[derive(Copy, Clone, Eq, PartialEq)]
170pub struct Cache {
171    ptr: *mut u8,
172}
173#[cfg(feature = "cache")]
174pub const CACHE: self::Cache = self::Cache {
175    ptr: 0x400c3000u32 as _,
176};
177#[cfg(feature = "chip_version")]
178#[derive(Copy, Clone, Eq, PartialEq)]
179pub struct ChipVersion {
180    ptr: *mut u8,
181}
182#[cfg(feature = "chip_version")]
183pub const CHIP_VERSION: self::ChipVersion = self::ChipVersion {
184    ptr: 0x50003200u32 as _,
185};
186#[cfg(feature = "coex")]
187#[derive(Copy, Clone, Eq, PartialEq)]
188pub struct Coex {
189    ptr: *mut u8,
190}
191#[cfg(feature = "coex")]
192pub const COEX: self::Coex = self::Coex {
193    ptr: 0x50002f00u32 as _,
194};
195#[cfg(feature = "crg_per")]
196#[derive(Copy, Clone, Eq, PartialEq)]
197pub struct CrgPer {
198    ptr: *mut u8,
199}
200#[cfg(feature = "crg_per")]
201pub const CRG_PER: self::CrgPer = self::CrgPer {
202    ptr: 0x50001c00u32 as _,
203};
204#[cfg(feature = "crg_top")]
205#[derive(Copy, Clone, Eq, PartialEq)]
206pub struct CrgTop {
207    ptr: *mut u8,
208}
209#[cfg(feature = "crg_top")]
210pub const CRG_TOP: self::CrgTop = self::CrgTop {
211    ptr: 0x50000000u32 as _,
212};
213#[cfg(feature = "dcdc")]
214#[derive(Copy, Clone, Eq, PartialEq)]
215pub struct Dcdc {
216    ptr: *mut u8,
217}
218#[cfg(feature = "dcdc")]
219pub const DCDC: self::Dcdc = self::Dcdc {
220    ptr: 0x50000080u32 as _,
221};
222#[cfg(feature = "dem")]
223#[derive(Copy, Clone, Eq, PartialEq)]
224pub struct Dem {
225    ptr: *mut u8,
226}
227#[cfg(feature = "dem")]
228pub const DEM: self::Dem = self::Dem {
229    ptr: 0x50002e00u32 as _,
230};
231#[cfg(feature = "dma")]
232#[derive(Copy, Clone, Eq, PartialEq)]
233pub struct Dma {
234    ptr: *mut u8,
235}
236#[cfg(feature = "dma")]
237pub const DMA: self::Dma = self::Dma {
238    ptr: 0x50003500u32 as _,
239};
240#[cfg(feature = "ecc")]
241#[derive(Copy, Clone, Eq, PartialEq)]
242pub struct Ecc {
243    ptr: *mut u8,
244}
245#[cfg(feature = "ecc")]
246pub const ECC: self::Ecc = self::Ecc {
247    ptr: 0x50006000u32 as _,
248};
249#[cfg(feature = "ftdf")]
250#[derive(Copy, Clone, Eq, PartialEq)]
251pub struct Ftdf {
252    ptr: *mut u8,
253}
254#[cfg(feature = "ftdf")]
255pub const FTDF: self::Ftdf = self::Ftdf {
256    ptr: 0x40080000u32 as _,
257};
258#[cfg(feature = "gp_timers")]
259#[derive(Copy, Clone, Eq, PartialEq)]
260pub struct GpTimers {
261    ptr: *mut u8,
262}
263#[cfg(feature = "gp_timers")]
264pub const GP_TIMERS: self::GpTimers = self::GpTimers {
265    ptr: 0x50003400u32 as _,
266};
267#[cfg(feature = "gpadc")]
268#[derive(Copy, Clone, Eq, PartialEq)]
269pub struct Gpadc {
270    ptr: *mut u8,
271}
272#[cfg(feature = "gpadc")]
273pub const GPADC: self::Gpadc = self::Gpadc {
274    ptr: 0x50001900u32 as _,
275};
276#[cfg(feature = "gpio")]
277#[derive(Copy, Clone, Eq, PartialEq)]
278pub struct Gpio {
279    ptr: *mut u8,
280}
281#[cfg(feature = "gpio")]
282pub const GPIO: self::Gpio = self::Gpio {
283    ptr: 0x50003000u32 as _,
284};
285#[cfg(feature = "gpreg")]
286#[derive(Copy, Clone, Eq, PartialEq)]
287pub struct Gpreg {
288    ptr: *mut u8,
289}
290#[cfg(feature = "gpreg")]
291pub const GPREG: self::Gpreg = self::Gpreg {
292    ptr: 0x50003300u32 as _,
293};
294#[cfg(feature = "i2c")]
295#[derive(Copy, Clone, Eq, PartialEq)]
296pub struct I2C {
297    ptr: *mut u8,
298}
299#[cfg(feature = "i2c")]
300pub const I2C: self::I2C = self::I2C {
301    ptr: 0x50001400u32 as _,
302};
303#[cfg(feature = "i2c2")]
304#[derive(Copy, Clone, Eq, PartialEq)]
305pub struct I2C2 {
306    ptr: *mut u8,
307}
308#[cfg(feature = "i2c2")]
309pub const I2C2: self::I2C2 = self::I2C2 {
310    ptr: 0x50001500u32 as _,
311};
312#[cfg(feature = "ir")]
313#[derive(Copy, Clone, Eq, PartialEq)]
314pub struct Ir {
315    ptr: *mut u8,
316}
317#[cfg(feature = "ir")]
318pub const IR: self::Ir = self::Ir {
319    ptr: 0x50001700u32 as _,
320};
321#[cfg(feature = "kbscan")]
322#[derive(Copy, Clone, Eq, PartialEq)]
323pub struct Kbscan {
324    ptr: *mut u8,
325}
326#[cfg(feature = "kbscan")]
327pub const KBSCAN: self::Kbscan = self::Kbscan {
328    ptr: 0x50001600u32 as _,
329};
330#[cfg(feature = "otpc")]
331#[derive(Copy, Clone, Eq, PartialEq)]
332pub struct Otpc {
333    ptr: *mut u8,
334}
335#[cfg(feature = "otpc")]
336pub const OTPC: self::Otpc = self::Otpc {
337    ptr: 0x7f40000u32 as _,
338};
339#[cfg(feature = "qspic")]
340#[derive(Copy, Clone, Eq, PartialEq)]
341pub struct Qspic {
342    ptr: *mut u8,
343}
344#[cfg(feature = "qspic")]
345pub const QSPIC: self::Qspic = self::Qspic {
346    ptr: 0xc000000u32 as _,
347};
348#[cfg(feature = "quad")]
349#[derive(Copy, Clone, Eq, PartialEq)]
350pub struct Quad {
351    ptr: *mut u8,
352}
353#[cfg(feature = "quad")]
354pub const QUAD: self::Quad = self::Quad {
355    ptr: 0x50001a00u32 as _,
356};
357#[cfg(feature = "spi")]
358#[derive(Copy, Clone, Eq, PartialEq)]
359pub struct Spi {
360    ptr: *mut u8,
361}
362#[cfg(feature = "spi")]
363pub const SPI: self::Spi = self::Spi {
364    ptr: 0x50001200u32 as _,
365};
366#[cfg(feature = "spi2")]
367#[derive(Copy, Clone, Eq, PartialEq)]
368pub struct Spi2 {
369    ptr: *mut u8,
370}
371#[cfg(feature = "spi2")]
372pub const SPI2: self::Spi2 = self::Spi2 {
373    ptr: 0x50001300u32 as _,
374};
375#[cfg(feature = "timer1")]
376#[derive(Copy, Clone, Eq, PartialEq)]
377pub struct Timer1 {
378    ptr: *mut u8,
379}
380#[cfg(feature = "timer1")]
381pub const TIMER1: self::Timer1 = self::Timer1 {
382    ptr: 0x50000200u32 as _,
383};
384#[cfg(feature = "trng")]
385#[derive(Copy, Clone, Eq, PartialEq)]
386pub struct Trng {
387    ptr: *mut u8,
388}
389#[cfg(feature = "trng")]
390pub const TRNG: self::Trng = self::Trng {
391    ptr: 0x50005000u32 as _,
392};
393#[cfg(feature = "uart")]
394#[derive(Copy, Clone, Eq, PartialEq)]
395pub struct Uart {
396    ptr: *mut u8,
397}
398#[cfg(feature = "uart")]
399pub const UART: self::Uart = self::Uart {
400    ptr: 0x50001000u32 as _,
401};
402#[cfg(feature = "uart2")]
403#[derive(Copy, Clone, Eq, PartialEq)]
404pub struct Uart2 {
405    ptr: *mut u8,
406}
407#[cfg(feature = "uart2")]
408pub const UART2: self::Uart2 = self::Uart2 {
409    ptr: 0x50001100u32 as _,
410};
411#[cfg(feature = "usb")]
412#[derive(Copy, Clone, Eq, PartialEq)]
413pub struct Usb {
414    ptr: *mut u8,
415}
416#[cfg(feature = "usb")]
417pub const USB: self::Usb = self::Usb {
418    ptr: 0x50001800u32 as _,
419};
420#[cfg(feature = "wakeup")]
421#[derive(Copy, Clone, Eq, PartialEq)]
422pub struct Wakeup {
423    ptr: *mut u8,
424}
425#[cfg(feature = "wakeup")]
426pub const WAKEUP: self::Wakeup = self::Wakeup {
427    ptr: 0x50000100u32 as _,
428};
429#[cfg(feature = "wdog")]
430#[derive(Copy, Clone, Eq, PartialEq)]
431pub struct Wdog {
432    ptr: *mut u8,
433}
434#[cfg(feature = "wdog")]
435pub const WDOG: self::Wdog = self::Wdog {
436    ptr: 0x50003100u32 as _,
437};
438
439pub use cortex_m::peripheral::Peripherals as CorePeripherals;
440pub use cortex_m::peripheral::{CBP, CPUID, DCB, DWT, FPB, FPU, ITM, MPU, NVIC, SCB, SYST, TPIU};
441#[doc = "Number available in the NVIC for configuring priority"]
442pub const NVIC_PRIO_BITS: u8 = 3;
443#[doc(hidden)]
444pub union Vector {
445    _handler: unsafe extern "C" fn(),
446    _reserved: u32,
447}
448#[allow(non_snake_case)]
449/// Required for compatibility with RTIC and other frameworks
450pub struct Peripherals {
451    #[cfg(feature = "nvic")]
452    pub NVIC: self::Nvic,
453    #[cfg(feature = "scb")]
454    pub SCB: self::Scb,
455    #[cfg(feature = "systick")]
456    pub SYSTICK: self::SysTick,
457    #[cfg(feature = "aes_hash")]
458    pub AES_HASH: self::AesHash,
459    #[cfg(feature = "anamisc")]
460    pub ANAMISC: self::Anamisc,
461    #[cfg(feature = "apu")]
462    pub APU: self::Apu,
463    #[cfg(feature = "ble")]
464    pub BLE: self::Ble,
465    #[cfg(feature = "cache")]
466    pub CACHE: self::Cache,
467    #[cfg(feature = "chip_version")]
468    pub CHIP_VERSION: self::ChipVersion,
469    #[cfg(feature = "coex")]
470    pub COEX: self::Coex,
471    #[cfg(feature = "crg_per")]
472    pub CRG_PER: self::CrgPer,
473    #[cfg(feature = "crg_top")]
474    pub CRG_TOP: self::CrgTop,
475    #[cfg(feature = "dcdc")]
476    pub DCDC: self::Dcdc,
477    #[cfg(feature = "dem")]
478    pub DEM: self::Dem,
479    #[cfg(feature = "dma")]
480    pub DMA: self::Dma,
481    #[cfg(feature = "ecc")]
482    pub ECC: self::Ecc,
483    #[cfg(feature = "ftdf")]
484    pub FTDF: self::Ftdf,
485    #[cfg(feature = "gp_timers")]
486    pub GP_TIMERS: self::GpTimers,
487    #[cfg(feature = "gpadc")]
488    pub GPADC: self::Gpadc,
489    #[cfg(feature = "gpio")]
490    pub GPIO: self::Gpio,
491    #[cfg(feature = "gpreg")]
492    pub GPREG: self::Gpreg,
493    #[cfg(feature = "i2c")]
494    pub I2C: self::I2C,
495    #[cfg(feature = "i2c2")]
496    pub I2C2: self::I2C2,
497    #[cfg(feature = "ir")]
498    pub IR: self::Ir,
499    #[cfg(feature = "kbscan")]
500    pub KBSCAN: self::Kbscan,
501    #[cfg(feature = "otpc")]
502    pub OTPC: self::Otpc,
503    #[cfg(feature = "qspic")]
504    pub QSPIC: self::Qspic,
505    #[cfg(feature = "quad")]
506    pub QUAD: self::Quad,
507    #[cfg(feature = "spi")]
508    pub SPI: self::Spi,
509    #[cfg(feature = "spi2")]
510    pub SPI2: self::Spi2,
511    #[cfg(feature = "timer1")]
512    pub TIMER1: self::Timer1,
513    #[cfg(feature = "trng")]
514    pub TRNG: self::Trng,
515    #[cfg(feature = "uart")]
516    pub UART: self::Uart,
517    #[cfg(feature = "uart2")]
518    pub UART2: self::Uart2,
519    #[cfg(feature = "usb")]
520    pub USB: self::Usb,
521    #[cfg(feature = "wakeup")]
522    pub WAKEUP: self::Wakeup,
523    #[cfg(feature = "wdog")]
524    pub WDOG: self::Wdog,
525}
526
527impl Peripherals {
528    /// Returns Peripheral struct multiple times
529    /// Required for compatibility with RTIC and other frameworks
530    #[inline]
531    pub fn take() -> Option<Self> {
532        Some(Self::steal())
533    }
534
535    /// Returns Peripheral struct multiple times
536    /// Required for compatibility with RTIC and other frameworks
537    #[inline]
538    pub fn steal() -> Self {
539        Peripherals {
540            #[cfg(feature = "nvic")]
541            NVIC: crate::NVIC,
542            #[cfg(feature = "scb")]
543            SCB: crate::SCB,
544            #[cfg(feature = "systick")]
545            SYSTICK: crate::SYSTICK,
546            #[cfg(feature = "aes_hash")]
547            AES_HASH: crate::AES_HASH,
548            #[cfg(feature = "anamisc")]
549            ANAMISC: crate::ANAMISC,
550            #[cfg(feature = "apu")]
551            APU: crate::APU,
552            #[cfg(feature = "ble")]
553            BLE: crate::BLE,
554            #[cfg(feature = "cache")]
555            CACHE: crate::CACHE,
556            #[cfg(feature = "chip_version")]
557            CHIP_VERSION: crate::CHIP_VERSION,
558            #[cfg(feature = "coex")]
559            COEX: crate::COEX,
560            #[cfg(feature = "crg_per")]
561            CRG_PER: crate::CRG_PER,
562            #[cfg(feature = "crg_top")]
563            CRG_TOP: crate::CRG_TOP,
564            #[cfg(feature = "dcdc")]
565            DCDC: crate::DCDC,
566            #[cfg(feature = "dem")]
567            DEM: crate::DEM,
568            #[cfg(feature = "dma")]
569            DMA: crate::DMA,
570            #[cfg(feature = "ecc")]
571            ECC: crate::ECC,
572            #[cfg(feature = "ftdf")]
573            FTDF: crate::FTDF,
574            #[cfg(feature = "gp_timers")]
575            GP_TIMERS: crate::GP_TIMERS,
576            #[cfg(feature = "gpadc")]
577            GPADC: crate::GPADC,
578            #[cfg(feature = "gpio")]
579            GPIO: crate::GPIO,
580            #[cfg(feature = "gpreg")]
581            GPREG: crate::GPREG,
582            #[cfg(feature = "i2c")]
583            I2C: crate::I2C,
584            #[cfg(feature = "i2c2")]
585            I2C2: crate::I2C2,
586            #[cfg(feature = "ir")]
587            IR: crate::IR,
588            #[cfg(feature = "kbscan")]
589            KBSCAN: crate::KBSCAN,
590            #[cfg(feature = "otpc")]
591            OTPC: crate::OTPC,
592            #[cfg(feature = "qspic")]
593            QSPIC: crate::QSPIC,
594            #[cfg(feature = "quad")]
595            QUAD: crate::QUAD,
596            #[cfg(feature = "spi")]
597            SPI: crate::SPI,
598            #[cfg(feature = "spi2")]
599            SPI2: crate::SPI2,
600            #[cfg(feature = "timer1")]
601            TIMER1: crate::TIMER1,
602            #[cfg(feature = "trng")]
603            TRNG: crate::TRNG,
604            #[cfg(feature = "uart")]
605            UART: crate::UART,
606            #[cfg(feature = "uart2")]
607            UART2: crate::UART2,
608            #[cfg(feature = "usb")]
609            USB: crate::USB,
610            #[cfg(feature = "wakeup")]
611            WAKEUP: crate::WAKEUP,
612            #[cfg(feature = "wdog")]
613            WDOG: crate::WDOG,
614        }
615    }
616}