blob: e06e4bb4306b969cb50e2199890b2624ba097773 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* resarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
#ifndef __TSL2591_PRIV_H__
#define __TSL2591_PRIV_H__
#define TSL2591_REGISTER_ENABLE (0x00) /*< Enable register */
#define TSL2591_REGISTER_CONTROL (0x01) /*< Control register */
#define TSL2591_REGISTER_THRESHOLD_AILTL (0x04) /*< ALS low threshold lower byte */
#define TSL2591_REGISTER_THRESHOLD_AILTH (0x05) /*< ALS low threshold upper byte */
#define TSL2591_REGISTER_THRESHOLD_AIHTL (0x06) /*< ALS high threshold lower byte */
#define TSL2591_REGISTER_THRESHOLD_AIHTH (0x07) /*< ALS high threshold upper byte */
#define TSL2591_REGISTER_THRESHOLD_NPAILTL (0x08) /*< No Persist ALS low threshold lower byte */
#define TSL2591_REGISTER_THRESHOLD_NPAILTH (0x09) /*< No Persist ALS low threshold higher byte */
#define TSL2591_REGISTER_THRESHOLD_NPAIHTL (0x0A) /*< No Persist ALS high threshold lower byte */
#define TSL2591_REGISTER_THRESHOLD_NPAIHTH (0x0B) /*< No Persist ALS high threshold higher byte */
#define TSL2591_REGISTER_PERSIST_FILTER (0x0C) /*< Interrupt persistence filter */
#define TSL2591_REGISTER_PACKAGE_PID (0x11) /*< Package Identification */
#define TSL2591_REGISTER_DEVICE_ID (0x12) /*< Device Identification */
#define TSL2591_REGISTER_DEVICE_STATUS (0x13) /*< Internal Status */
#define TSL2591_REGISTER_CHAN0_LOW (0x14) /*< Channel 0 data, low byte */
#define TSL2591_REGISTER_CHAN0_HIGH (0x15) /*< Channel 0 data, high byte */
#define TSL2591_REGISTER_CHAN1_LOW (0x16) /*< Channel 1 data, low byte */
#define TSL2591_REGISTER_CHAN1_HIGH (0x17) /*< Channel 1 data, high byte */
#define TSL2591_VISIBLE (2) /*< (channel 0) - (channel 1) */
#define TSL2591_INFRARED (1) /*< channel 1 */
#define TSL2591_FULLSPECTRUM (0) /*< channel 0 */
#define TSL2591_COMMAND_BIT (0xA0) /*< 1010 0000: bits 7 and 5 for 'command normal' */
#define TSL2591_CLEAR_INT (0xE7) /*! Special Function Command for "Clear ALS and no persist ALS interrupt" */
#define TSL2591_TEST_INT (0xE4) /*! Special Function Command for "Interrupt set - forces an interrupt" */
#define TSL2591_WORD_BIT (0x20) /*< 1 = read/write word (rather than byte) */
#define TSL2591_BLOCK_BIT (0x10) /*< 1 = using block read/write */
#define TSL2591_ENABLE_POWEROFF (0x00) /*< Flag for ENABLE register to disable */
#define TSL2591_ENABLE_POWERON (0x01) /*< Flag for ENABLE register to enable */
#define TSL2591_ENABLE_AEN (0x02) /*< ALS Enable. This field activates ALS function. Writing a one activates the ALS. Writing a zero disables the ALS. */
#define TSL2591_ENABLE_AIEN (0x10) /*< ALS Interrupt Enable. When asserted permits ALS interrupts to be generated, subject to the persist filter. */
#define TSL2591_ENABLE_NPIEN (0x80) /*< No Persist Interrupt Enable. When asserted NP Threshold conditions will generate an interrupt, bypassing the persist filter */
#define TSL2591_LUX_DF (408.0F) /*< Lux cooefficient */
#define TSL2591_LUX_COEFB (1.64F) /*< CH0 coefficient */
#define TSL2591_LUX_COEFC (0.59F) /*< CH1 coefficient A */
#define TSL2591_LUX_COEFD (0.86F) /*< CH2 coefficient B */
#ifdef __cplusplus
extern "C" {
#endif
int tsl2591_write8(struct sensor_itf *itf, uint8_t reg, uint32_t value);
int tsl2591_write16(struct sensor_itf *itf, uint8_t reg, uint16_t value);
int tsl2591_read8(struct sensor_itf *itf, uint8_t reg, uint8_t *value);
int tsl2591_read16(struct sensor_itf *itf, uint8_t reg, uint16_t *value);
#ifdef __cplusplus
}
#endif
#endif /* __TSL2591_PRIV_H_ */