I wasn't prepared to go down this rabbit hole, but it turns out that the
__mdiobus_read() and __mdiobus_write() functions do support regnum >= 32.
It could be historical, from before their were C22 and C45 operations.
Previously, both transaction types were passed through one call. The
MSB indicated if C45 should be performed, and there were some macros
to split the number part into MMD and register.
With the current implementation, it should be O.K. to add a range
change.
Andrew