aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin/mach-common/ints-priority.c (follow)
AgeCommit message (Collapse)AuthorFilesLines
2013-11-15blackfin: adi gpio driver and pinctrl driver supportSonic Zhang1-392/+29
Remove gpio driver for new gpio controller on BF54x and BF60x. Build the bfin_gpio driver only when other BF5xx processors are selected. Replace the prefix of some gpio and peripheral functions with adi. add portmux platform data in machine portmux.h Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> Signed-off-by: Steven Miao <realmz6@gmail.com>
2013-07-14blackfin: delete __cpuinit usage from all blackfin filesPaul Gortmaker1-1/+1
The __cpuinit type of throwaway sections might have made sense some time ago when RAM was more constrained, but now the savings do not offset the cost and complications. For example, the fix in commit 5e427ec2d0 ("x86: Fix bit corruption at CPU resume time") is a good example of the nasty type of bugs that can be created with improper use of the various __init prefixes. After a discussion on LKML[1] it was decided that cpuinit should go the way of devinit and be phased out. Once all the users are gone, we can then finally remove the macros themselves from linux/init.h. Note that some harmless section mismatch warnings may result, since notify_cpu_starting() and cpu_up() are arch independent (kernel/cpu.c) are flagged as __cpuinit -- so if we remove the __cpuinit from arch specific callers, we will also get section mismatch warnings. As an intermediate step, we intend to turn the linux/init.h cpuinit content into no-ops as early as possible, since that will get rid of these warnings. In any case, they are temporary and harmless. This removes all the arch/blackfin uses of the __cpuinit macros from all C files. Currently blackfin does not have any __CPUINIT used in assembly files. [1] https://lkml.org/lkml/2013/5/20/589 Cc: Mike Frysinger <vapier@gentoo.org> Cc: Bob Liu <lliubbo@gmail.com> Cc: Sonic Zhang <sonic.zhang@analog.com> Cc: uclinux-dist-devel@blackfin.uclinux.org Acked-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
2013-02-20blackfin: pm: fix build errorSteven Miao1-0/+4
Only register pm ops when defined CONFIG_PM. Signed-off-by: Steven Miao <realmz6@gmail.com> Signed-off-by: Bob Liu <lliubbo@gmail.com>
2012-12-14blackfin: SEC: clean up SEC interrupt initializationSonic Zhang1-139/+133
Append the SEC IRQ after the IVG6, which is consistent to BF5xx SIC. Exclude SIC irqchip fucntions from SEC code. Call handle_fasteoi_irq in SEC error and fault handler. Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> Signed-off-by: Bob Liu <lliubbo@gmail.com>
2012-10-08Blackfin: drop irq enable in init_arch_irq()Steven Miao1-1/+0
Kernel common code will enable irq, drop it in init_arch_irq(). Signed-off-by: Steven Miao <realmz6@gmail.com> Signed-off-by: Bob Liu <lliubbo@gmail.com>
2012-07-24bf60x: fix build warningBob Liu1-3/+3
Fix several build warning while using bf609-ezkit_defconfig. Signed-off-by: Bob Liu <lliubbo@gmail.com>
2012-07-24bf60x: Add double fault, hardware error and NMI SEC handlerSonic Zhang1-1/+33
Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> Signed-off-by: Bob Liu <lliubbo@gmail.com>
2012-07-24bf60x: sec: Enable sec interrupt source priority configuration.Sonic Zhang1-0/+21
Customize the SEC interrupt priority array in machine ints-priority.c. Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> Signed-off-by: Bob Liu <lliubbo@gmail.com>
2012-07-24bf60x: sec: Clean up interrupt initialization code for SEC.Sonic Zhang1-87/+121
Turn SEC related macro CONFIG_BF60x into SEC_GCTL. Move machine specific GPIO_PINT macros to machine gpio header. Split SEC init_arch_irq() and vec_to_irq() from old SIC. Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> Signed-off-by: Bob Liu <lliubbo@gmail.com>
2012-07-24cleanup: sec and linkport only built on bf60xSteven Miao1-0/+2
Signed-off-by: Steven Miao <realmz6@gmail.com> Signed-off-by: Bob Liu <lliubbo@gmail.com>
2012-07-24bf60x: pm: add pint suspend and resume supportSteven Miao1-18/+54
save and restore pint sec CTL save and restore pint registers add pint suspend and resume when suspend to mem Signed-off-by: Steven Miao <realmz6@gmail.com> Signed-off-by: Bob Liu <lliubbo@gmail.com>
2012-07-24blackfin: mach-common: ints-priority add irq_set_wakeBob Liu1-1/+5
Add irq_set_wake to bfin_sec_irqchip, drivers like stmmac need it. Signed-off-by: Bob Liu <lliubbo@gmail.com>
2012-07-24irq: set cgu event handle to fasteoi handleSteven Miao1-1/+1
Signed-off-by: Steven Miao <realmz6@gmail.com> Signed-off-by: Bob Liu <lliubbo@gmail.com>
2012-05-21blackfin: bf60x: add wakeup source selectSteven Miao1-1/+2
Support select the wakeup source for power management on bf60x. Signed-off-by: Steven Miao <realmz6@gmail.com> Signed-off-by: Bob Liu <lliubbo@gmail.com>
2012-05-21blackfin: mach-common: ints-priority: fix compile errorBob Liu1-0/+2
IRQ_PINT4/PINT5 are not defined on !CONFIG_BF60x, this patch fix it. Signed-off-by: Bob Liu <lliubbo@gmail.com>
2012-05-21blackfin: mach-common: add sec support for bf60xSteven Miao1-38/+380
Add system event controller support for bf60x so that interrupt can be handled. Signed-off-by: Steven Miao <realmz6@gmail.com> Signed-off-by: Bob Liu <lliubbo@gmail.com>
2011-07-23Blackfin: gpio/ints: generalize pint logicMike Frysinger1-9/+9
Have the logic that uses peripheral interrupt blocks key off of pint defines rather than CPU names so that things are generalized across families. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-07-23Blackfin: bf54x: switch to common pint MMR structMike Frysinger1-18/+5
We have a struct in the headers describing the register layout, so drop the local duplicate one. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-07-23Blackfin: bf54x: constify pint register arrayMike Frysinger1-1/+1
The array of pointers to register blocks never changes, so constify it. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-05-25Blackfin: bf537: demux port H mask A and emac rx intsMike Frysinger1-12/+10
The BF537 SIC combines the gpio port H mask A interrupts with the emac rx interrupt, so we need to demux this in software. It also combines the gpio port H mask B and the emac tx interrupts, and the watchdog and port F mask B interrupts, but since we don't support mask B yet, just add the defines for now. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-05-25Blackfin: bf537: fix excessive gpio int demuxingMike Frysinger1-30/+25
The search logic in the gpio demux walks all possible gpio blocks starting at the specified pin. The trouble on bf537 parts when we demux the port F and port G mask A interrupts is that we also demux port H mask A ints. Most of the time this isn't an issue as people don't usually use port H, but might as well avoid it when possible. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-05-25Blackfin: bf54x: drop unused pm gpio handlingMike Frysinger1-40/+2
This functionality was merged into the common bfin_pm_standby_ctrl func some time ago, so punt these now unused funcs and data, and localize the wake funcs that aren't needed externally anymore. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-05-25Blackfin: move bf537-specific irq code out of common codeMike Frysinger1-138/+10
The SIC interrupt line muxing that the bf537 does is specific to this CPU (thankfully), so rip it out of the common code and move it to a bf537-specific file. This tidies up the common code significantly. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-05-25Blackfin: clean up irq ifdef logic a bitMike Frysinger1-47/+39
Prefer MMR named checks over part-specific lists, condense duplicated code across different #ifdef branches, simplify CONFIG_PM ifdefs, and drop unused kgdb header. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-05-25Blackfin: ints-priority: unify duplicate vec to irq lookup logicMike Frysinger1-68/+44
Seems the ipipe code just copied & pasted the existing irq lookup logic, so pull the logic out of do_irq() and into a local helper, and convert the two users over to that. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-05-25Blackfin: ints-priority: clean up some local varsMike Frysinger1-17/+8
The local ivg structs need not be exported, so mark them as static. Further, the "num_spurious" variable is only incremented and never actually read anywhere, so punt it. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-03-29bfin: Convert irq namespaceThomas Gleixner1-17/+17
Convert to the new function names. Scripted with coccinelle. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Mike Frysinger <vapier@gentoo.org> Cc: uclinux-dist-devel@blackfin.uclinux.org
2011-03-29bfin: Final irq cleanupThomas Gleixner1-6/+3
Use the trigger type in irq_data and check level type instead of looking at desc->handle_irq. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Mike Frysinger <vapier@gentoo.org> Cc: uclinux-dist-devel@blackfin.uclinux.org
2011-03-18Blackfin/ipipe: upgrade to I-pipe mainlinePhilippe Gerum1-4/+37
This patch introduces Blackfin-specific bits to support the current tip of the interrupt pipeline development, mainly: - 2/3-level interrupt maps (sparse IRQs) - generic virq handling - sysinfo v2 format for ipipe_get_sysinfo() Signed-off-by: Philippe Gerum <rpm@xenomai.org> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-03-18Blackfin: convert gpio irq_chip to new functionsThomas Gleixner1-44/+48
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-03-18Blackfin: convert mac irq_chip to new functionsThomas Gleixner1-7/+11
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-03-18Blackfin: convert error irq_chip to new functionsThomas Gleixner1-7/+7
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-03-18Blackfin: convert internal irq_chip to new functionsThomas Gleixner1-13/+28
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-03-18Blackfin: convert core irq_chip to new functionsThomas Gleixner1-11/+11
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-03-18Blackfin: use proper wrappers for irq_descThomas Gleixner1-9/+5
Fixup the open coded access to irq_desc and use the proper wrappers. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-01-10Blackfin: bf54x: don't ack GPIO ints when unmasking themMike Frysinger1-1/+0
When unmasking a GPIO interrupt on a BF54x part, the code will implicitly ack any pending interrupts. This is not what unmasking should do and can cause people to miss interrupts from their devices, so punt the code. Reported-by: Rutger Hofman <rutger@cs.vu.nl> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-10-22Blackfin: bf561: rewrite SICA_xxx to just SIC_xxxMike Frysinger1-2/+2
This matches all the other Blackfin ports and keep us from having to write bf561-specific code in many places. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-10-22Blackfin: SIC: fix off-by-one error in loopMichael Hennerich1-3/+4
Make sure we include EMAC_SYSTAT when showing errors. Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-10-07Blackfin: Rename IRQ flags handling functionsDavid Howells1-12/+12
Rename h/w IRQ flags handling functions to be in line with what is expected for the irq renaming patch. This renames local_*_hw() to hard_local_*() using the following perl command: perl -pi -e 's/local_irq_(restore|enable|disable)_hw/hard_local_irq_\1/ or s/local_irq_save_hw([_a-z]*)[(]flags[)]/flags = hard_local_irq_save\1()/' `find arch/blackfin/ -name "*.[ch]"` and then fixing up asm/irqflags.h manually. Additionally, arch/hard_local_save_flags() and arch/hard_local_irq_save() both return the flags rather than passing it through the argument list. Signed-off-by: David Howells <dhowells@redhat.com>
2010-05-22Blackfin: SIC: cut down on IAR MMR reads a bitMike Frysinger1-15/+18
Tweak the for loops that operate on the SIC IAR system MMRs to avoid re-reading them multiple times in a row. System MMRs are a little slower to access, so avoid the penalty when possible. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-05-21Blackfin: punt Blackfin-specific GPIO wakeup APIMichael Hennerich1-8/+1
This patch removes a custom GPIO wakeup API which allowed GPIOs to act as wakeup sources, which are not configured as Interrupts. This API is a leftover from the time before irq_wake was established. From now on people must use enable_irq_wake(GPIO_IRQx) and the GPIO in question needs to be configured as Interrupt. Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-03-09Blackfin: don't support keypad wakeup from hibernateMichael Hennerich1-5/+0
The on-chip keypad peripheral requires different registers to be setup depending on the standby type (standby vs hibernation). However, since the power management framework doesn't differentiate between these types, the driver doesn't know which registers to program and subsequently it avoids doing so. Always enabling the keyboard wakeup source causes misbehavior when the pins are not assigned to the keypad. If they happen to drive a certain level, they'll trigger a wake up event which is not wanted. So until the aforementioned issue can be sorted out, drop support for the wakeup source completely. Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-03-09Blackfin: add support for the on-chip MAC status interruptsMichael Hennerich1-4/+136
This patch provides infrastructure for MAC Wake-On-Lan and PHYINT use in phylib. New Interrupts added: IRQ_MAC_PHYINT /* PHY_INT Interrupt */ IRQ_MAC_MMCINT /* MMC Counter Interrupt */ IRQ_MAC_RXFSINT /* RX Frame-Status Interrupt */ IRQ_MAC_TXFSINT /* TX Frame-Status Interrupt */ IRQ_MAC_WAKEDET /* Wake-Up Interrupt */ IRQ_MAC_RXDMAERR /* RX DMA Direction Error Interrupt */ IRQ_MAC_TXDMAERR /* TX DMA Direction Error Interrupt */ IRQ_MAC_STMDONE /* Station Mgt. Transfer Done Interrupt */ On BF537/6 the implementation is not straight forward since there are now two chained chained_handlers. A cleaner approach would have been to add latter IRQs to the demux of IRQ_GENERIC_ERROR. Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-03-09Blackfin: increase NR_IRQS beyond NR on-chip IRQsMichael Hennerich1-1/+1
This makes room for off-chip IRQ controllers. Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-03-09Blackfin: try to simplify interrupt ifdef uglinessYi Li1-8/+13
Signed-off-by: Yi Li <yi.li@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-03-09Blackfin: SMP: make core timers per-cpu clock events for HRTYi Li1-3/+0
SMP systems require per-cpu local clock event devices in order to enable HRT support. One a BF561, we can use local core timer for this purpose. Originally, there was one global core-timer clock event device set up for core A. To accomplish this feat, we need to split the gptimer0/core timer logic so that each is a standalone clock event. There is no requirement that we only have one clock event source anyways. Once we have this, we just define per-cpu clock event devices for each local core timer. Signed-off-by: Yi Li <yi.li@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-03-09Blackfin: SMP: add support for IRQ affinitySonic Zhang1-4/+34
Now that the Blackfin IRQ controller supports this, drivers get the normal functionality of controlling which CPU to bind IRQs to. Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-03-09Blackfin: pull in asm/bfin_can.h for interrupt masksMichael Hennerich1-0/+1
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-12-15Blackfin: BF537: push down error masks to avoid namespace pollutionMike Frysinger1-4/+10
The error masks are only needed in the BF537 demux error code, so instead of needing all the short peripheral defines in global space, push these masks into the one file where they are actually needed. This fixes a bunch of define collisions with common code (can/serial/etc...). Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Barry Song <barry.song@analog.com>
2009-12-15Blackfin: pull in asm/dpmc.h for power definesMike Frysinger1-0/+1
Signed-off-by: Mike Frysinger <vapier@gentoo.org>