diff options
Diffstat (limited to 'include/asm-arm/mach')
-rw-r--r-- | include/asm-arm/mach/arch.h | 92 | ||||
-rw-r--r-- | include/asm-arm/mach/dma.h | 55 | ||||
-rw-r--r-- | include/asm-arm/mach/flash.h | 34 | ||||
-rw-r--r-- | include/asm-arm/mach/irda.h | 20 | ||||
-rw-r--r-- | include/asm-arm/mach/irq.h | 127 | ||||
-rw-r--r-- | include/asm-arm/mach/map.h | 33 | ||||
-rw-r--r-- | include/asm-arm/mach/mmc.h | 15 | ||||
-rw-r--r-- | include/asm-arm/mach/pci.h | 75 | ||||
-rw-r--r-- | include/asm-arm/mach/serial_sa1100.h | 32 | ||||
-rw-r--r-- | include/asm-arm/mach/sharpsl_param.h | 37 | ||||
-rw-r--r-- | include/asm-arm/mach/time.h | 54 |
11 files changed, 574 insertions, 0 deletions
diff --git a/include/asm-arm/mach/arch.h b/include/asm-arm/mach/arch.h new file mode 100644 index 000000000000..3a32e929ec8c --- /dev/null +++ b/include/asm-arm/mach/arch.h | |||
@@ -0,0 +1,92 @@ | |||
1 | /* | ||
2 | * linux/include/asm-arm/mach/arch.h | ||
3 | * | ||
4 | * Copyright (C) 2000 Russell King | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | |||
11 | #ifndef __ASSEMBLY__ | ||
12 | |||
13 | struct tag; | ||
14 | struct meminfo; | ||
15 | struct sys_timer; | ||
16 | |||
17 | struct machine_desc { | ||
18 | /* | ||
19 | * Note! The first five elements are used | ||
20 | * by assembler code in head-armv.S | ||
21 | */ | ||
22 | unsigned int nr; /* architecture number */ | ||
23 | unsigned int phys_ram; /* start of physical ram */ | ||
24 | unsigned int phys_io; /* start of physical io */ | ||
25 | unsigned int io_pg_offst; /* byte offset for io | ||
26 | * page tabe entry */ | ||
27 | |||
28 | const char *name; /* architecture name */ | ||
29 | unsigned int param_offset; /* parameter page */ | ||
30 | |||
31 | unsigned int video_start; /* start of video RAM */ | ||
32 | unsigned int video_end; /* end of video RAM */ | ||
33 | |||
34 | unsigned int reserve_lp0 :1; /* never has lp0 */ | ||
35 | unsigned int reserve_lp1 :1; /* never has lp1 */ | ||
36 | unsigned int reserve_lp2 :1; /* never has lp2 */ | ||
37 | unsigned int soft_reboot :1; /* soft reboot */ | ||
38 | void (*fixup)(struct machine_desc *, | ||
39 | struct tag *, char **, | ||
40 | struct meminfo *); | ||
41 | void (*map_io)(void);/* IO mapping function */ | ||
42 | void (*init_irq)(void); | ||
43 | struct sys_timer *timer; /* system tick timer */ | ||
44 | void (*init_machine)(void); | ||
45 | }; | ||
46 | |||
47 | /* | ||
48 | * Set of macros to define architecture features. This is built into | ||
49 | * a table by the linker. | ||
50 | */ | ||
51 | #define MACHINE_START(_type,_name) \ | ||
52 | const struct machine_desc __mach_desc_##_type \ | ||
53 | __attribute__((__section__(".arch.info"))) = { \ | ||
54 | .nr = MACH_TYPE_##_type, \ | ||
55 | .name = _name, | ||
56 | |||
57 | #define MAINTAINER(n) | ||
58 | |||
59 | #define BOOT_MEM(_pram,_pio,_vio) \ | ||
60 | .phys_ram = _pram, \ | ||
61 | .phys_io = _pio, \ | ||
62 | .io_pg_offst = ((_vio)>>18)&0xfffc, | ||
63 | |||
64 | #define BOOT_PARAMS(_params) \ | ||
65 | .param_offset = _params, | ||
66 | |||
67 | #define VIDEO(_start,_end) \ | ||
68 | .video_start = _start, \ | ||
69 | .video_end = _end, | ||
70 | |||
71 | #define DISABLE_PARPORT(_n) \ | ||
72 | .reserve_lp##_n = 1, | ||
73 | |||
74 | #define SOFT_REBOOT \ | ||
75 | .soft_reboot = 1, | ||
76 | |||
77 | #define FIXUP(_func) \ | ||
78 | .fixup = _func, | ||
79 | |||
80 | #define MAPIO(_func) \ | ||
81 | .map_io = _func, | ||
82 | |||
83 | #define INITIRQ(_func) \ | ||
84 | .init_irq = _func, | ||
85 | |||
86 | #define INIT_MACHINE(_func) \ | ||
87 | .init_machine = _func, | ||
88 | |||
89 | #define MACHINE_END \ | ||
90 | }; | ||
91 | |||
92 | #endif | ||
diff --git a/include/asm-arm/mach/dma.h b/include/asm-arm/mach/dma.h new file mode 100644 index 000000000000..31bf716106ee --- /dev/null +++ b/include/asm-arm/mach/dma.h | |||
@@ -0,0 +1,55 @@ | |||
1 | /* | ||
2 | * linux/include/asm-arm/mach/dma.h | ||
3 | * | ||
4 | * Copyright (C) 1998-2000 Russell King | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | * | ||
10 | * This header file describes the interface between the generic DMA handler | ||
11 | * (dma.c) and the architecture-specific DMA backends (dma-*.c) | ||
12 | */ | ||
13 | |||
14 | struct dma_struct; | ||
15 | typedef struct dma_struct dma_t; | ||
16 | |||
17 | struct dma_ops { | ||
18 | int (*request)(dmach_t, dma_t *); /* optional */ | ||
19 | void (*free)(dmach_t, dma_t *); /* optional */ | ||
20 | void (*enable)(dmach_t, dma_t *); /* mandatory */ | ||
21 | void (*disable)(dmach_t, dma_t *); /* mandatory */ | ||
22 | int (*residue)(dmach_t, dma_t *); /* optional */ | ||
23 | int (*setspeed)(dmach_t, dma_t *, int); /* optional */ | ||
24 | char *type; | ||
25 | }; | ||
26 | |||
27 | struct dma_struct { | ||
28 | struct scatterlist buf; /* single DMA */ | ||
29 | int sgcount; /* number of DMA SG */ | ||
30 | struct scatterlist *sg; /* DMA Scatter-Gather List */ | ||
31 | |||
32 | unsigned int active:1; /* Transfer active */ | ||
33 | unsigned int invalid:1; /* Address/Count changed */ | ||
34 | unsigned int using_sg:1; /* using scatter list? */ | ||
35 | dmamode_t dma_mode; /* DMA mode */ | ||
36 | int speed; /* DMA speed */ | ||
37 | |||
38 | unsigned int lock; /* Device is allocated */ | ||
39 | const char *device_id; /* Device name */ | ||
40 | |||
41 | unsigned int dma_base; /* Controller base address */ | ||
42 | int dma_irq; /* Controller IRQ */ | ||
43 | struct scatterlist cur_sg; /* Current controller buffer */ | ||
44 | unsigned int state; | ||
45 | |||
46 | struct dma_ops *d_ops; | ||
47 | }; | ||
48 | |||
49 | /* Prototype: void arch_dma_init(dma) | ||
50 | * Purpose : Initialise architecture specific DMA | ||
51 | * Params : dma - pointer to array of DMA structures | ||
52 | */ | ||
53 | extern void arch_dma_init(dma_t *dma); | ||
54 | |||
55 | extern void isa_init_dma(dma_t *dma); | ||
diff --git a/include/asm-arm/mach/flash.h b/include/asm-arm/mach/flash.h new file mode 100644 index 000000000000..a92887d4b2cb --- /dev/null +++ b/include/asm-arm/mach/flash.h | |||
@@ -0,0 +1,34 @@ | |||
1 | /* | ||
2 | * linux/include/asm-arm/mach/flash.h | ||
3 | * | ||
4 | * Copyright (C) 2003 Russell King, All Rights Reserved. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | #ifndef ASMARM_MACH_FLASH_H | ||
11 | #define ASMARM_MACH_FLASH_H | ||
12 | |||
13 | struct mtd_partition; | ||
14 | |||
15 | /* | ||
16 | * map_name: the map probe function name | ||
17 | * width: width of mapped device | ||
18 | * init: method called at driver/device initialisation | ||
19 | * exit: method called at driver/device removal | ||
20 | * set_vpp: method called to enable or disable VPP | ||
21 | * parts: optional array of mtd_partitions for static partitioning | ||
22 | * nr_parts: number of mtd_partitions for static partitoning | ||
23 | */ | ||
24 | struct flash_platform_data { | ||
25 | const char *map_name; | ||
26 | unsigned int width; | ||
27 | int (*init)(void); | ||
28 | void (*exit)(void); | ||
29 | void (*set_vpp)(int on); | ||
30 | struct mtd_partition *parts; | ||
31 | unsigned int nr_parts; | ||
32 | }; | ||
33 | |||
34 | #endif | ||
diff --git a/include/asm-arm/mach/irda.h b/include/asm-arm/mach/irda.h new file mode 100644 index 000000000000..58984d9c0b0b --- /dev/null +++ b/include/asm-arm/mach/irda.h | |||
@@ -0,0 +1,20 @@ | |||
1 | /* | ||
2 | * linux/include/asm-arm/mach/irda.h | ||
3 | * | ||
4 | * Copyright (C) 2004 Russell King. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | #ifndef __ASM_ARM_MACH_IRDA_H | ||
11 | #define __ASM_ARM_MACH_IRDA_H | ||
12 | |||
13 | struct irda_platform_data { | ||
14 | int (*startup)(struct device *); | ||
15 | void (*shutdown)(struct device *); | ||
16 | int (*set_power)(struct device *, unsigned int state); | ||
17 | void (*set_speed)(struct device *, unsigned int speed); | ||
18 | }; | ||
19 | |||
20 | #endif | ||
diff --git a/include/asm-arm/mach/irq.h b/include/asm-arm/mach/irq.h new file mode 100644 index 000000000000..a43a353f6c7b --- /dev/null +++ b/include/asm-arm/mach/irq.h | |||
@@ -0,0 +1,127 @@ | |||
1 | /* | ||
2 | * linux/include/asm-arm/mach/irq.h | ||
3 | * | ||
4 | * Copyright (C) 1995-2000 Russell King. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | #ifndef __ASM_ARM_MACH_IRQ_H | ||
11 | #define __ASM_ARM_MACH_IRQ_H | ||
12 | |||
13 | struct irqdesc; | ||
14 | struct pt_regs; | ||
15 | struct seq_file; | ||
16 | |||
17 | typedef void (*irq_handler_t)(unsigned int, struct irqdesc *, struct pt_regs *); | ||
18 | typedef void (*irq_control_t)(unsigned int); | ||
19 | |||
20 | struct irqchip { | ||
21 | /* | ||
22 | * Acknowledge the IRQ. | ||
23 | * If this is a level-based IRQ, then it is expected to mask the IRQ | ||
24 | * as well. | ||
25 | */ | ||
26 | void (*ack)(unsigned int); | ||
27 | /* | ||
28 | * Mask the IRQ in hardware. | ||
29 | */ | ||
30 | void (*mask)(unsigned int); | ||
31 | /* | ||
32 | * Unmask the IRQ in hardware. | ||
33 | */ | ||
34 | void (*unmask)(unsigned int); | ||
35 | /* | ||
36 | * Ask the hardware to re-trigger the IRQ. | ||
37 | * Note: This method _must_ _not_ call the interrupt handler. | ||
38 | * If you are unable to retrigger the interrupt, do not | ||
39 | * provide a function, or if you do, return non-zero. | ||
40 | */ | ||
41 | int (*retrigger)(unsigned int); | ||
42 | /* | ||
43 | * Set the type of the IRQ. | ||
44 | */ | ||
45 | int (*type)(unsigned int, unsigned int); | ||
46 | /* | ||
47 | * Set wakeup-enable on the selected IRQ | ||
48 | */ | ||
49 | int (*wake)(unsigned int, unsigned int); | ||
50 | |||
51 | #ifdef CONFIG_SMP | ||
52 | /* | ||
53 | * Route an interrupt to a CPU | ||
54 | */ | ||
55 | void (*set_cpu)(struct irqdesc *desc, unsigned int irq, unsigned int cpu); | ||
56 | #endif | ||
57 | }; | ||
58 | |||
59 | struct irqdesc { | ||
60 | irq_handler_t handle; | ||
61 | struct irqchip *chip; | ||
62 | struct irqaction *action; | ||
63 | struct list_head pend; | ||
64 | void *chipdata; | ||
65 | void *data; | ||
66 | unsigned int disable_depth; | ||
67 | |||
68 | unsigned int triggered: 1; /* IRQ has occurred */ | ||
69 | unsigned int running : 1; /* IRQ is running */ | ||
70 | unsigned int pending : 1; /* IRQ is pending */ | ||
71 | unsigned int probing : 1; /* IRQ in use for a probe */ | ||
72 | unsigned int probe_ok : 1; /* IRQ can be used for probe */ | ||
73 | unsigned int valid : 1; /* IRQ claimable */ | ||
74 | unsigned int noautoenable : 1; /* don't automatically enable IRQ */ | ||
75 | unsigned int unused :25; | ||
76 | |||
77 | struct proc_dir_entry *procdir; | ||
78 | |||
79 | #ifdef CONFIG_SMP | ||
80 | cpumask_t affinity; | ||
81 | unsigned int cpu; | ||
82 | #endif | ||
83 | |||
84 | /* | ||
85 | * IRQ lock detection | ||
86 | */ | ||
87 | unsigned int lck_cnt; | ||
88 | unsigned int lck_pc; | ||
89 | unsigned int lck_jif; | ||
90 | }; | ||
91 | |||
92 | extern struct irqdesc irq_desc[]; | ||
93 | |||
94 | /* | ||
95 | * This is internal. Do not use it. | ||
96 | */ | ||
97 | extern void (*init_arch_irq)(void); | ||
98 | extern void init_FIQ(void); | ||
99 | extern int show_fiq_list(struct seq_file *, void *); | ||
100 | void __set_irq_handler(unsigned int irq, irq_handler_t, int); | ||
101 | |||
102 | /* | ||
103 | * External stuff. | ||
104 | */ | ||
105 | #define set_irq_handler(irq,handler) __set_irq_handler(irq,handler,0) | ||
106 | #define set_irq_chained_handler(irq,handler) __set_irq_handler(irq,handler,1) | ||
107 | #define set_irq_data(irq,d) do { irq_desc[irq].data = d; } while (0) | ||
108 | #define set_irq_chipdata(irq,d) do { irq_desc[irq].chipdata = d; } while (0) | ||
109 | #define get_irq_chipdata(irq) (irq_desc[irq].chipdata) | ||
110 | |||
111 | void set_irq_chip(unsigned int irq, struct irqchip *); | ||
112 | void set_irq_flags(unsigned int irq, unsigned int flags); | ||
113 | |||
114 | #define IRQF_VALID (1 << 0) | ||
115 | #define IRQF_PROBE (1 << 1) | ||
116 | #define IRQF_NOAUTOEN (1 << 2) | ||
117 | |||
118 | /* | ||
119 | * Built-in IRQ handlers. | ||
120 | */ | ||
121 | void do_level_IRQ(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs); | ||
122 | void do_edge_IRQ(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs); | ||
123 | void do_simple_IRQ(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs); | ||
124 | void do_bad_IRQ(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs); | ||
125 | void dummy_mask_unmask_irq(unsigned int irq); | ||
126 | |||
127 | #endif | ||
diff --git a/include/asm-arm/mach/map.h b/include/asm-arm/mach/map.h new file mode 100644 index 000000000000..9ac47cf8d2e4 --- /dev/null +++ b/include/asm-arm/mach/map.h | |||
@@ -0,0 +1,33 @@ | |||
1 | /* | ||
2 | * linux/include/asm-arm/map.h | ||
3 | * | ||
4 | * Copyright (C) 1999-2000 Russell King | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | * | ||
10 | * Page table mapping constructs and function prototypes | ||
11 | */ | ||
12 | struct map_desc { | ||
13 | unsigned long virtual; | ||
14 | unsigned long physical; | ||
15 | unsigned long length; | ||
16 | unsigned int type; | ||
17 | }; | ||
18 | |||
19 | struct meminfo; | ||
20 | |||
21 | #define MT_DEVICE 0 | ||
22 | #define MT_CACHECLEAN 1 | ||
23 | #define MT_MINICLEAN 2 | ||
24 | #define MT_LOW_VECTORS 3 | ||
25 | #define MT_HIGH_VECTORS 4 | ||
26 | #define MT_MEMORY 5 | ||
27 | #define MT_ROM 6 | ||
28 | #define MT_IXP2000_DEVICE 7 | ||
29 | |||
30 | extern void create_memmap_holes(struct meminfo *); | ||
31 | extern void memtable_init(struct meminfo *); | ||
32 | extern void iotable_init(struct map_desc *, int); | ||
33 | extern void setup_io_desc(void); | ||
diff --git a/include/asm-arm/mach/mmc.h b/include/asm-arm/mach/mmc.h new file mode 100644 index 000000000000..1b3555d4b41e --- /dev/null +++ b/include/asm-arm/mach/mmc.h | |||
@@ -0,0 +1,15 @@ | |||
1 | /* | ||
2 | * linux/include/asm-arm/mach/mmc.h | ||
3 | */ | ||
4 | #ifndef ASMARM_MACH_MMC_H | ||
5 | #define ASMARM_MACH_MMC_H | ||
6 | |||
7 | #include <linux/mmc/protocol.h> | ||
8 | |||
9 | struct mmc_platform_data { | ||
10 | unsigned int ocr_mask; /* available voltages */ | ||
11 | u32 (*translate_vdd)(struct device *, unsigned int); | ||
12 | unsigned int (*status)(struct device *); | ||
13 | }; | ||
14 | |||
15 | #endif | ||
diff --git a/include/asm-arm/mach/pci.h b/include/asm-arm/mach/pci.h new file mode 100644 index 000000000000..25d540ed0079 --- /dev/null +++ b/include/asm-arm/mach/pci.h | |||
@@ -0,0 +1,75 @@ | |||
1 | /* | ||
2 | * linux/include/asm-arm/mach/pci.h | ||
3 | * | ||
4 | * Copyright (C) 2000 Russell King | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | |||
11 | struct pci_sys_data; | ||
12 | struct pci_bus; | ||
13 | |||
14 | struct hw_pci { | ||
15 | struct list_head buses; | ||
16 | int nr_controllers; | ||
17 | int (*setup)(int nr, struct pci_sys_data *); | ||
18 | struct pci_bus *(*scan)(int nr, struct pci_sys_data *); | ||
19 | void (*preinit)(void); | ||
20 | void (*postinit)(void); | ||
21 | u8 (*swizzle)(struct pci_dev *dev, u8 *pin); | ||
22 | int (*map_irq)(struct pci_dev *dev, u8 slot, u8 pin); | ||
23 | }; | ||
24 | |||
25 | /* | ||
26 | * Per-controller structure | ||
27 | */ | ||
28 | struct pci_sys_data { | ||
29 | struct list_head node; | ||
30 | int busnr; /* primary bus number */ | ||
31 | unsigned long mem_offset; /* bus->cpu memory mapping offset */ | ||
32 | unsigned long io_offset; /* bus->cpu IO mapping offset */ | ||
33 | struct pci_bus *bus; /* PCI bus */ | ||
34 | struct resource *resource[3]; /* Primary PCI bus resources */ | ||
35 | /* Bridge swizzling */ | ||
36 | u8 (*swizzle)(struct pci_dev *, u8 *); | ||
37 | /* IRQ mapping */ | ||
38 | int (*map_irq)(struct pci_dev *, u8, u8); | ||
39 | struct hw_pci *hw; | ||
40 | }; | ||
41 | |||
42 | /* | ||
43 | * This is the standard PCI-PCI bridge swizzling algorithm. | ||
44 | */ | ||
45 | u8 pci_std_swizzle(struct pci_dev *dev, u8 *pinp); | ||
46 | |||
47 | /* | ||
48 | * Call this with your hw_pci struct to initialise the PCI system. | ||
49 | */ | ||
50 | void pci_common_init(struct hw_pci *); | ||
51 | |||
52 | /* | ||
53 | * PCI controllers | ||
54 | */ | ||
55 | extern int iop321_setup(int nr, struct pci_sys_data *); | ||
56 | extern struct pci_bus *iop321_scan_bus(int nr, struct pci_sys_data *); | ||
57 | extern void iop321_init(void); | ||
58 | |||
59 | extern int iop331_setup(int nr, struct pci_sys_data *); | ||
60 | extern struct pci_bus *iop331_scan_bus(int nr, struct pci_sys_data *); | ||
61 | extern void iop331_init(void); | ||
62 | |||
63 | extern int dc21285_setup(int nr, struct pci_sys_data *); | ||
64 | extern struct pci_bus *dc21285_scan_bus(int nr, struct pci_sys_data *); | ||
65 | extern void dc21285_preinit(void); | ||
66 | extern void dc21285_postinit(void); | ||
67 | |||
68 | extern int via82c505_setup(int nr, struct pci_sys_data *); | ||
69 | extern struct pci_bus *via82c505_scan_bus(int nr, struct pci_sys_data *); | ||
70 | extern void via82c505_init(void *sysdata); | ||
71 | |||
72 | extern int pci_v3_setup(int nr, struct pci_sys_data *); | ||
73 | extern struct pci_bus *pci_v3_scan_bus(int nr, struct pci_sys_data *); | ||
74 | extern void pci_v3_preinit(void); | ||
75 | extern void pci_v3_postinit(void); | ||
diff --git a/include/asm-arm/mach/serial_sa1100.h b/include/asm-arm/mach/serial_sa1100.h new file mode 100644 index 000000000000..9162018585df --- /dev/null +++ b/include/asm-arm/mach/serial_sa1100.h | |||
@@ -0,0 +1,32 @@ | |||
1 | /* | ||
2 | * linux/include/asm-arm/mach/serial_sa1100.h | ||
3 | * | ||
4 | * Author: Nicolas Pitre | ||
5 | * | ||
6 | * Moved to include/asm-arm/mach and changed lots, Russell King | ||
7 | * | ||
8 | * Low level machine dependent UART functions. | ||
9 | */ | ||
10 | #include <linux/config.h> | ||
11 | |||
12 | struct uart_port; | ||
13 | struct uart_info; | ||
14 | |||
15 | /* | ||
16 | * This is a temporary structure for registering these | ||
17 | * functions; it is intended to be discarded after boot. | ||
18 | */ | ||
19 | struct sa1100_port_fns { | ||
20 | void (*set_mctrl)(struct uart_port *, u_int); | ||
21 | u_int (*get_mctrl)(struct uart_port *); | ||
22 | void (*pm)(struct uart_port *, u_int, u_int); | ||
23 | int (*set_wake)(struct uart_port *, u_int); | ||
24 | }; | ||
25 | |||
26 | #ifdef CONFIG_SERIAL_SA1100 | ||
27 | void sa1100_register_uart_fns(struct sa1100_port_fns *fns); | ||
28 | void sa1100_register_uart(int idx, int port); | ||
29 | #else | ||
30 | #define sa1100_register_uart_fns(fns) do { } while (0) | ||
31 | #define sa1100_register_uart(idx,port) do { } while (0) | ||
32 | #endif | ||
diff --git a/include/asm-arm/mach/sharpsl_param.h b/include/asm-arm/mach/sharpsl_param.h new file mode 100644 index 000000000000..7a24ecf04220 --- /dev/null +++ b/include/asm-arm/mach/sharpsl_param.h | |||
@@ -0,0 +1,37 @@ | |||
1 | /* | ||
2 | * Hardware parameter area specific to Sharp SL series devices | ||
3 | * | ||
4 | * Copyright (c) 2005 Richard Purdie | ||
5 | * | ||
6 | * Based on Sharp's 2.4 kernel patches | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | * | ||
12 | */ | ||
13 | |||
14 | struct sharpsl_param_info { | ||
15 | unsigned int comadj_keyword; | ||
16 | unsigned int comadj; | ||
17 | |||
18 | unsigned int uuid_keyword; | ||
19 | unsigned char uuid[16]; | ||
20 | |||
21 | unsigned int touch_keyword; | ||
22 | unsigned int touch_xp; | ||
23 | unsigned int touch_yp; | ||
24 | unsigned int touch_xd; | ||
25 | unsigned int touch_yd; | ||
26 | |||
27 | unsigned int adadj_keyword; | ||
28 | unsigned int adadj; | ||
29 | |||
30 | unsigned int phad_keyword; | ||
31 | unsigned int phadadj; | ||
32 | } __attribute__((packed)); | ||
33 | |||
34 | |||
35 | extern struct sharpsl_param_info sharpsl_param; | ||
36 | extern void sharpsl_save_param(void); | ||
37 | |||
diff --git a/include/asm-arm/mach/time.h b/include/asm-arm/mach/time.h new file mode 100644 index 000000000000..5cf4fd659fd5 --- /dev/null +++ b/include/asm-arm/mach/time.h | |||
@@ -0,0 +1,54 @@ | |||
1 | /* | ||
2 | * linux/include/asm-arm/mach/time.h | ||
3 | * | ||
4 | * Copyright (C) 2004 MontaVista Software, Inc. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | #ifndef __ASM_ARM_MACH_TIME_H | ||
11 | #define __ASM_ARM_MACH_TIME_H | ||
12 | |||
13 | #include <linux/sysdev.h> | ||
14 | |||
15 | /* | ||
16 | * This is our kernel timer structure. | ||
17 | * | ||
18 | * - init | ||
19 | * Initialise the kernels jiffy timer source, claim interrupt | ||
20 | * using setup_irq. This is called early on during initialisation | ||
21 | * while interrupts are still disabled on the local CPU. | ||
22 | * - suspend | ||
23 | * Suspend the kernel jiffy timer source, if necessary. This | ||
24 | * is called with interrupts disabled, after all normal devices | ||
25 | * have been suspended. If no action is required, set this to | ||
26 | * NULL. | ||
27 | * - resume | ||
28 | * Resume the kernel jiffy timer source, if necessary. This | ||
29 | * is called with interrupts disabled before any normal devices | ||
30 | * are resumed. If no action is required, set this to NULL. | ||
31 | * - offset | ||
32 | * Return the timer offset in microseconds since the last timer | ||
33 | * interrupt. Note: this must take account of any unprocessed | ||
34 | * timer interrupt which may be pending. | ||
35 | */ | ||
36 | struct sys_timer { | ||
37 | struct sys_device dev; | ||
38 | void (*init)(void); | ||
39 | void (*suspend)(void); | ||
40 | void (*resume)(void); | ||
41 | unsigned long (*offset)(void); | ||
42 | }; | ||
43 | |||
44 | extern struct sys_timer *system_timer; | ||
45 | extern void timer_tick(struct pt_regs *); | ||
46 | |||
47 | /* | ||
48 | * Kernel time keeping support. | ||
49 | */ | ||
50 | extern int (*set_rtc)(void); | ||
51 | extern void save_time_delta(struct timespec *delta, struct timespec *rtc); | ||
52 | extern void restore_time_delta(struct timespec *delta, struct timespec *rtc); | ||
53 | |||
54 | #endif | ||