blob: 0009dbc0ef5c3909924a9db6daed68e73275624a [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SRC_DEVICES_LIGHT_SENSOR_DRIVERS_AMS_LIGHT_TCS3400_REGS_H_
#define SRC_DEVICES_LIGHT_SENSOR_DRIVERS_AMS_LIGHT_TCS3400_REGS_H_
// clang-format off
/* Regsiter Map */
#define TCS_I2C_ENABLE 0x80 /* R/W Enables states and interrupts */
#define TCS_I2C_ATIME 0x81 /* R/W RGBC integration time */
#define TCS_I2C_WTIME 0x83 /* R/W Wait time */
#define TCS_I2C_AILTL 0x84 /* R/W Clear interrupt low threshold low byte */
#define TCS_I2C_AILTH 0x85 /* R/W Clear interrupt low threshold high byte */
#define TCS_I2C_AIHTL 0x86 /* R/W Clear interrupt high threshold low byte */
#define TCS_I2C_AIHTH 0x87 /* R/W Clear interrupt high threshold high byte */
#define TCS_I2C_PERS 0x8C /* R/W Interrupt persistence filter */
#define TCS_I2C_CONFIG 0x8D /* R/W Configuration */
#define TCS_I2C_CONTROL 0x8F /* R/W Gain control register */
#define TCS_I2C_AUX 0x90 /* R/W Auxiliary control register */
#define TCS_I2C_REVID 0x91 /* R Revision ID */
#define TCS_I2C_ID 0x92 /* R Device ID */
#define TCS_I2C_STATUS 0x93 /* R Device status */
#define TCS_I2C_CDATAL 0x94 /* R Clear / IR channel low data register */
#define TCS_I2C_CDATAH 0x95 /* R Clear / IR channel high data register */
#define TCS_I2C_RDATAL 0x96 /* R Red ADC low data register */
#define TCS_I2C_RDATAH 0x97 /* R Red ADC high data register */
#define TCS_I2C_GDATAL 0x98 /* R Green ADC low data register */
#define TCS_I2C_GDATAH 0x99 /* R Green ADC high data register */
#define TCS_I2C_BDATAL 0x9A /* R Blue ADC low data register */
#define TCS_I2C_BDATAH 0x9B /* R Blue ADC high data register */
#define TCS_I2C_IR 0xC0 /* R/W Access IR Channel */
#define TCS_I2C_IFORCE 0xE4 /* W Force Interrupt */
#define TCS_I2C_CICLEAR 0xE6 /* W Clear channel interrupt clear */
#define TCS_I2C_AICLEAR 0xE7 /* W Clear all interrupts */
#define TCS_I2C_BIT(shift) (uint8_t)(1u << shift)
#define TCS_I2C_ENABLE_POWER_ON TCS_I2C_BIT(0)
#define TCS_I2C_ENABLE_ADC_ENABLE TCS_I2C_BIT(1)
#define TCS_I2C_ENABLE_WAIT_ENABLE TCS_I2C_BIT(3)
#define TCS_I2C_ENABLE_INT_ENABLE TCS_I2C_BIT(4)
#define TCS_I2C_ENABLE_SLEEP_AFTER_INT TCS_I2C_BIT(6)
#define TCS_I2C_STATUS_AVALID TCS_I2C_BIT(0)
#define TCS_I2C_STATUS_AINT TCS_I2C_BIT(4)
#define TCS_I2C_STATUS_ASAT TCS_I2C_BIT(7)
// clang-format on
#endif // SRC_DEVICES_LIGHT_SENSOR_DRIVERS_AMS_LIGHT_TCS3400_REGS_H_