Most hardware registers are either not arithmetic objects (they may be bitfields rather than semantically numeric), or if they do represent a number it is unusual for them to be semantically signed ( a negative value would make no sense for a baud rate divisor for example).
So often, while a signed type may make no difference at the low level, it makes no semantic sense at the high level.
Critically perhaps, the >> operator, often used in processing hardware register values, has implementation defined behaviour for signed types; so to avoid mixed sign operations and the associated implicit conversions introducing errors, you should use unsigned in most cases.
I would suggest that unless the hardware register is semantically signed numeric, then you should use unsigned consistently for not just the registers, but also operands in expressions with register operands.