You're right, -EAGAIN is not the appropriate error code here. A failure to read the register likely indicates a hardware failure, so a more generic error like -EIO ("Input/output error") would be better. I'll update the code. Thanks for catching this!