| /* |
| * 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_ */ |