* adc_cal: s3: Add efuse functions for reading calibration * Add changelog entry * Implement calibrated ADC API for S3 * adc_cal: s3: Add calibrated ADC reading example * Clean up * Prefer where clauses * Clean up unnecessary unsafe blocks * Fix autolinks --------- Co-authored-by: Scott Mabin <scott@mabez.dev>
58 lines
1.4 KiB
Rust
58 lines
1.4 KiB
Rust
//! ESP ROM libraries
|
|
//!
|
|
//! Safe abstractions to the additional libraries provided in the ESP's
|
|
//! read-only memory.
|
|
|
|
pub mod crc;
|
|
pub mod md5;
|
|
|
|
#[allow(unused)]
|
|
extern "C" {
|
|
pub(crate) fn rom_i2c_writeReg(block: u32, block_hostid: u32, reg_add: u32, indata: u32);
|
|
|
|
pub(crate) fn rom_i2c_writeReg_Mask(
|
|
block: u32,
|
|
block_hostid: u32,
|
|
reg_add: u32,
|
|
reg_add_msb: u32,
|
|
reg_add_lsb: u32,
|
|
indata: u32,
|
|
);
|
|
}
|
|
|
|
#[doc(hidden)]
|
|
#[macro_export]
|
|
macro_rules! regi2c_write {
|
|
( $block: ident, $reg_add: ident, $indata: expr ) => {
|
|
paste::paste! {
|
|
unsafe {
|
|
crate::rom::rom_i2c_writeReg(
|
|
$block as u32,
|
|
[<$block _HOSTID>] as u32,
|
|
$reg_add as u32,
|
|
$indata as u32
|
|
)
|
|
}
|
|
}
|
|
};
|
|
}
|
|
|
|
#[doc(hidden)]
|
|
#[macro_export]
|
|
macro_rules! regi2c_write_mask {
|
|
( $block: ident, $reg_add: ident, $indata: expr ) => {
|
|
paste::paste! {
|
|
unsafe {
|
|
crate::rom::rom_i2c_writeReg_Mask(
|
|
$block as u32,
|
|
[<$block _HOSTID>] as u32,
|
|
$reg_add as u32,
|
|
[<$reg_add _MSB>] as u32,
|
|
[<$reg_add _LSB>] as u32,
|
|
$indata as u32
|
|
)
|
|
}
|
|
}
|
|
};
|
|
}
|