dynamically enable/disable kernel config options for kmod packages based on build...
[oweals/openwrt.git] / package / kernel / modules / usb.mk
1
2 # Copyright (C) 2006 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7 # $Id$
8
9 USBMENU:=USB Support
10
11 ifeq ($(KERNEL),2.4)
12   USBNET_DIR:=usb/net
13 endif
14
15 ifeq ($(KERNEL_PATCHVER),2.6.21)
16   USBNET_DIR:=usb/net
17   USBHID_DIR:=usb/input
18   USBINPUT_DIR:=usb/input
19 endif
20
21 USBNET_DIR?=net/usb
22 USBHID_DIR?=hid/usbhid
23 USBINPUT_DIR?=input/misc
24
25 define usbdep
26   SUBMENU:=$(USBMENU)
27   DEPENDS:=kmod-usb-core $(1)
28 endef
29
30 define KernelPackage/usb-core
31   TITLE:=Support for USB
32   DESCRIPTION:=Kernel support for USB
33   DEPENDS:=@USB_SUPPORT
34   KCONFIG:=CONFIG_USB
35   SUBMENU:=$(USBMENU)
36   AUTOLOAD:=$(call AutoLoad,20,usbcore)
37 endef
38
39 define KernelPackage/usb-core/2.4
40   FILES:=$(LINUX_DIR)/drivers/usb/usbcore.$(LINUX_KMOD_SUFFIX)
41 endef
42
43 define KernelPackage/usb-core/2.6
44   FILES:=$(LINUX_DIR)/drivers/usb/core/usbcore.$(LINUX_KMOD_SUFFIX)
45 endef
46 $(eval $(call KernelPackage,usb-core))
47
48
49 define KernelPackage/usb-uhci
50   $(call usbdep,)
51   TITLE:=Support for UHCI controllers
52   DESCRIPTION:=Kernel support for USB UHCI controllers
53 endef
54
55 define KernelPackage/usb-uhci/2.4
56   FILES:=$(LINUX_DIR)/drivers/usb/host/uhci.o
57   KCONFIG:=CONFIG_USB_UHCI_ALT
58   AUTOLOAD:=$(call AutoLoad,50,uhci)
59 endef
60
61 define KernelPackage/usb-uhci/2.6
62   FILES:=$(LINUX_DIR)/drivers/usb/host/uhci-hcd.ko
63   KCONFIG:=CONFIG_USB_UHCI_HCD
64   AUTOLOAD:=$(call AutoLoad,50,uhci-hcd)
65 endef
66 $(eval $(call KernelPackage,usb-uhci))
67
68 define KernelPackage/usb-uhci-iv
69   $(call usbdep,@LINUX_2_4)
70   TITLE:=Support for Intel/VIA UHCI controllers 
71   DESCRIPTION:=Kernel support for Intel/VIA USB UHCI controllers
72   FILES:=$(LINUX_DIR)/drivers/usb/host/usb-uhci.$(LINUX_KMOD_SUFFIX)
73   KCONFIG:=CONFIG_USB_UHCI
74   AUTOLOAD:=$(call AutoLoad,50,usb-uhci) 
75 endef 
76 $(eval $(call KernelPackage,usb-uhci-iv)) 
77
78 define KernelPackage/usb-ohci
79   $(call usbdep,)
80   TITLE:=Support for OHCI controllers
81   DESCRIPTION:=Kernel support for USB OHCI controllers
82   KCONFIG:=CONFIG_USB_OHCI CONFIG_USB_OHCI_HCD
83 endef
84
85 define KernelPackage/usb-ohci/2.4
86   FILES:=$(LINUX_DIR)/drivers/usb/host/usb-ohci.o
87   AUTOLOAD:=$(call AutoLoad,50,usb-ohci)
88 endef
89
90 define KernelPackage/usb-ohci/2.6
91   FILES:=$(LINUX_DIR)/drivers/usb/host/ohci-hcd.ko
92   AUTOLOAD:=$(call AutoLoad,50,ohci-hcd)
93 endef
94 $(eval $(call KernelPackage,usb-ohci))
95
96 define KernelPackage/usb2
97   $(call usbdep,)
98   TITLE:=Support for USB2 controllers
99   DESCRIPTION:=Kernel support for USB2 (EHCI) controllers
100   FILES:=$(LINUX_DIR)/drivers/usb/host/ehci-hcd.$(LINUX_KMOD_SUFFIX)
101   KCONFIG:=CONFIG_USB_EHCI_HCD
102   AUTOLOAD:=$(call AutoLoad,50,ehci-hcd)
103 endef
104 $(eval $(call KernelPackage,usb2))
105
106
107 define KernelPackage/usb-acm
108   $(call usbdep,)
109   TITLE:=Support for modems/isdn controllers
110   DESCRIPTION:=Kernel support for USB ACM devices (modems/isdn controllers)
111   KCONFIG:=CONFIG_USB_ACM
112 endef
113
114 define KernelPackage/usb-acm/2.4
115   FILES:=$(LINUX_DIR)/drivers/usb/acm.o
116   AUTOLOAD:=$(call AutoLoad,60,acm)
117 endef
118
119 define KernelPackage/usb-acm/2.6
120   FILES:=$(LINUX_DIR)/drivers/usb/class/cdc-acm.ko
121   AUTOLOAD:=$(call AutoLoad,60,cdc-acm)
122 endef
123 $(eval $(call KernelPackage,usb-acm))
124
125
126 define KernelPackage/usb-audio
127   $(call usbdep,+kmod-soundcore)
128   TITLE:=Support for audio devices
129   DESCRIPTION:=Kernel support for USB audio devices
130   KCONFIG:=CONFIG_USB_AUDIO CONFIG_SND_USB_AUDIO
131 endef
132
133 define KernelPackage/usb-audio/2.4
134   FILES:=$(LINUX_DIR)/drivers/usb/audio.o
135   AUTOLOAD:=$(call AutoLoad,60,audio)
136 endef
137
138 define KernelPackage/usb-audio/2.6
139   FILES:= \
140         $(LINUX_DIR)/sound/usb/snd-usb-lib.ko \
141         $(LINUX_DIR)/sound/usb/snd-usb-audio.ko
142   AUTOLOAD:=$(call AutoLoad,60,snd-usb-lib snd-usb-audio)
143 endef
144 $(eval $(call KernelPackage,usb-audio))
145
146
147 define KernelPackage/usb-printer
148   $(call usbdep,)
149   TITLE:=Support for printers
150   DESCRIPTION:=Kernel support for USB printers
151   KCONFIG:=CONFIG_USB_PRINTER
152 endef
153
154 define KernelPackage/usb-printer/2.4
155   FILES:=$(LINUX_DIR)/drivers/usb/printer.o
156   AUTOLOAD:=$(call AutoLoad,60,printer)
157 endef
158
159 define KernelPackage/usb-printer/2.6
160   FILES:=$(LINUX_DIR)/drivers/usb/class/usblp.ko
161   AUTOLOAD:=$(call AutoLoad,60,usblp)
162 endef
163 $(eval $(call KernelPackage,usb-printer))
164
165
166 define KernelPackage/usb-serial
167   $(call usbdep,)
168   TITLE:=Support for USB-to-Serial converters
169   DESCRIPTION:=Kernel support for USB-to-Serial converters
170   KCONFIG:=CONFIG_USB_SERIAL
171   FILES:=$(LINUX_DIR)/drivers/usb/serial/usbserial.$(LINUX_KMOD_SUFFIX)
172   AUTOLOAD:=$(call AutoLoad,60,usbserial)
173 endef
174 $(eval $(call KernelPackage,usb-serial))
175
176 define KernelPackage/usb-serial-airprime
177   $(call usbdep,kmod-usb-serial)
178   TITLE:=Support for Airprime (EVDO) 
179   DESCRIPTION:=Kernel support for Airprime (EVDO) 
180   KCONFIG:=CONFIG_USB_SERIAL_AIRPRIME
181   FILES:=$(LINUX_DIR)/drivers/usb/serial/airprime.$(LINUX_KMOD_SUFFIX)
182   AUTOLOAD:=$(call AutoLoad,65,airprime)
183 endef
184 $(eval $(call KernelPackage,usb-serial-airprime))
185
186 define KernelPackage/usb-serial-belkin
187   $(call usbdep,kmod-usb-serial)
188   TITLE:=Support for Belkin devices
189   DESCRIPTION:=Kernel support for Belkin USB-to-Serial converters
190   KCONFIG:=CONFIG_USB_SERIAL_BELKIN
191   FILES:=$(LINUX_DIR)/drivers/usb/serial/belkin_sa.$(LINUX_KMOD_SUFFIX)
192   AUTOLOAD:=$(call AutoLoad,65,belkin_sa)
193 endef
194 $(eval $(call KernelPackage,usb-serial-belkin))
195
196
197 define KernelPackage/usb-serial-ftdi
198   $(call usbdep,kmod-usb-serial)
199   TITLE:=Support for FTDI devices
200   DESCRIPTION:=Kernel support for FTDI USB-to-Serial converters
201   KCONFIG:=CONFIG_USB_SERIAL_FTDI_SIO
202   FILES:=$(LINUX_DIR)/drivers/usb/serial/ftdi_sio.$(LINUX_KMOD_SUFFIX)
203   AUTOLOAD:=$(call AutoLoad,65,ftdi_sio)
204 endef
205 $(eval $(call KernelPackage,usb-serial-ftdi))
206
207
208 define KernelPackage/usb-serial-mct
209   $(call usbdep,kmod-usb-serial)
210   TITLE:=Support for Magic Control Tech. devices
211   DESCRIPTION:=Kernel support for Magic Control Technology USB-to-Serial converters
212   KCONFIG:=CONFIG_USB_SERIAL_MCT_U232
213   FILES:=$(LINUX_DIR)/drivers/usb/serial/mct_u232.$(LINUX_KMOD_SUFFIX)
214   AUTOLOAD:=$(call AutoLoad,65,mct_u232)
215 endef
216 $(eval $(call KernelPackage,usb-serial-mct))
217
218 define KernelPackage/usb-serial-pl2303
219   $(call usbdep,kmod-usb-serial)
220   TITLE:=Support for Prolific PL2303 devices
221   DESCRIPTION:=Kernel support for Prolific PL2303 USB-to-Serial converters
222   KCONFIG:=CONFIG_USB_SERIAL_PL2303
223   FILES:=$(LINUX_DIR)/drivers/usb/serial/pl2303.$(LINUX_KMOD_SUFFIX)
224   AUTOLOAD:=$(call AutoLoad,65,pl2303)
225 endef
226 $(eval $(call KernelPackage,usb-serial-pl2303))
227
228
229 define KernelPackage/usb-serial-sierrawireless
230   $(call usbdep,kmod-usb-serial)
231   TITLE:=Support for Sierra Wireless devices
232   DESCRIPTION:=Kernel support for Sierra Wireless devices
233   KCONFIG:=CONFIG_USB_SERIAL_SIERRAWIRELESS
234   FILES:=$(LINUX_DIR)/drivers/usb/serial/sierra.$(LINUX_KMOD_SUFFIX)
235   AUTOLOAD:=$(call AutoLoad,65,sierra)
236 endef
237 $(eval $(call KernelPackage,usb-serial-sierrawireless))
238
239
240 define KernelPackage/usb-serial-visor
241   $(call usbdep,kmod-usb-serial)
242   TITLE:=Support for Handspring Visor devices
243   DESCRIPTION:=Kernel support for Handspring Visor PDAs
244   KCONFIG:=CONFIG_USB_SERIAL_VISOR
245   FILES:=$(LINUX_DIR)/drivers/usb/serial/visor.$(LINUX_KMOD_SUFFIX)
246   AUTOLOAD:=$(call AutoLoad,65,visor)
247 endef
248 $(eval $(call KernelPackage,usb-serial-visor))
249
250 define KernelPackage/usb-serial-option
251   $(call usbdep,kmod-usb-serial)
252   TITLE:=Support for Option HSDPA modems
253   DESCRIPTION:=Kernel support for Option HSDPA modems
254   DEPENDS:=@LINUX_2_6
255   KCONFIG:=CONFIG_USB_SERIAL_OPTION
256   FILES:=$(LINUX_DIR)/drivers/usb/serial/option.$(LINUX_KMOD_SUFFIX)
257   AUTOLOAD:=$(call AutoLoad,65,option)
258 endef
259 $(eval $(call KernelPackage,usb-serial-option))
260
261
262 define KernelPackage/usb-storage
263   $(call usbdep,+kmod-scsi-core)
264   TITLE:=USB Storage support
265   DESCRIPTION:=Kernel support for USB Mass Storage devices
266   KCONFIG:=CONFIG_USB_STORAGE
267   FILES:= \
268         $(LINUX_DIR)/drivers/usb/storage/usb-storage.$(LINUX_KMOD_SUFFIX)
269   AUTOLOAD:=$(call AutoLoad,60,scsi_mod sd_mod usb-storage)
270 endef
271 $(eval $(call KernelPackage,usb-storage))
272
273 define KernelPackage/usb-atm
274   $(call usbdep,@LINUX_2_6 kmod-atm)
275   TITLE:=Support for ATM on USB bus
276   DESCRIPTION:=Kernel support for USB DSL modems
277   KCONFIG:=CONFIG_USB_ATM
278   FILES:=$(LINUX_DIR)/drivers/usb/atm/usbatm.$(LINUX_KMOD_SUFFIX)
279   AUTOLOAD:=$(call AutoLoad,60,usbatm)
280 endef
281 $(eval $(call KernelPackage,usb-atm))
282
283 define KernelPackage/usb-speedtouch
284   $(call usbdep,@LINUX_2_6 kmod-atm)
285   TITLE:=Support for SpeedTouch ADSL modems
286   DESCRIPTION:=Kernel support for SpeedTouch USB ADSL modems
287   KCONFIG:=CONFIG_USB_SPEEDTOUCH
288   FILES:=$(LINUX_DIR)/drivers/usb/atm/speedtch.$(LINUX_KMOD_SUFFIX)
289   AUTOLOAD:=$(call AutoLoad,70,speedtch)
290 endef
291 $(eval $(call KernelPackage,usb-speedtouch))
292
293 define KernelPackage/ueagle-atm
294   $(call usbdep,@LINUX_2_6 kmod-atm)
295   TITLE:=Driver for Eagle 8051 based USB ADSL modems
296   DESCRIPTION:=Kernel support for Eagle 8051 based USB ADSL modems
297   FILES:=$(LINUX_DIR)/drivers/usb/atm/ueagle-atm.$(LINUX_KMOD_SUFFIX)
298   KCONFIG:=CONFIG_USB_UEAGLEATM
299   AUTOLOAD:=$(call AutoLoad,70,ueagle-atm)
300 endef
301 $(eval $(call KernelPackage,ueagle-atm))
302
303 define KernelPackage/usb-pwc
304   $(call usbdep,+kmod-videodev)
305   TITLE:=Philips WebCam driver
306   DESCRIPTION:=Kernel modules for supporting Philips WebCam USB devices
307   KCONFIG:=CONFIG_USB_PWC
308   AUTOLOAD:=$(call AutoLoad,70,pwc)
309 endef
310
311 define KernelPackage/usb-pwc/2.4
312   FILES:=$(LINUX_DIR)/drivers/usb/pwc.$(LINUX_KMOD_SUFFIX)
313 endef
314
315 define KernelPackage/usb-pwc/2.6
316   FILES:=$(LINUX_DIR)/drivers/media/video/pwc/pwc.$(LINUX_KMOD_SUFFIX)
317 endef
318 $(eval $(call KernelPackage,usb-pwc))
319
320 define KernelPackage/cpia2
321   $(call usbdep,+kmod-videodev)
322   TITLE:=CPIA2 video driver
323   DESCRIPTION:=Kernel modules for CPIA2 WebCam devices
324   KCONFIG:=CONFIG_VIDEO_CPIA2
325   AUTOLOAD:=$(call AutoLoad,70,cpia2)
326 endef
327
328 define KernelPackage/cpia2/2.4
329   FILES:=$(LINUX_DIR)/drivers/usb/cpia2.$(LINUX_KMOD_SUFFIX)
330 endef
331
332 define KernelPackage/cpia2/2.6
333   FILES:=$(LINUX_DIR)/drivers/media/video/cpia2/cpia2.$(LINUX_KMOD_SUFFIX)
334 endef
335 $(eval $(call KernelPackage,cpia2))
336
337 define KernelPackage/usb-net
338   $(call usbdep,)
339   TITLE:=Kernel modules for USB-to-Ethernet convertors
340   DESCRIPTION:=Kernel modules for USB-to-Ethernet convertors
341   KCONFIG:=CONFIG_USB_USBNET
342   AUTOLOAD:=$(call Autoload,60, usbnet)
343 endef
344
345 define KernelPackage/usb-net/2.4
346   FILES:=$(LINUX_DIR)/drivers/usb/usbnet.$(LINUX_KMOD_SUFFIX)
347 endef
348
349 define KernelPackage/usb-net/2.6
350   FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/usbnet.$(LINUX_KMOD_SUFFIX)
351 endef
352
353 $(eval $(call KernelPackage,usb-net))
354
355 define KernelPackage/usb-net-asix
356   $(call usbdep,kmod-usbnet)
357   TITLE:=Kernel module for USB-to-Ethernet Asix convertors
358   DESCRIPTION:=Kernel module for USB-to-Ethernet Asix convertors
359   KCONFIG:=CONFIG_USB_NET_AX8817X
360 endef
361
362 define KernelPackage/usb-net-asix/2.4
363   FILES:=$(LINUX_DIR)/drivers/usb/ax8817x.$(LINUX_KMOD_SUFFIX)
364   AUTOLOAD:=$(call Autoload,61,ax8817x)
365 endef
366
367 define KernelPackage/usb-net-asix/2.6
368   FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/asix.$(LINUX_KMOD_SUFFIX)
369   AUTOLOAD:=$(call Autoload,61,asix)
370 endef
371
372 $(eval $(call KernelPackage,usb-net-asix))
373
374 define KernelPackage/usb-net-kaweth
375   $(call usbdep,kmod-usbnet)
376   TITLE:=Kernel module for USB-to-Ethernet Kaweth convertors
377   DESCRIPTION:=Kernel module for USB-to-Ethernet Kaweth convertors
378   KCONFIG:=CONFIG_USB_KAWETH
379   FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/kaweth.$(LINUX_KMOD_SUFFIX)
380   AUTOLOAD:=$(call Autoload,61,kaweth)
381 endef
382
383 $(eval $(call KernelPackage,usb-net-kaweth))
384
385 define KernelPackage/usb-net-pegasus
386   $(call usbdep,kmod-usbnet)
387   TITLE:=Kernel module for USB-to-Ethernet Pegasus convertors
388   DESCRIPTION:=Kernel module for USB-to-Ethernet Pegasus convertors
389   KCONFIG:=CONFIG_USB_PEGASUS
390   FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/pegasus.$(LINUX_KMOD_SUFFIX)
391   AUTOLOAD:=$(call Autoload,61,pegasus)
392 endef
393
394 $(eval $(call KernelPackage,usb-net-pegasus))
395
396 define KernelPackage/usb-hid
397   $(call usbdep,@LINUX_2_6 +kmod-input-core +kmod-input-evdev)
398   TITLE:=Support for USB Human Input Devices
399   DESCRIPTION:=Kernel support for USB HID devices such as keyboards and mice
400   KCONFIG:=CONFIG_USB_HID
401   AUTOLOAD:=$(call AutoLoad,70,usbhid)
402 endef
403
404 define KernelPackage/usb-hid/2.6
405   FILES:=$(LINUX_DIR)/drivers/$(USBHID_DIR)/usbhid.ko
406 endef
407 $(eval $(call KernelPackage,usb-hid))
408
409 define KernelPackage/usb-yealink
410   $(call usbdep,@LINUX_2_6 +kmod-input-core +kmod-input-evdev)
411   TITLE:=USB Yealink VOIP phone
412   DESCRIPTION:=Kernel support for Yealink VOIP phone
413   KCONFIG:=CONFIG_USB_YEALINK
414   FILES:=$(LINUX_DIR)/drivers/$(USBINPUT_DIR)/yealink.ko
415   AUTOLOAD:=$(call AutoLoad,70,yealink)
416 endef
417 $(eval $(call KernelPackage,usb-yealink))
418
419