Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 434cbe64 authored by raychi's avatar raychi
Browse files

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
parent ccf7517d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -521,7 +521,7 @@
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.usb.gadget</name>
        <version>1.0-1</version>
        <version>1.0-2</version>
        <interface>
            <name>IUsbGadget</name>
            <instance>default</instance>
+17 −0
Original line number Diff line number Diff line
// 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,
}
+30 −0
Original line number Diff line number Diff line
/*
 * 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);
};
+33 −0
Original line number Diff line number Diff line
/*
 * 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);
};
+92 −0
Original line number Diff line number Diff line
/*
 * 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,
};