Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f5d7a13b authored by Uwe Kleine-König's avatar Uwe Kleine-König
Browse files

ARM: imx: refactor the io mapping macro



This makes it more assembler friendly and allows it to be used in situation
that need an unsigned long and not a pointer.  Also the naming is
clearer.  IOMEM is introduced without IMX_ prefix as it is used this way
in more than one ARM subarch and it might become globally available
soon.

Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
parent 9651b7db
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -41,9 +41,9 @@
#include "devices-imx31.h"
#include "devices.h"

#define KZM_ARM11_IO_ADDRESS(x) (					\
	IMX_IO_ADDRESS(x, MX31_CS4) ?:					\
	IMX_IO_ADDRESS(x, MX31_CS5) ?:					\
#define KZM_ARM11_IO_ADDRESS(x) (IOMEM(					\
	IMX_IO_P2V_MODULE(x, MX31_CS4) ?:				\
	IMX_IO_P2V_MODULE(x, MX31_CS5)) ?:				\
	MX31_IO_ADDRESS(x))

/*
+9 −4
Original line number Diff line number Diff line
@@ -22,10 +22,15 @@

#include <asm/sizes.h>

#define IMX_IO_ADDRESS(addr, module)					\
	((void __force __iomem *)					\
	 (((unsigned long)((addr) - (module ## _BASE_ADDR)) < module ## _SIZE) ?\
	 (addr) - (module ## _BASE_ADDR) + (module ## _BASE_ADDR_VIRT) : 0))
#ifdef __ASSEMBLER__
#define IOMEM(addr)	(addr)
#else
#define IOMEM(addr)	((void __force __iomem *)(addr))
#endif

#define IMX_IO_P2V_MODULE(addr, module)					\
	(((addr) - module ## _BASE_ADDR) < module ## _SIZE ?		\
	 (addr) - (module ## _BASE_ADDR) + (module ## _BASE_ADDR_VIRT) : 0)

#ifdef CONFIG_ARCH_MX5
#include <mach/mx51.h>
+3 −2
Original line number Diff line number Diff line
@@ -73,8 +73,9 @@
#define MX1_CSI_BASE_ADDR		(0x24000 + MX1_IO_BASE_ADDR)

/* macro to get at IO space when running virtually */
#define MX1_IO_ADDRESS(x) (						\
	IMX_IO_ADDRESS(x, MX1_IO))
#define MX1_IO_P2V(x)	(						\
	IMX_IO_P2V_MODULE(x, MX1_IO))
#define MX1_IO_ADDRESS(x)		IOMEM(MX1_IO_P2V(x))

/* fixed interrput numbers */
#define MX1_INT_SOFTINT		0
+5 −4
Original line number Diff line number Diff line
@@ -92,10 +92,11 @@

#define MX21_IRAM_BASE_ADDR		0xffffe800	/* internal ram */

#define MX21_IO_ADDRESS(x) (						\
	IMX_IO_ADDRESS(x, MX21_AIPI) ?:					\
	IMX_IO_ADDRESS(x, MX21_SAHB1) ?:				\
	IMX_IO_ADDRESS(x, MX21_X_MEMC))
#define MX21_IO_P2V(x)	(						\
	IMX_IO_P2V_MODULE(x, MX21_AIPI) ?:				\
	IMX_IO_P2V_MODULE(x, MX21_SAHB1) ?:				\
	IMX_IO_P2V_MODULE(x, MX21_X_MEMC))
#define MX21_IO_ADDRESS(x)		IOMEM(MX21_IO_P2V(x))

/* fixed interrupt numbers */
#define MX21_INT_CSPI3		6
+5 −4
Original line number Diff line number Diff line
@@ -28,10 +28,11 @@
#define MX25_GPIO3_BASE_ADDR_VIRT	(MX25_AIPS2_BASE_ADDR_VIRT + 0xa4000)
#define MX25_GPIO4_BASE_ADDR_VIRT	(MX25_AIPS2_BASE_ADDR_VIRT + 0x9c000)

#define MX25_IO_ADDRESS(x) (					\
	IMX_IO_ADDRESS(x, MX25_AIPS1) ?:			\
	IMX_IO_ADDRESS(x, MX25_AIPS2) ?:			\
	IMX_IO_ADDRESS(x, MX25_AVIC))
#define MX25_IO_P2V(x)	(					\
	IMX_IO_P2V_MODULE(x, MX25_AIPS1) ?:			\
	IMX_IO_P2V_MODULE(x, MX25_AIPS2) ?:			\
	IMX_IO_P2V_MODULE(x, MX25_AVIC))
#define MX25_IO_ADDRESS(x)		IOMEM(MX25_IO_P2V(x))

#define MX25_AIPS1_IO_ADDRESS(x) \
	(((x) - MX25_AIPS1_BASE_ADDR) + MX25_AIPS1_BASE_ADDR_VIRT)
Loading