Looking at SPI code from l4xx hal, do you know why they do this: ```rust unsafe { ptr::write_volatile(&self.regs.dr as *const _ as *mut u8, byte) } ``` instead of this:? ```rust self.regs.dr.write(|w| unsafe { w.bits(byte) }); ```