8b45bc892e
These are changes for drivers that are intimately tied to some SoC and for some reason could not get merged through the respective subsystem maintainer tree. Most of the new code is for the Keystone Navigator driver, which is new base support that is going to be needed for their hardware accelerated network driver and other units. Most of the commits are for moving old code around from at91 and omap for things that are done in device drivers nowadays. - at91: move reset, poweroff, memory and clocksource code into drivers directories - socfpga: add edac driver (through arm-soc, as requested by Boris) - omap: move omap-intc code to drivers/irqchip - sunxi: added an RTC driver for sun6i - omap: mailbox driver related changes - keystone: support for the "Navigator" component - versatile: new reboot, led and soc drivers -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIVAwUAVDWWQGCrR//JCVInAQKX7Q//bDkoseKCZsGaXN7vfQ2YhT3SAc52mROV YQKdNmtMUrHqDgngATZTx5ogOh1hInnqueFjGGhfMYsHQO1Vj8+odj0r+4jhjuUY 3YfY+qZ+91tq33JlUOhKn+mfVMdxJc8XarGgR6MSWYkqWVYCtLtBluum7hKm2UJ6 /e4hd2zzImX5ATwj/LXWLx5eTf1qAVFGWzNUph1DrW+1V5lOu58X4gKwk1QOCVEh Pa0GV9oRTkjoswwz9drzjeFtie2yofQ2mygj6QKxg5NsosIF0+B8kJ61Sxwg56Ak tF+qn1hGtB2cDQkpxK4o2cZgCELhkh5Aqgol/vZUS1DMBSUEGCV9PPp2eOW83r3B 0zsTgsShyVcTh7khdpQmHNRigvcc7e69LaAGC4o/RxaZpCU/LUNCQ+/iqVExSE8A VNEXr+JNxGxhj3m9KUHuEktdWx1oNvaYR8Rr4RPr6EWR8R6emJ04I7kXInvzhJZL HOGh75vSuAU83FrsP8fFRLadoHNVDXylAs38BPfGEMngVpjvwJLgQ3+729CwW+Q4 +xQXAKSwKfr8xA8eg6wBSbFcwnEW4QwRqFqQ5XPw7zTZkCZbiLtvn3JpI5bH5A5Q /d2D+M2vFbB7VbWJBM4etO95eNS/pfhqJhcQh4t0DjXjoW6WqLiHCxhEx8Ogfvop /4ckyGvtEOI= =POJD -----END PGP SIGNATURE----- Merge tag 'drivers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC driver updates from Arnd Bergmann: "These are changes for drivers that are intimately tied to some SoC and for some reason could not get merged through the respective subsystem maintainer tree. Most of the new code is for the Keystone Navigator driver, which is new base support that is going to be needed for their hardware accelerated network driver and other units. Most of the commits are for moving old code around from at91 and omap for things that are done in device drivers nowadays. - at91: move reset, poweroff, memory and clocksource code into drivers directories - socfpga: add edac driver (through arm-soc, as requested by Boris) - omap: move omap-intc code to drivers/irqchip - sunxi: added an RTC driver for sun6i - omap: mailbox driver related changes - keystone: support for the "Navigator" component - versatile: new reboot, led and soc drivers" * tag 'drivers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (92 commits) bus: arm-ccn: Fix spurious warning message leds: add device tree bindings for register bit LEDs soc: add driver for the ARM RealView power: reset: driver for the Versatile syscon reboot leds: add a driver for syscon-based LEDs drivers/soc: ti: fix build break with modules MAINTAINERS: Add Keystone Multicore Navigator drivers entry soc: ti: add Keystone Navigator DMA support Documentation: dt: soc: add Keystone Navigator DMA bindings soc: ti: add Keystone Navigator QMSS driver Documentation: dt: soc: add Keystone Navigator QMSS bindings rtc: sunxi: Depend on platforms sun4i/sun7i that actually have the rtc rtc: sun6i: Add sun6i RTC driver irqchip: omap-intc: remove unnecessary comments irqchip: omap-intc: correct maximum number or MIR registers irqchip: omap-intc: enable TURBO idle mode irqchip: omap-intc: enable IP protection irqchip: omap-intc: remove unnecesary of_address_to_resource() call irqchip: omap-intc: comment style cleanup irqchip: omap-intc: minor improvement to omap_irq_pending() ...
94 lines
2.9 KiB
C
94 lines
2.9 KiB
C
/*
|
|
* linux/arch/arm/mach-at91/generic.h
|
|
*
|
|
* Copyright (C) 2005 David Brownell
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*/
|
|
|
|
#ifndef _AT91_GENERIC_H
|
|
#define _AT91_GENERIC_H
|
|
|
|
#include <linux/clkdev.h>
|
|
#include <linux/of.h>
|
|
#include <linux/reboot.h>
|
|
|
|
/* Map io */
|
|
extern void __init at91_map_io(void);
|
|
extern void __init at91_alt_map_io(void);
|
|
extern void __init at91_init_sram(int bank, unsigned long base,
|
|
unsigned int length);
|
|
|
|
/* Processors */
|
|
extern void __init at91rm9200_set_type(int type);
|
|
extern void __init at91_initialize(unsigned long main_clock);
|
|
extern void __init at91x40_initialize(unsigned long main_clock);
|
|
extern void __init at91rm9200_dt_initialize(void);
|
|
extern void __init at91_dt_initialize(void);
|
|
|
|
/* Interrupts */
|
|
extern void __init at91_init_irq_default(void);
|
|
extern void __init at91_init_interrupts(unsigned int priority[]);
|
|
extern void __init at91x40_init_interrupts(unsigned int priority[]);
|
|
extern void __init at91_aic_init(unsigned int priority[],
|
|
unsigned int ext_irq_mask);
|
|
extern int __init at91_aic_of_init(struct device_node *node,
|
|
struct device_node *parent);
|
|
extern int __init at91_aic5_of_init(struct device_node *node,
|
|
struct device_node *parent);
|
|
extern void __init at91_sysirq_mask_rtc(u32 rtc_base);
|
|
extern void __init at91_sysirq_mask_rtt(u32 rtt_base);
|
|
|
|
/* Devices */
|
|
extern void __init at91_register_devices(void);
|
|
|
|
/* Timer */
|
|
extern void __init at91_init_time(void);
|
|
extern void at91rm9200_ioremap_st(u32 addr);
|
|
extern void at91rm9200_timer_init(void);
|
|
extern void at91sam926x_ioremap_pit(u32 addr);
|
|
extern void at91sam926x_pit_init(int irq);
|
|
extern void at91x40_timer_init(void);
|
|
|
|
/* Clocks */
|
|
#ifdef CONFIG_OLD_CLK_AT91
|
|
extern int __init at91_clock_init(unsigned long main_clock);
|
|
extern int __init at91_dt_clock_init(void);
|
|
#else
|
|
static int inline at91_clock_init(unsigned long main_clock) { return 0; }
|
|
static int inline at91_dt_clock_init(void) { return 0; }
|
|
#endif
|
|
struct device;
|
|
|
|
/* Power Management */
|
|
extern void at91_irq_suspend(void);
|
|
extern void at91_irq_resume(void);
|
|
|
|
/* idle */
|
|
extern void at91sam9_idle(void);
|
|
|
|
/* Matrix */
|
|
extern void at91_ioremap_matrix(u32 base_addr);
|
|
|
|
/* Ram Controler */
|
|
extern void at91_ioremap_ramc(int id, u32 addr, u32 size);
|
|
|
|
/* GPIO */
|
|
#define AT91RM9200_PQFP 3 /* AT91RM9200 PQFP package has 3 banks */
|
|
#define AT91RM9200_BGA 4 /* AT91RM9200 BGA package has 4 banks */
|
|
|
|
struct at91_gpio_bank {
|
|
unsigned short id; /* peripheral ID */
|
|
unsigned long regbase; /* offset from system peripheral base */
|
|
};
|
|
extern void __init at91_gpio_init(struct at91_gpio_bank *, int nr_banks);
|
|
extern void __init at91_gpio_irq_setup(void);
|
|
extern int __init at91_gpio_of_irq_setup(struct device_node *node,
|
|
struct device_node *parent);
|
|
|
|
extern u32 at91_get_extern_irq(void);
|
|
|
|
#endif /* _AT91_GENERIC_H */
|