| /* |
| * Copyright (c) 2015 Intel Corporation |
| * |
| * Licensed 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. |
| */ |
| |
| /** |
| * @file Register sets for I2C driver for Quark SE Sensor Subsystem |
| */ |
| |
| #ifndef __DRIVERS_I2C_QUARK_SE_SS_REGISTERS_H__ |
| #define __DRIVERS_I2C_QUARK_SE_SS_REGISTERS_H__ |
| |
| /* Register offsets */ |
| #define REG_CON 0x00 |
| #define REG_DATA_CMD 0x01 |
| #define REG_SS_SCL_CNT 0x02 |
| #define REG_FS_SCL_CNT 0x04 |
| #define REG_INTR_STAT 0x06 |
| #define REG_INTR_MASK 0x07 |
| #define REG_TL 0x08 |
| #define REG_INTR_CLR 0x0A |
| #define REG_STATUS 0x0B |
| #define REG_TXFLR 0x0C |
| #define REG_RXFLR 0x0D |
| #define REG_SDA_CONFIG 0x0E |
| #define REG_TX_ABRT_SOURCE 0x0F |
| #define REG_ENABLE_STATUS 0x11 |
| |
| /* IC_CON bits */ |
| #define IC_CON_CLK_ENA (1 << 31) |
| #define IC_CON_RSVP_4 (1 << 30) |
| #define IC_CON_SPKLEN_MASK (0x8 << 22) |
| #define IC_CON_SPKLEN_POS (22) |
| #define IC_CON_RSVP_3 (0x7 << 19) |
| #define IC_CON_TAR_SAR_MASK (0x7FF << 9) |
| #define IC_CON_TAR_SAR_POS (9) |
| #define IC_CON_RSVP_2 (1 << 8) |
| #define IC_CON_RESTART_EN (1 << 7) |
| #define IC_CON_RSVP_1 (1 << 6) |
| #define IC_CON_10BIT_ADDR (1 << 5) |
| #define IC_CON_SPEED_MASK (2 << 3) |
| #define IC_CON_SPEED_POS (3) |
| #define IC_CON_RSVP_0 (1 << 2) |
| #define IC_CON_ABORT (1 << 1) |
| #define IC_CON_ENABLE (1 << 0) |
| |
| /* IC_DATA_CMD bits */ |
| #define IC_DATA_CMD_DATA_MASK 0xFF |
| #define IC_DATA_CMD_CMD (1 << 8) |
| #define IC_DATA_CMD_STOP (1 << 9) |
| #define IC_DATA_CMD_RESTART (1 << 10) |
| #define IC_DATA_CMD_POP (1 << 30) |
| #define IC_DATA_CMD_STROBE (1 << 31) |
| |
| /* IC_INTR_STAT, IC_INTR_MASK, IC_INTR_CLR bits */ |
| #define IC_INTR_RX_UNDER (1 << 0) |
| #define IC_INTR_RX_OVER (1 << 1) |
| #define IC_INTR_RX_FULL (1 << 2) |
| #define IC_INTR_TX_OVER (1 << 3) |
| #define IC_INTR_TX_EMPTY (1 << 4) |
| #define IC_INTR_TX_ABRT (1 << 6) |
| #define IC_INTR_RX_DONE (1 << 7) |
| #define IC_INTR_ACTIVITY (1 << 8) |
| #define IC_INTR_STOP_DET (1 << 9) |
| #define IC_INTR_START_DET (1 << 10) |
| |
| #define IC_INTR_CLR_ALL (0xFFFFFFFF) |
| #define IC_INTR_MASK_ALL (0x0) |
| |
| #define IC_INTR_MASK_TX (IC_INTR_TX_OVER | \ |
| IC_INTR_TX_EMPTY | \ |
| IC_INTR_TX_ABRT | \ |
| IC_INTR_STOP_DET) |
| #define IC_INTR_MASK_RX (IC_INTR_RX_UNDER | \ |
| IC_INTR_RX_OVER | \ |
| IC_INTR_RX_FULL | \ |
| IC_INTR_STOP_DET) |
| |
| /* IC_STATUS */ |
| #define IC_STATUS_ACTIVITY (1 << 0) |
| #define IC_STATUS_TFNF (1 << 1) |
| #define IC_STATUS_TFE (1 << 2) |
| #define IC_STATUS_RFNE (1 << 3) |
| #define IC_STATUS_RFF (1 << 4) |
| #define IC_STATUS_MST_ACTIVITY (1 << 5) |
| #define IC_STATUS_SLV_ACTIVITY (1 << 6) |
| |
| #endif /* __DRIVERS_I2C_QUARK_SE_SS_REGISTERS_H__ */ |