aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/Kconfig2
-rw-r--r--drivers/Makefile1
-rw-r--r--drivers/staging/Kconfig2
-rw-r--r--drivers/staging/vme/Makefile7
-rw-r--r--drivers/staging/vme/TODO5
-rw-r--r--drivers/staging/vme/devices/Kconfig3
-rw-r--r--drivers/staging/vme/devices/vme_pio2_cntr.c2
-rw-r--r--drivers/staging/vme/devices/vme_pio2_core.c2
-rw-r--r--drivers/staging/vme/devices/vme_pio2_gpio.c2
-rw-r--r--drivers/staging/vme/devices/vme_user.c2
-rw-r--r--drivers/staging/vme/vme.h174
-rw-r--r--drivers/vme/Kconfig (renamed from drivers/staging/vme/Kconfig)6
-rw-r--r--drivers/vme/Makefile7
-rw-r--r--drivers/vme/boards/Kconfig (renamed from drivers/staging/vme/boards/Kconfig)0
-rw-r--r--drivers/vme/boards/Makefile (renamed from drivers/staging/vme/boards/Makefile)0
-rw-r--r--drivers/vme/boards/vme_vmivme7805.c (renamed from drivers/staging/vme/boards/vme_vmivme7805.c)0
-rw-r--r--drivers/vme/boards/vme_vmivme7805.h (renamed from drivers/staging/vme/boards/vme_vmivme7805.h)0
-rw-r--r--drivers/vme/bridges/Kconfig (renamed from drivers/staging/vme/bridges/Kconfig)0
-rw-r--r--drivers/vme/bridges/Makefile (renamed from drivers/staging/vme/bridges/Makefile)0
-rw-r--r--drivers/vme/bridges/vme_ca91cx42.c (renamed from drivers/staging/vme/bridges/vme_ca91cx42.c)2
-rw-r--r--drivers/vme/bridges/vme_ca91cx42.h (renamed from drivers/staging/vme/bridges/vme_ca91cx42.h)0
-rw-r--r--drivers/vme/bridges/vme_tsi148.c (renamed from drivers/staging/vme/bridges/vme_tsi148.c)2
-rw-r--r--drivers/vme/bridges/vme_tsi148.h (renamed from drivers/staging/vme/bridges/vme_tsi148.h)0
-rw-r--r--drivers/vme/vme.c (renamed from drivers/staging/vme/vme.c)2
-rw-r--r--drivers/vme/vme_api.txt (renamed from drivers/staging/vme/vme_api.txt)0
-rw-r--r--drivers/vme/vme_bridge.h (renamed from drivers/staging/vme/vme_bridge.h)0
26 files changed, 22 insertions, 199 deletions
diff --git a/drivers/Kconfig b/drivers/Kconfig
index 0265cb12cdaa..e245779443da 100644
--- a/drivers/Kconfig
+++ b/drivers/Kconfig
@@ -142,4 +142,6 @@ source "drivers/devfreq/Kconfig"
142 142
143source "drivers/iio/Kconfig" 143source "drivers/iio/Kconfig"
144 144
145source "drivers/vme/Kconfig"
146
145endmenu 147endmenu
diff --git a/drivers/Makefile b/drivers/Makefile
index cdbe362df0ec..08b78e035468 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -135,3 +135,4 @@ obj-$(CONFIG_HYPERV) += hv/
135 135
136obj-$(CONFIG_PM_DEVFREQ) += devfreq/ 136obj-$(CONFIG_PM_DEVFREQ) += devfreq/
137obj-$(CONFIG_IIO) += iio/ 137obj-$(CONFIG_IIO) += iio/
138obj-$(CONFIG_VME_BUS) += vme/
diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig
index 8d406b5938c0..60221efc417b 100644
--- a/drivers/staging/Kconfig
+++ b/drivers/staging/Kconfig
@@ -72,8 +72,6 @@ source "drivers/staging/vt6655/Kconfig"
72 72
73source "drivers/staging/vt6656/Kconfig" 73source "drivers/staging/vt6656/Kconfig"
74 74
75source "drivers/staging/vme/Kconfig"
76
77source "drivers/staging/sep/Kconfig" 75source "drivers/staging/sep/Kconfig"
78 76
79source "drivers/staging/iio/Kconfig" 77source "drivers/staging/iio/Kconfig"
diff --git a/drivers/staging/vme/Makefile b/drivers/staging/vme/Makefile
index b4ea3f8d0a50..accdb72e39e2 100644
--- a/drivers/staging/vme/Makefile
+++ b/drivers/staging/vme/Makefile
@@ -1,8 +1 @@
1#
2# Makefile for the VME bridge device drivers.
3#
4obj-$(CONFIG_VME_BUS) += vme.o
5
6obj-y += bridges/
7obj-y += devices/ obj-y += devices/
8obj-y += boards/
diff --git a/drivers/staging/vme/TODO b/drivers/staging/vme/TODO
deleted file mode 100644
index 79f00333e7ef..000000000000
--- a/drivers/staging/vme/TODO
+++ /dev/null
@@ -1,5 +0,0 @@
1 TODO
2 ====
3
4- Add one or more device drivers which use the VME framework.
5
diff --git a/drivers/staging/vme/devices/Kconfig b/drivers/staging/vme/devices/Kconfig
index 55ec30cb1fa2..d0cab1766190 100644
--- a/drivers/staging/vme/devices/Kconfig
+++ b/drivers/staging/vme/devices/Kconfig
@@ -2,6 +2,7 @@ comment "VME Device Drivers"
2 2
3config VME_USER 3config VME_USER
4 tristate "VME user space access driver" 4 tristate "VME user space access driver"
5 depends on STAGING
5 help 6 help
6 If you say Y here you want to be able to access a limited number of 7 If you say Y here you want to be able to access a limited number of
7 VME windows in a manner at least semi-compatible with the interface 8 VME windows in a manner at least semi-compatible with the interface
@@ -9,7 +10,7 @@ config VME_USER
9 10
10config VME_PIO2 11config VME_PIO2
11 tristate "GE PIO2 VME" 12 tristate "GE PIO2 VME"
12 depends on GPIOLIB 13 depends on STAGING && GPIOLIB
13 help 14 help
14 Say Y here to include support for the GE PIO2. The PIO2 is a 6U VME 15 Say Y here to include support for the GE PIO2. The PIO2 is a 6U VME
15 slave card, implementing 32 solid-state relay switched IO lines, in 16 slave card, implementing 32 solid-state relay switched IO lines, in
diff --git a/drivers/staging/vme/devices/vme_pio2_cntr.c b/drivers/staging/vme/devices/vme_pio2_cntr.c
index 08e0d59806ca..6335471faa36 100644
--- a/drivers/staging/vme/devices/vme_pio2_cntr.c
+++ b/drivers/staging/vme/devices/vme_pio2_cntr.c
@@ -17,8 +17,8 @@
17#include <linux/device.h> 17#include <linux/device.h>
18#include <linux/types.h> 18#include <linux/types.h>
19#include <linux/gpio.h> 19#include <linux/gpio.h>
20#include <linux/vme.h>
20 21
21#include "../vme.h"
22#include "vme_pio2.h" 22#include "vme_pio2.h"
23 23
24static int pio2_cntr_irq_set(struct pio2_card *card, int id) 24static int pio2_cntr_irq_set(struct pio2_card *card, int id)
diff --git a/drivers/staging/vme/devices/vme_pio2_core.c b/drivers/staging/vme/devices/vme_pio2_core.c
index d476b2e9d39f..78228d447f25 100644
--- a/drivers/staging/vme/devices/vme_pio2_core.c
+++ b/drivers/staging/vme/devices/vme_pio2_core.c
@@ -19,8 +19,8 @@
19#include <linux/ctype.h> 19#include <linux/ctype.h>
20#include <linux/gpio.h> 20#include <linux/gpio.h>
21#include <linux/slab.h> 21#include <linux/slab.h>
22#include <linux/vme.h>
22 23
23#include "../vme.h"
24#include "vme_pio2.h" 24#include "vme_pio2.h"
25 25
26 26
diff --git a/drivers/staging/vme/devices/vme_pio2_gpio.c b/drivers/staging/vme/devices/vme_pio2_gpio.c
index 9c459c1b6eb8..ad76a477825b 100644
--- a/drivers/staging/vme/devices/vme_pio2_gpio.c
+++ b/drivers/staging/vme/devices/vme_pio2_gpio.c
@@ -20,8 +20,8 @@
20#include <linux/ctype.h> 20#include <linux/ctype.h>
21#include <linux/gpio.h> 21#include <linux/gpio.h>
22#include <linux/slab.h> 22#include <linux/slab.h>
23#include <linux/vme.h>
23 24
24#include "../vme.h"
25#include "vme_pio2.h" 25#include "vme_pio2.h"
26 26
27static const char driver_name[] = "pio2_gpio"; 27static const char driver_name[] = "pio2_gpio";
diff --git a/drivers/staging/vme/devices/vme_user.c b/drivers/staging/vme/devices/vme_user.c
index 10269d59942f..e24a6f95db12 100644
--- a/drivers/staging/vme/devices/vme_user.c
+++ b/drivers/staging/vme/devices/vme_user.c
@@ -36,8 +36,8 @@
36 36
37#include <linux/io.h> 37#include <linux/io.h>
38#include <linux/uaccess.h> 38#include <linux/uaccess.h>
39#include <linux/vme.h>
39 40
40#include "../vme.h"
41#include "vme_user.h" 41#include "vme_user.h"
42 42
43static DEFINE_MUTEX(vme_user_mutex); 43static DEFINE_MUTEX(vme_user_mutex);
diff --git a/drivers/staging/vme/vme.h b/drivers/staging/vme/vme.h
deleted file mode 100644
index c9d65bf14cec..000000000000
--- a/drivers/staging/vme/vme.h
+++ /dev/null
@@ -1,174 +0,0 @@
1#ifndef _VME_H_
2#define _VME_H_
3
4/* Resource Type */
5enum vme_resource_type {
6 VME_MASTER,
7 VME_SLAVE,
8 VME_DMA,
9 VME_LM
10};
11
12/* VME Address Spaces */
13#define VME_A16 0x1
14#define VME_A24 0x2
15#define VME_A32 0x4
16#define VME_A64 0x8
17#define VME_CRCSR 0x10
18#define VME_USER1 0x20
19#define VME_USER2 0x40
20#define VME_USER3 0x80
21#define VME_USER4 0x100
22
23#define VME_A16_MAX 0x10000ULL
24#define VME_A24_MAX 0x1000000ULL
25#define VME_A32_MAX 0x100000000ULL
26#define VME_A64_MAX 0x10000000000000000ULL
27#define VME_CRCSR_MAX 0x1000000ULL
28
29
30/* VME Cycle Types */
31#define VME_SCT 0x1
32#define VME_BLT 0x2
33#define VME_MBLT 0x4
34#define VME_2eVME 0x8
35#define VME_2eSST 0x10
36#define VME_2eSSTB 0x20
37
38#define VME_2eSST160 0x100
39#define VME_2eSST267 0x200
40#define VME_2eSST320 0x400
41
42#define VME_SUPER 0x1000
43#define VME_USER 0x2000
44#define VME_PROG 0x4000
45#define VME_DATA 0x8000
46
47/* VME Data Widths */
48#define VME_D8 0x1
49#define VME_D16 0x2
50#define VME_D32 0x4
51#define VME_D64 0x8
52
53/* Arbitration Scheduling Modes */
54#define VME_R_ROBIN_MODE 0x1
55#define VME_PRIORITY_MODE 0x2
56
57#define VME_DMA_PATTERN (1<<0)
58#define VME_DMA_PCI (1<<1)
59#define VME_DMA_VME (1<<2)
60
61#define VME_DMA_PATTERN_BYTE (1<<0)
62#define VME_DMA_PATTERN_WORD (1<<1)
63#define VME_DMA_PATTERN_INCREMENT (1<<2)
64
65#define VME_DMA_VME_TO_MEM (1<<0)
66#define VME_DMA_MEM_TO_VME (1<<1)
67#define VME_DMA_VME_TO_VME (1<<2)
68#define VME_DMA_MEM_TO_MEM (1<<3)
69#define VME_DMA_PATTERN_TO_VME (1<<4)
70#define VME_DMA_PATTERN_TO_MEM (1<<5)
71
72struct vme_dma_attr {
73 u32 type;
74 void *private;
75};
76
77struct vme_resource {
78 enum vme_resource_type type;
79 struct list_head *entry;
80};
81
82extern struct bus_type vme_bus_type;
83
84/* VME_MAX_BRIDGES comes from the type of vme_bus_numbers */
85#define VME_MAX_BRIDGES (sizeof(unsigned int)*8)
86#define VME_MAX_SLOTS 32
87
88#define VME_SLOT_CURRENT -1
89#define VME_SLOT_ALL -2
90
91/**
92 * Structure representing a VME device
93 * @num: The device number
94 * @bridge: Pointer to the bridge device this device is on
95 * @dev: Internal device structure
96 * @drv_list: List of devices (per driver)
97 * @bridge_list: List of devices (per bridge)
98 */
99struct vme_dev {
100 int num;
101 struct vme_bridge *bridge;
102 struct device dev;
103 struct list_head drv_list;
104 struct list_head bridge_list;
105};
106
107struct vme_driver {
108 struct list_head node;
109 const char *name;
110 int (*match)(struct vme_dev *);
111 int (*probe)(struct vme_dev *);
112 int (*remove)(struct vme_dev *);
113 void (*shutdown)(void);
114 struct device_driver driver;
115 struct list_head devices;
116};
117
118void *vme_alloc_consistent(struct vme_resource *, size_t, dma_addr_t *);
119void vme_free_consistent(struct vme_resource *, size_t, void *,
120 dma_addr_t);
121
122size_t vme_get_size(struct vme_resource *);
123
124struct vme_resource *vme_slave_request(struct vme_dev *, u32, u32);
125int vme_slave_set(struct vme_resource *, int, unsigned long long,
126 unsigned long long, dma_addr_t, u32, u32);
127int vme_slave_get(struct vme_resource *, int *, unsigned long long *,
128 unsigned long long *, dma_addr_t *, u32 *, u32 *);
129void vme_slave_free(struct vme_resource *);
130
131struct vme_resource *vme_master_request(struct vme_dev *, u32, u32, u32);
132int vme_master_set(struct vme_resource *, int, unsigned long long,
133 unsigned long long, u32, u32, u32);
134int vme_master_get(struct vme_resource *, int *, unsigned long long *,
135 unsigned long long *, u32 *, u32 *, u32 *);
136ssize_t vme_master_read(struct vme_resource *, void *, size_t, loff_t);
137ssize_t vme_master_write(struct vme_resource *, void *, size_t, loff_t);
138unsigned int vme_master_rmw(struct vme_resource *, unsigned int, unsigned int,
139 unsigned int, loff_t);
140void vme_master_free(struct vme_resource *);
141
142struct vme_resource *vme_dma_request(struct vme_dev *, u32);
143struct vme_dma_list *vme_new_dma_list(struct vme_resource *);
144struct vme_dma_attr *vme_dma_pattern_attribute(u32, u32);
145struct vme_dma_attr *vme_dma_pci_attribute(dma_addr_t);
146struct vme_dma_attr *vme_dma_vme_attribute(unsigned long long, u32, u32, u32);
147void vme_dma_free_attribute(struct vme_dma_attr *);
148int vme_dma_list_add(struct vme_dma_list *, struct vme_dma_attr *,
149 struct vme_dma_attr *, size_t);
150int vme_dma_list_exec(struct vme_dma_list *);
151int vme_dma_list_free(struct vme_dma_list *);
152int vme_dma_free(struct vme_resource *);
153
154int vme_irq_request(struct vme_dev *, int, int,
155 void (*callback)(int, int, void *), void *);
156void vme_irq_free(struct vme_dev *, int, int);
157int vme_irq_generate(struct vme_dev *, int, int);
158
159struct vme_resource *vme_lm_request(struct vme_dev *);
160int vme_lm_count(struct vme_resource *);
161int vme_lm_set(struct vme_resource *, unsigned long long, u32, u32);
162int vme_lm_get(struct vme_resource *, unsigned long long *, u32 *, u32 *);
163int vme_lm_attach(struct vme_resource *, int, void (*callback)(int));
164int vme_lm_detach(struct vme_resource *, int);
165void vme_lm_free(struct vme_resource *);
166
167int vme_slot_get(struct vme_dev *);
168
169int vme_register_driver(struct vme_driver *, unsigned int);
170void vme_unregister_driver(struct vme_driver *);
171
172
173#endif /* _VME_H_ */
174
diff --git a/drivers/staging/vme/Kconfig b/drivers/vme/Kconfig
index 6411ae51ed3f..c5c22465a805 100644
--- a/drivers/staging/vme/Kconfig
+++ b/drivers/vme/Kconfig
@@ -10,10 +10,10 @@ menuconfig VME_BUS
10 10
11if VME_BUS 11if VME_BUS
12 12
13source "drivers/staging/vme/bridges/Kconfig" 13source "drivers/vme/bridges/Kconfig"
14 14
15source "drivers/staging/vme/devices/Kconfig" 15source "drivers/vme/boards/Kconfig"
16 16
17source "drivers/staging/vme/boards/Kconfig" 17source "drivers/staging/vme/devices/Kconfig"
18 18
19endif # VME 19endif # VME
diff --git a/drivers/vme/Makefile b/drivers/vme/Makefile
new file mode 100644
index 000000000000..d7bfcb9fd5a1
--- /dev/null
+++ b/drivers/vme/Makefile
@@ -0,0 +1,7 @@
1#
2# Makefile for the VME bridge device drivers.
3#
4obj-$(CONFIG_VME_BUS) += vme.o
5
6obj-y += bridges/
7obj-y += boards/
diff --git a/drivers/staging/vme/boards/Kconfig b/drivers/vme/boards/Kconfig
index 761631353527..761631353527 100644
--- a/drivers/staging/vme/boards/Kconfig
+++ b/drivers/vme/boards/Kconfig
diff --git a/drivers/staging/vme/boards/Makefile b/drivers/vme/boards/Makefile
index 43658340885d..43658340885d 100644
--- a/drivers/staging/vme/boards/Makefile
+++ b/drivers/vme/boards/Makefile
diff --git a/drivers/staging/vme/boards/vme_vmivme7805.c b/drivers/vme/boards/vme_vmivme7805.c
index 8e05bb4e135a..8e05bb4e135a 100644
--- a/drivers/staging/vme/boards/vme_vmivme7805.c
+++ b/drivers/vme/boards/vme_vmivme7805.c
diff --git a/drivers/staging/vme/boards/vme_vmivme7805.h b/drivers/vme/boards/vme_vmivme7805.h
index 44c2c449808c..44c2c449808c 100644
--- a/drivers/staging/vme/boards/vme_vmivme7805.h
+++ b/drivers/vme/boards/vme_vmivme7805.h
diff --git a/drivers/staging/vme/bridges/Kconfig b/drivers/vme/bridges/Kconfig
index 9331064e0476..9331064e0476 100644
--- a/drivers/staging/vme/bridges/Kconfig
+++ b/drivers/vme/bridges/Kconfig
diff --git a/drivers/staging/vme/bridges/Makefile b/drivers/vme/bridges/Makefile
index 59638afcd502..59638afcd502 100644
--- a/drivers/staging/vme/bridges/Makefile
+++ b/drivers/vme/bridges/Makefile
diff --git a/drivers/staging/vme/bridges/vme_ca91cx42.c b/drivers/vme/bridges/vme_ca91cx42.c
index 515b8b8e32a8..a3c0f84e2fa1 100644
--- a/drivers/staging/vme/bridges/vme_ca91cx42.c
+++ b/drivers/vme/bridges/vme_ca91cx42.c
@@ -29,8 +29,8 @@
29#include <linux/time.h> 29#include <linux/time.h>
30#include <linux/io.h> 30#include <linux/io.h>
31#include <linux/uaccess.h> 31#include <linux/uaccess.h>
32#include <linux/vme.h>
32 33
33#include "../vme.h"
34#include "../vme_bridge.h" 34#include "../vme_bridge.h"
35#include "vme_ca91cx42.h" 35#include "vme_ca91cx42.h"
36 36
diff --git a/drivers/staging/vme/bridges/vme_ca91cx42.h b/drivers/vme/bridges/vme_ca91cx42.h
index 02a7c794db05..02a7c794db05 100644
--- a/drivers/staging/vme/bridges/vme_ca91cx42.h
+++ b/drivers/vme/bridges/vme_ca91cx42.h
diff --git a/drivers/staging/vme/bridges/vme_tsi148.c b/drivers/vme/bridges/vme_tsi148.c
index ced59421302e..081e9c4c5e71 100644
--- a/drivers/staging/vme/bridges/vme_tsi148.c
+++ b/drivers/vme/bridges/vme_tsi148.c
@@ -30,8 +30,8 @@
30#include <linux/io.h> 30#include <linux/io.h>
31#include <linux/uaccess.h> 31#include <linux/uaccess.h>
32#include <linux/byteorder/generic.h> 32#include <linux/byteorder/generic.h>
33#include <linux/vme.h>
33 34
34#include "../vme.h"
35#include "../vme_bridge.h" 35#include "../vme_bridge.h"
36#include "vme_tsi148.h" 36#include "vme_tsi148.h"
37 37
diff --git a/drivers/staging/vme/bridges/vme_tsi148.h b/drivers/vme/bridges/vme_tsi148.h
index f5ed14382a8d..f5ed14382a8d 100644
--- a/drivers/staging/vme/bridges/vme_tsi148.h
+++ b/drivers/vme/bridges/vme_tsi148.h
diff --git a/drivers/staging/vme/vme.c b/drivers/vme/vme.c
index fd51c2d44718..95a9f71d793e 100644
--- a/drivers/staging/vme/vme.c
+++ b/drivers/vme/vme.c
@@ -30,8 +30,8 @@
30#include <linux/mutex.h> 30#include <linux/mutex.h>
31#include <linux/spinlock.h> 31#include <linux/spinlock.h>
32#include <linux/slab.h> 32#include <linux/slab.h>
33#include <linux/vme.h>
33 34
34#include "vme.h"
35#include "vme_bridge.h" 35#include "vme_bridge.h"
36 36
37/* Bitmask and list of registered buses both protected by common mutex */ 37/* Bitmask and list of registered buses both protected by common mutex */
diff --git a/drivers/staging/vme/vme_api.txt b/drivers/vme/vme_api.txt
index 856efa35f6e3..856efa35f6e3 100644
--- a/drivers/staging/vme/vme_api.txt
+++ b/drivers/vme/vme_api.txt
diff --git a/drivers/staging/vme/vme_bridge.h b/drivers/vme/vme_bridge.h
index 934949abd745..934949abd745 100644
--- a/drivers/staging/vme/vme_bridge.h
+++ b/drivers/vme/vme_bridge.h