| /* |
| * Texas Instruments TMP105 Temperature Sensor |
| * |
| * Browse the data sheet: |
| * |
| * http://www.ti.com/lit/gpn/tmp105 |
| * |
| * Copyright (C) 2012 Alex Horn <alex.horn@cs.ox.ac.uk> |
| * Copyright (C) 2008-2012 Andrzej Zaborowski <balrogg@gmail.com> |
| * |
| * 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/sensor/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 |