/* SPDX-License-Identifier: GPL-2.0-only */ #ifndef _I2C_RV3028C7_H_ #define _I2C_RV3028C7_H_ #define RV3028C7_ACPI_NAME "MC28" #define RV3028C7_HID_NAME "MCRY3028" #define RV3028C7_HID_DESC "Real Time Clock" /* Register layout */ #define SECOND_REG 0x00 #define MINUTE_REG 0x01 #define HOUR_REG 0x02 #define WEEK_REG 0x03 #define DAY_REG 0x04 #define MONTH_REG 0x05 #define YEAR_REG 0x06 #define STATUS_REG 0x0e #define PORF_BIT (1 << 0) #define EE_BUSY_BIT (1 << 7) #define CTRL1_REG 0x0f #define EERD_BIT (1 << 3) #define CTRL2_REG 0x10 #define HOUR_12_24_BIT (1 << 1) /* Registers for the internal EEPROM */ #define EEP_ADR_REG 0x25 #define EEP_DATA_REG 0x26 #define EEP_CMD_REG 0x27 #define EEP_CMD_PREFIX 0x00 #define EEP_CMD_UPDATE 0x11 #define EEP_BACKUP_REG 0x37 #define FEDE_BIT (1 << 4) #define BSM_BIT 2 #define BSM_MASK (3 << BSM_BIT) #define TCR_BIT 0 #define TCR_MASK (3 << TCR_BIT) #define TCE_BIT (1 << 5) #define EEP_REFRESH_EN 1 #define EEP_REFRESH_DIS 0 /* The longest mentioned timeout in the datasheet is 63 ms, round up to 70 ms to be on the safe side. */ #define EEP_SYNC_TIMEOUT_MS 70 #endif /* _I2C_RV3028C7_H_ */