blob: 68199b603ff717f7b5dfb514abd62c3b21704d1c [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 */
Viresh Kumare50322a2013-10-12 22:16:05 +02006#include <linux/cpufreq.h>
Robin Holt7b6d8642013-07-08 16:01:40 -07007#include <linux/reboot.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -07008
Stephen Warren6bb27d72012-11-08 12:40:59 -07009extern void sa1100_timer_init(void);
Linus Torvalds1da177e2005-04-16 15:20:36 -070010extern void __init sa1100_map_io(void);
11extern void __init sa1100_init_irq(void);
Dmitry Baryshkov45528e32008-04-10 13:31:47 +010012extern void __init sa1100_init_gpio(void);
Robin Holt7b6d8642013-07-08 16:01:40 -070013extern void sa11x0_restart(enum reboot_mode, const char *);
Shawn Guo7fea1ba2012-04-26 21:22:45 +080014extern void sa11x0_init_late(void);
Linus Torvalds1da177e2005-04-16 15:20:36 -070015
16#define SET_BANK(__nr,__start,__size) \
17 mi->bank[__nr].start = (__start), \
Russell Kingbe370302010-05-07 17:40:33 +010018 mi->bank[__nr].size = (__size)
Linus Torvalds1da177e2005-04-16 15:20:36 -070019
Linus Torvalds1da177e2005-04-16 15:20:36 -070020extern void sa1110_mb_enable(void);
21extern void sa1110_mb_disable(void);
22
Viresh Kumar22c8b4f2013-09-16 18:56:32 +053023extern struct cpufreq_frequency_table sa11x0_freq_table[];
Linus Torvalds1da177e2005-04-16 15:20:36 -070024extern unsigned int sa11x0_getspeed(unsigned int cpu);
Linus Torvalds1da177e2005-04-16 15:20:36 -070025
26struct flash_platform_data;
27struct resource;
28
Russell King7a5b4e12009-10-06 14:55:53 +010029void sa11x0_register_mtd(struct flash_platform_data *flash,
30 struct resource *res, int nr);
Russell King323cdfc2005-08-18 10:10:46 +010031
Linus Torvalds1da177e2005-04-16 15:20:36 -070032struct irda_platform_data;
Russell King7a5b4e12009-10-06 14:55:53 +010033void sa11x0_register_irda(struct irda_platform_data *irda);
Russell King118ec0b2005-09-18 22:16:41 +010034
35struct mcp_plat_data;
Russell Kinge36e26a2012-01-20 22:24:07 +000036void sa11x0_ppc_configure_mcp(void);
Russell King7a5b4e12009-10-06 14:55:53 +010037void sa11x0_register_mcp(struct mcp_plat_data *data);
Russell Kinge1b7a722012-01-14 11:50:04 +000038
39struct sa1100fb_mach_info;
40void sa11x0_register_lcd(struct sa1100fb_mach_info *inf);
Shawn Guo7fea1ba2012-04-26 21:22:45 +080041
42#ifdef CONFIG_PM
43int sa11x0_pm_init(void);
44#else
45static inline int sa11x0_pm_init(void) { return 0; }
46#endif
Russell King198b51e2016-08-19 12:47:54 +010047
48int sa11xx_clk_init(void);