[UCPD] RXORDSETEN can only be modified when disabled
This commit is contained in:
parent
b634f8f511
commit
88d1d38be7
1 changed files with 9 additions and 10 deletions
|
@ -124,6 +124,14 @@ impl<'d, T: Instance> Ucpd<'d, T> {
|
|||
// 1.75us * 17 = ~30us
|
||||
w.set_ifrgap(17 - 1);
|
||||
|
||||
// TODO: Currently only hard reset and SOP messages can be received.
|
||||
// UNDOCUMENTED: This register can only be written while UCPDEN=0 (found by testing).
|
||||
w.set_rxordseten(0b1001);
|
||||
|
||||
// Enable DMA
|
||||
w.set_txdmaen(true);
|
||||
w.set_rxdmaen(true);
|
||||
|
||||
w.set_ucpden(true);
|
||||
});
|
||||
|
||||
|
@ -150,15 +158,6 @@ impl<'d, T: Instance> Ucpd<'d, T> {
|
|||
// TODO: Currently only SOP messages are supported.
|
||||
r.tx_ordsetr().write(|w| w.set_txordset(0b10001_11000_11000_11000));
|
||||
|
||||
r.cfgr1().modify(|w| {
|
||||
// TODO: Currently only hard reset and SOP messages can be received.
|
||||
w.set_rxordseten(0b1001);
|
||||
|
||||
// Enable DMA
|
||||
w.set_txdmaen(true);
|
||||
w.set_rxdmaen(true);
|
||||
});
|
||||
|
||||
// Enable the receiver on one of the two CC lines.
|
||||
r.cr().modify(|w| {
|
||||
w.set_phyccsel(cc_sel);
|
||||
|
@ -216,7 +215,7 @@ impl<'d, T: Instance> Drop for CcPhy<'d, T> {
|
|||
impl<'d, T: Instance> CcPhy<'d, T> {
|
||||
/// Sets the pull-up/pull-down resistor values exposed on the CC pins.
|
||||
pub fn set_pull(&mut self, cc_pull: CcPull) {
|
||||
T::REGS.cr().write(|w| {
|
||||
T::REGS.cr().modify(|w| {
|
||||
w.set_anamode(if cc_pull == CcPull::Sink {
|
||||
Anamode::SINK
|
||||
} else {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue