Skip to content
  • Simon Arlott's avatar
    ARM: bcm2835: add interrupt controller driver · 89214f00
    Simon Arlott authored
    The BCM2835 contains a custom interrupt controller, which supports 72
    interrupt sources using a 2-level register scheme. The interrupt
    controller, or the HW block containing it, is referred to occasionally
    as "armctrl" in the SoC documentation, hence the symbol naming in the
    code.
    
    This patch was extracted from git://github.com/lp0/linux.git
    
     branch
    rpi-split as of 2012/09/08, and modified as follows:
    
    * s/bcm2708/bcm2835/.
    * Modified device tree vendor prefix.
    * Moved implementation to drivers/irchip/.
    * Added devicetree documentation, and hence removed list of IRQs from
      bcm2835.dtsi.
    * Changed shift in MAKE_HWIRQ() and HWIRQ_BANK() from 8 to 5 to reduce
      the size of the hwirq space, and pass the total size of the hwirq space
      to irq_domain_add_linear(), rather than just the number of valid hwirqs;
      the two are different due to the hwirq space being sparse.
    * Added the interrupt controller DT node to the top-level of the DT,
      rather than nesting it inside a /axi node. Hence, changed the reg value
      since /axi had a ranges property. This seems simpler to me, but I'm not
      sure if everyone will like this change or not.
    * Don't set struct irq_domain_ops.map = irq_domain_simple_map, hence
      removing the need to patch include/linux/irqdomain.h or
      kernel/irq/irqdomain.c.
    * Simplified armctrl_of_init() using of_iomap().
    * Removed unused IS_VALID_BANK()/IS_VALID_IRQ() macros.
    * Renamed armctrl_handle_irq() to prevent possible symbol clashes.
    * Made armctrl_of_init() static.
    * Removed comment "Each bank is registered as a separate interrupt
      controller" since this is no longer true.
    * Removed FSF address from license header.
    * Added my name to copyright header.
    
    Signed-off-by: default avatarChris Boot <bootc@bootc.net>
    Signed-off-by: default avatarSimon Arlott <simon@fire.lp0.eu>
    Signed-off-by: default avatarDom Cobley <popcornmix@gmail.com>
    Signed-off-by: default avatarDom Cobley <dc4@broadcom.com>
    Signed-off-by: default avatarStephen Warren <swarren@wwwdotorg.org>
    Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
    89214f00