irqchip/mxs: Prepare driver for hardware with different offsets
authorOleksij Rempel <linux@rempel-privat.de>
Mon, 12 Oct 2015 19:15:33 +0000 (21:15 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 14 Oct 2015 07:37:47 +0000 (09:37 +0200)
commit25e34b44313b61d7a87819498ccfd0129441604a
tree06c4e9632efdda8e1122bba41fde5a0069a8fb82
parente59a8451be1162d5a10a33e40092f1796cb8fdca
irqchip/mxs: Prepare driver for hardware with different offsets

Alphascale asm9260 has similar functionality but different register
offsets. To support asm9260 in the mxs driver we need to rework the
hardcoded access mechanisms.

- Define SET_REG and CLR_REG. These controllers support seperate CLR and
  SET offsets for each register.

- Reimplement HW_ICOLL_INTERRUPT with SET_REG and CLR_REG to make it
  usable for both cases.

- Instead of using icoll_base and adding the offsets at runtime,
  create a new data structure which contains base pointers to all
  required regitsters and use it.

- Split out functionality, which is required for the init code of mxs
  and asm9260, into helper functions

[ tglx: Massaged changelog and moved the return value change to the
   previous patch ]

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Tested-by: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: marc.zyngier@arm.com
Cc: jason@lakedaemon.net
Link: http://lkml.kernel.org/r/1444677334-12242-5-git-send-email-linux@rempel-privat.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
drivers/irqchip/irq-mxs.c