external connection: add HAL interface for external connections 23/54723/1 accepted/tizen/ivi/20160218.023806 accepted/tizen/mobile/20151222.085717 accepted/tizen/tv/20151222.085737 accepted/tizen/wearable/20151222.085800 submit/tizen/20151221.233245 submit/tizen/20151222.023057 submit/tizen_common/20151229.142028 submit/tizen_common/20151229.144031 submit/tizen_common/20151229.154718 submit/tizen_ivi/20160217.000000 submit/tizen_ivi/20160217.000003
authorTaeyoung Kim <ty317.kim@samsung.com>
Thu, 17 Dec 2015 11:35:46 +0000 (20:35 +0900)
committerTaeyoung Kim <ty317.kim@samsung.com>
Thu, 17 Dec 2015 11:37:16 +0000 (20:37 +0900)
- The hal will exchange extcon interface of kernel

Change-Id: I9ef2f9392a676b65140b3ef61d81f502c5e669be
Signed-off-by: Taeyoung Kim <ty317.kim@samsung.com>
hw/external_connection.h [new file with mode: 0644]

diff --git a/hw/external_connection.h b/hw/external_connection.h
new file mode 100644 (file)
index 0000000..b860445
--- /dev/null
@@ -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 <hw/common.h>
+
+/**
+ * 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