forked from M-Labs/zynq-rs
i2c: simplify ctor_common()
This commit is contained in:
parent
fa07bdb681
commit
4614ed1371
|
@ -10,9 +10,6 @@ use libregister::{RegisterR, RegisterRW, RegisterW};
|
||||||
|
|
||||||
const INVALID_BUS: &'static str = "Invalid I2C bus";
|
const INVALID_BUS: &'static str = "Invalid I2C bus";
|
||||||
|
|
||||||
#[cfg(feature = "target_zc706")]
|
|
||||||
const GPIO_OUTPUT_MASK: u16 = 0xFFFF - 0x000C;
|
|
||||||
|
|
||||||
pub struct I2C {
|
pub struct I2C {
|
||||||
regs: regs::RegisterWrapper,
|
regs: regs::RegisterWrapper,
|
||||||
count_down: super::timer::global::CountDown<Microseconds>
|
count_down: super::timer::global::CountDown<Microseconds>
|
||||||
|
@ -43,10 +40,10 @@ impl I2C {
|
||||||
slcr.gpio_rst_ctrl.reset_gpio();
|
slcr.gpio_rst_ctrl.reset_gpio();
|
||||||
});
|
});
|
||||||
|
|
||||||
Self::ctor_common()
|
Self::ctor_common(0xFFFF - 0x000C)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn ctor_common() -> Self {
|
fn ctor_common(gpio_output_mask: u16) -> Self {
|
||||||
// Setup register block
|
// Setup register block
|
||||||
let clocks = Clocks::get();
|
let clocks = Clocks::get();
|
||||||
let self_ = Self {
|
let self_ = Self {
|
||||||
|
@ -56,7 +53,7 @@ impl I2C {
|
||||||
|
|
||||||
// Setup GPIO output mask
|
// Setup GPIO output mask
|
||||||
self_.regs.gpio_output_mask.modify(|_, w| {
|
self_.regs.gpio_output_mask.modify(|_, w| {
|
||||||
w.mask(GPIO_OUTPUT_MASK)
|
w.mask(gpio_output_mask)
|
||||||
});
|
});
|
||||||
// Setup GPIO driver direction
|
// Setup GPIO driver direction
|
||||||
self_.regs.gpio_direction.modify(|_, w| {
|
self_.regs.gpio_direction.modify(|_, w| {
|
||||||
|
|
Loading…
Reference in New Issue