uwb: support per device calibration for R4

Bug: 240199018
Test: Build pass
Change-Id: I45512bba1e0821b4ba32a324aebc7e6b4ec15532
diff --git a/device-raven.mk b/device-raven.mk
index 53bbfcd..97fb567 100644
--- a/device-raven.mk
+++ b/device-raven.mk
@@ -41,7 +41,6 @@
 endif
 
 ifeq ($(filter factory_raven, $(TARGET_PRODUCT)),)
-include device/google/gs101/uwb/uwb.mk
 include device/google/raviole/uwb/uwb_calibration.mk
 endif
 
diff --git a/uwb/init.uwb.calib.xtal.sh b/uwb/init.uwb.calib.xtal.sh
new file mode 100644
index 0000000..1fcb876
--- /dev/null
+++ b/uwb/init.uwb.calib.xtal.sh
@@ -0,0 +1,26 @@
+#!/vendor/bin/sh
+# only use xtal_trim from factory calibration
+if [ -z "$2" ]
+then
+    echo "usage is $0 input-calibration output_calibration"
+    exit 0
+fi
+OUTPUT_CALIB="$2"
+if [ ! -f "$OUTPUT_CALIB" ]; then
+    touch $OUTPUT_CALIB
+    chmod 0644 $OUTPUT_CALIB
+    file="$1"
+    while IFS=, read -r f1 f2
+    do
+        case $f1 in
+            "UWB_cal_tx_xtal_reg_final_value")
+                if [ $((0x$f2)) -gt 63 ]; then
+                    f2=63
+                fi
+                echo 'xtal_trim=0x'$f2 >> $OUTPUT_CALIB
+                ;;
+        esac
+    done <"$file"
+    exit 0
+fi
+
diff --git a/uwb/uwb_calibration.mk b/uwb/uwb_calibration.mk
index e29bea2..2661ad1 100644
--- a/uwb/uwb_calibration.mk
+++ b/uwb/uwb_calibration.mk
@@ -13,9 +13,16 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+# UWB - ultra wide band
+$(call inherit-product-if-exists, vendor/qorvo/uwb/uwb.mk)
+
 LOCAL_UWB_CAL_DIR=device/google/raviole/uwb
 
 PRODUCT_COPY_FILES += \
     $(LOCAL_UWB_CAL_DIR)/UWB-calibration.conf:$(TARGET_COPY_OUT_VENDOR)/etc/uwb/UWB-calibration.conf \
     $(LOCAL_UWB_CAL_DIR)/UWB-calibration.conf:$(TARGET_COPY_OUT_VENDOR)/etc/uwb/UWB-calibration-unknown.conf \
     $(LOCAL_UWB_CAL_DIR)/UWB-calibration.conf:$(TARGET_COPY_OUT_VENDOR)/etc/uwb/UWB-calibration-default.conf \
+    $(LOCAL_UWB_CAL_DIR)/init.uwb.calib.xtal.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.uwb.calib.sh \
+
+PRODUCT_COPY_FILES += \
+    frameworks/native/data/etc/android.hardware.uwb.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.uwb.xml