summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorAlex Johnston <acjohnston@google.com>2021-02-16 20:45:55 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2021-02-16 20:45:55 +0000
commit202d4ab17829a448a4704abb764216b2c0bcfe6a (patch)
tree63efadf3db87a7435ef900c6520172e99a5e979e /core/java
parent30780cf472ba2e45fe791c9cbccd3612df2c3f1a (diff)
parent619abd21d9b078b2c40f8e86c1751bb42b08f011 (diff)
Merge "Support USB V1.3 HAL" into sc-dev
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/hardware/usb/IUsbManager.aidl6
-rw-r--r--core/java/android/hardware/usb/UsbManager.java92
2 files changed, 98 insertions, 0 deletions
diff --git a/core/java/android/hardware/usb/IUsbManager.aidl b/core/java/android/hardware/usb/IUsbManager.aidl
index ca79901c2bbe..7f07af79ab69 100644
--- a/core/java/android/hardware/usb/IUsbManager.aidl
+++ b/core/java/android/hardware/usb/IUsbManager.aidl
@@ -135,6 +135,12 @@ interface IUsbManager
/* Resets the USB gadget. */
void resetUsbGadget();
+ /* Set USB data on or off */
+ boolean enableUsbDataSignal(boolean enable);
+
+ /* Gets the USB Hal Version. */
+ int getUsbHalVersion();
+
/* Get the functionfs control handle for the given function. Usb
* descriptors will already be written, and the handle will be
* ready to use.
diff --git a/core/java/android/hardware/usb/UsbManager.java b/core/java/android/hardware/usb/UsbManager.java
index 5bac481fb23e..841fd2f49967 100644
--- a/core/java/android/hardware/usb/UsbManager.java
+++ b/core/java/android/hardware/usb/UsbManager.java
@@ -516,6 +516,46 @@ public class UsbManager {
public static final int USB_DATA_TRANSFER_RATE_40G = 40 * 1024;
/**
+ * The Value for USB hal is not presented.
+ *
+ * {@hide}
+ */
+ @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
+ public static final int USB_HAL_NOT_SUPPORTED = -1;
+
+ /**
+ * Value for USB Hal Version v1.0.
+ *
+ * {@hide}
+ */
+ @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
+ public static final int USB_HAL_V1_0 = 10;
+
+ /**
+ * Value for USB Hal Version v1.1.
+ *
+ * {@hide}
+ */
+ @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
+ public static final int USB_HAL_V1_1 = 11;
+
+ /**
+ * Value for USB Hal Version v1.2.
+ *
+ * {@hide}
+ */
+ @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
+ public static final int USB_HAL_V1_2 = 12;
+
+ /**
+ * Value for USB Hal Version v1.3.
+ *
+ * {@hide}
+ */
+ @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
+ public static final int USB_HAL_V1_3 = 13;
+
+ /**
* Code for the charging usb function. Passed into {@link #setCurrentFunctions(long)}
* {@hide}
*/
@@ -617,6 +657,16 @@ public class UsbManager {
})
public @interface UsbGadgetHalVersion {}
+ /** @hide */
+ @IntDef(prefix = { "USB_HAL_" }, value = {
+ USB_HAL_NOT_SUPPORTED,
+ USB_HAL_V1_0,
+ USB_HAL_V1_1,
+ USB_HAL_V1_2,
+ USB_HAL_V1_3,
+ })
+ public @interface UsbHalVersion {}
+
private final Context mContext;
private final IUsbManager mService;
@@ -1076,6 +1126,26 @@ public class UsbManager {
}
/**
+ * Get the Current USB Hal Version.
+ * <p>
+ * This function returns the current USB Hal Version.
+ * </p>
+ *
+ * @return a integer {@code USB_HAL_*} represent hal version.
+ *
+ * {@hide}
+ */
+ @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
+ @RequiresPermission(Manifest.permission.MANAGE_USB)
+ public @UsbHalVersion int getUsbHalVersion() {
+ try {
+ return mService.getUsbHalVersion();
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
+
+ /**
* Resets the USB Gadget.
* <p>
* Performs USB data stack reset through USB Gadget HAL.
@@ -1095,6 +1165,28 @@ public class UsbManager {
}
/**
+ * Enable/Disable the USB data signaling.
+ * <p>
+ * Enables/Disables USB data path in all the USB ports.
+ * It will force to stop or restore USB data signaling.
+ * </p>
+ *
+ * @param enable enable or disable USB data signaling
+ * @return true enable or disable USB data successfully
+ * false if something wrong
+ *
+ * @hide
+ */
+ @RequiresPermission(Manifest.permission.MANAGE_USB)
+ public boolean enableUsbDataSignal(boolean enable) {
+ try {
+ return mService.enableUsbDataSignal(enable);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
+
+ /**
* Returns a list of physical USB ports on the device.
* <p>
* This list is guaranteed to contain all dual-role USB Type C ports but it might