aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/include/asm/mach
diff options
context:
space:
mode:
authorJonathan Herman <hermanjl@cs.unc.edu>2013-01-17 16:15:55 -0500
committerJonathan Herman <hermanjl@cs.unc.edu>2013-01-17 16:15:55 -0500
commit8dea78da5cee153b8af9c07a2745f6c55057fe12 (patch)
treea8f4d49d63b1ecc92f2fddceba0655b2472c5bd9 /arch/arm/include/asm/mach
parent406089d01562f1e2bf9f089fd7637009ebaad589 (diff)
Patched in Tegra support.
Diffstat (limited to 'arch/arm/include/asm/mach')
-rw-r--r--arch/arm/include/asm/mach/arch.h25
-rw-r--r--arch/arm/include/asm/mach/irq.h2
-rw-r--r--arch/arm/include/asm/mach/map.h17
-rw-r--r--arch/arm/include/asm/mach/pci.h30
-rw-r--r--arch/arm/include/asm/mach/time.h7
5 files changed, 22 insertions, 59 deletions
diff --git a/arch/arm/include/asm/mach/arch.h b/arch/arm/include/asm/mach/arch.h
index 917d4fcfd9b..217aa1911dd 100644
--- a/arch/arm/include/asm/mach/arch.h
+++ b/arch/arm/include/asm/mach/arch.h
@@ -13,19 +13,12 @@
13struct tag; 13struct tag;
14struct meminfo; 14struct meminfo;
15struct sys_timer; 15struct sys_timer;
16struct pt_regs;
17struct smp_operations;
18#ifdef CONFIG_SMP
19#define smp_ops(ops) (&(ops))
20#else
21#define smp_ops(ops) (struct smp_operations *)NULL
22#endif
23 16
24struct machine_desc { 17struct machine_desc {
25 unsigned int nr; /* architecture number */ 18 unsigned int nr; /* architecture number */
26 const char *name; /* architecture name */ 19 const char *name; /* architecture name */
27 unsigned long atag_offset; /* tagged list (relative) */ 20 unsigned long boot_params; /* tagged list */
28 const char *const *dt_compat; /* array of device tree 21 const char **dt_compat; /* array of device tree
29 * 'compatible' strings */ 22 * 'compatible' strings */
30 23
31 unsigned int nr_irqs; /* number of IRQs */ 24 unsigned int nr_irqs; /* number of IRQs */
@@ -37,12 +30,12 @@ struct machine_desc {
37 unsigned int video_start; /* start of video RAM */ 30 unsigned int video_start; /* start of video RAM */
38 unsigned int video_end; /* end of video RAM */ 31 unsigned int video_end; /* end of video RAM */
39 32
40 unsigned char reserve_lp0 :1; /* never has lp0 */ 33 unsigned int reserve_lp0 :1; /* never has lp0 */
41 unsigned char reserve_lp1 :1; /* never has lp1 */ 34 unsigned int reserve_lp1 :1; /* never has lp1 */
42 unsigned char reserve_lp2 :1; /* never has lp2 */ 35 unsigned int reserve_lp2 :1; /* never has lp2 */
43 char restart_mode; /* default restart mode */ 36 unsigned int soft_reboot :1; /* soft reboot */
44 struct smp_operations *smp; /* SMP operations */ 37 void (*fixup)(struct machine_desc *,
45 void (*fixup)(struct tag *, char **, 38 struct tag *, char **,
46 struct meminfo *); 39 struct meminfo *);
47 void (*reserve)(void);/* reserve mem blocks */ 40 void (*reserve)(void);/* reserve mem blocks */
48 void (*map_io)(void);/* IO mapping function */ 41 void (*map_io)(void);/* IO mapping function */
@@ -50,11 +43,9 @@ struct machine_desc {
50 void (*init_irq)(void); 43 void (*init_irq)(void);
51 struct sys_timer *timer; /* system tick timer */ 44 struct sys_timer *timer; /* system tick timer */
52 void (*init_machine)(void); 45 void (*init_machine)(void);
53 void (*init_late)(void);
54#ifdef CONFIG_MULTI_IRQ_HANDLER 46#ifdef CONFIG_MULTI_IRQ_HANDLER
55 void (*handle_irq)(struct pt_regs *); 47 void (*handle_irq)(struct pt_regs *);
56#endif 48#endif
57 void (*restart)(char, const char *);
58}; 49};
59 50
60/* 51/*
diff --git a/arch/arm/include/asm/mach/irq.h b/arch/arm/include/asm/mach/irq.h
index 15cb035309f..febe495d0c6 100644
--- a/arch/arm/include/asm/mach/irq.h
+++ b/arch/arm/include/asm/mach/irq.h
@@ -17,7 +17,7 @@ struct seq_file;
17/* 17/*
18 * This is internal. Do not use it. 18 * This is internal. Do not use it.
19 */ 19 */
20extern void init_FIQ(int); 20extern void init_FIQ(void);
21extern int show_fiq_list(struct seq_file *, int); 21extern int show_fiq_list(struct seq_file *, int);
22 22
23#ifdef CONFIG_MULTI_IRQ_HANDLER 23#ifdef CONFIG_MULTI_IRQ_HANDLER
diff --git a/arch/arm/include/asm/mach/map.h b/arch/arm/include/asm/mach/map.h
index 2fe141fcc8d..d2fedb5aeb1 100644
--- a/arch/arm/include/asm/mach/map.h
+++ b/arch/arm/include/asm/mach/map.h
@@ -9,9 +9,6 @@
9 * 9 *
10 * Page table mapping constructs and function prototypes 10 * Page table mapping constructs and function prototypes
11 */ 11 */
12#ifndef __ASM_MACH_MAP_H
13#define __ASM_MACH_MAP_H
14
15#include <asm/io.h> 12#include <asm/io.h>
16 13
17struct map_desc { 14struct map_desc {
@@ -32,20 +29,9 @@ struct map_desc {
32#define MT_MEMORY_NONCACHED 11 29#define MT_MEMORY_NONCACHED 11
33#define MT_MEMORY_DTCM 12 30#define MT_MEMORY_DTCM 12
34#define MT_MEMORY_ITCM 13 31#define MT_MEMORY_ITCM 13
35#define MT_MEMORY_SO 14
36#define MT_MEMORY_DMA_READY 15
37 32
38#ifdef CONFIG_MMU 33#ifdef CONFIG_MMU
39extern void iotable_init(struct map_desc *, int); 34extern void iotable_init(struct map_desc *, int);
40extern void vm_reserve_area_early(unsigned long addr, unsigned long size,
41 void *caller);
42
43#ifdef CONFIG_DEBUG_LL
44extern void debug_ll_addr(unsigned long *paddr, unsigned long *vaddr);
45extern void debug_ll_io_init(void);
46#else
47static inline void debug_ll_io_init(void) {}
48#endif
49 35
50struct mem_type; 36struct mem_type;
51extern const struct mem_type *get_mem_type(unsigned int type); 37extern const struct mem_type *get_mem_type(unsigned int type);
@@ -56,7 +42,4 @@ extern int ioremap_page(unsigned long virt, unsigned long phys,
56 const struct mem_type *mtype); 42 const struct mem_type *mtype);
57#else 43#else
58#define iotable_init(map,num) do { } while (0) 44#define iotable_init(map,num) do { } while (0)
59#define vm_reserve_area_early(a,s,c) do { } while (0)
60#endif
61
62#endif 45#endif
diff --git a/arch/arm/include/asm/mach/pci.h b/arch/arm/include/asm/mach/pci.h
index db9fedb57f2..186efd4e05c 100644
--- a/arch/arm/include/asm/mach/pci.h
+++ b/arch/arm/include/asm/mach/pci.h
@@ -11,17 +11,14 @@
11#ifndef __ASM_MACH_PCI_H 11#ifndef __ASM_MACH_PCI_H
12#define __ASM_MACH_PCI_H 12#define __ASM_MACH_PCI_H
13 13
14#include <linux/ioport.h>
15
16struct pci_sys_data; 14struct pci_sys_data;
17struct pci_ops;
18struct pci_bus; 15struct pci_bus;
19 16
20struct hw_pci { 17struct hw_pci {
21#ifdef CONFIG_PCI_DOMAINS 18#ifdef CONFIG_PCI_DOMAINS
22 int domain; 19 int domain;
23#endif 20#endif
24 struct pci_ops *ops; 21 struct list_head buses;
25 int nr_controllers; 22 int nr_controllers;
26 int (*setup)(int nr, struct pci_sys_data *); 23 int (*setup)(int nr, struct pci_sys_data *);
27 struct pci_bus *(*scan)(int nr, struct pci_sys_data *); 24 struct pci_bus *(*scan)(int nr, struct pci_sys_data *);
@@ -43,49 +40,44 @@ struct pci_sys_data {
43 u64 mem_offset; /* bus->cpu memory mapping offset */ 40 u64 mem_offset; /* bus->cpu memory mapping offset */
44 unsigned long io_offset; /* bus->cpu IO mapping offset */ 41 unsigned long io_offset; /* bus->cpu IO mapping offset */
45 struct pci_bus *bus; /* PCI bus */ 42 struct pci_bus *bus; /* PCI bus */
46 struct list_head resources; /* root bus resources (apertures) */ 43 struct resource *resource[3]; /* Primary PCI bus resources */
47 struct resource io_res;
48 char io_res_name[12];
49 /* Bridge swizzling */ 44 /* Bridge swizzling */
50 u8 (*swizzle)(struct pci_dev *, u8 *); 45 u8 (*swizzle)(struct pci_dev *, u8 *);
51 /* IRQ mapping */ 46 /* IRQ mapping */
52 int (*map_irq)(const struct pci_dev *, u8, u8); 47 int (*map_irq)(const struct pci_dev *, u8, u8);
48 struct hw_pci *hw;
53 void *private_data; /* platform controller private data */ 49 void *private_data; /* platform controller private data */
54}; 50};
55 51
56/* 52/*
57 * Call this with your hw_pci struct to initialise the PCI system. 53 * This is the standard PCI-PCI bridge swizzling algorithm.
58 */ 54 */
59void pci_common_init(struct hw_pci *); 55#define pci_std_swizzle pci_common_swizzle
60 56
61/* 57/*
62 * Setup early fixed I/O mapping. 58 * Call this with your hw_pci struct to initialise the PCI system.
63 */ 59 */
64#if defined(CONFIG_PCI) 60void pci_common_init(struct hw_pci *);
65extern void pci_map_io_early(unsigned long pfn);
66#else
67static inline void pci_map_io_early(unsigned long pfn) {}
68#endif
69 61
70/* 62/*
71 * PCI controllers 63 * PCI controllers
72 */ 64 */
73extern struct pci_ops iop3xx_ops;
74extern int iop3xx_pci_setup(int nr, struct pci_sys_data *); 65extern int iop3xx_pci_setup(int nr, struct pci_sys_data *);
66extern struct pci_bus *iop3xx_pci_scan_bus(int nr, struct pci_sys_data *);
75extern void iop3xx_pci_preinit(void); 67extern void iop3xx_pci_preinit(void);
76extern void iop3xx_pci_preinit_cond(void); 68extern void iop3xx_pci_preinit_cond(void);
77 69
78extern struct pci_ops dc21285_ops;
79extern int dc21285_setup(int nr, struct pci_sys_data *); 70extern int dc21285_setup(int nr, struct pci_sys_data *);
71extern struct pci_bus *dc21285_scan_bus(int nr, struct pci_sys_data *);
80extern void dc21285_preinit(void); 72extern void dc21285_preinit(void);
81extern void dc21285_postinit(void); 73extern void dc21285_postinit(void);
82 74
83extern struct pci_ops via82c505_ops;
84extern int via82c505_setup(int nr, struct pci_sys_data *); 75extern int via82c505_setup(int nr, struct pci_sys_data *);
76extern struct pci_bus *via82c505_scan_bus(int nr, struct pci_sys_data *);
85extern void via82c505_init(void *sysdata); 77extern void via82c505_init(void *sysdata);
86 78
87extern struct pci_ops pci_v3_ops;
88extern int pci_v3_setup(int nr, struct pci_sys_data *); 79extern int pci_v3_setup(int nr, struct pci_sys_data *);
80extern struct pci_bus *pci_v3_scan_bus(int nr, struct pci_sys_data *);
89extern void pci_v3_preinit(void); 81extern void pci_v3_preinit(void);
90extern void pci_v3_postinit(void); 82extern void pci_v3_postinit(void);
91 83
diff --git a/arch/arm/include/asm/mach/time.h b/arch/arm/include/asm/mach/time.h
index 6ca945f534a..d5adaae5ee2 100644
--- a/arch/arm/include/asm/mach/time.h
+++ b/arch/arm/include/asm/mach/time.h
@@ -10,6 +10,8 @@
10#ifndef __ASM_ARM_MACH_TIME_H 10#ifndef __ASM_ARM_MACH_TIME_H
11#define __ASM_ARM_MACH_TIME_H 11#define __ASM_ARM_MACH_TIME_H
12 12
13#include <linux/sysdev.h>
14
13/* 15/*
14 * This is our kernel timer structure. 16 * This is our kernel timer structure.
15 * 17 *
@@ -42,9 +44,4 @@ struct sys_timer {
42 44
43extern void timer_tick(void); 45extern void timer_tick(void);
44 46
45struct timespec;
46typedef void (*clock_access_fn)(struct timespec *);
47extern int register_persistent_clock(clock_access_fn read_boot,
48 clock_access_fn read_persistent);
49
50#endif 47#endif