uwb: use per device factory calibration

Use device specific script to select which factory calibration
values to use.

Bug: 218719905
Test: on device
Signed-off-by: Victor Liu <victorliu@google.com>
Change-Id: Ie5adea6ce7b15c762a1c09a50b0a872465dcd3eb
diff --git a/device-cheetah.mk b/device-cheetah.mk
index 685f7b4..c97eae8 100644
--- a/device-cheetah.mk
+++ b/device-cheetah.mk
@@ -29,7 +29,11 @@
 include device/google/gs201/device-shipping-common.mk
 include hardware/google/pixel/vibrator/cs40l26/device.mk
 include device/google/gs101/bluetooth/bluetooth.mk
-include device/google/gs201/uwb/uwb.mk
+
+ifeq ($(filter factory_cheetah, $(TARGET_PRODUCT)),)
+include device/google/gs101/uwb/uwb.mk
+include device/google/pantah/uwb/uwb_calibration.mk
+endif
 
 $(call soong_config_set,lyric,tuning_product,cheetah)
 $(call soong_config_set,google3a_config,target_device,cheetah)
diff --git a/device-ravenclaw.mk b/device-ravenclaw.mk
index bf5e8a7..b3f5b21 100644
--- a/device-ravenclaw.mk
+++ b/device-ravenclaw.mk
@@ -26,7 +26,11 @@
 include device/google/pantah/audio/ravenclaw/audio-tables.mk
 include hardware/google/pixel/vibrator/cs40l26/device.mk
 include device/google/gs101/bluetooth/bluetooth.mk
-include device/google/gs201/uwb/uwb.mk
+
+ifeq ($(filter factory_ravenclaw, $(TARGET_PRODUCT)),)
+include device/google/gs101/uwb/uwb.mk
+include device/google/pantah/uwb/uwb_calibration.mk
+endif
 
 $(call soong_config_set,lyric,tuning_product,cloudripper)
 $(call soong_config_set,google3a_config,target_device,cloudripper)
