diff options
author | Colin Cross <ccross@android.com> | 2011-06-24 15:58:51 -0700 |
---|---|---|
committer | Dima Zavin <dima@android.com> | 2011-07-11 15:30:10 -0700 |
commit | ab246b81fb40a587e89f281fe9255833b7540220 (patch) | |
tree | 0434320e4a18914f566811227e22886cea99622f /include | |
parent | 2fc52d645892c7a5fb9915b09351f934ea03f15d (diff) | |
download | kernel_samsung_aries-ab246b81fb40a587e89f281fe9255833b7540220.zip kernel_samsung_aries-ab246b81fb40a587e89f281fe9255833b7540220.tar.gz kernel_samsung_aries-ab246b81fb40a587e89f281fe9255833b7540220.tar.bz2 |
USB: otg: add otg id notifier utiltiies
Add a otg_id notifier to allow multiple drivers to cooperate to
determine the type of cable connected to a USB connector without
requiring direct calls between the drivers.
Change-Id: Ic5675f1a89daf85b17336765de24e4bdb6df6348
Signed-off-by: Colin Cross <ccross@android.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/usb/otg_id.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/include/linux/usb/otg_id.h b/include/linux/usb/otg_id.h new file mode 100644 index 0000000..b686ab0 --- /dev/null +++ b/include/linux/usb/otg_id.h @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2011 Google, Inc. + * + * Author: + * Colin Cross <ccross@android.com> + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef __LINUX_USB_OTG_ID_H +#define __LINUX_USB_OTG_ID_H + +#include <linux/notifier.h> +#include <linux/plist.h> + +/** + * otg_id_notifier_block + * + * @priority: Order the notifications will be called in. Higher numbers + * get called first. + * @detect: Called during otg_id_notify. Return OTG_ID_HANDLED if the USB cable + * has been identified + * @cancel: Called after detect has returned OTG_ID_HANDLED to ask it to + * release detection resources to allow a new identification to occur. + */ + +struct otg_id_notifier_block { + int priority; + int (*detect)(struct otg_id_notifier_block *otg_id_nb); + void (*cancel)(struct otg_id_notifier_block *otg_id_nb); + struct plist_node p; +}; + +#define OTG_ID_HANDLED 1 +#define OTG_ID_UNHANDLED 0 + +int otg_id_register_notifier(struct otg_id_notifier_block *otg_id_nb); +void otg_id_unregister_notifier(struct otg_id_notifier_block *otg_id_nb); + +void otg_id_notify(void); + +#endif /* __LINUX_USB_OTG_ID_H */ |