| /* SPDX-License-Identifier: GPL-2.0-only */ |
| |
| #ifndef __DRIVERS_I2C_RV3028C7_CHIP_H__ |
| #define __DRIVERS_I2C_RV3028C7_CHIP_H__ |
| |
| #include "rv3028c7.h" |
| |
| /* |
| * The RTC has three different modes in how the backup voltage is used: |
| * - OFF: Backup voltage not used |
| * - DIRECT: Switch to backup voltage if it is higher than VDD |
| * - LEVEL: Switch to backup voltage if VDD is < 2 V and VBACKUP > 2 V |
| */ |
| enum sw_mode { |
| BACKUP_SW_DIRECT = 1, |
| BACKUP_SW_OFF, |
| BACKUP_SW_LEVEL |
| }; |
| |
| /* |
| * The RTC can be used to charge a capacitor on VBACKUP. |
| * There are the following modes: |
| * - OFF: Do not charge the backup capacitor via VDD |
| * - VIA_3K: Connect the backup capacitor via 3 k resistor with VDD |
| * - VIA_5K: Connect the backup capacitor via 5 k resistor with VDD |
| * - VIA_9K: Connect the backup capacitor via 9 k resistor with VDD |
| * - VIA_15K: Connect the backup capacitor via 15 k resistor with VDD |
| */ |
| enum charge_mode { |
| CHARGE_OFF = 0, |
| CHARGE_VIA_3K, |
| CHARGE_VIA_5K, |
| CHARGE_VIA_9K, |
| CHARGE_VIA_15K |
| }; |
| |
| struct drivers_i2c_rv3028c7_config { |
| unsigned int bus_speed; /* Bus clock in Hz */ |
| unsigned char user_weekday; /* User day of the week to set */ |
| unsigned char user_day; /* User day to set */ |
| unsigned char user_month; /* User month to set */ |
| unsigned char user_year; /* User year to set (2-digit) */ |
| unsigned char set_user_date; /* Use user date from devicetree */ |
| enum sw_mode bckup_sw_mode; /* Mode for switching between VDD and VBACKUP */ |
| enum charge_mode cap_charge; /* Mode for capacitor charging */ |
| }; |
| |
| #endif /* __DRIVERS_I2C_RV3028C7_CHIP_H__ */ |