diff --git a/uwb/UWB-calibration.conf b/uwb/UWB-calibration.conf
new file mode 100644
index 0000000..b52c8d3
--- /dev/null
+++ b/uwb/UWB-calibration.conf
@@ -0,0 +1,118 @@
+[CCC]format=1
+[CCC]kind=0
+[CCC]settings=1
+[CCC]ant0.ch5.prf64.pdoa_iso_rf2_rf1=0
+[CCC]ant0.ch5.prf64.pdoa_iso_rf1_rf2=0
+[CCC]ant0.ch9.prf64.pdoa_iso_rf2_rf1=0
+[CCC]ant0.ch9.prf64.pdoa_iso_rf1_rf2=0
+[CCC]ant0.ch5.prf64.pdoa_offset=0
+[CCC]ant0.ch9.prf64.pdoa_offset=0
+[CCC]ant0.ch5.prf64.pll_locking_code=0
+[CCC]ant0.ch9.prf64.pll_locking_code=0
+[CCC]id=0
+[CCC]wifi_coex_time_gap=10
+[CCC]ap_coop_mode=1
+[CCC]antenna_selection=4
+ant0.ch5.prf16.ant_delay=16450
+ant0.ch5.prf16.tx_power=0
+ant0.ch5.prf16.pg_count=0
+ant0.ch5.prf16.pg_delay=0
+ant0.ch5.prf64.ant_delay=16450
+ant0.ch5.prf64.tx_power=0
+ant0.ch5.prf64.pg_count=0
+ant0.ch5.prf64.pg_delay=0
+ant0.ch9.prf16.ant_delay=16450
+ant0.ch9.prf16.tx_power=0
+ant0.ch9.prf16.pg_count=0
+ant0.ch9.prf16.pg_delay=0
+ant0.ch9.prf64.ant_delay=16450
+ant0.ch9.prf64.tx_power=0
+ant0.ch9.prf64.pg_count=0
+ant0.ch9.prf64.pg_delay=0
+ant0.port=0
+ant0.selector_gpio=7
+ant0.selector_gpio_value=0
+ant1.ch5.prf16.ant_delay=16450
+ant1.ch5.prf16.tx_power=0
+ant1.ch5.prf16.pg_count=0
+ant1.ch5.prf16.pg_delay=0
+ant1.ch5.prf64.ant_delay=16450
+ant1.ch5.prf64.tx_power=0
+ant1.ch5.prf64.pg_count=0
+ant1.ch5.prf64.pg_delay=0
+ant1.ch9.prf16.ant_delay=16450
+ant1.ch9.prf16.tx_power=0
+ant1.ch9.prf16.pg_count=0
+ant1.ch9.prf16.pg_delay=0
+ant1.ch9.prf64.ant_delay=16450
+ant1.ch9.prf64.tx_power=0
+ant1.ch9.prf64.pg_count=0
+ant1.ch9.prf64.pg_delay=0
+ant1.port=0
+ant1.selector_gpio=7
+ant1.selector_gpio_value=1
+ant2.ch5.prf16.ant_delay=16450
+ant2.ch5.prf16.tx_power=0
+ant2.ch5.prf16.pg_count=0
+ant2.ch5.prf16.pg_delay=0
+ant2.ch5.prf64.ant_delay=16450
+ant2.ch5.prf64.tx_power=0
+ant2.ch5.prf64.pg_count=0
+ant2.ch5.prf64.pg_delay=0
+ant2.ch9.prf16.ant_delay=16450
+ant2.ch9.prf16.tx_power=0
+ant2.ch9.prf16.pg_count=0
+ant2.ch9.prf16.pg_delay=0
+ant2.ch9.prf64.ant_delay=16450
+ant2.ch9.prf64.tx_power=0
+ant2.ch9.prf64.pg_count=0
+ant2.ch9.prf64.pg_delay=0
+ant2.port=1
+ant2.selector_gpio=6
+ant2.selector_gpio_value=0
+ant3.ch5.prf16.ant_delay=16450
+ant3.ch5.prf16.tx_power=0
+ant3.ch5.prf16.pg_count=0
+ant3.ch5.prf16.pg_delay=0
+ant3.ch5.prf64.ant_delay=16450
+ant3.ch5.prf64.tx_power=0
+ant3.ch5.prf64.pg_count=0
+ant3.ch5.prf64.pg_delay=0
+ant3.ch9.prf16.ant_delay=16450
+ant3.ch9.prf16.tx_power=0
+ant3.ch9.prf16.pg_count=0
+ant3.ch9.prf16.pg_delay=0
+ant3.ch9.prf64.ant_delay=16450
+ant3.ch9.prf64.tx_power=0
+ant3.ch9.prf64.pg_count=0
+ant3.ch9.prf64.pg_delay=0
+ant3.port=1
+ant3.selector_gpio=6
+ant3.selector_gpio_value=1
+ant0.ant1.ch5.pdoa_offset=0
+ant0.ant1.ch9.pdoa_offset=0
+ant0.ant2.ch5.pdoa_offset=0
+ant0.ant2.ch9.pdoa_offset=0
+ant1.ant2.ch5.pdoa_offset=2173
+ant1.ant2.ch9.pdoa_offset=3555
+ant0.ant3.ch5.pdoa_offset=0
+ant0.ant3.ch9.pdoa_offset=0
+ant1.ant3.ch5.pdoa_offset=3845
+ant1.ant3.ch9.pdoa_offset=647
+ant2.ant3.ch5.pdoa_offset=0
+ant2.ant3.ch9.pdoa_offset=0
+ch5.pll_locking_code=0
+ch9.pll_locking_code=0
+ant1.ant2.ch5.pdoa_lut=3d:ea:7b:0a:66:ea:c3:09:a4:ea:0a:09:cd:ea:66:08:0a:eb:ae:07:33:eb:f6:06:48:eb:52:06:71:eb:9a:05:c3:eb:e1:04:e1:ec:29:04:c3:ef:85:03:a4:f4:cd:02:14:f8:14:02:b8:fa:5c:01:8f:fc:b8:00:e1:fe:00:00:48:01:48:ff:85:03:a4:fe:ae:05:ec:fd:00:08:33:fd:d7:09:7b:fc:85:0b:d7:fb:0a:0d:1f:fb:66:0e:66:fa:33:0f:ae:f9:00:10:0a:f9:a4:10:52:f8:1f:11:9a:f7:5c:11:f6:f6:9a:11:3d:f6:ae:11:85:f5
+ant1.ant2.ch9.pdoa_lut=c3:ed:7b:0a:29:ee:c3:09:3d:ee:0a:09:cd:ee:66:08:c3:ef:ae:07:f6:f0:f6:06:3d:f2:52:06:52:f2:9a:05:cd:f2:e1:04:5c:f3:29:04:c3:f3:85:03:b8:f4:cd:02:71:f7:14:02:52:fa:5c:01:85:fd:b8:00:00:00:00:00:0a:01:48:ff:5c:01:a4:fe:14:02:ec:fd:5c:03:33:fd:48:05:7b:fc:b8:06:d7:fb:14:08:1f:fb:33:09:66:fa:ec:09:ae:f9:3d:0a:0a:f9:0a:0b:52:f8:1f:0b:9a:f7:48:0b:f6:f6:85:0b:3d:f6:9a:0b:85:f5
+ant1.ant3.ch5.pdoa_lut=66:ec:7b:0a:e1:ec:c3:09:14:ee:0a:09:d7:ef:66:08:8f:f2:ae:07:00:f6:f6:06:cd:f6:52:06:33:f7:9a:05:d7:f7:e1:04:48:f9:29:04:33:fd:85:03:d7:fd:cd:02:3d:fe:14:02:ec:ff:5c:01:14:00:b8:00:3d:00:00:00:cd:02:48:ff:29:04:a4:fe:a4:04:ec:fd:85:05:33:fd:e1:06:7b:fc:b8:08:d7:fb:14:0a:1f:fb:e1:0a:66:fa:1f:0b:0a:f9:1f:0b:ae:f9:5c:0b:52:f8:c3:0b:9a:f7:52:0c:f6:f6:0a:0d:3d:f6:00:0e:85:f5
+ant1.ant3.ch9.pdoa_lut=0a:ef:7b:0a:c3:ef:c3:09:00:f0:0a:09:14:f0:66:08:7b:f0:ae:07:48:f1:f6:06:00:f2:52:06:c3:f3:9a:05:00:f6:e1:04:d7:f7:29:04:1f:f9:85:03:ae:f9:cd:02:e1:fa:14:02:e1:fc:5c:01:b8:fe:b8:00:c3:ff:00:00:00:02:48:ff:5c:05:a4:fe:52:08:ec:fd:14:0a:33:fd:e1:0a:7b:fc:14:0c:d7:fb:14:0e:1f:fb:1f:0f:66:fa:00:10:ae:f9:b8:10:0a:f9:29:12:52:f8:00:14:9a:f7:7b:16:f6:f6:d7:17:3d:f6:29:18:85:f5
+xtal_trim=23
+temperature_reference=85
+smart_tx_power=1
+auto_sleep_margin=20000
+[HAL]antenna_pair_azimuth=3
+[HAL]antenna_pair_elevation=4
+[HAL]tx_antenna=0
+[HAL]minimum_system_offset_uwbtime0=200
+restricted_channels=0
diff --git a/uwb/uwb_calibration.mk b/uwb/uwb_calibration.mk
new file mode 100644
index 0000000..67439ab
--- /dev/null
+++ b/uwb/uwb_calibration.mk
@@ -0,0 +1,22 @@
+#
+# Copyright (C) 2021 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.
+
+LOCAL_UWB_CAL_DIR=device/google/pantah/uwb
+
+PRODUCT_COPY_FILES += \
+    $(LOCAL_UWB_CAL_DIR)/UWB-calibration.conf:$(TARGET_COPY_OUT_VENDOR)/etc/UWB-calibration.conf \
+    $(LOCAL_UWB_CAL_DIR)/UWB-calibration.conf:$(TARGET_COPY_OUT_VENDOR)/etc/UWB-calibration-unknown.conf \
+    $(LOCAL_UWB_CAL_DIR)/UWB-calibration.conf:$(TARGET_COPY_OUT_VENDOR)/etc/UWB-calibration-default.conf \
+    vendor/qorvo/uwb/aosp/init.uwb.calib.xtal.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.uwb.calib.sh \