xref: /qemu/include/hw/sensor/tmp105.h (revision 5e9ae4b1a31a17a72487372067a78b6afa68b68d)
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