From: Taeyoung Kim Date: Thu, 17 Dec 2015 11:35:46 +0000 (+0900) Subject: external connection: add HAL interface for external connections X-Git-Tag: accepted/tizen/ivi/20160218.023806^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=410ecd2f4ec77c284f97853fd04495eec0be28c3;p=platform%2Fcore%2Fsystem%2Flibdevice-node.git external connection: add HAL interface for external connections - The hal will exchange extcon interface of kernel Change-Id: I9ef2f9392a676b65140b3ef61d81f502c5e669be Signed-off-by: Taeyoung Kim --- diff --git a/hw/external_connection.h b/hw/external_connection.h new file mode 100644 index 0000000..b860445 --- /dev/null +++ b/hw/external_connection.h @@ -0,0 +1,62 @@ +/* + * libdevice-node + * + * Copyright (c) 2015 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_EXTERNAL_CONNECTION_H__ +#define __HW_EXTERNAL_CONNECTION_H__ + +#include + +/** + * The id of this device + */ +#define EXTERNAL_CONNECTION_HARDWARE_DEVICE_ID "external_connection" + +#define EXTERNAL_CONNECTION_USB "USB" +#define EXTERNAL_CONNECTION_USB_HOST "USB-HOST" +#define EXTERNAL_CONNECTION_TA "TA" +#define EXTERNAL_CONNECTION_HDMI "HDMI" +#define EXTERNAL_CONNECTION_DOCK "Dock" +#define EXTERNAL_CONNECTION_MIC "Microphone" +#define EXTERNAL_CONNECTION_HEADPHONE "Headphone" + +/** + * The version of this device + */ +#define EXTERNAL_CONNECTION_HARDWARE_DEVICE_VERSION MAKE_VERSION(0,1) + +struct connection_info { + char *name; + char *state; + int flags; +}; + +typedef void (*ConnectionUpdated)(struct connection_info *info, void *data); + +struct external_connection_device { + struct hw_common common; + + /* Register external_connection event */ + int (*register_changed_event)(ConnectionUpdated updated_cb, void *data); + void (*unregister_changed_event)(ConnectionUpdated updated_cb); + + /* Get current states */ + int (*get_current_state)(ConnectionUpdated updated_cb, void *data); +}; + +#endif