tizen 2.3 release
[framework/system/deviced.git] / src / usb / usb-client-mode.c
1 /*
2  * deviced
3  *
4  * Copyright (c) 2012 - 2014 Samsung Electronics Co., Ltd.
5  *
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
9  *
10  *     http://www.apache.org/licenses/LICENSE-2.0
11  *
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.
17  */
18
19 #include "usb-client.h"
20
21 enum usbclient_mode {
22         USBCLIENT_MODE_NONE          = 0x00,
23         USBCLIENT_MODE_MTP           = 0x01,
24         USBCLIENT_MODE_ACM           = 0x02,
25         USBCLIENT_MODE_SDB           = 0x04,
26         USBCLIENT_MODE_RNDIS         = 0x08,
27         USBCLIENT_MODE_DIAG          = 0x10,
28         USBCLIENT_MODE_CONN_GADGET   = 0x20,
29 };
30
31 unsigned int get_current_usb_gadget_info(int mode)
32 {
33         unsigned int gadgets = USBCLIENT_MODE_NONE;
34
35         switch (mode) {
36         case SET_USB_DEFAULT:
37                 gadgets |= USBCLIENT_MODE_MTP;
38                 gadgets |= USBCLIENT_MODE_ACM;
39                 gadgets |= USBCLIENT_MODE_CONN_GADGET;
40                 break;
41         case SET_USB_SDB:
42                 gadgets |= USBCLIENT_MODE_MTP;
43                 gadgets |= USBCLIENT_MODE_ACM;
44                 gadgets |= USBCLIENT_MODE_SDB;
45                 gadgets |= USBCLIENT_MODE_CONN_GADGET;
46                 break;
47         case SET_USB_SDB_DIAG:
48                 gadgets |= USBCLIENT_MODE_MTP;
49                 gadgets |= USBCLIENT_MODE_ACM;
50                 gadgets |= USBCLIENT_MODE_SDB;
51                 gadgets |= USBCLIENT_MODE_DIAG;
52                 break;
53         case SET_USB_RNDIS:
54         case SET_USB_RNDIS_TETHERING:
55                 gadgets |= USBCLIENT_MODE_RNDIS;
56                 break;
57         case SET_USB_RNDIS_DIAG:
58                 gadgets |= USBCLIENT_MODE_RNDIS;
59                 gadgets |= USBCLIENT_MODE_DIAG;
60                 break;
61         case SET_USB_RNDIS_SDB:
62                 gadgets |= USBCLIENT_MODE_RNDIS;
63                 gadgets |= USBCLIENT_MODE_SDB;
64                 break;
65         case SET_USB_DIAG_SDB:
66                 gadgets |= USBCLIENT_MODE_DIAG;
67                 gadgets |= USBCLIENT_MODE_SDB;
68                 break;
69         default:
70                 break;
71         }
72
73         return gadgets;
74 }