MS5611 and MS5607 use slightly different conversion functions. Alas,
there doesn't appear to be a way to tell them apart in software. This
patch adds the necessary conversion changes and makes them depend on a
compile-time configuration option.
Signed-off-by: Keith Packard <keithp@keithp.com>
TEMP = 2000 + (((int64_t) dT * ms5607_prom.tempsens) >> 23);
TEMP = 2000 + (((int64_t) dT * ms5607_prom.tempsens) >> 23);
+#if HAS_MS5611
+ OFF = ((int64_t) ms5607_prom.off << 16) + (((int64_t) ms5607_prom.tco * dT) >> 7);
+ SENS = ((int64_t) ms5607_prom.sens << 15) + (((int64_t) ms5607_prom.tcs * dT) >> 8);
+#else
OFF = ((int64_t) ms5607_prom.off << 17) + (((int64_t) ms5607_prom.tco * dT) >> 6);
OFF = ((int64_t) ms5607_prom.off << 17) + (((int64_t) ms5607_prom.tco * dT) >> 6);
SENS = ((int64_t) ms5607_prom.sens << 16) + (((int64_t) ms5607_prom.tcs * dT) >> 7);
SENS = ((int64_t) ms5607_prom.sens << 16) + (((int64_t) ms5607_prom.tcs * dT) >> 7);
if (TEMP < 2000) {
int32_t T2 = ((int64_t) dT * (int64_t) dT) >> 31;
if (TEMP < 2000) {
int32_t T2 = ((int64_t) dT * (int64_t) dT) >> 31;