husky: Regenerate vendor tree

Signed-off-by: HeroBuxx <me@herobuxx.me>
This commit is contained in:
HeroBuxx
2026-07-09 06:42:25 +00:00
commit aad3a7909f
2855 changed files with 217855 additions and 0 deletions
+121
View File
@@ -0,0 +1,121 @@
#!/system/bin/sh
#
# Copyright 2022 Google LLC. All Rights Reserved.
#
# Husky/Shiba Calibration Sub-Script.
#
# Contains HK3/SB3-specific sensor information for sensor_cal.
# Sensors supported for calibration.
SUPPORTED_SENSORS="accel als baro gyro prox rls spectral"
NON_CAL_PHYSICAL_SENSORS="als_raw alsp_temp baro_temp flicker imu_temp \
mag mag_0 mag_1"
product_name=$(getprop ro.hardware)
if [[ "${product_name}" == "husky" ]]; then
SUPPORTED_SENSORS+=" fusion_mag"
NON_CAL_PHYSICAL_SENSORS+=" fir_temp"
fi
#######################################
# Converts a sensor name to its path.
# Globals:
# CAL_PARAMS
# SENSOR
# SENSOR_NAME
# SENSOR_PATH
# Arguments:
# None
# Outputs:
# Saves the sensor path in SENSOR_PATH.
# Logging based on set VERBOSITY level.
#######################################
sensor_cal::sensor_to_path() {
if [[ "${SENSOR}" == "accel" ]]; then
SENSOR_PATH="/fac_cal/dev/icm45631/0/accel"
SENSOR_NAME="icm45631"
LIST_NAME="ICM45631 Accelerometer"
# Add parameters in addition to the original ones.
CAL_PARAMS+=" avg_odr_25 self_cal_gain"
elif [[ "${SENSOR}" == "als" ]]; then
SENSOR_PATH="/fac_cal/dev/tmd3719/0/als"
SENSOR_NAME="tmd3719"
LIST_NAME="TMD3719 Ambient Light"
CAL_PARAMS=" \
clear_gain6_ratio clear_gain7_ratio clear_gain8_ratio clear_gain9_ratio \
clear_gain10_ratio clear_gain11_ratio \
red_gain6_ratio red_gain7_ratio red_gain8_ratio red_gain9_ratio \
red_gain10_ratio red_gain11_ratio red_clear_ratio \
green_gain6_ratio green_gain7_ratio green_gain8_ratio green_gain9_ratio \
green_gain10_ratio green_gain11_ratio green_clear_ratio \
blue_gain6_ratio blue_gain7_ratio blue_gain8_ratio blue_gain9_ratio \
blue_gain10_ratio blue_gain11_ratio blue_clear_ratio \
disp_leak lux_scale panel_serial panel_type \
sync_delay_ns sync_delay_2_ns leakage_at_dbv leakage_at_dbv_2"
elif [[ "${SENSOR}" == "baro" ]]; then
SENSOR_PATH="/fac_cal/dev/icp20100/0/baro"
SENSOR_NAME="icp20100"
LIST_NAME="ICP20100 Pressure Sensor"
# Add "temp_intercept" in addition to the original parameters.
CAL_PARAMS+=" temp_intercept"
elif [[ "${SENSOR}" == "fusion_mag" ]]; then
SENSOR_PATH="/fac_cal/dev/fusion_mag/0/mag"
SENSOR_NAME="fusion_mag"
SENSOR_TYPE="mag"
CAL_PARAMS="p1 p2 p3 mix"
elif [[ "${SENSOR}" == "gyro" ]]; then
SENSOR_PATH="/fac_cal/dev/icm45631/0/gyro"
SENSOR_NAME="icm45631"
LIST_NAME="ICM45631 Gyroscope"
# Add parameters in addition to the original ones.
CAL_PARAMS+=" avg_odr_25 self_cal_gain"
elif [[ "${SENSOR}" == "prox" ]]; then
SENSOR_PATH="/fac_cal/dev/tmd3719/0/prox"
SENSOR_NAME="tmd3719"
LIST_NAME="TMD3719 Proximity"
CAL_PARAMS=" \
hp_pdata0_baseline hp_pdata1_baseline hp_pdata0_offset hp_pdata1_offset \
hp_pdata0_scale hp_pdata1_scale \
pdata0_baseline pdata1_baseline pdata0_scale pdata1_scale vcsel_ma"
elif [[ "${SENSOR}" == "rls" ]]; then
SENSOR_PATH="/fac_cal/dev/vd6282/0/rls"
SENSOR_NAME="vd6282"
LIST_NAME="VD6282 Rear Light Sensor"
CAL_PARAMS="fac_cal_transform g_to_lux"
elif [[ "${SENSOR}" == "spectral" ]]; then
SENSOR_PATH="/fac_cal/dev/vd6282/0/spectral"
SENSOR_NAME="vd6282"
LIST_NAME="VD6282 Spectral Sensor"
CAL_PARAMS=" \
dark_r dark_g dark_b dark_ir dark_clr1 dark_clr2 \
rals_r rals_g rals_b rals_ir rals_clr1 rals_clr2 rals_flk"
###############################
## Non cal physical sensors. ##
###############################
elif [[ "${SENSOR}" == "als_raw" ]]; then
LIST_NAME="TMD3719 Ambient Light Raw"
elif [[ "${SENSOR}" == "alsp_temp" ]]; then
LIST_NAME="TMD3719 Temperature"
elif [[ "${SENSOR}" == "baro_temp" ]]; then
LIST_NAME="ICP20100 Temperature"
elif [[ "${SENSOR}" == "fir_temp" ]]; then
LIST_NAME="MLX90632 FIR Temperature"
elif [[ "${SENSOR}" == "flicker" ]]; then
LIST_NAME="VD6282 Flicker Sensor"
elif [[ "${SENSOR}" == "imu_temp" ]]; then
LIST_NAME="ICM45631 Temperature"
elif [[ $(echo "${SENSOR}" | grep -E "^mag(_[0-1])?$") ]]; then
if [[ "${product_name}" == "husky" && "${SENSOR:3:1}" == "_" ]]; then
LIST_NAME="MMC56X3X Magnetometer ${SENSOR:4:1}"
elif [[ "${product_name}" == "shiba" && "${SENSOR:3:2}" == "" ]]; then
LIST_NAME="MMC56X3X Magnetometer"
fi
else
sensor_cal::ERROR "Unknown or unimplemented sensor: ${SENSOR}"
sensor_cal::exit_badparam
fi
sensor_cal::DEBUG "Registry path: ${SENSOR_PATH}"
}
+2
View File
@@ -0,0 +1,2 @@
sensors.dynamic_sensor_hal.so
sensors.usf.so
@@ -0,0 +1,3 @@
# MOTIONSTATE
+/dev/motionstate/0
name=Motion State
@@ -0,0 +1,9 @@
#
# Common power configuration registry script.
#
+/power
mips_vote_per_sampling_rate=0.4
mips_max_vote=350
+/power/mips_voter
enable=1
+272
View File
@@ -0,0 +1,272 @@
#
# Husky sensor device configuration registry script for all stages.
#
# Source of truth: go/pixel-sensor-list
#
#
# CDT Filter <CDT>:<mask>
# CDT format: <0xPPPPSJIV> (P:Product, S:Stage, J:Major, I:Minor, V:Variant)
# go/pixel-cdt-zuma
#
?+0x20000:0xFFFF0000
#
# Buses
#
# I2C
+/dev/i2c/0
bus_name=i2c0
bus_index=0
# I3C
+/dev/i3c/0
bus_name=i3c0
bus_index=0
# SPI
+/dev/spi/2
bus_name=spi2
bus_index=2
# PDM
+/dev/pdm
base_clk_hz=24576000
#
# Sensors
#
# ALSP (TMD37193)
+/dev/tmd3719/0
start_als_on_ap_power_on=1
# IMU (ICM45631)
+/dev/icm45631/0
bus_name=i3c0
bus_freq_hz=400000
i3c_freq_hz=12500000
bus_addr=0x68
i3c_addr=0xa
intr_id=43
trigger_type=2
priority=0
md_threshold=60
md_duration_samples=1
sd_threshold=60
sd_timeout_ms=5000
sd_batching_latency_ms=1000
lowG_peak_threshold=848
lowG_detect_timeout_ms=20
lowG_debounce_timeout_ms=1000
+/dev/icm45631/0/accel
name=ICM45631 Accelerometer
orientation_transform=-1 -2 3
+/dev/icm45631/0/gyro
name=ICM45631 Gyroscope
orientation_transform=-1 -2 3
+/dev/icm45631/0/temp
name=ICM45631 Temperature
+/dev/icm45631/0/motion_detect
name=ICM45631 Motion Detect
+/dev/icm45631/0/stationary_detect
name=ICM45631 Stationary Detect
+/dev/icm45631/0/freefall_detect
name=ICM45631 FreeFall Detect
# MAG 0 (MMC5633NJ)
+/dev/mmc56x3x/0
bus_name=i2c0
bus_freq_hz=400000
bus_addr=0x30
priority=1
+/dev/mmc56x3x/0/mag
orientation_transform=1 2 3
name=MMC56X3X Magnetometer 0
hidden=1
# MAG 1 (MMC5633NJ)
+/dev/mmc56x3x/1
bus_name=i3c0
bus_freq_hz=400000
i3c_freq_hz=6250000
bus_addr=0x30
i3c_addr=0x14
priority=2
+/dev/mmc56x3x/1/mag
orientation_transform=1 2 3
name=MMC56X3X Magnetometer 1
hidden=1
# Fusion mag.
+/dev/fusion_mag/0
mag_cal_matrix=1.01116 -0.00908 -0.00225 -0.01116 0.00908 0.00225 0.04665 0.96478 -0.00846 -0.04665 0.03522 0.00846 -0.0003 0.00027 0.99902 0.0003 -0.00027 0.00098
rl_module_type=rear_tele
# BARO (ICP20100)
+/dev/icp20100/0
bus_name=i2c0
bus_freq_hz=400000
bus_addr=0x63
intr_id=47
min_period_us=25000
+/dev/icp20100/0/baro
+/dev/icp20100/0/temp
# Display Info
+/dev/display_info/0
# Link to ALS attached to this display.
attached_alsp=/dev/tmd3719/0
# RAINBOW (VD6282)
+/dev/vd6282/0
bus_name=i2c0
bus_freq_hz=400000
bus_addr=0x20
pdm_id=4
pcm_rate_hz=16000
+/dev/vd6282/0/spectral
auto_gain=1
# On-change thresholds for each color channel c: min_delta[c] ratio[c].
# A value of -1 disables a threshold.
# Change events are determined as follows:
# last_count[c]: the last sample count for each channel c
# count[c]: the current sample count for each channel c
# => delta[c] = abs(last_count[c] - count[c])
# thresh[c] = max(min_delta[c], last_count[c] * ratio[c])
# if delta[c] > thresh[c] for any channel c:
# Send a new sample with all current channel counts
r_change_thresh=-1 -1
g_change_thresh=100 0.1
b_change_thresh=-1 -1
c1_change_thresh=100 0.1
c2_change_thresh=-1 -1
ir_change_thresh=-1 -1
+/dev/vd6282/0/flicker
auto_gain=1
# Camera VSYNC
+/dev/camera_vsync/0 # rear telephoto
intr_id=56
intr_trigger_type=2
+/dev/camera_vsync/1 # rear ultra-wide-angle
intr_id=57
intr_trigger_type=2
+/dev/camera_vsync/2 # front
intr_id=58
intr_trigger_type=2
+/dev/camera_vsync/3 # rear
intr_id=59
intr_trigger_type=2
# FIR Temperature (MLX90632)
+/dev/mlx90632/0
bus_name=i2c0
bus_freq_hz=400000
bus_addr=0x3b
window_prediction_ratio=0.77
+/dev/mlx90632/0/temp
+/dev/mlx90632/0/ext_temp
+/vsc/auto_brightness
# float[3]={LuxToEnter, LuxToExit, RemappedLux}
lux_remap=-1.0 -1.0 -1.0
# float[3]={MinDelta, MaxDelta, LuxRatio}
lux_debounce_up=1 5000 0.15
lux_debounce_down=0.1 5000 0.1
# ALS[2], RLS[2], Fusion[2], each containing <maxSampleAgeMsec> and <maxNumOfSamples>
filter_configs=500 60 500 30 500 90
# float[3]={MaxNumOfSamplesToFilter, minLuxThresh, luxRatio}, set to 0 to disable
als_startup_filter=0 0 0
# float[3]={zeroPoint, onePoint, endPoint}, set to 0 to disable
rear_lux_downscaling=0 0 0
# FTM5.
+/dev/ftm5/0
bus_name=spi2
bus_freq_hz=10000000
spi_mode=0
spi_word_size=8
cs_gpio=67
cs_clock_delay_us=1
dchip_id_0=0x36
dchip_id_1=0x40
intr_id=14
intr_type=1
# 1 = double tap
# 2 = single tap
# 3 = long press
# 4 = single tap and long press
gesture_type=4
single_tap_min_x=115
single_tap_max_x=1229
single_tap_min_y=192
single_tap_max_y=2800
single_tap_min_frame_count=3
single_tap_max_frame_count=31
single_press_motion_tolerance=255
single_press_max_touch_size=48
# LPTW v1 parameters (common)
long_press_min_x=576
long_press_max_x=768
long_press_min_y=2165
long_press_max_y=2357
long_press_min_frame_count=1
long_press_motion_tolerance=255
long_press_max_touch_size=48
# LPTW v2 parameters (extension)
long_press_extended_param=1
long_press_marginal_area_min_x=509
long_press_marginal_area_max_x=835
long_press_marginal_area_min_y=2098
long_press_marginal_area_max_y=2424
long_press_motion_tolerance_outer=420
long_press_min_touch_node_count=2
long_press_monitor_channel_min_tx=8
long_press_monitor_channel_max_tx=9
long_press_monitor_channel_min_rx=8
long_press_monitor_channel_max_rx=10
long_press_orientation_enabled=1
long_press_orientation_scale=45
# VSC.
+/vsc
quick_pick_up_enable=1
single_tap_enable=1
long_press_enable=1
+/vsc/fusion_prox_voice_call
# 0: Normal (fusion of Optical Prox with other sensors)
# 1: Optical Prox Passthrough (skips all other fusion logic)
# 2: Optical Prox Overwrite (runs fusion logic but outputs Optical Prox state)
mode=0
# Timeout when in Interactive and FalseFar state before switching to Near.
# Default: 1000ms
interactive_false_far_timeout_ms=1000
# Horizontal angle between device and earth to enter and exit Interactive
# state. Angles need to be less than 90 degrees, and exit >= enter.
# Defaults: 45 (enter) and 50 (exit)
interactive_thresh_angles=45 50
# Minimum horizontal angle between device and earth to qualify a valid
# To-Ear gesture. Should be larger than the interactive exit angle.
# Default: 60
to_ear_thresh_angle=60
# Change in horizontal angle between device and earth to trigger a From-Ear
# event. The initial angle to compare against is taken on a To-Ear event.
# Default: 30
from_ear_delta_thresh_angle=30
+/vsc/aad_prox
# 0: Normal (fusion of Optical Prox with ultrasound presence detector)
# 1: Optical Prox Passthrough (skips all other fusion logic)
mode=1
# TBN.
+/tbn
tbn_mode=2
+200
View File
@@ -0,0 +1,200 @@
#
# Husky sensor device configuration registry script for the DVT stage.
#
# Source of truth: go/pixel-sensor-list
#
#
# CDT Filter <CDT>:<mask>
# CDT format: <0xPPPPSJIV> (P:Product, S:Stage, J:Major, I:Minor, V:Variant)
# go/pixel-cdt-zuma
#
?+0x20000:0xFFFF0000
# Exclude
?-0x22000:0xFFFFF000 # Proto
?-0x23000:0xFFFFF000 # EVT
#
# Record reg_script.
#
+/
reg_script=husky_dvt.reg
#
# Sensors
#
# MAG 0 (MMC5633NJ)
+/dev/mmc56x3x/0/mag
fac_cal_transform=1.0386 0.0212 -0.0440 0.0018 0.9928 -0.0377 -0.0925 -0.0125 1.0405 0 0 0
# MAG 1 (MMC5633NJ)
+/dev/mmc56x3x/1/mag
fac_cal_transform=0.9560 0.0450 0.0212 0.0565 0.9626 -0.0234 0.0206 0.0020 1.0850 0 0 0
# ALSP (TMD37193)
+/dev/tmd3719/0
bus_name=i2c0
bus_freq_hz=400000
bus_addr=0x39
intr_id=45
sync_delay_ns=338136
# For display NS mode.
sync_delay_2_ns=828143
# falling edge = 0, rising edge = 1
te2_alignment=1
anti_aliasing=1
debug_enable=1
+/dev/tmd3719/0/als
lux_scale=4.488642
c_coef=1
r_coef=-0.765091
g_coef=0.986515
b_coef=-1.221424
itime_table_brightness=624 855 1063 1550 3307 4096
itime_table=1600000 1600000 1200000 200000 200000 1600000
max_gain_table=11 10 10 9 8 8
# int{<hard_stop> <C_boost> <R_boost> <G_boost> <B_boost>}
# max_gain[color] = MIN(hard_stop, max_gain_table[brightness] +
# max_gain_chan_boost[color])
max_gain_chan_boost=11 0 1 1 2
fast_filter_size=10
slow_filter_size=100
aod_fast_filter_size=2
aod_slow_filter_size=2
max_lux=250000
high_IR_threshold=1.5
# Number of EM cycles in a 60Hz frame.
EM_cycle_count_60Hz=4
# Step-size (in EM slots) for each rotation.
rotation_step_size=1
new_gain_ratio=1
clear_gain11_ratio=0.112454043815857
red_gain11_ratio=0.111048021355829
green_gain11_ratio=0.110130416835213
blue_gain11_ratio=0.111121334215689
clear_gain10_ratio=0.239671782885746
red_gain10_ratio=0.238467073442303
green_gain10_ratio=0.237599908234773
blue_gain10_ratio=0.238519151575129
clear_gain9_ratio=0.493194253562113
red_gain9_ratio=0.49237577488601
green_gain9_ratio=0.491816334907285
blue_gain9_ratio=0.492338627586782
clear_gain7_ratio=2.01192204106987
red_gain7_ratio=2.0144040858996
green_gain7_ratio=2.01530710821323
blue_gain7_ratio=2.0141120183188
clear_gain6_ratio=4.03185775961208
red_gain6_ratio=4.04075479687336
green_gain6_ratio=4.0429883978271
blue_gain6_ratio=4.03971141006614
# Histogram Configuration.
# Disable until ready.
histo_enable=1
# Display coordinates go from top left to bottom right.
histo_roi_left=335
histo_roi_top=120
histo_roi_right=465
histo_roi_bottom=270
# Weights applied to the RBG color samples to calculate luma.
# luma values:
# luma = W_R * R + W_G * G + WB * B
# with W_R + W_G + W_B = 1024
histo_weight_r=186
histo_weight_g=766
histo_weight_b=72
#
# Leakage calculator configuration. The general format is:
# leakage = luma_term(luma, dbv) * dbv_term(dbv)
# The luma_term maps luma into a value and different equations may be used
# depending on the current DBV value.
# Similar, the dbv_term maps DBV into a value and may also use different
# equations.
# Each line represents one equation, and is of the format:
# start-dbv end-dbv equation-type {coefficients}
# This means the equation applies to the DBV range [start-dbv .. end-dbv].
# There are two equation types currently:
# 0: Polynominal: c0 + c1*L + c2*L^2 + .. + ci*L^i
# 1: Natural Log: c0 + c1*ln(L + c2)
histo_luma_eq0=0 195 0 0e0
histo_luma_eq1=196 4096 0 0e0 -3.35028570E-04 1.59076259E-05 3.07808665E-09
histo_dbv_eq0=0 195 0 0e0
histo_dbv_eq1=196 3307 0 6.49864720E-01 -1.87875149E-03 3.02794992E-06 -5.34464688E-10
histo_dbv_eq2=3308 4096 0 -3.0861E-02 2.22142E-01
# The maximum brightness (DBV) value up to which histogram is active.
# This value should match one of the itime_table_brightness values.
histo_max_brightness=4096
# Minimum change needed for a leakage value to be reported, i.e.,
# min_change = MAX(min_change_value, current_leakage_val * min_change_rate)
histo_min_change_value=0.01
histo_min_change_rate=0.01
# Histogram polling interval in ms.
histo_polling_interval=50
# Fallback luma value to use when histogram returns error (e.g., due to DRM).
histo_fallback_luma=128.0
+/dev/tmd3719/0/prox
auto_baseline=1
burst_delay_30hz=200
burst_delay_60hz=160
burst_delay_120hz=105
burst_delay_aod=0
# For display NS mode.
burst_delay_60hz_2=160
burst_delay_30hz_2=200
hxtalk=1
pulse_count=1
vcsel_ma=10
pd0_far_threshold=30
pd0_near_threshold=50
pd1_far_threshold=50
pd1_near_threshold=90
min_fps=30
# "Low power" operating parameters.
pulse_len_us=512
filter_len=4
skip_count=0
pdata0_scale=1.264
pdata1_scale=1
gain0=4
gain1=8
# "High power" operating parameters.
hp_pulse_len_us=512
hp_filter_len=1
hp_skip_count=0
hp_pdata0_scale=1.264
hp_pdata1_scale=1
hp_pdata0_offset=0
hp_pdata1_offset=0
hp_gain0=4
hp_gain1=8
# High power only if value > 0.
high_power_mode_only=1
max_lux_valid_for_baselining=0.0
max_ir_valid_for_baselining=0.8
+/dev/vd6282/0/spectral
# Golden values for calibration.
golden_rals_r=990
golden_rals_g=1099
golden_rals_b=276
golden_rals_clr1=4851
golden_rals_ir=2736
golden_rals_clr2=4882
+/dev/vd6282/0/rls
fix_fac_cal=1
lux_scale=112.93673
+197
View File
@@ -0,0 +1,197 @@
#
# Husky sensor device configuration registry script for the EVT stage.
#
# Source of truth: go/pixel-sensor-list
#
#
# CDT Filter <CDT>:<mask>
# CDT format: <0xPPPPSJIV> (P:Product, S:Stage, J:Major, I:Minor, V:Variant)
# go/pixel-cdt-zuma
#
?+0x23000:0xFFFFF000 # EVT
#
# Record reg_script.
#
+/
reg_script=husky_evt.reg
#
# Sensors
#
# MAG 0 (MMC5633NJ)
+/dev/mmc56x3x/0/mag
fac_cal_transform=1.0386 0.0212 -0.0440 0.0018 0.9928 -0.0377 -0.0925 -0.0125 1.0405 0 0 0
# MAG 1 (MMC5633NJ)
+/dev/mmc56x3x/1/mag
fac_cal_transform=0.9560 0.0450 0.0212 0.0565 0.9626 -0.0234 0.0206 0.0020 1.0850 0 0 0
# ALSP (TMD37193)
+/dev/tmd3719/0
bus_name=i2c0
bus_freq_hz=400000
bus_addr=0x39
intr_id=45
sync_delay_ns=338136
# For display NS mode.
sync_delay_2_ns=828143
# falling edge = 0, rising edge = 1
te2_alignment=1
anti_aliasing=1
debug_enable=1
+/dev/tmd3719/0/als
lux_scale=4.488642
c_coef=1
r_coef=-0.765091
g_coef=0.986515
b_coef=-1.221424
itime_table_brightness=624 855 1063 1550 3307 4096
itime_table=1600000 1600000 1200000 200000 200000 1600000
max_gain_table=11 10 10 9 8 8
# int{<hard_stop> <C_boost> <R_boost> <G_boost> <B_boost>}
# max_gain[color] = MIN(hard_stop, max_gain_table[brightness] +
# max_gain_chan_boost[color])
max_gain_chan_boost=11 0 1 1 2
fast_filter_size=10
slow_filter_size=100
aod_fast_filter_size=2
aod_slow_filter_size=2
max_lux=250000
high_IR_threshold=1.5
# Number of EM cycles in a 60Hz frame.
EM_cycle_count_60Hz=4
# Step-size (in EM slots) for each rotation.
rotation_step_size=1
new_gain_ratio=1
clear_gain11_ratio=0.112454043815857
red_gain11_ratio=0.111048021355829
green_gain11_ratio=0.110130416835213
blue_gain11_ratio=0.111121334215689
clear_gain10_ratio=0.239671782885746
red_gain10_ratio=0.238467073442303
green_gain10_ratio=0.237599908234773
blue_gain10_ratio=0.238519151575129
clear_gain9_ratio=0.493194253562113
red_gain9_ratio=0.49237577488601
green_gain9_ratio=0.491816334907285
blue_gain9_ratio=0.492338627586782
clear_gain7_ratio=2.01192204106987
red_gain7_ratio=2.0144040858996
green_gain7_ratio=2.01530710821323
blue_gain7_ratio=2.0141120183188
clear_gain6_ratio=4.03185775961208
red_gain6_ratio=4.04075479687336
green_gain6_ratio=4.0429883978271
blue_gain6_ratio=4.03971141006614
# Histogram Configuration.
# Disable until ready.
histo_enable=1
# Display coordinates go from top left to bottom right.
histo_roi_left=335
histo_roi_top=120
histo_roi_right=465
histo_roi_bottom=270
# Weights applied to the RBG color samples to calculate luma.
# luma values:
# luma = W_R * R + W_G * G + WB * B
# with W_R + W_G + W_B = 1024
histo_weight_r=186
histo_weight_g=766
histo_weight_b=72
#
# Leakage calculator configuration. The general format is:
# leakage = luma_term(luma, dbv) * dbv_term(dbv)
# The luma_term maps luma into a value and different equations may be used
# depending on the current DBV value.
# Similar, the dbv_term maps DBV into a value and may also use different
# equations.
# Each line represents one equation, and is of the format:
# start-dbv end-dbv equation-type {coefficients}
# This means the equation applies to the DBV range [start-dbv .. end-dbv].
# There are two equation types currently:
# 0: Polynominal: c0 + c1*L + c2*L^2 + .. + ci*L^i
# 1: Natural Log: c0 + c1*ln(L + c2)
histo_luma_eq0=0 195 0 0e0
histo_luma_eq1=196 4096 0 0e0 -3.35028570E-04 1.59076259E-05 3.07808665E-09
histo_dbv_eq0=0 195 0 0e0
histo_dbv_eq1=196 3307 0 6.49864720E-01 -1.87875149E-03 3.02794992E-06 -5.34464688E-10
histo_dbv_eq2=3308 4096 0 -3.0861E-02 2.22142E-01
# The maximum brightness (DBV) value up to which histogram is active.
# This value should match one of the itime_table_brightness values.
histo_max_brightness=4096
# Minimum change needed for a leakage value to be reported, i.e.,
# min_change = MAX(min_change_value, current_leakage_val * min_change_rate)
histo_min_change_value=0.01
histo_min_change_rate=0.01
# Histogram polling interval in ms.
histo_polling_interval=50
# Fallback luma value to use when histogram returns error (e.g., due to DRM).
histo_fallback_luma=128.0
+/dev/tmd3719/0/prox
auto_baseline=1
burst_delay_30hz=200
burst_delay_60hz=160
burst_delay_120hz=105
burst_delay_aod=0
# For display NS mode.
burst_delay_60hz_2=160
burst_delay_30hz_2=200
hxtalk=1
pulse_count=1
vcsel_ma=10
pd0_far_threshold=30
pd0_near_threshold=50
pd1_far_threshold=50
pd1_near_threshold=90
min_fps=30
# "Low power" operating parameters.
pulse_len_us=512
filter_len=4
skip_count=0
pdata0_scale=1.264
pdata1_scale=1
gain0=4
gain1=8
# "High power" operating parameters.
hp_pulse_len_us=512
hp_filter_len=1
hp_skip_count=0
hp_pdata0_scale=1.264
hp_pdata1_scale=1
hp_pdata0_offset=0
hp_pdata1_offset=0
hp_gain0=4
hp_gain1=8
# High power only if value > 0.
high_power_mode_only=1
max_lux_valid_for_baselining=0.0
max_ir_valid_for_baselining=0.8
+/dev/vd6282/0/spectral
# Golden values for calibration.
golden_rals_r=934
golden_rals_g=1049
golden_rals_b=252
golden_rals_clr1=4554
golden_rals_ir=2860
golden_rals_clr2=4552
+/dev/vd6282/0/rls
fix_fac_cal=1
lux_scale=117.92146
@@ -0,0 +1,149 @@
#
# Husky sensor device configuration registry script for the Proto 1.0 stage and before.
#
# Source of truth: go/pixel-sensor-list
#
#
# CDT Filter <CDT>:<mask>
# CDT format: <0xPPPPSJIV> (P:Product, S:Stage, J:Major, I:Minor, V:Variant)
# go/pixel-cdt-zuma
#
?+0x22000 0x22100 0x22101
#
# Record reg_script.
#
+/
reg_script=husky_proto_1_0.reg
#
# Sensors
#
# MAG 0 (MMC5633NJ)
+/dev/mmc56x3x/0/mag
fac_cal_transform=1.0384 0.0330 -0.0505 0.0225 1.0107 -0.0670 -0.1036 0.0287 1.0372 0 0 0
# MAG 1 (MMC5633NJ)
+/dev/mmc56x3x/1/mag
fac_cal_transform=0.9803 0.0729 0.0236 0.0779 0.9627 -0.0525 0.0326 0.0297 1.0834 0 0 0
# ALSP (TMD37193)
+/dev/tmd3719/0
bus_name=i2c0
bus_freq_hz=400000
bus_addr=0x39
intr_id=45
sync_delay_ns=4434851
# falling edge = 0, rising edge = 1
te2_alignment=1
anti_aliasing=1
debug_enable=1
+/dev/tmd3719/0/als
lux_scale=4.306021
c_coef=1
r_coef=-0.765091
g_coef=0.986515
b_coef=-1.221424
itime_table_brightness=64 128 204 281 2048
itime_table=2800000 2000000 1000000 181750 181750
max_gain_table=11 10 10 9 8
# int{<hard_stop> <C_boost> <R_boost> <G_boost> <B_boost>}
# max_gain[color] = MIN(hard_stop, max_gain_table[brightness] +
# max_gain_chan_boost[color])
max_gain_chan_boost=11 0 1 1 2
fast_filter_size=10
slow_filter_size=100
aod_fast_filter_size=2
aod_slow_filter_size=2
max_lux=250000
high_IR_threshold=1.5
# Number of EM cycles in a 60Hz frame.
EM_cycle_count_60Hz=4
# Step-size (in EM slots) for each rotation.
rotation_step_size=1
new_gain_ratio=1
clear_gain11_ratio=0.11587520907570359
red_gain11_ratio=0.11367177612973169
green_gain11_ratio=0.11373533389507672
blue_gain11_ratio=0.11379697951097906
clear_gain10_ratio=0.24229450044714415
red_gain10_ratio=0.240732949197022
green_gain10_ratio=0.24076550697884685
blue_gain10_ratio=0.2409091628046755
clear_gain9_ratio=0.49489623124483123
red_gain9_ratio=0.4938930981658593
green_gain9_ratio=0.49389121338912134
blue_gain9_ratio=0.4939696854457543
clear_gain7_ratio=2.008293329203875
red_gain7_ratio=2.011111780293905
green_gain7_ratio=2.011080171713656
blue_gain7_ratio=2.010957792207792
clear_gain6_ratio=4.02128991859737
red_gain6_ratio=4.031043403276803
green_gain6_ratio=4.030728996404054
blue_gain6_ratio=4.030616224648987
# Histogram Configuration.
# Disable until ready.
histo_enable=0
+/dev/tmd3719/0/prox
auto_baseline=1
burst_delay_30hz=200
burst_delay_60hz=160
burst_delay_120hz=105
burst_delay_aod=0
hxtalk=1
pulse_count=1
vcsel_ma=10
pd0_far_threshold=100
pd0_near_threshold=100
pd1_far_threshold=140
pd1_near_threshold=200
min_fps=30
# "Low power" operating parameters.
pulse_len_us=512
filter_len=4
skip_count=0
pdata0_scale=1.2
pdata1_scale=1
gain0=4
gain1=8
# "High power" operating parameters.
hp_pulse_len_us=512
hp_filter_len=1
hp_skip_count=0
hp_pdata0_scale=1.2
hp_pdata1_scale=1
hp_pdata0_offset=0
hp_pdata1_offset=0
hp_gain0=4
hp_gain1=8
# High power only if value > 0.
high_power_mode_only=1
max_lux_valid_for_baselining=0.0
max_ir_valid_for_baselining=0.8
+/dev/vd6282/0/spectral
# Golden values for calibration.
golden_rals_r=934
golden_rals_g=1049
golden_rals_b=252
golden_rals_clr1=4554
golden_rals_ir=2860
golden_rals_clr2=4552
+/dev/vd6282/0/rls
fix_fac_cal=1
lux_scale=117.92146
@@ -0,0 +1,149 @@
#
# Husky sensor device configuration registry script for the Proto 1.1 stage.
#
# Source of truth: go/pixel-sensor-list
#
#
# CDT Filter <CDT>:<mask>
# CDT format: <0xPPPPSJIV> (P:Product, S:Stage, J:Major, I:Minor, V:Variant)
# go/pixel-cdt-zuma
#
?+0x22110
#
# Record reg_script.
#
+/
reg_script=husky_proto_1_1.reg
#
# Sensors
#
# MAG 0 (MMC5633NJ)
+/dev/mmc56x3x/0/mag
fac_cal_transform=1.0384 0.0330 -0.0505 0.0225 1.0107 -0.0670 -0.1036 0.0287 1.0372 0 0 0
# MAG 1 (MMC5633NJ)
+/dev/mmc56x3x/1/mag
fac_cal_transform=0.9803 0.0729 0.0236 0.0779 0.9627 -0.0525 0.0326 0.0297 1.0834 0 0 0
# ALSP (TMD37193)
+/dev/tmd3719/0
bus_name=i2c0
bus_freq_hz=400000
bus_addr=0x39
intr_id=45
sync_delay_ns=4434851
# falling edge = 0, rising edge = 1
te2_alignment=1
anti_aliasing=1
debug_enable=1
+/dev/tmd3719/0/als
lux_scale=4.306021
c_coef=1
r_coef=-0.765091
g_coef=0.986515
b_coef=-1.221424
itime_table_brightness=620 848 1050 2414 2989
itime_table=2200000 1597800 667500 181750 181750
max_gain_table=11 10 10 9 8
# int{<hard_stop> <C_boost> <R_boost> <G_boost> <B_boost>}
# max_gain[color] = MIN(hard_stop, max_gain_table[brightness] +
# max_gain_chan_boost[color])
max_gain_chan_boost=11 0 1 1 2
fast_filter_size=10
slow_filter_size=100
aod_fast_filter_size=2
aod_slow_filter_size=2
max_lux=250000
high_IR_threshold=1.5
# Number of EM cycles in a 60Hz frame.
EM_cycle_count_60Hz=4
# Step-size (in EM slots) for each rotation.
rotation_step_size=1
new_gain_ratio=1
clear_gain11_ratio=0.11587520907570359
red_gain11_ratio=0.11367177612973169
green_gain11_ratio=0.11373533389507672
blue_gain11_ratio=0.11379697951097906
clear_gain10_ratio=0.24229450044714415
red_gain10_ratio=0.240732949197022
green_gain10_ratio=0.24076550697884685
blue_gain10_ratio=0.2409091628046755
clear_gain9_ratio=0.49489623124483123
red_gain9_ratio=0.4938930981658593
green_gain9_ratio=0.49389121338912134
blue_gain9_ratio=0.4939696854457543
clear_gain7_ratio=2.008293329203875
red_gain7_ratio=2.011111780293905
green_gain7_ratio=2.011080171713656
blue_gain7_ratio=2.010957792207792
clear_gain6_ratio=4.02128991859737
red_gain6_ratio=4.031043403276803
green_gain6_ratio=4.030728996404054
blue_gain6_ratio=4.030616224648987
# Histogram Configuration.
# Disable until ready.
histo_enable=0
+/dev/tmd3719/0/prox
auto_baseline=1
burst_delay_30hz=200
burst_delay_60hz=160
burst_delay_120hz=105
burst_delay_aod=0
hxtalk=1
pulse_count=1
vcsel_ma=10
pd0_far_threshold=60
pd0_near_threshold=100
pd1_far_threshold=100
pd1_near_threshold=180
min_fps=30
# "Low power" operating parameters.
pulse_len_us=512
filter_len=4
skip_count=0
pdata0_scale=1.2
pdata1_scale=1
gain0=4
gain1=8
# "High power" operating parameters.
hp_pulse_len_us=512
hp_filter_len=1
hp_skip_count=0
hp_pdata0_scale=1.2
hp_pdata1_scale=1
hp_pdata0_offset=0
hp_pdata1_offset=0
hp_gain0=4
hp_gain1=8
# High power only if value > 0.
high_power_mode_only=1
max_lux_valid_for_baselining=0.0
max_ir_valid_for_baselining=0.8
+/dev/vd6282/0/spectral
# Golden values for calibration.
golden_rals_r=934
golden_rals_g=1049
golden_rals_b=252
golden_rals_clr1=4554
golden_rals_ir=2860
golden_rals_clr2=4552
+/dev/vd6282/0/rls
fix_fac_cal=1
lux_scale=117.92146