Memory-mapped I/O is exactly how Linux device drivers talk to hardware: ioremap() maps a peripheral's registers into kernel address space so a driver can use ordinary loads and stores, and it's how the Raspberry Pi's BCM2835 GPIO controller and UART are programmed from bare-metal code. Getting the address decoding wrong is a real class of driver bug that corrupts hardware state instead of just memory.