2.0 alpha
[platform/core/system/devman.git] / devices / jack_microusb.c
1 /*
2  *  devman
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: DongGi Jang <dg0402.jang@samsung.com>
7  * 
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20 */ 
21
22
23 #include "device_engine.h"
24 #include "device_plugin.h"
25
26 static int get_microusb_status(int prop, int *val)
27 {
28         switch (prop) {
29         case JACK_PROP_USB_ONLINE:
30                 return plugin_intf->OEM_sys_get_jack_usb_online(val);
31         case JACK_PROP_TA_ONLINE:
32                 return plugin_intf->OEM_sys_get_jack_charger_online(val);
33         case JACK_PROP_HDMI_ONLINE:
34                 return plugin_intf->OEM_sys_get_jack_hdmi_online(val);
35         case JACK_PROP_USB_PATH:
36                 return plugin_intf->OEM_sys_get_usb_path(val);
37         }
38
39         return -1;
40 }
41
42 static int set_microusb_path(int prop, int val)
43 {
44         int ret = -1;
45         switch (prop) {
46         case JACK_PROP_USB_PATH:
47                 ret = plugin_intf->OEM_sys_set_usb_path(val);
48                 if(ret == 0){
49                         if(val == PATH_CP)
50                                 system("/usr/bin/save_blenv usbpath CP");
51                         else
52                                 system("/usr/bin/save_blenv usbpath AP");
53                 }
54                 return ret;
55         }
56
57         return -1;
58 }
59
60 static struct device microusb = {
61         .devname = "microusb",
62         .set_int = set_microusb_path,
63         .get_int = get_microusb_status,
64         .devtype = DEVTYPE_JACK,
65 };
66
67 static void __attribute__ ((constructor)) module_init()
68 {
69         add_dev(&microusb);
70 }