m68k: coldfire: create IO access functions for internal registers

The internal peripheral registers contained in all varieties of ColdFire
SoCs require simple big endian access ranging in sizes from 8, 16 and 32
bit. Currently there is a mixture of IO access methods used across the
various CPU support code, some using readx/writex and some using the
simpler __raw_readx/__raw_writew.

The readx/writex use cases are particularly kludgy in that they contain
code to differentiate internal register access and other general attached
peripheral register access - say on a PCI bus. In effect this means that
the readx/writex family for ColdFire is non-standard. This ultimately
ends up causing problems with definitions of other IO access support
functions like ioreadx/ioreadxbe/iowritex/iowritexbe which in the
generic case are defined in terms of readx/writex.

Create a set of internal only register access methods to ultimately
replace all internal register access code. The new access functions
mirror the existing readx/writex family but using the preferred 8/16/32
suffixes.

Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Ungerer <gerg@linux-m68k.org>
This commit is contained in:
Greg Ungerer 2026-04-17 23:35:52 +10:00 committed by Greg Ungerer
parent cd30961957
commit 13cb6440d8

View File

@ -107,6 +107,22 @@ static inline void writel(u32 value, volatile void __iomem *addr)
#endif /* IOMEMBASE */
#if defined(CONFIG_COLDFIRE)
/*
* The ColdFire internal peripheral registers are big-endian, so you
* cannot use the conventional little-endian readb/readw/readl and
* writeb/writew/writel access functions. Define a family of access
* functions to give correct endian access that can be used by all
* architecture code.
*/
#define mcf_read8 __raw_readb
#define mcf_read16 __raw_readw
#define mcf_read32 __raw_readl
#define mcf_write8 __raw_writeb
#define mcf_write16 __raw_writew
#define mcf_write32 __raw_writel
#endif /* CONFIG_COLDFIRE */
#if defined(CONFIG_PCI)
/*
* Support for PCI bus access uses the asm-generic access functions.