summaryrefslogtreecommitdiff
path: root/drivers/staging/line6/usbdefs.h
blob: 353d59d77b04f4d1097d57a4feed3367c4550bac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/*
 * Line6 Linux USB driver - 0.9.1beta
 *
 * Copyright (C) 2005-2008 Markus Grabner (grabner@icg.tugraz.at)
 *
 *	This program is free software; you can redistribute it and/or
 *	modify it under the terms of the GNU General Public License as
 *	published by the Free Software Foundation, version 2.
 *
 */

#ifndef USBDEFS_H
#define USBDEFS_H

#define LINE6_VENDOR_ID  0x0e41

#define USB_INTERVALS_PER_SECOND 1000

/*
	Device ids.
*/
#define LINE6_DEVID_BASSPODXT     0x4250
#define LINE6_DEVID_BASSPODXTLIVE 0x4642
#define LINE6_DEVID_BASSPODXTPRO  0x4252
#define LINE6_DEVID_GUITARPORT    0x4750
#define LINE6_DEVID_POCKETPOD     0x5051
#define LINE6_DEVID_PODHD300      0x5057
#define LINE6_DEVID_PODHD500      0x414D
#define LINE6_DEVID_PODSTUDIO_GX  0x4153
#define LINE6_DEVID_PODSTUDIO_UX1 0x4150
#define LINE6_DEVID_PODSTUDIO_UX2 0x4151
#define LINE6_DEVID_PODX3         0x414a
#define LINE6_DEVID_PODX3LIVE     0x414b
#define LINE6_DEVID_PODXT         0x5044
#define LINE6_DEVID_PODXTLIVE     0x4650
#define LINE6_DEVID_PODXTPRO      0x5050
#define LINE6_DEVID_TONEPORT_GX   0x4147
#define LINE6_DEVID_TONEPORT_UX1  0x4141
#define LINE6_DEVID_TONEPORT_UX2  0x4142
#define LINE6_DEVID_VARIAX        0x534d

#define LINE6_BIT(x) LINE6_BIT_ ## x = 1 << LINE6_INDEX_ ## x

enum {
	LINE6_INDEX_BASSPODXT,
	LINE6_INDEX_BASSPODXTLIVE,
	LINE6_INDEX_BASSPODXTPRO,
	LINE6_INDEX_GUITARPORT,
	LINE6_INDEX_POCKETPOD,
	LINE6_INDEX_PODHD300,
	LINE6_INDEX_PODHD500,
	LINE6_INDEX_PODSTUDIO_GX,
	LINE6_INDEX_PODSTUDIO_UX1,
	LINE6_INDEX_PODSTUDIO_UX2,
	LINE6_INDEX_PODX3,
	LINE6_INDEX_PODX3LIVE,
	LINE6_INDEX_PODXT,
	LINE6_INDEX_PODXTLIVE,
	LINE6_INDEX_PODXTPRO,
	LINE6_INDEX_TONEPORT_GX,
	LINE6_INDEX_TONEPORT_UX1,
	LINE6_INDEX_TONEPORT_UX2,
	LINE6_INDEX_VARIAX,

	LINE6_BIT(BASSPODXT),
	LINE6_BIT(BASSPODXTLIVE),
	LINE6_BIT(BASSPODXTPRO),
	LINE6_BIT(GUITARPORT),
	LINE6_BIT(POCKETPOD),
	LINE6_BIT(PODHD300),
	LINE6_BIT(PODHD500),
	LINE6_BIT(PODSTUDIO_GX),
	LINE6_BIT(PODSTUDIO_UX1),
	LINE6_BIT(PODSTUDIO_UX2),
	LINE6_BIT(PODX3),
	LINE6_BIT(PODX3LIVE),
	LINE6_BIT(PODXT),
	LINE6_BIT(PODXTLIVE),
	LINE6_BIT(PODXTPRO),
	LINE6_BIT(TONEPORT_GX),
	LINE6_BIT(TONEPORT_UX1),
	LINE6_BIT(TONEPORT_UX2),
	LINE6_BIT(VARIAX),

	LINE6_BITS_PRO = LINE6_BIT_BASSPODXTPRO | LINE6_BIT_PODXTPRO,
	LINE6_BITS_LIVE = LINE6_BIT_BASSPODXTLIVE | LINE6_BIT_PODXTLIVE | LINE6_BIT_PODX3LIVE,
	LINE6_BITS_PODXTALL = LINE6_BIT_PODXT | LINE6_BIT_PODXTLIVE | LINE6_BIT_PODXTPRO,
	LINE6_BITS_PODX3ALL = LINE6_BIT_PODX3 | LINE6_BIT_PODX3LIVE,
	LINE6_BITS_PODHDALL = LINE6_BIT_PODHD300 | LINE6_BIT_PODHD500,
	LINE6_BITS_BASSPODXTALL	= LINE6_BIT_BASSPODXT |	LINE6_BIT_BASSPODXTLIVE | LINE6_BIT_BASSPODXTPRO
};

/* device supports settings parameter via USB */
#define LINE6_BIT_CONTROL (1 << 0)
/* device supports PCM input/output via USB */
#define LINE6_BIT_PCM (1 << 1)
/* device support hardware monitoring */
#define LINE6_BIT_HWMON (1 << 2)

#define LINE6_BIT_CONTROL_PCM_HWMON	(LINE6_BIT_CONTROL |	\
					 LINE6_BIT_PCM |	\
					 LINE6_BIT_HWMON)

#define LINE6_FALLBACK_INTERVAL 10
#define LINE6_FALLBACK_MAXPACKETSIZE 16

#endif