blob: f5214ce494ab2a1a92c7339d87e058edf14693bd [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
2 * linux/arch/arm/mach-sa1100/generic.h
3 *
4 * Author: Nicolas Pitre
5 */
Robin Holt7b6d8642013-07-08 16:01:40 -07006#include <linux/reboot.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -07007
Stephen Warren6bb27d72012-11-08 12:40:59 -07008extern void sa1100_timer_init(void);
Linus Torvalds1da177e2005-04-16 15:20:36 -07009extern void __init sa1100_map_io(void);
10extern void __init sa1100_init_irq(void);
Dmitry Baryshkov45528e32008-04-10 13:31:47 +010011extern void __init sa1100_init_gpio(void);
Robin Holt7b6d8642013-07-08 16:01:40 -070012extern void sa11x0_restart(enum reboot_mode, const char *);
Shawn Guo7fea1ba2012-04-26 21:22:45 +080013extern void sa11x0_init_late(void);
Linus Torvalds1da177e2005-04-16 15:20:36 -070014
15#define SET_BANK(__nr,__start,__size) \
16 mi->bank[__nr].start = (__start), \
Russell Kingbe370302010-05-07 17:40:33 +010017 mi->bank[__nr].size = (__size)
Linus Torvalds1da177e2005-04-16 15:20:36 -070018
Linus Torvalds1da177e2005-04-16 15:20:36 -070019extern void sa1110_mb_enable(void);
20extern void sa1110_mb_disable(void);
21
22struct cpufreq_policy;
23
Viresh Kumar22c8b4f2013-09-16 18:56:32 +053024extern struct cpufreq_frequency_table sa11x0_freq_table[];
Linus Torvalds1da177e2005-04-16 15:20:36 -070025extern unsigned int sa11x0_freq_to_ppcr(unsigned int khz);
26extern int sa11x0_verify_speed(struct cpufreq_policy *policy);
27extern unsigned int sa11x0_getspeed(unsigned int cpu);
28extern unsigned int sa11x0_ppcr_to_freq(unsigned int idx);
29
30struct flash_platform_data;
31struct resource;
32
Russell King7a5b4e12009-10-06 14:55:53 +010033void sa11x0_register_mtd(struct flash_platform_data *flash,
34 struct resource *res, int nr);
Russell King323cdfc2005-08-18 10:10:46 +010035
Linus Torvalds1da177e2005-04-16 15:20:36 -070036struct irda_platform_data;
Russell King7a5b4e12009-10-06 14:55:53 +010037void sa11x0_register_irda(struct irda_platform_data *irda);
Russell King118ec0b2005-09-18 22:16:41 +010038
39struct mcp_plat_data;
Russell Kinge36e26a2012-01-20 22:24:07 +000040void sa11x0_ppc_configure_mcp(void);
Russell King7a5b4e12009-10-06 14:55:53 +010041void sa11x0_register_mcp(struct mcp_plat_data *data);
Russell Kinge1b7a722012-01-14 11:50:04 +000042
43struct sa1100fb_mach_info;
44void sa11x0_register_lcd(struct sa1100fb_mach_info *inf);
Shawn Guo7fea1ba2012-04-26 21:22:45 +080045
46#ifdef CONFIG_PM
47int sa11x0_pm_init(void);
48#else
49static inline int sa11x0_pm_init(void) { return 0; }
50#endif