diff options
5 files changed, 127 insertions, 36 deletions
diff --git a/uwb/aidl/aidl_api/android.hardware.uwb/current/android/hardware/uwb/IUwb.aidl b/uwb/aidl/aidl_api/android.hardware.uwb/current/android/hardware/uwb/IUwb.aidl index 229ef7c7db..9553ffc26d 100644 --- a/uwb/aidl/aidl_api/android.hardware.uwb/current/android/hardware/uwb/IUwb.aidl +++ b/uwb/aidl/aidl_api/android.hardware.uwb/current/android/hardware/uwb/IUwb.aidl @@ -36,8 +36,6 @@ package android.hardware.uwb; @VintfStability interface IUwb { - void close(); - void coreInit(); - void open(in android.hardware.uwb.IUwbClientCallback clientCallback); - int write(in byte[] data); + List<String> getChips(); + android.hardware.uwb.IUwbChip getChip(String name); } diff --git a/uwb/aidl/aidl_api/android.hardware.uwb/current/android/hardware/uwb/IUwbChip.aidl b/uwb/aidl/aidl_api/android.hardware.uwb/current/android/hardware/uwb/IUwbChip.aidl new file mode 100644 index 0000000000..7074753c91 --- /dev/null +++ b/uwb/aidl/aidl_api/android.hardware.uwb/current/android/hardware/uwb/IUwbChip.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Copyright 2021 NXP. + * + * 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. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m <name>-update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.uwb; +@VintfStability +interface IUwbChip { + String getName(); + void open(in android.hardware.uwb.IUwbClientCallback clientCallback); + void close(); + void coreInit(); + int getSupportedVendorUciVersion(); + int sendUciMessage(in byte[] data); +} diff --git a/uwb/aidl/android/hardware/uwb/IUwb.aidl b/uwb/aidl/android/hardware/uwb/IUwb.aidl index 5d888bc63b..fda726c24b 100755 --- a/uwb/aidl/android/hardware/uwb/IUwb.aidl +++ b/uwb/aidl/android/hardware/uwb/IUwb.aidl @@ -18,8 +18,7 @@ package android.hardware.uwb; -import android.hardware.uwb.IUwbClientCallback; -import android.hardware.uwb.UwbStatus; +import android.hardware.uwb.IUwbChip; /** * HAL Interface for UWB (Ultrawideband) subsystem. @@ -28,38 +27,14 @@ import android.hardware.uwb.UwbStatus; @VintfStability interface IUwb { /** - * Close the UWB Subsystem. Should free all resources. - * - */ - void close(); - - /** - * Perform UWB Subsystem initialization by applying all vendor configuration. - * + * Returns list of IUwbChip instance names representing each UWB chip on the device. */ - void coreInit(); + List<String> getChips(); /** - * Performs the UWB HAL initialization and power on UWB Subsystem. If open completes - * successfully, then UWB Subsystem is ready to accept UCI message through write() API - * - * @param clientCallback Client callback instance. - */ - void open(in IUwbClientCallback clientCallback); - - /** - * Write the UCI message to the UWB Subsystem. - * The UCI message format is as per UCI protocol and it is - * defined in "FiRa Consortium - UCI Generic Specification_v1.0" specification at FiRa - * consortium. - * WIP doc link: https://groups.firaconsortium.org/wg/Technical/document/folder/127. - * TODO(b/196004116): Link to the published specification. - * - * This method may queue writes and return immediately, or it may block until data is written. - * Implementation must guarantee that writes are executed in order. + * Returns IUwbChip instance corresponding to the name. * - * @param data UCI packet to write. - * @return number of bytes written to the UWB Subsystem + * @param Unique identifier of the chip. */ - int write(in byte[] data); + IUwbChip getChip(String name); } diff --git a/uwb/aidl/android/hardware/uwb/IUwbChip.aidl b/uwb/aidl/android/hardware/uwb/IUwbChip.aidl new file mode 100755 index 0000000000..5f1a59e92a --- /dev/null +++ b/uwb/aidl/android/hardware/uwb/IUwbChip.aidl @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Copyright 2021 NXP. + * + * 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.uwb; + +import android.hardware.uwb.IUwbClientCallback; +import android.hardware.uwb.UwbStatus; + +/** + * Controls a UWB chip on the device. On some devices, there could be multiple UWB chips. + */ +@VintfStability +interface IUwbChip { + /** + * Get unique idenitifer for the chip. + */ + String getName(); + + /** + * Performs the UWB HAL initialization and power on UWB Subsystem. If open completes + * successfully, then UWB Subsystem is ready to accept UCI message through write() API + * + * @param clientCallback Client callback instance. + */ + void open(in IUwbClientCallback clientCallback); + + /** + * Close the UWB Subsystem. Should free all resources. + */ + void close(); + + /** + * Perform UWB Subsystem initialization by applying all vendor configuration. + */ + void coreInit(); + + /** + * Supported version of vendor UCI specification. + */ + int getSupportedVendorUciVersion(); + + /** + * Write the UCI message to the UWB Subsystem. + * The UCI message format is as per UCI protocol and it is + * defined in "FiRa Consortium - UCI Generic Specification_v1.0" specification at FiRa + * consortium. + * WIP doc link: https://groups.firaconsortium.org/wg/Technical/document/folder/127. + * TODO(b/196004116): Link to the published specification. + * + * This method may queue writes and return immediately, or it may block until data is written. + * Implementation must guarantee that writes are executed in order. + * + * @param data UCI packet to write. + * @return number of bytes written to the UWB Subsystem + */ + int sendUciMessage(in byte[] data); +} diff --git a/uwb/aidl/android/hardware/uwb/IUwbClientCallback.aidl b/uwb/aidl/android/hardware/uwb/IUwbClientCallback.aidl index 32c36a86c0..75853cd97c 100755 --- a/uwb/aidl/android/hardware/uwb/IUwbClientCallback.aidl +++ b/uwb/aidl/android/hardware/uwb/IUwbClientCallback.aidl @@ -25,7 +25,8 @@ import android.hardware.uwb.UwbStatus; oneway interface IUwbClientCallback { /** * The callback passed in from the UWB stack that the HAL - * can use to pass incomming data to the stack. + * can use to pass incoming data to the stack. These include UCI + * responses and notifications from the UWB subsystem. * * WIP doc link: https://groups.firaconsortium.org/wg/Technical/document/folder/127. * TODO(b/196004116): Link to the published specification. |