Switch from GPLv2 to GPLv2+
[fw/altos] / src / drivers / ao_ms5607.h
index 489190a496352bc6cc95058124081e5bfc4e4627..18f99bf8928867c0d7802667fa3ba4fa1c0cfd1a 100644 (file)
@@ -3,7 +3,8 @@
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful, but
  * WITHOUT ANY WARRANTY; without even the implied warranty of
 #define AO_MS5607_ADC_READ             0x00
 #define AO_MS5607_PROM_READ(ad)                (0xA0 | ((ad) << 1))
 
+struct ao_ms5607_prom {
+       uint16_t        reserved;
+       uint16_t        sens;
+       uint16_t        off;
+       uint16_t        tcs;
+       uint16_t        tco;
+       uint16_t        tref;
+       uint16_t        tempsens;
+       uint16_t        crc;
+};
+
+struct ao_ms5607_sample {
+       uint32_t        pres;   /* raw 24 bit sensor */
+       uint32_t        temp;   /* raw 24 bit sensor */
+};
+
+struct ao_ms5607_value {
+       int32_t         pres;   /* in Pa * 10 */
+       int32_t         temp;   /* in °C * 100 */
+};
+
+extern __xdata struct ao_ms5607_sample ao_ms5607_current;
+extern __xdata struct ao_ms5607_prom   ao_ms5607_prom;
+
+void
+ao_ms5607_setup(void);
+
+void
+ao_ms5607_init(void);
+
+void
+ao_ms5607_info(void);
+
+void
+ao_ms5607_sample(__xdata struct ao_ms5607_sample *sample);
+
+void
+ao_ms5607_convert(__xdata struct ao_ms5607_sample *sample,
+                 __xdata struct ao_ms5607_value *value);
+
 #endif /* _AO_MS5607_H_ */