1 /* 2 * Texas Instruments TMP105 Temperature Sensor 3 * 4 * Browse the data sheet: 5 * 6 * http://www.ti.com/lit/gpn/tmp105 7 * 8 * Copyright (C) 2012 Alex Horn <alex.horn@cs.ox.ac.uk> 9 * Copyright (C) 2008-2012 Andrzej Zaborowski <balrogg@gmail.com> 10 * 11 * This work is licensed under the terms of the GNU GPL, version 2 or 12 * later. See the COPYING file in the top-level directory. 13 */ 14 #ifndef QEMU_TMP105_H 15 #define QEMU_TMP105_H 16 17 #include "hw/i2c/i2c.h" 18 #include "hw/sensor/tmp105_regs.h" 19 #include "qom/object.h" 20 21 #define TYPE_TMP105 "tmp105" 22 OBJECT_DECLARE_SIMPLE_TYPE(TMP105State, TMP105) 23 24 /** 25 * TMP105State: 26 * @config: Bits 5 and 6 (value 32 and 64) determine the precision of the 27 * temperature. See Table 8 in the data sheet. 28 * 29 * @see_also: http://www.ti.com/lit/gpn/tmp105 30 */ 31 struct TMP105State { 32 /*< private >*/ 33 I2CSlave i2c; 34 /*< public >*/ 35 36 uint8_t len; 37 uint8_t buf[2]; 38 qemu_irq pin; 39 40 uint8_t pointer; 41 uint8_t config; 42 int16_t temperature; 43 int16_t limit[2]; 44 int faults; 45 uint8_t alarm; 46 /* 47 * The TMP105 initially looks for a temperature rising above T_high; 48 * once this is detected, the condition it looks for next is the 49 * temperature falling below T_low. This flag is false when initially 50 * looking for T_high, true when looking for T_low. 51 */ 52 bool detect_falling; 53 }; 54 55 #endif 56