From 8994a1cad12684c4058a08e8d8ea09df5f5c2ec1 Mon Sep 17 00:00:00 2001 From: Krzysztof Opasiak Date: Thu, 11 Aug 2016 19:39:10 +0200 Subject: [PATCH] Add usb_client HAL API This API allows to apply abstract gadget description received from USB gadget HAL to usb gadget subsystem in Kernel via system infrastructure available on this particular device. Change-Id: Ibf05b3ec7c8abfed357f886eada5864dca514051 Signed-off-by: Krzysztof Opasiak --- hw/usb_client.h | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 hw/usb_client.h diff --git a/hw/usb_client.h b/hw/usb_client.h new file mode 100644 index 0000000..4b4ffae --- /dev/null +++ b/hw/usb_client.h @@ -0,0 +1,58 @@ +/* + * 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" + +/** + * 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); +}; + +#endif -- 2.7.4