diff --git a/machine/src/platform/rpi3/device_driver/mini_uart.rs b/machine/src/platform/rpi3/device_driver/mini_uart.rs
index d1a5678..e7859f7 100644
--- a/machine/src/platform/rpi3/device_driver/mini_uart.rs
+++ b/machine/src/platform/rpi3/device_driver/mini_uart.rs
@@ -184,9 +184,7 @@ impl crate::drivers::interface::DeviceDriver for MiniUart {
 
 impl MiniUart {
     pub const COMPATIBLE: &'static str = "BCM MINI UART";
-}
 
-impl MiniUart {
     /// Create an instance.
     ///
     /// # Safety
@@ -226,9 +224,7 @@ impl MiniUartInner {
             registers: Registers::new(base_addr),
         }
     }
-}
 
-impl MiniUartInner {
     /// Set baud rate and characteristics (115200 8N1) and map to GPIO
     pub fn prepare(&self) -> Result<(), &'static str> {
         use tock_registers::interfaces::Writeable;
@@ -256,6 +252,11 @@ impl MiniUartInner {
 
         Ok(())
     }
+
+    fn flush_internal(&self) {
+        use tock_registers::interfaces::Readable;
+        crate::arch::loop_until(|| self.registers.AUX_MU_STAT.is_set(AUX_MU_STAT::TX_DONE));
+    }
 }
 
 impl Drop for MiniUartInner {
@@ -298,8 +299,7 @@ impl SerialOps for MiniUartInner {
     /// Wait until the TX FIFO is empty, aka all characters have been put on the
     /// line.
     fn flush(&self) {
-        use tock_registers::interfaces::Readable;
-        crate::arch::loop_until(|| self.registers.AUX_MU_STAT.is_set(AUX_MU_STAT::TX_DONE));
+        self.flush_internal();
     }
 
     /// Consume input until RX FIFO is empty, aka all pending characters have been