I got my qwiic conector cables and the device worked immediately. The hex package currently depends on I2C 1.x so I have to override that to 2.x which seems to work fine.
I was able to set a configuration and read some values, but I have no idea how to interpret the values I got back so far 
iex(14)> config = TMF882X.get_config(pid) |> Map.put(:spad_map_id, 7)
%{
period: 33,
alg_setting_0: %{distances: true, logarithmic_confidence: false},
confidence_threshold: 6,
gpio_1: %{gpio: 0, driver_strength: 0, pre_delay: 0},
gpio_2: %{gpio: 0, driver_strength: 0, pre_delay: 0},
hist_dump: false,
i2c_addr_change: 0,
i2c_slave_address: 65,
int_persistence: 0,
int_threshold_high: 65535,
int_threshold_low: 0,
int_zone_mask_0: 0,
int_zone_mask_1: 0,
int_zone_mask_2: 0,
kilo_iterations: 537,
osc_trim_value: 12,
power_cfg: %{
allow_osc_retrim: false,
goto_standby_timed: false,
keep_pll_running: false,
low_power_osc_on: false,
pulse_interrupt: false
},
spad_map_id: 7
}
iex(15)> TMF882X.put_config(pid, config)
:ok
iex(16)> config.spad_map_id
7
iex(17)> TMF882X.start_measuring(pid)
:ok
iex(18)> TMF882X.stop_measuring(pid)
:ok
iex(19)> flush()
{:tmf882x,
%TMF882X.Result{
tid: 241,
size: 128,
number: 237,
temperature: 20,
valid_results: 23,
ambient: 6502,
photon_count: 1657586,
reference_count: 56528,
sys_tick: 124164633,
measurements: [
{101, 255},
{100, 255},
{104, 255},
{115, 255},
{118, 255},
{113, 255},
{113, 255},
{116, 255},
{0, 0},
{110, 255},
{109, 255},
{110, 255},
{113, 255},
{119, 255},
{117, 255},
{113, 255},
{112, 255},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{545, 56},
{563, 62},
{582, 31},
{590, 109},
{586, 255},
{601, 255},
{625, 98},
{0, 0}
]
}}