4 * Copyright (c) 2015 Samsung Electronics Co., Ltd.
6 * Licensed under the Apache License, Version 2.0 (the License);
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
20 #ifndef __HW_EXTERNAL_CONNECTION_H__
21 #define __HW_EXTERNAL_CONNECTION_H__
23 #include <hw/common.h>
26 * The id of this device
28 #define EXTERNAL_CONNECTION_HARDWARE_DEVICE_ID "external_connection"
30 #define EXTERNAL_CONNECTION_USB "USB"
31 #define EXTERNAL_CONNECTION_USB_HOST "USB-HOST"
32 #define EXTERNAL_CONNECTION_TA "TA"
33 #define EXTERNAL_CONNECTION_HDMI "HDMI"
34 #define EXTERNAL_CONNECTION_DOCK "Dock"
35 #define EXTERNAL_CONNECTION_MIC "Microphone"
36 #define EXTERNAL_CONNECTION_HEADPHONE "Headphone"
39 * The version of this device
41 #define EXTERNAL_CONNECTION_HARDWARE_DEVICE_VERSION MAKE_VERSION(0,1)
43 struct connection_info {
49 typedef void (*ConnectionUpdated)(struct connection_info *info, void *data);
51 struct external_connection_device {
52 struct hw_common common;
54 /* Register external_connection event */
55 int (*register_changed_event)(ConnectionUpdated updated_cb, void *data);
56 void (*unregister_changed_event)(ConnectionUpdated updated_cb);
58 /* Get current states */
59 int (*get_current_state)(ConnectionUpdated updated_cb, void *data);