/* * Texas Instruments TMP105 Temperature Sensor * * Browse the data sheet: * * http://www.ti.com/lit/gpn/tmp105 * * Copyright (C) 2012 Alex Horn * Copyright (C) 2008-2012 Andrzej Zaborowski * * This work is licensed under the terms of the GNU GPL, version 2 or * later. See the COPYING file in the top-level directory. */ #ifndef QEMU_TMP105_H #define QEMU_TMP105_H #include "hw/i2c/i2c.h" #include "hw/misc/tmp105_regs.h" #include "qom/object.h" #define TYPE_TMP105 "tmp105" OBJECT_DECLARE_SIMPLE_TYPE(TMP105State, TMP105) /** * TMP105State: * @config: Bits 5 and 6 (value 32 and 64) determine the precision of the * temperature. See Table 8 in the data sheet. * * @see_also: http://www.ti.com/lit/gpn/tmp105 */ struct TMP105State { /*< private >*/ I2CSlave i2c; /*< public >*/ uint8_t len; uint8_t buf[2]; qemu_irq pin; uint8_t pointer; uint8_t config; int16_t temperature; int16_t limit[2]; int faults; uint8_t alarm; /* * The TMP105 initially looks for a temperature rising above T_high; * once this is detected, the condition it looks for next is the * temperature falling below T_low. This flag is false when initially * looking for T_high, true when looking for T_low. */ bool detect_falling; }; #endif