Home | History | Annotate | Line # | Download | only in i2c
      1  1.4  andvar /*	$NetBSD: sht3xreg.h,v 1.4 2024/02/02 22:39:10 andvar Exp $	*/
      2  1.1    brad 
      3  1.1    brad /*
      4  1.1    brad  * Copyright (c) 2021 Brad Spencer <brad (at) anduin.eldar.org>
      5  1.1    brad  *
      6  1.1    brad  * Permission to use, copy, modify, and distribute this software for any
      7  1.1    brad  * purpose with or without fee is hereby granted, provided that the above
      8  1.1    brad  * copyright notice and this permission notice appear in all copies.
      9  1.1    brad  *
     10  1.1    brad  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
     11  1.1    brad  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
     12  1.1    brad  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
     13  1.1    brad  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
     14  1.1    brad  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
     15  1.1    brad  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
     16  1.1    brad  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
     17  1.1    brad  */
     18  1.1    brad 
     19  1.1    brad #ifndef _DEV_I2C_SHT3XREG_H_
     20  1.1    brad #define _DEV_I2C_SHT3XREG_H_
     21  1.1    brad 
     22  1.1    brad #define SHT3X_TYPICAL_ADDR_1	0x44
     23  1.1    brad #define SHT3X_TYPICAL_ADDR_2	0x45
     24  1.1    brad 
     25  1.1    brad 
     26  1.1    brad /* Measurement repeatability and clock steatching
     27  1.1    brad  * for single shot measurement command
     28  1.1    brad  */
     29  1.1    brad #define SHT3X_MEASURE_REPEATABILITY_CS_HIGH	0x2C06
     30  1.1    brad #define SHT3X_MEASURE_REPEATABILITY_CS_MEDIUM	0x2C0D
     31  1.1    brad #define SHT3X_MEASURE_REPEATABILITY_CS_LOW	0x2C10
     32  1.1    brad #define SHT3X_MEASURE_REPEATABILITY_NOCS_HIGH	0x2400
     33  1.1    brad #define SHT3X_MEASURE_REPEATABILITY_NOCS_MEDIUM	0x240B
     34  1.1    brad #define SHT3X_MEASURE_REPEATABILITY_NOCS_LOW	0x2416
     35  1.1    brad 
     36  1.1    brad /* Periodic measurements ... .5 mps, 1 mps, 2 mps, 4 mps
     37  1.1    brad  * and 10 mps at various repeatability.  One sets up the
     38  1.1    brad  * desired mps and repeatability and then calls fetch data
     39  1.1    brad  * to get the data back at the specified period rate
     40  1.1    brad  */
     41  1.1    brad #define SHT3X_HALF_MPS_HIGH		0x2032
     42  1.1    brad #define SHT3X_HALF_MPS_MEDIUM		0x2024
     43  1.1    brad #define SHT3X_HALF_MPS_LOW		0x202F
     44  1.1    brad #define SHT3X_ONE_MPS_HIGH		0x2130
     45  1.1    brad #define SHT3X_ONE_MPS_MEDIUM		0x2126
     46  1.1    brad #define SHT3X_ONE_MPS_LOW		0x212D
     47  1.1    brad #define SHT3X_TWO_MPS_HIGH		0x2236
     48  1.1    brad #define SHT3X_TWO_MPS_MEDIUM		0x2220
     49  1.1    brad #define SHT3X_TWO_MPS_LOW		0x222B
     50  1.1    brad #define SHT3X_FOUR_MPS_HIGH		0x2334
     51  1.1    brad #define SHT3X_FOUR_MPS_MEDIUM		0x2322
     52  1.1    brad #define SHT3X_FOUR_MPS_LOW		0x2329
     53  1.1    brad #define SHT3X_TEN_MPS_HIGH		0x2737
     54  1.1    brad #define SHT3X_TEN_MPS_MEDIUM		0x2721
     55  1.1    brad #define SHT3X_TEN_MPS_LOW		0x272A
     56  1.1    brad #define SHT3X_PERIODIC_FETCH_DATA	0xE000
     57  1.1    brad 
     58  1.1    brad /* ART, accelerated response time.  A method of getting periodic
     59  1.1    brad  * measurements at 4Hz
     60  1.1    brad  */
     61  1.1    brad #define SHT3X_ART_ENABLE	0x2B32
     62  1.1    brad 
     63  1.1    brad /* Break command or stop periodic measurement */
     64  1.1    brad #define SHT3X_BREAK	0x3093
     65  1.1    brad 
     66  1.1    brad /* The heater */
     67  1.1    brad #define SHT3X_HEATER_ENABLE	0x306D
     68  1.1    brad #define SHT3X_HEATER_DISABLE	0x3066
     69  1.1    brad 
     70  1.1    brad /* status register */
     71  1.1    brad #define SHT3X_GET_STATUS_REGISTER	0xF32D
     72  1.1    brad #define SHT3X_CLEAR_STATUS_REGISTER	0x3041
     73  1.1    brad /* the bits */
     74  1.1    brad #define SHT3X_ALERT_PENDING		0x8000
     75  1.1    brad #define SHT3X_HEATER_STATUS		0x2000
     76  1.1    brad #define SHT3X_RH_TRACKING_ALERT		0x0800
     77  1.1    brad #define SHT3X_TEMP_TRACKING_ALERT	0x0400
     78  1.1    brad #define SHT3X_RESET_DETECTED		0x0010
     79  1.1    brad #define SHT3X_LAST_COMMAND_STATUS	0x0002
     80  1.1    brad #define SHT3X_WRITE_DATA_CHECKSUM	0x0001
     81  1.1    brad 
     82  1.1    brad /* Alert mode */
     83  1.2    brad /* This is not supported by the sht3xtemp driver as
     84  1.2    brad    the information in the datasheet was not enough to
     85  1.2    brad    get it working.  A read of the registers appears to
     86  1.3  andvar    function just fine, but writes do not do anything, and
     87  1.4  andvar    the chip does not indicate any errors occurred.
     88  1.2    brad */
     89  1.1    brad #define SHT3X_READ_HIGH_ALERT_SET	0xE11F
     90  1.1    brad #define SHT3X_READ_HIGH_ALERT_CLEAR	0xE114
     91  1.1    brad #define SHT3X_READ_LOW_ALERT_SET	0xE102
     92  1.1    brad #define SHT3X_READ_LOW_ALERT_CLEAR	0xE109
     93  1.1    brad #define SHT3X_WRITE_HIGH_ALERT_SET	0x611D
     94  1.1    brad #define SHT3X_WRITE_HIGH_ALERT_CLEAR	0x6116
     95  1.1    brad #define SHT3X_WRITE_LOW_ALERT_SET	0x6100
     96  1.1    brad #define SHT3X_WRITE_LOW_ALERT_CLEAR	0x610B
     97  1.1    brad 
     98  1.1    brad /* Other commands */
     99  1.1    brad #define SHT3X_SOFT_RESET		0x30A2
    100  1.1    brad /* this is not documented in the datasheet, but is present in a
    101  1.1    brad  * lot of example code
    102  1.1    brad  */
    103  1.1    brad #define SHT3X_READ_SERIAL_NUMBER	0x3780
    104  1.1    brad /* this is also not defined in the datasheet, but is present in some
    105  1.1    brad  * example code.  There are, however, no examples of its use.
    106  1.1    brad  */
    107  1.1    brad #define SHT3X_NO_SLEEP			0x303E
    108  1.1    brad 
    109  1.1    brad #endif
    110