diff --git a/drivers/device.c b/drivers/device.c index ce05e62..c183f6c 100644 --- a/drivers/device.c +++ b/drivers/device.c @@ -134,3 +134,13 @@ int device_is_fram(device_t dev) return ((a < 0x04) && (b == 0x81)) || (((a & 0xf0) == 0x70) && ((b & 0x8e) == 0x80)); } + +int device_erase(device_erase_type_t et, address_t addr) +{ + if (device_is_fram(device_default)) { + printc_err("warning: not attempting erase of FRAM device\n"); + return 0; + } + + return device_default->type->erase(device_default, et, addr); +} diff --git a/drivers/device.h b/drivers/device.h index 3f016d9..10fd416 100644 --- a/drivers/device.h +++ b/drivers/device.h @@ -153,8 +153,6 @@ extern device_t device_default; device_default->type->readmem(device_default, addr, mem, len) #define device_writemem(addr, mem, len) \ device_default->type->writemem(device_default, addr, mem, len) -#define device_erase(et, addr) \ - device_default->type->erase(device_default, et, addr) #define device_getregs(regs) \ device_default->type->getregs(device_default, regs) #define device_setregs(regs) \ @@ -164,4 +162,6 @@ extern device_t device_default; #define device_poll() \ device_default->type->poll(device_default) +int device_erase(device_erase_type_t et, address_t addr); + #endif