#define __EXTCON_H__
#include "core/common.h"
+#include <hw/external_connection.h>
/**
* Extcon cable name is shared with kernel extcon class.
* So do not change below strings.
*/
-#define EXTCON_CABLE_USB "USB"
-#define EXTCON_CABLE_USB_HOST "USB-Host"
-#define EXTCON_CABLE_TA "TA"
-#define EXTCON_CABLE_HDMI "HDMI"
-#define EXTCON_CABLE_DOCK "Dock"
-#define EXTCON_CABLE_MIC_IN "Microphone"
-#define EXTCON_CABLE_HEADPHONE_OUT "Headphone"
+#define EXTCON_CABLE_USB EXTERNAL_CONNECTION_USB
+#define EXTCON_CABLE_USB_HOST EXTERNAL_CONNECTION_USB_HOST
+#define EXTCON_CABLE_TA EXTERNAL_CONNECTION_TA
+#define EXTCON_CABLE_HDMI EXTERNAL_CONNECTION_HDMI
+#define EXTCON_CABLE_DOCK EXTERNAL_CONNECTION_DOCK
+#define EXTCON_CABLE_MIC_IN EXTERNAL_CONNECTION_MIC
+#define EXTCON_CABLE_HEADPHONE_OUT EXTERNAL_CONNECTION_HEADPHONE
struct extcon_ops {
const char *name;
#include "core/list.h"
#include "core/device-idler.h"
#include "apps/apps.h"
+#include "extcon/extcon.h"
#define USB_INTERFACE_CLASS "bInterfaceClass"
#define USB_INTERFACE_SUBCLASS "bInterfaceSubClass"
};
DEVICE_OPS_REGISTER(&usbhost_device_ops)
+
+static int extcon_usbhost_state_changed(int status)
+{
+ if (status == 0) {
+ _I("USB host connector disconnected");
+ pm_unlock_internal(INTERNAL_LOCK_USB, LCD_OFF, STAY_CUR_STATE);
+ } else {
+ _I("USB host connector connected");
+ pm_lock_internal(INTERNAL_LOCK_USB, LCD_OFF, STAY_CUR_STATE, 0);
+ }
+ return 0;
+}
+
+struct extcon_ops extcon_usbhost_ops = {
+ .name = EXTCON_CABLE_USB_HOST,
+ .update = extcon_usbhost_state_changed,
+};
+
+EXTCON_OPS_REGISTER(extcon_usbhost_ops)