/* * libdevice-node * * Copyright (c) 2016 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the License); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __HW_USB_CLIENT_H__ #define __HW_USB_CLIENT_H__ #include #include #include /** * The id of this device */ #define USB_CLIENT_HARDWARE_DEVICE_ID "usb_client" #define USB_CFS_CLIENT_HARDWARE_DEVICE_ID "usb_cfs_client" /** * The version of this device */ #define USB_CLIENT_HARDWARE_DEVICE_VERSION MAKE_VERSION(0,1) struct usb_client { struct hw_common common; int (*get_current_gadget)(struct usb_client *usb, struct usb_gadget **gadget); int (*reconfigure_gadget)(struct usb_client *usb, struct usb_gadget *gadget); bool (*is_gadget_supported)(struct usb_client *usb, struct usb_gadget *gadget); bool (*is_function_supported)(struct usb_client *usb, struct usb_function *func); int (*enable)(struct usb_client *usb); int (*disable)(struct usb_client *usb); void (*free_gadget)(struct usb_gadget *gadget); }; int hw_legacy_gadget_open(struct hw_info *info, const char *id, struct hw_common **common); int hw_legacy_gadget_close(struct hw_common *common); int hw_cfs_gadget_open(struct hw_info *info, const char *id, struct hw_common **common); int hw_cfs_gadget_close(struct hw_common *common); #endif