fix: ensure register access are inline
docs: add documentation comments to most functions
chore: some renames
feat: add registers, pin, exti, usb_device skeleton