12915efbfSAlex Horn /* 22915efbfSAlex Horn * Texas Instruments TMP105 Temperature Sensor 32915efbfSAlex Horn * 42915efbfSAlex Horn * Browse the data sheet: 52915efbfSAlex Horn * 62915efbfSAlex Horn * http://www.ti.com/lit/gpn/tmp105 72915efbfSAlex Horn * 82915efbfSAlex Horn * Copyright (C) 2012 Alex Horn <alex.horn@cs.ox.ac.uk> 92915efbfSAlex Horn * Copyright (C) 2008-2012 Andrzej Zaborowski <balrogg@gmail.com> 102915efbfSAlex Horn * 112915efbfSAlex Horn * This work is licensed under the terms of the GNU GPL, version 2 or 122915efbfSAlex Horn * later. See the COPYING file in the top-level directory. 132915efbfSAlex Horn */ 142915efbfSAlex Horn #ifndef QEMU_TMP105_H 152915efbfSAlex Horn #define QEMU_TMP105_H 162915efbfSAlex Horn 170d09e41aSPaolo Bonzini #include "hw/i2c/i2c.h" 18*5e9ae4b1SCorey Minyard #include "hw/sensor/tmp105_regs.h" 19db1015e9SEduardo Habkost #include "qom/object.h" 202915efbfSAlex Horn 212aad80eeSAndreas Färber #define TYPE_TMP105 "tmp105" 228063396bSEduardo Habkost OBJECT_DECLARE_SIMPLE_TYPE(TMP105State, TMP105) 232aad80eeSAndreas Färber 242aad80eeSAndreas Färber /** 252aad80eeSAndreas Färber * TMP105State: 262aad80eeSAndreas Färber * @config: Bits 5 and 6 (value 32 and 64) determine the precision of the 272aad80eeSAndreas Färber * temperature. See Table 8 in the data sheet. 282aad80eeSAndreas Färber * 292aad80eeSAndreas Färber * @see_also: http://www.ti.com/lit/gpn/tmp105 302aad80eeSAndreas Färber */ 31db1015e9SEduardo Habkost struct TMP105State { 322aad80eeSAndreas Färber /*< private >*/ 332aad80eeSAndreas Färber I2CSlave i2c; 342aad80eeSAndreas Färber /*< public >*/ 352aad80eeSAndreas Färber 362aad80eeSAndreas Färber uint8_t len; 372aad80eeSAndreas Färber uint8_t buf[2]; 382aad80eeSAndreas Färber qemu_irq pin; 392aad80eeSAndreas Färber 402aad80eeSAndreas Färber uint8_t pointer; 412aad80eeSAndreas Färber uint8_t config; 422aad80eeSAndreas Färber int16_t temperature; 432aad80eeSAndreas Färber int16_t limit[2]; 442aad80eeSAndreas Färber int faults; 452aad80eeSAndreas Färber uint8_t alarm; 46ab135622SPeter Maydell /* 47ab135622SPeter Maydell * The TMP105 initially looks for a temperature rising above T_high; 48ab135622SPeter Maydell * once this is detected, the condition it looks for next is the 49ab135622SPeter Maydell * temperature falling below T_low. This flag is false when initially 50ab135622SPeter Maydell * looking for T_high, true when looking for T_low. 51ab135622SPeter Maydell */ 52ab135622SPeter Maydell bool detect_falling; 53db1015e9SEduardo Habkost }; 542aad80eeSAndreas Färber 552915efbfSAlex Horn #endif 56