Skip to content

Commit caac875

Browse files
CNLHCnewAM
authored andcommitted
feat: assert clock polarity
1 parent 65d9b59 commit caac875

File tree

1 file changed

+30
-2
lines changed

1 file changed

+30
-2
lines changed

src/spi.rs

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -499,7 +499,22 @@ where
499499
let direction: u8 = lock.direction;
500500

501501
// assert the chip select pin
502-
let value_cs_asserted: u8 = lock.value & !self.cs_mask();
502+
let mut value_cs_asserted: u8 = lock.value & !self.cs_mask();
503+
504+
match self.pol.clk {
505+
ClockData::MsbNegIn => {
506+
// clock
507+
value_cs_asserted |= 1;
508+
}
509+
ClockData::MsbPosIn => {
510+
// clock
511+
value_cs_asserted &= !(1);
512+
}
513+
_ => {
514+
unimplemented!()
515+
}
516+
}
517+
503518
lock.ft.send(
504519
MpsseCmdBuilder::new()
505520
.set_gpio_lower(value_cs_asserted, direction)
@@ -541,7 +556,20 @@ where
541556
let mut lock: MutexGuard<FtInner<Device>> = bus.lock;
542557

543558
// deassert the chip select pin
544-
let value_cs_deasserted: u8 = lock.value | self.cs_mask();
559+
let mut value_cs_deasserted: u8 = lock.value | self.cs_mask();
560+
match self.pol.clk {
561+
ClockData::MsbNegIn => {
562+
// clock
563+
value_cs_deasserted |= 1;
564+
}
565+
ClockData::MsbPosIn => {
566+
// clock
567+
value_cs_deasserted &= !(1);
568+
}
569+
_ => {
570+
unimplemented!()
571+
}
572+
}
545573
lock.ft.send(
546574
MpsseCmdBuilder::new()
547575
.set_gpio_lower(value_cs_deasserted, direction)

0 commit comments

Comments
 (0)