diff options
Diffstat (limited to 'include/asm-avr32')
-rw-r--r-- | include/asm-avr32/arch-at32ap/at32ap7000.h | 35 | ||||
-rw-r--r-- | include/asm-avr32/arch-at32ap/board.h | 3 | ||||
-rw-r--r-- | include/asm-avr32/arch-at32ap/gpio.h | 27 | ||||
-rw-r--r-- | include/asm-avr32/arch-at32ap/irq.h | 14 | ||||
-rw-r--r-- | include/asm-avr32/arch-at32ap/portmux.h | 22 | ||||
-rw-r--r-- | include/asm-avr32/cacheflush.h | 1 | ||||
-rw-r--r-- | include/asm-avr32/checksum.h | 2 | ||||
-rw-r--r-- | include/asm-avr32/dma-mapping.h | 20 | ||||
-rw-r--r-- | include/asm-avr32/gpio.h | 6 | ||||
-rw-r--r-- | include/asm-avr32/irq.h | 8 | ||||
-rw-r--r-- | include/asm-avr32/pgalloc.h | 2 | ||||
-rw-r--r-- | include/asm-avr32/posix_types.h | 2 | ||||
-rw-r--r-- | include/asm-avr32/termbits.h | 11 | ||||
-rw-r--r-- | include/asm-avr32/uaccess.h | 6 |
14 files changed, 134 insertions, 25 deletions
diff --git a/include/asm-avr32/arch-at32ap/at32ap7000.h b/include/asm-avr32/arch-at32ap/at32ap7000.h new file mode 100644 index 000000000000..3914d7b94ff4 --- /dev/null +++ b/include/asm-avr32/arch-at32ap/at32ap7000.h | |||
@@ -0,0 +1,35 @@ | |||
1 | /* | ||
2 | * Pin definitions for AT32AP7000. | ||
3 | * | ||
4 | * Copyright (C) 2006 Atmel Corporation | ||
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_ARCH_AT32AP7000_H__ | ||
11 | #define __ASM_ARCH_AT32AP7000_H__ | ||
12 | |||
13 | #define GPIO_PERIPH_A 0 | ||
14 | #define GPIO_PERIPH_B 1 | ||
15 | |||
16 | #define NR_GPIO_CONTROLLERS 4 | ||
17 | |||
18 | /* | ||
19 | * Pin numbers identifying specific GPIO pins on the chip. They can | ||
20 | * also be converted to IRQ numbers by passing them through | ||
21 | * gpio_to_irq(). | ||
22 | */ | ||
23 | #define GPIO_PIOA_BASE (0) | ||
24 | #define GPIO_PIOB_BASE (GPIO_PIOA_BASE + 32) | ||
25 | #define GPIO_PIOC_BASE (GPIO_PIOB_BASE + 32) | ||
26 | #define GPIO_PIOD_BASE (GPIO_PIOC_BASE + 32) | ||
27 | #define GPIO_PIOE_BASE (GPIO_PIOD_BASE + 32) | ||
28 | |||
29 | #define GPIO_PIN_PA(N) (GPIO_PIOA_BASE + (N)) | ||
30 | #define GPIO_PIN_PB(N) (GPIO_PIOB_BASE + (N)) | ||
31 | #define GPIO_PIN_PC(N) (GPIO_PIOC_BASE + (N)) | ||
32 | #define GPIO_PIN_PD(N) (GPIO_PIOD_BASE + (N)) | ||
33 | #define GPIO_PIN_PE(N) (GPIO_PIOE_BASE + (N)) | ||
34 | |||
35 | #endif /* __ASM_ARCH_AT32AP7000_H__ */ | ||
diff --git a/include/asm-avr32/arch-at32ap/board.h b/include/asm-avr32/arch-at32ap/board.h index a39b3e999f18..b120ee030c86 100644 --- a/include/asm-avr32/arch-at32ap/board.h +++ b/include/asm-avr32/arch-at32ap/board.h | |||
@@ -21,10 +21,7 @@ void at32_map_usart(unsigned int hw_id, unsigned int line); | |||
21 | struct platform_device *at32_add_device_usart(unsigned int id); | 21 | struct platform_device *at32_add_device_usart(unsigned int id); |
22 | 22 | ||
23 | struct eth_platform_data { | 23 | struct eth_platform_data { |
24 | u8 valid; | ||
25 | u8 mii_phy_addr; | ||
26 | u8 is_rmii; | 24 | u8 is_rmii; |
27 | u8 hw_addr[6]; | ||
28 | }; | 25 | }; |
29 | struct platform_device * | 26 | struct platform_device * |
30 | at32_add_device_eth(unsigned int id, struct eth_platform_data *data); | 27 | at32_add_device_eth(unsigned int id, struct eth_platform_data *data); |
diff --git a/include/asm-avr32/arch-at32ap/gpio.h b/include/asm-avr32/arch-at32ap/gpio.h new file mode 100644 index 000000000000..fcb756bdaa8e --- /dev/null +++ b/include/asm-avr32/arch-at32ap/gpio.h | |||
@@ -0,0 +1,27 @@ | |||
1 | #ifndef __ASM_AVR32_ARCH_GPIO_H | ||
2 | #define __ASM_AVR32_ARCH_GPIO_H | ||
3 | |||
4 | #include <linux/compiler.h> | ||
5 | #include <asm/irq.h> | ||
6 | |||
7 | |||
8 | /* Arch-neutral GPIO API */ | ||
9 | int __must_check gpio_request(unsigned int gpio, const char *label); | ||
10 | void gpio_free(unsigned int gpio); | ||
11 | |||
12 | int gpio_direction_input(unsigned int gpio); | ||
13 | int gpio_direction_output(unsigned int gpio); | ||
14 | int gpio_get_value(unsigned int gpio); | ||
15 | void gpio_set_value(unsigned int gpio, int value); | ||
16 | |||
17 | static inline int gpio_to_irq(unsigned int gpio) | ||
18 | { | ||
19 | return gpio + GPIO_IRQ_BASE; | ||
20 | } | ||
21 | |||
22 | static inline int irq_to_gpio(unsigned int irq) | ||
23 | { | ||
24 | return irq - GPIO_IRQ_BASE; | ||
25 | } | ||
26 | |||
27 | #endif /* __ASM_AVR32_ARCH_GPIO_H */ | ||
diff --git a/include/asm-avr32/arch-at32ap/irq.h b/include/asm-avr32/arch-at32ap/irq.h new file mode 100644 index 000000000000..5adffab9a577 --- /dev/null +++ b/include/asm-avr32/arch-at32ap/irq.h | |||
@@ -0,0 +1,14 @@ | |||
1 | #ifndef __ASM_AVR32_ARCH_IRQ_H | ||
2 | #define __ASM_AVR32_ARCH_IRQ_H | ||
3 | |||
4 | #define EIM_IRQ_BASE NR_INTERNAL_IRQS | ||
5 | #define NR_EIM_IRQS 32 | ||
6 | |||
7 | #define AT32_EXTINT(n) (EIM_IRQ_BASE + (n)) | ||
8 | |||
9 | #define GPIO_IRQ_BASE (EIM_IRQ_BASE + NR_EIM_IRQS) | ||
10 | #define NR_GPIO_IRQS (5 * 32) | ||
11 | |||
12 | #define NR_IRQS (GPIO_IRQ_BASE + NR_GPIO_IRQS) | ||
13 | |||
14 | #endif /* __ASM_AVR32_ARCH_IRQ_H */ | ||
diff --git a/include/asm-avr32/arch-at32ap/portmux.h b/include/asm-avr32/arch-at32ap/portmux.h index 4d50421262a1..9930871decde 100644 --- a/include/asm-avr32/arch-at32ap/portmux.h +++ b/include/asm-avr32/arch-at32ap/portmux.h | |||
@@ -7,10 +7,22 @@ | |||
7 | * it under the terms of the GNU General Public License version 2 as | 7 | * it under the terms of the GNU General Public License version 2 as |
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | #ifndef __ASM_AVR32_AT32_PORTMUX_H__ | 10 | #ifndef __ASM_ARCH_PORTMUX_H__ |
11 | #define __ASM_AVR32_AT32_PORTMUX_H__ | 11 | #define __ASM_ARCH_PORTMUX_H__ |
12 | 12 | ||
13 | void portmux_set_func(unsigned int portmux_id, unsigned int pin_id, | 13 | /* |
14 | unsigned int function_id); | 14 | * Set up pin multiplexing, called from board init only. |
15 | * | ||
16 | * The following flags determine the initial state of the pin. | ||
17 | */ | ||
18 | #define AT32_GPIOF_PULLUP 0x00000001 /* (not-OUT) Enable pull-up */ | ||
19 | #define AT32_GPIOF_OUTPUT 0x00000002 /* (OUT) Enable output driver */ | ||
20 | #define AT32_GPIOF_HIGH 0x00000004 /* (OUT) Set output high */ | ||
21 | #define AT32_GPIOF_DEGLITCH 0x00000008 /* (IN) Filter glitches */ | ||
22 | |||
23 | void at32_select_periph(unsigned int pin, unsigned int periph, | ||
24 | unsigned long flags); | ||
25 | void at32_select_gpio(unsigned int pin, unsigned long flags); | ||
26 | void at32_reserve_pin(unsigned int pin); | ||
15 | 27 | ||
16 | #endif /* __ASM_AVR32_AT32_PORTMUX_H__ */ | 28 | #endif /* __ASM_ARCH_PORTMUX_H__ */ |
diff --git a/include/asm-avr32/cacheflush.h b/include/asm-avr32/cacheflush.h index f1bf1708980e..dfaaa88cd412 100644 --- a/include/asm-avr32/cacheflush.h +++ b/include/asm-avr32/cacheflush.h | |||
@@ -87,6 +87,7 @@ void invalidate_icache_region(void *start, size_t len); | |||
87 | */ | 87 | */ |
88 | #define flush_cache_all() do { } while (0) | 88 | #define flush_cache_all() do { } while (0) |
89 | #define flush_cache_mm(mm) do { } while (0) | 89 | #define flush_cache_mm(mm) do { } while (0) |
90 | #define flush_cache_dup_mm(mm) do { } while (0) | ||
90 | #define flush_cache_range(vma, start, end) do { } while (0) | 91 | #define flush_cache_range(vma, start, end) do { } while (0) |
91 | #define flush_cache_page(vma, vmaddr, pfn) do { } while (0) | 92 | #define flush_cache_page(vma, vmaddr, pfn) do { } while (0) |
92 | #define flush_cache_vmap(start, end) do { } while (0) | 93 | #define flush_cache_vmap(start, end) do { } while (0) |
diff --git a/include/asm-avr32/checksum.h b/include/asm-avr32/checksum.h index af9d53f0f5d2..4ddbfd2486af 100644 --- a/include/asm-avr32/checksum.h +++ b/include/asm-avr32/checksum.h | |||
@@ -38,7 +38,7 @@ __wsum csum_partial_copy_generic(const void *src, void *dst, int len, | |||
38 | * passed in an incorrect kernel address to one of these functions. | 38 | * passed in an incorrect kernel address to one of these functions. |
39 | * | 39 | * |
40 | * If you use these functions directly please don't forget the | 40 | * If you use these functions directly please don't forget the |
41 | * verify_area(). | 41 | * access_ok(). |
42 | */ | 42 | */ |
43 | static inline | 43 | static inline |
44 | __wsum csum_partial_copy_nocheck(const void *src, void *dst, | 44 | __wsum csum_partial_copy_nocheck(const void *src, void *dst, |
diff --git a/include/asm-avr32/dma-mapping.h b/include/asm-avr32/dma-mapping.h index 0580b5d62bba..115813e48fe0 100644 --- a/include/asm-avr32/dma-mapping.h +++ b/include/asm-avr32/dma-mapping.h | |||
@@ -32,6 +32,14 @@ static inline int dma_set_mask(struct device *dev, u64 dma_mask) | |||
32 | return 0; | 32 | return 0; |
33 | } | 33 | } |
34 | 34 | ||
35 | /* | ||
36 | * dma_map_single can't fail as it is implemented now. | ||
37 | */ | ||
38 | static inline int dma_mapping_error(dma_addr_t addr) | ||
39 | { | ||
40 | return 0; | ||
41 | } | ||
42 | |||
35 | /** | 43 | /** |
36 | * dma_alloc_coherent - allocate consistent memory for DMA | 44 | * dma_alloc_coherent - allocate consistent memory for DMA |
37 | * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices | 45 | * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices |
@@ -109,7 +117,7 @@ static inline dma_addr_t | |||
109 | dma_map_single(struct device *dev, void *cpu_addr, size_t size, | 117 | dma_map_single(struct device *dev, void *cpu_addr, size_t size, |
110 | enum dma_data_direction direction) | 118 | enum dma_data_direction direction) |
111 | { | 119 | { |
112 | dma_cache_sync(cpu_addr, size, direction); | 120 | dma_cache_sync(dev, cpu_addr, size, direction); |
113 | return virt_to_bus(cpu_addr); | 121 | return virt_to_bus(cpu_addr); |
114 | } | 122 | } |
115 | 123 | ||
@@ -211,7 +219,7 @@ dma_map_sg(struct device *dev, struct scatterlist *sg, int nents, | |||
211 | 219 | ||
212 | sg[i].dma_address = page_to_bus(sg[i].page) + sg[i].offset; | 220 | sg[i].dma_address = page_to_bus(sg[i].page) + sg[i].offset; |
213 | virt = page_address(sg[i].page) + sg[i].offset; | 221 | virt = page_address(sg[i].page) + sg[i].offset; |
214 | dma_cache_sync(virt, sg[i].length, direction); | 222 | dma_cache_sync(dev, virt, sg[i].length, direction); |
215 | } | 223 | } |
216 | 224 | ||
217 | return nents; | 225 | return nents; |
@@ -256,14 +264,14 @@ static inline void | |||
256 | dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, | 264 | dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, |
257 | size_t size, enum dma_data_direction direction) | 265 | size_t size, enum dma_data_direction direction) |
258 | { | 266 | { |
259 | dma_cache_sync(bus_to_virt(dma_handle), size, direction); | 267 | dma_cache_sync(dev, bus_to_virt(dma_handle), size, direction); |
260 | } | 268 | } |
261 | 269 | ||
262 | static inline void | 270 | static inline void |
263 | dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, | 271 | dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, |
264 | size_t size, enum dma_data_direction direction) | 272 | size_t size, enum dma_data_direction direction) |
265 | { | 273 | { |
266 | dma_cache_sync(bus_to_virt(dma_handle), size, direction); | 274 | dma_cache_sync(dev, bus_to_virt(dma_handle), size, direction); |
267 | } | 275 | } |
268 | 276 | ||
269 | /** | 277 | /** |
@@ -286,7 +294,7 @@ dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, | |||
286 | int i; | 294 | int i; |
287 | 295 | ||
288 | for (i = 0; i < nents; i++) { | 296 | for (i = 0; i < nents; i++) { |
289 | dma_cache_sync(page_address(sg[i].page) + sg[i].offset, | 297 | dma_cache_sync(dev, page_address(sg[i].page) + sg[i].offset, |
290 | sg[i].length, direction); | 298 | sg[i].length, direction); |
291 | } | 299 | } |
292 | } | 300 | } |
@@ -298,7 +306,7 @@ dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, | |||
298 | int i; | 306 | int i; |
299 | 307 | ||
300 | for (i = 0; i < nents; i++) { | 308 | for (i = 0; i < nents; i++) { |
301 | dma_cache_sync(page_address(sg[i].page) + sg[i].offset, | 309 | dma_cache_sync(dev, page_address(sg[i].page) + sg[i].offset, |
302 | sg[i].length, direction); | 310 | sg[i].length, direction); |
303 | } | 311 | } |
304 | } | 312 | } |
diff --git a/include/asm-avr32/gpio.h b/include/asm-avr32/gpio.h new file mode 100644 index 000000000000..19e8ccc77db3 --- /dev/null +++ b/include/asm-avr32/gpio.h | |||
@@ -0,0 +1,6 @@ | |||
1 | #ifndef __ASM_AVR32_GPIO_H | ||
2 | #define __ASM_AVR32_GPIO_H | ||
3 | |||
4 | #include <asm/arch/gpio.h> | ||
5 | |||
6 | #endif /* __ASM_AVR32_GPIO_H */ | ||
diff --git a/include/asm-avr32/irq.h b/include/asm-avr32/irq.h index f7e725707dd7..83e6549d7783 100644 --- a/include/asm-avr32/irq.h +++ b/include/asm-avr32/irq.h | |||
@@ -2,8 +2,12 @@ | |||
2 | #define __ASM_AVR32_IRQ_H | 2 | #define __ASM_AVR32_IRQ_H |
3 | 3 | ||
4 | #define NR_INTERNAL_IRQS 64 | 4 | #define NR_INTERNAL_IRQS 64 |
5 | #define NR_EXTERNAL_IRQS 64 | 5 | |
6 | #define NR_IRQS (NR_INTERNAL_IRQS + NR_EXTERNAL_IRQS) | 6 | #include <asm/arch/irq.h> |
7 | |||
8 | #ifndef NR_IRQS | ||
9 | #define NR_IRQS (NR_INTERNAL_IRQS) | ||
10 | #endif | ||
7 | 11 | ||
8 | #define irq_canonicalize(i) (i) | 12 | #define irq_canonicalize(i) (i) |
9 | 13 | ||
diff --git a/include/asm-avr32/pgalloc.h b/include/asm-avr32/pgalloc.h index 7492cfb92ced..bb82e70cde8d 100644 --- a/include/asm-avr32/pgalloc.h +++ b/include/asm-avr32/pgalloc.h | |||
@@ -28,7 +28,7 @@ static __inline__ void pmd_populate(struct mm_struct *mm, pmd_t *pmd, | |||
28 | static __inline__ pgd_t *pgd_alloc(struct mm_struct *mm) | 28 | static __inline__ pgd_t *pgd_alloc(struct mm_struct *mm) |
29 | { | 29 | { |
30 | unsigned int pgd_size = (USER_PTRS_PER_PGD * sizeof(pgd_t)); | 30 | unsigned int pgd_size = (USER_PTRS_PER_PGD * sizeof(pgd_t)); |
31 | pgd_t *pgd = (pgd_t *)kmalloc(pgd_size, GFP_KERNEL); | 31 | pgd_t *pgd = kmalloc(pgd_size, GFP_KERNEL); |
32 | 32 | ||
33 | if (pgd) | 33 | if (pgd) |
34 | memset(pgd, 0, pgd_size); | 34 | memset(pgd, 0, pgd_size); |
diff --git a/include/asm-avr32/posix_types.h b/include/asm-avr32/posix_types.h index 2831b039b349..9e255b999639 100644 --- a/include/asm-avr32/posix_types.h +++ b/include/asm-avr32/posix_types.h | |||
@@ -23,7 +23,7 @@ typedef unsigned short __kernel_ipc_pid_t; | |||
23 | typedef unsigned int __kernel_uid_t; | 23 | typedef unsigned int __kernel_uid_t; |
24 | typedef unsigned int __kernel_gid_t; | 24 | typedef unsigned int __kernel_gid_t; |
25 | typedef unsigned long __kernel_size_t; | 25 | typedef unsigned long __kernel_size_t; |
26 | typedef int __kernel_ssize_t; | 26 | typedef long __kernel_ssize_t; |
27 | typedef int __kernel_ptrdiff_t; | 27 | typedef int __kernel_ptrdiff_t; |
28 | typedef long __kernel_time_t; | 28 | typedef long __kernel_time_t; |
29 | typedef long __kernel_suseconds_t; | 29 | typedef long __kernel_suseconds_t; |
diff --git a/include/asm-avr32/termbits.h b/include/asm-avr32/termbits.h index 9dc6eacafa33..c215fafdae4d 100644 --- a/include/asm-avr32/termbits.h +++ b/include/asm-avr32/termbits.h | |||
@@ -17,6 +17,17 @@ struct termios { | |||
17 | cc_t c_cc[NCCS]; /* control characters */ | 17 | cc_t c_cc[NCCS]; /* control characters */ |
18 | }; | 18 | }; |
19 | 19 | ||
20 | struct ktermios { | ||
21 | tcflag_t c_iflag; /* input mode flags */ | ||
22 | tcflag_t c_oflag; /* output mode flags */ | ||
23 | tcflag_t c_cflag; /* control mode flags */ | ||
24 | tcflag_t c_lflag; /* local mode flags */ | ||
25 | cc_t c_line; /* line discipline */ | ||
26 | cc_t c_cc[NCCS]; /* control characters */ | ||
27 | speed_t c_ispeed; /* input speed */ | ||
28 | speed_t c_ospeed; /* output speed */ | ||
29 | }; | ||
30 | |||
20 | /* c_cc characters */ | 31 | /* c_cc characters */ |
21 | #define VINTR 0 | 32 | #define VINTR 0 |
22 | #define VQUIT 1 | 33 | #define VQUIT 1 |
diff --git a/include/asm-avr32/uaccess.h b/include/asm-avr32/uaccess.h index 821deb5a9d28..74a679e9098c 100644 --- a/include/asm-avr32/uaccess.h +++ b/include/asm-avr32/uaccess.h | |||
@@ -68,12 +68,6 @@ static inline void set_fs(mm_segment_t s) | |||
68 | 68 | ||
69 | #define access_ok(type, addr, size) (likely(__range_ok(addr, size) == 0)) | 69 | #define access_ok(type, addr, size) (likely(__range_ok(addr, size) == 0)) |
70 | 70 | ||
71 | static inline int | ||
72 | verify_area(int type, const void __user *addr, unsigned long size) | ||
73 | { | ||
74 | return access_ok(type, addr, size) ? 0 : -EFAULT; | ||
75 | } | ||
76 | |||
77 | /* Generic arbitrary sized copy. Return the number of bytes NOT copied */ | 71 | /* Generic arbitrary sized copy. Return the number of bytes NOT copied */ |
78 | extern __kernel_size_t __copy_user(void *to, const void *from, | 72 | extern __kernel_size_t __copy_user(void *to, const void *from, |
79 | __kernel_size_t n); | 73 | __kernel_size_t n); |