From fb0bec9071d83f6b0ad2a5094391e779c64c29ee Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Franti=C5=A1ek=20Boh=C3=A1=C4=8Dek?=
 <fandabohacek@gmail.com>
Date: Wed, 21 Dec 2022 08:25:18 +0100
Subject: [PATCH] feat: use eeprom from avr-hal

---
 src/eeprom.rs     | 61 -----------------------------------------------
 src/entrypoint.rs |  3 +--
 2 files changed, 1 insertion(+), 63 deletions(-)
 delete mode 100644 src/eeprom.rs

diff --git a/src/eeprom.rs b/src/eeprom.rs
deleted file mode 100644
index 9dfa1ef..0000000
--- a/src/eeprom.rs
+++ /dev/null
@@ -1,61 +0,0 @@
-pub struct Eeprom {
-    eeprom: avr_device::atmega8::EEPROM,
-}
-
-impl Eeprom {
-    pub fn new(ep: avr_device::atmega8::EEPROM) -> Eeprom {
-        Eeprom {
-            eeprom: ep
-        }
-    }
-
-    fn wait_until_write(&self) {
-        while self.eeprom.eecr.read().eewe().bit_is_set() {}
-    }
-
-    pub fn read(&self, address: u16, data: &mut [u8]) {
-        let mut address = address;
-        for i in 0..data.len() {
-            let byte = self.read_byte(address);
-            data[i] = byte;
-            address += 1;
-        }
-    }
-
-    pub fn write(&self, address: u16, data: &[u8]) {
-        let mut address = address;
-        for byte in data.iter() {
-            self.write_byte(address, *byte);
-            address += 1;
-        }
-    }
-
-    pub fn read_byte(&self, address: u16) -> u8 {
-        self.wait_until_write();
-
-        self.eeprom.eear.write(|w| unsafe {
-            w.bits(address)
-        });
-
-        self.eeprom.eecr.write(|w| w.eere().set_bit());
-        self.eeprom.eedr.read().bits()
-    }
-
-    pub fn write_byte(&self, address: u16, data: u8) {
-        self.wait_until_write();
-
-        self.eeprom.eear.write(|w| unsafe {
-            w.bits(address)
-        });
-        self.eeprom.eedr.write(|w| unsafe {
-            w.bits(data)
-        });
-
-        self.eeprom.eecr.write(|w|
-            w
-                .eemwe().set_bit()
-                .eewe().clear_bit());
-
-        self.eeprom.eecr.write(|w|  w.eewe().set_bit());
-    }
-}
diff --git a/src/entrypoint.rs b/src/entrypoint.rs
index c4f0520..967caa0 100644
--- a/src/entrypoint.rs
+++ b/src/entrypoint.rs
@@ -6,7 +6,6 @@
 
 extern crate avr_device;
 
-mod eeprom;
 mod animation;
 mod button;
 mod filled_seven_segment;
@@ -86,7 +85,7 @@ fn main() -> ! {
 
 
     // load seeds from eeprom
-    let ep = eeprom::Eeprom::new(dp.EEPROM);
+    let mut ep = atmega_hal::Eeprom::new(dp.EEPROM);
     let mut seeds = [0u8; 3];
     ep.read(0, &mut seeds);
     if seeds[0] == 0 && seeds[1] == 0 && seeds[2] == 0 {
-- 
2.48.1