Instead of hardcoding the underlying access method mtd_read() and
duplicating all the error handling, rewrite the driver as a nvmem
layout which just uses nvmem_device_read() and thus works with any
NVMEM device.
But because this is now not a device anymore, the compatible string
will have to be changed so the device will still be probed:
compatible = "u-boot,env";
to
compatible = "u-boot,env", "nvmem-cells";
"nvmem-cells" will tell the mtd layer to register a nvmem_device().
"u-boot,env" will tell the NVMEM that it should apply the u-boot
environment layout to the NVMEM device.