Could you help with the datasheet link if it is free.
If this is called only at init it can also be a devinit ?
Not a comment. However I did not understand why the status at boot is required here.
Unregister and then falling back to free may not be what you intended.