Commit Graph

468820 Commits

Author SHA1 Message Date
Felipe Balbi
9836ee9f87 irqchip: omap-intc: enable IP protection
When PROTECTION bit in enabled in PROTECTION
register, INTC's registers are only accessible
from privileged mode.

Acked-by: Jason Cooper <jason@lakedaemon.net>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-09-16 14:45:00 -07:00
Felipe Balbi
8bb3b375c8 irqchip: omap-intc: remove unnecesary of_address_to_resource() call
of_iomap(), which is called from omap_init_irq_of(),
already takes care of making sure we have a valid
resource to deal with. Because of that, we can
safely remove our explicit call to of_address_to_resource().

Acked-by: Jason Cooper <jason@lakedaemon.net>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-09-16 14:45:00 -07:00
Felipe Balbi
503b8d12e7 irqchip: omap-intc: comment style cleanup
no functional changes, just making sure comment
follows Coding Style.

Acked-by: Jason Cooper <jason@lakedaemon.net>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-09-16 14:44:59 -07:00
Felipe Balbi
6bd0f16e32 irqchip: omap-intc: minor improvement to omap_irq_pending()
We already hold the number of Pending registers
in omap_nr_pending. Let's use that instead.

Acked-by: Jason Cooper <jason@lakedaemon.net>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-09-16 14:44:59 -07:00
Felipe Balbi
8598066cdd arm: omap: irq: move irq.c to drivers/irqchip/
Just move the code over as it has no dependencies
on arch/arm/ anymore.

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-09-16 14:44:59 -07:00
Felipe Balbi
eaacabc0d9 irqchip: add irq-omap-intc.h header
OMAP INTC irqchip driver will be moved under
drivers/irqchip/ soon but we still have a dependency
with mach-omap2 when it comes to idle functions.

In order to make it easy to share those function
prototypes with OMAP PM code, we introduce this new
header.

To avoid modifying several board-files and some of
the PM-related code, we just include the new header
from common.h which was already included by all
users of IRQ-related PM code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-09-16 14:44:59 -07:00
Felipe Balbi
e92ce89c29 arm: omap2: n8x0: move i2c devices to DT
By moving i2c devices to DT we can clean up
i2c_board_info and fix a problem with moving
INTC to irq domain where IRQs can be renumbered
on each boot.

Cc: Aaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-09-16 14:43:11 -07:00
Felipe Balbi
55601c9f24 arm: omap: intc: switch over to linear irq domain
now that we don't need to support legacy board-files,
we can completely switch over to a linear irq domain
and make use of irq_alloc_domain_generic_chips() to
allocate all generic irq chips for us.

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-09-11 13:05:50 -07:00
Felipe Balbi
d6a7c5c84f arm: omap: irq: get rid of ifdef hack
we don't need the ifdef if we have omap_nr_pending
telling us how many pending registers we have
on current platform. This solves a possible
problem where we could try to handle bogus
interrupts on OMAP2 and OMAP3 if using single
zImage kernel, because we would end up reading
the following pending FIQ register.

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-09-11 13:05:49 -07:00
Felipe Balbi
52b1e12913 arm: omap: irq: introduce omap_nr_pending
that variable will tell us how many INTC_PENDING_IRQn
registers we have. It'll be used on a following patch
to cleanup omap_intc_handle_irq() a bit.

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-09-11 13:05:48 -07:00
Felipe Balbi
a74f0a176e arm: omap: irq: remove nr_irqs argument
we can set our global omap_nr_irqs early on
and drop the extra argument to omap_init_irq().

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-09-11 13:05:46 -07:00
Felipe Balbi
3384f86fe5 arm: omap: irq: remove unnecessary header
There's no need for that header to be included.

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-09-11 13:05:42 -07:00
Felipe Balbi
2aced89246 arm: omap: irq: drop omap2_intc_handle_irq()
that was just a no-op wrapper around omap_intc_handle_irq
anyway.

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-09-11 13:05:41 -07:00
Felipe Balbi
05f1e7387c arm: omap: irq: drop omap3_intc_handle_irq()
now that we're calling set_handle_irq() from
init_irq(), we can safely drop all callers to
omap3_intc_handle_irq() and its definition.

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-09-11 13:05:40 -07:00
Felipe Balbi
be0a768596 arm: omap: irq: call set_handle_irq() from .init_irq
the idea is that board-files won't need to set
.handle_irq on their machine_descs, which lets
us drop a little more pointless code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-09-11 13:05:39 -07:00
Felipe Balbi
a4d3c5d91f arm: omap: irq: move some more code around
We want .init_irq to call set_irq_handle() for
legacy platforms. Note that this code will also
be dropped once omap2/3 devices are completely
moved to DT.

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-09-11 13:05:38 -07:00
Felipe Balbi
c2fb3b33f2 arm: boot: dts: omap2/3/am33xx: drop ti,intc-size
we are now infering number of IRQ lines based
on correct compatible flag, which renders this
binding completely useless.

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-09-11 13:05:37 -07:00
Felipe Balbi
a05d92b094 arm: omap: irq: drop ti,intc-size support
we don't need that anymore since specific
devices are passing correct compatible flags.

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-09-11 13:05:36 -07:00
Felipe Balbi
cab82b76f3 arm: boot: dts: am33xx/omap3: fix intc compatible flag
that way, our intc driver can figure out how
many IRQ lines INTC has.

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-09-11 13:05:35 -07:00
Felipe Balbi
470f30deae arm: omap: irq: use compatible flag to figure out number of IRQ lines
so far, only am33xx has 128 lines, all other devices
have only 96.

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-09-11 13:05:34 -07:00
Felipe Balbi
a35db9a4cb arm: omap: irq: add specific compatibles for omap3 and am33xx devices
with this, we can use a compatible flag to figure
out how many irq lines are wired up, no need for
our TI-specific ti,intc-size binding.

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-09-11 13:05:33 -07:00
Felipe Balbi
e66c49b515 arm: omap: irq: drop .handle_irq and .init_irq fields
now we can safely drop those fields from our machine_desc.

While at that, also drop the now unused omap_intc_of_init()
definition.

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-09-11 13:05:31 -07:00
Felipe Balbi
b65ecd4612 arm: omap: irq: use IRQCHIP_DECLARE macro
IRQCHIP_DECLARE macro is used to declare the same
of_device_id structure for irqchips, it's just
a helper. No functional changes.

Note that we're temporarily including irqchip.h
with its full path, until we move this driver
to drivers/irqchip/.

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-09-11 13:03:45 -07:00
Felipe Balbi
b15c76b748 arm: omap: irq: call set_handle_irq() from intc_of_init
this will let us drop .handle_irq and .init_irq fields
from our generic machine_descs.

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-09-11 13:03:43 -07:00
Felipe Balbi
00b6b031ab arm: omap: irq: make intc_of_init static
nobody uses that function outside of this file,
so we don't need to expose it.

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-09-11 13:03:42 -07:00