From 434cbe6492e1ddc01c740670a2829872c53f33d6 Mon Sep 17 00:00:00 2001 From: raychi Date: Fri, 7 Aug 2020 18:43:57 +0800 Subject: [PATCH] USB Gadget hal v1.2 interface USB Gadget hal v1.2 include: 1. NCM function support 2. inquiry USB speed 3. inquiry HAL version Bug: 168282708 Test: build pass and functions works normally Change-Id: I16927a06cd3e311ac6ab945f490eb0747638e6da --- .../compatibility_matrix.current.xml | 2 +- usb/gadget/1.2/Android.bp | 17 ++++ usb/gadget/1.2/IUsbGadget.hal | 30 ++++++ usb/gadget/1.2/IUsbGadgetCallback.hal | 33 +++++++ usb/gadget/1.2/types.hal | 92 +++++++++++++++++++ 5 files changed, 173 insertions(+), 1 deletion(-) create mode 100644 usb/gadget/1.2/Android.bp create mode 100644 usb/gadget/1.2/IUsbGadget.hal create mode 100644 usb/gadget/1.2/IUsbGadgetCallback.hal create mode 100644 usb/gadget/1.2/types.hal diff --git a/compatibility_matrices/compatibility_matrix.current.xml b/compatibility_matrices/compatibility_matrix.current.xml index 57f390c055..7a9feb2eab 100644 --- a/compatibility_matrices/compatibility_matrix.current.xml +++ b/compatibility_matrices/compatibility_matrix.current.xml @@ -521,7 +521,7 @@ android.hardware.usb.gadget - 1.0-1 + 1.0-2 IUsbGadget default diff --git a/usb/gadget/1.2/Android.bp b/usb/gadget/1.2/Android.bp new file mode 100644 index 0000000000..386f00fcfc --- /dev/null +++ b/usb/gadget/1.2/Android.bp @@ -0,0 +1,17 @@ +// This file is autogenerated by hidl-gen -Landroidbp. + +hidl_interface { + name: "android.hardware.usb.gadget@1.2", + root: "android.hardware", + srcs: [ + "types.hal", + "IUsbGadget.hal", + "IUsbGadgetCallback.hal", + ], + interfaces: [ + "android.hardware.usb.gadget@1.0", + "android.hardware.usb.gadget@1.1", + "android.hidl.base@1.0", + ], + gen_java: true, +} diff --git a/usb/gadget/1.2/IUsbGadget.hal b/usb/gadget/1.2/IUsbGadget.hal new file mode 100644 index 0000000000..5c6e930b39 --- /dev/null +++ b/usb/gadget/1.2/IUsbGadget.hal @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.usb.gadget@1.2; + +import IUsbGadgetCallback; +import android.hardware.usb.gadget@1.1::IUsbGadget; + +interface IUsbGadget extends @1.1::IUsbGadget { + /** + * The function is used to query current USB speed. + * + * @param callback IUsbGadgetCallback::getUsbSpeedCb used to propagate + * current USB speed. + */ + oneway getUsbSpeed(IUsbGadgetCallback callback); +}; diff --git a/usb/gadget/1.2/IUsbGadgetCallback.hal b/usb/gadget/1.2/IUsbGadgetCallback.hal new file mode 100644 index 0000000000..41705736fb --- /dev/null +++ b/usb/gadget/1.2/IUsbGadgetCallback.hal @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.usb.gadget@1.2; + +import UsbSpeed; +import android.hardware.usb.gadget@1.0::IUsbGadgetCallback; + +interface IUsbGadgetCallback extends @1.0::IUsbGadgetCallback { + /** + * Used to convey the current USB speed to the caller. + * Must be called either when USB state changes due to USB enumeration or + * when caller requested for USB speed through getUsbSpeed. + * + * @param speed USB Speed defined by UsbSpeed showed current USB + * connection speed. + */ + oneway getUsbSpeedCb(UsbSpeed speed); +}; + diff --git a/usb/gadget/1.2/types.hal b/usb/gadget/1.2/types.hal new file mode 100644 index 0000000000..a5c079d9c6 --- /dev/null +++ b/usb/gadget/1.2/types.hal @@ -0,0 +1,92 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.usb.gadget@1.2; + +import android.hardware.usb.gadget@1.0::GadgetFunction; + +enum GadgetFunction : @1.0::GadgetFunction { + /** + * NCM - NCM function. + */ + NCM = 1 << 10, +}; + +enum UsbSpeed : uint32_t { + /** + * UNKNOWN - Not Connected or Unsupported Speed + */ + UNKNOWN = -1, + + /** + * USB Low Speed + */ + LOWSPEED = 0, + + /** + * USB Full Speed + */ + FULLSPEED = 1, + + /** + * USB High Speed + */ + HIGHSPEED = 2, + + /** + * USB Super Speed + */ + SUPERSPEED = 3, + + /** + * USB Super Speed 10Gbps + */ + SUPERSPEED_10Gb = 4, + + /** + * USB Super Speed 20Gbps + */ + SUPERSPEED_20Gb = 5, + + /** + * USB4 Gen2 x 1 (10Gbps) + */ + USB4_GEN2_10Gb = 6, + + /** + * USB4 Gen2 x 2 (20Gbps) + */ + USB4_GEN2_20Gb = 7, + + /** + * USB4 Gen3 x 1 (20Gbps) + */ + USB4_GEN3_20Gb = 8, + + /** + * USB4 Gen3 x 2 (40Gbps) + */ + USB4_GEN3_40Gb = 9, + + /** + * This is a suggestion if needed. + * + * Reserved Speed -- It is a newer speed after USB4 v1.0 announcement. + * If this speed is detected, the HAL implementation should convert current + * speed to above speeds which is lower and the closest. + */ + RESERVED_SPEED = 64, +};