1*958e8741SGreg Kroah-Hartman /* 2*958e8741SGreg Kroah-Hartman * USB Debug cable driver 3*958e8741SGreg Kroah-Hartman * 4*958e8741SGreg Kroah-Hartman * Copyright (C) 2006 Greg Kroah-Hartman <[email protected]> 5*958e8741SGreg Kroah-Hartman * 6*958e8741SGreg Kroah-Hartman * This program is free software; you can redistribute it and/or 7*958e8741SGreg Kroah-Hartman * modify it under the terms of the GNU General Public License version 8*958e8741SGreg Kroah-Hartman * 2 as published by the Free Software Foundation. 9*958e8741SGreg Kroah-Hartman */ 10*958e8741SGreg Kroah-Hartman 11*958e8741SGreg Kroah-Hartman #include <linux/kernel.h> 12*958e8741SGreg Kroah-Hartman #include <linux/init.h> 13*958e8741SGreg Kroah-Hartman #include <linux/tty.h> 14*958e8741SGreg Kroah-Hartman #include <linux/module.h> 15*958e8741SGreg Kroah-Hartman #include <linux/usb.h> 16*958e8741SGreg Kroah-Hartman #include <linux/usb/serial.h> 17*958e8741SGreg Kroah-Hartman 18*958e8741SGreg Kroah-Hartman static struct usb_device_id id_table [] = { 19*958e8741SGreg Kroah-Hartman { USB_DEVICE(0x0525, 0x127a) }, 20*958e8741SGreg Kroah-Hartman { }, 21*958e8741SGreg Kroah-Hartman }; 22*958e8741SGreg Kroah-Hartman MODULE_DEVICE_TABLE(usb, id_table); 23*958e8741SGreg Kroah-Hartman 24*958e8741SGreg Kroah-Hartman static struct usb_driver debug_driver = { 25*958e8741SGreg Kroah-Hartman .name = "debug", 26*958e8741SGreg Kroah-Hartman .probe = usb_serial_probe, 27*958e8741SGreg Kroah-Hartman .disconnect = usb_serial_disconnect, 28*958e8741SGreg Kroah-Hartman .id_table = id_table, 29*958e8741SGreg Kroah-Hartman .no_dynamic_id = 1, 30*958e8741SGreg Kroah-Hartman }; 31*958e8741SGreg Kroah-Hartman 32*958e8741SGreg Kroah-Hartman static struct usb_serial_driver debug_device = { 33*958e8741SGreg Kroah-Hartman .driver = { 34*958e8741SGreg Kroah-Hartman .owner = THIS_MODULE, 35*958e8741SGreg Kroah-Hartman .name = "debug", 36*958e8741SGreg Kroah-Hartman }, 37*958e8741SGreg Kroah-Hartman .id_table = id_table, 38*958e8741SGreg Kroah-Hartman .num_interrupt_in = NUM_DONT_CARE, 39*958e8741SGreg Kroah-Hartman .num_bulk_in = NUM_DONT_CARE, 40*958e8741SGreg Kroah-Hartman .num_bulk_out = NUM_DONT_CARE, 41*958e8741SGreg Kroah-Hartman .num_ports = 1, 42*958e8741SGreg Kroah-Hartman }; 43*958e8741SGreg Kroah-Hartman 44*958e8741SGreg Kroah-Hartman static int __init debug_init(void) 45*958e8741SGreg Kroah-Hartman { 46*958e8741SGreg Kroah-Hartman int retval; 47*958e8741SGreg Kroah-Hartman 48*958e8741SGreg Kroah-Hartman retval = usb_serial_register(&debug_device); 49*958e8741SGreg Kroah-Hartman if (retval) 50*958e8741SGreg Kroah-Hartman return retval; 51*958e8741SGreg Kroah-Hartman retval = usb_register(&debug_driver); 52*958e8741SGreg Kroah-Hartman if (retval) 53*958e8741SGreg Kroah-Hartman usb_serial_deregister(&debug_device); 54*958e8741SGreg Kroah-Hartman return retval; 55*958e8741SGreg Kroah-Hartman } 56*958e8741SGreg Kroah-Hartman 57*958e8741SGreg Kroah-Hartman static void __exit debug_exit(void) 58*958e8741SGreg Kroah-Hartman { 59*958e8741SGreg Kroah-Hartman usb_deregister(&debug_driver); 60*958e8741SGreg Kroah-Hartman usb_serial_deregister(&debug_device); 61*958e8741SGreg Kroah-Hartman } 62*958e8741SGreg Kroah-Hartman 63*958e8741SGreg Kroah-Hartman module_init(debug_init); 64*958e8741SGreg Kroah-Hartman module_exit(debug_exit); 65*958e8741SGreg Kroah-Hartman MODULE_LICENSE("GPL"); 66