Blame view

arch/arm/mach-at91/generic.h 2.52 KB
73a59c1c4   SAN People   [ARM] 3240/2: AT9...
1
  /*
9d0412680   Andrew Victor   [ARM] 4124/1: Ren...
2
   * linux/arch/arm/mach-at91/generic.h
73a59c1c4   SAN People   [ARM] 3240/2: AT9...
3
4
5
6
7
8
9
   *
   *  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.
   */
bd6029959   Jean-Christophe PLAGNIOL-VILLARD   at91: switch to C...
10
  #include <linux/clkdev.h>
1b021a3b2   Jean-Christophe PLAGNIOL-VILLARD   at91: fix map_io ...
11
   /* Map io */
21d08b9d5   Jean-Christophe PLAGNIOL-VILLARD   at91: introduce c...
12
  extern void __init at91_map_io(void);
f0051d82a   Jean-Christophe PLAGNIOL-VILLARD   at91: factorize s...
13
14
  extern void __init at91_init_sram(int bank, unsigned long base,
  				  unsigned int length);
1b021a3b2   Jean-Christophe PLAGNIOL-VILLARD   at91: fix map_io ...
15

2eeaaa21d   Andrew Victor   [ARM] 3866/1: AT9...
16
   /* Processors */
e57556e3b   Jean-Christophe PLAGNIOL-VILLARD   at91rm9200: intro...
17
  extern void __init at91rm9200_set_type(int type);
21d08b9d5   Jean-Christophe PLAGNIOL-VILLARD   at91: introduce c...
18
  extern void __init at91_initialize(unsigned long main_clock);
9a7e246b5   Greg Ungerer   [ARM] 4535/1: AT9...
19
  extern void __init at91x40_initialize(unsigned long main_clock);
2eeaaa21d   Andrew Victor   [ARM] 3866/1: AT9...
20

ba854e184   Andrew Victor   [ARM] 3711/1: AT9...
21
   /* Interrupts */
92100c12c   Jean-Christophe PLAGNIOL-VILLARD   at91: factorize a...
22
23
  extern void __init at91_init_irq_default(void);
  extern void __init at91_init_interrupts(unsigned int priority[]);
9a7e246b5   Greg Ungerer   [ARM] 4535/1: AT9...
24
  extern void __init at91x40_init_interrupts(unsigned int priority[]);
ba854e184   Andrew Victor   [ARM] 3711/1: AT9...
25
  extern void __init at91_aic_init(unsigned int priority[]);
73a59c1c4   SAN People   [ARM] 3240/2: AT9...
26

ba854e184   Andrew Victor   [ARM] 3711/1: AT9...
27
   /* Timer */
73a59c1c4   SAN People   [ARM] 3240/2: AT9...
28
29
  struct sys_timer;
  extern struct sys_timer at91rm9200_timer;
4ab0c5998   Jean-Christophe PLAGNIOL-VILLARD   ARM: at91: make p...
30
  extern void at91sam926x_ioremap_pit(u32 addr);
62c1660d9   Andrew Victor   [ARM] 3948/1: AT9...
31
  extern struct sys_timer at91sam926x_timer;
9a7e246b5   Greg Ungerer   [ARM] 4535/1: AT9...
32
  extern struct sys_timer at91x40_timer;
73a59c1c4   SAN People   [ARM] 3240/2: AT9...
33

ba854e184   Andrew Victor   [ARM] 3711/1: AT9...
34
   /* Clocks */
bd6029959   Jean-Christophe PLAGNIOL-VILLARD   at91: switch to C...
35
36
37
38
39
40
41
42
43
44
45
46
  /*
   * function to specify the clock of the default console. As we do not
   * use the device/driver bus, the dev_name is not intialize. So we need
   * to link the clock to a specific con_id only "usart"
   */
  extern void __init at91rm9200_set_console_clock(int id);
  extern void __init at91sam9260_set_console_clock(int id);
  extern void __init at91sam9261_set_console_clock(int id);
  extern void __init at91sam9263_set_console_clock(int id);
  extern void __init at91sam9rl_set_console_clock(int id);
  extern void __init at91sam9g45_set_console_clock(int id);
  extern void __init at91cap9_set_console_clock(int id);
465393749   Jean-Christophe PLAGNIOL-VILLARD   at91: move clock ...
47
48
49
50
51
  #ifdef CONFIG_AT91_PMC_UNIT
  extern int __init at91_clock_init(unsigned long main_clock);
  #else
  static int inline at91_clock_init(unsigned long main_clock) { return 0; }
  #endif
907d6deb6   Andrew Victor   [ARM] 3605/1: AT9...
52
  struct device;
907d6deb6   Andrew Victor   [ARM] 3605/1: AT9...
53
54
55
56
  
   /* Power Management */
  extern void at91_irq_suspend(void);
  extern void at91_irq_resume(void);
bb413db59   Nicolas Ferre   AT91: reset: exte...
57
  /* reset */
1b2073e77   Russell King   ARM: restart: at9...
58
  extern void at91sam9_alt_restart(char, const char *);
bb413db59   Nicolas Ferre   AT91: reset: exte...
59

f22deee52   Jean-Christophe PLAGNIOL-VILLARD   ARM: at91: make s...
60
61
  /* shutdown */
  extern void at91_ioremap_shdwc(u32 base_addr);
f21738341   Andrew Victor   [ARM] 3867/1: AT9...
62
63
64
65
66
67
   /* 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 */
80e91cb80   Jean-Christophe PLAGNIOL-VILLARD   ARM: at91: make g...
68
  	unsigned long regbase;		/* offset from system peripheral base */
f21738341   Andrew Victor   [ARM] 3867/1: AT9...
69
70
71
  };
  extern void __init at91_gpio_init(struct at91_gpio_bank *, int nr_banks);
  extern void __init at91_gpio_irq_setup(void);
1f4fd0a0d   Andrew Victor   [ARM] 3946/1: AT9...
72

1f4fd0a0d   Andrew Victor   [ARM] 3946/1: AT9...
73
  extern int at91_extern_irq;