xref: /aosp_15_r20/external/coreboot/src/drivers/i2c/rx6110sa/rx6110sa.h (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef _I2C_RX6110SA_H_
4 #define _I2C_RX6110SA_H_
5 
6 #define RX6110SA_ACPI_NAME		"ERX6"
7 #define RX6110SA_HID_NAME		"SECC6110"
8 #define RX6110SA_HID_DESC		"Real Time Clock"
9 
10 /* Register layout */
11 #define SECOND_REG			0x10
12 #define MINUTE_REG			0x11
13 #define HOUR_REG			0x12
14 #define WEEK_REG			0x13
15 #define DAY_REG				0x14
16 #define MONTH_REG			0x15
17 #define YEAR_REG			0x16
18 #define RESERVED_BIT_REG		0x17
19 #define  RTC_INIT_VALUE			0xA8
20 #define ALARM_MINUTE_REG		0x18
21 #define ALARM_HOUR_REG			0x19
22 #define ALARM_WEEKDAY_REG		0x1A
23 #define TMR_COUNTER_0_REG		0x1B
24 #define TMR_COUNTER_1_REG		0x1C
25 #define EXTENSION_REG			0x1D
26 #define  TE_BIT				(1 << 4)
27 #define  FSEL_MASK			0xC0
28 #define  TSEL_MASK			0x07
29 #define FLAG_REGISTER			0x1E
30 #define  VLF_BIT			(1 << 1)
31 #define CTRL_REG			0x1F
32 #define  AIE_BIT			(1 << 3)
33 #define  TIE_BIT			(1 << 4)
34 #define  UIE_BIT			(1 << 5)
35 #define  STOP_BIT			(1 << 6)
36 #define  TEST_BIT			(1 << 7)
37 #define  TMR_MODE_MASK			0x03
38 #define  TMR_MODE_NORM_BACKUP		0x00
39 #define  TMR_MODE_NORM_ONLY		0x01
40 #define  TMR_MODE_BACKUP_ONLY		0x03
41 #define DIGITAL_REG			0x30
42 #define BATTERY_BACKUP_REG		0x31
43 #define  PMON_SAMPL_MASK		0x03
44 #define IRQ_CONTROL_REG			0x32
45 #define  FOUT_OUTPUT_PIN_MASK		0x03
46 
47 /* Define CLKOUT frequency divider values valid for parameter cof_selection */
48 #define COF_OFF				0x00
49 #define COF_1_HZ			0x01
50 #define COF_1024_HZ			0x02
51 #define COF_32768_HZ			0x03
52 
53 /* Define valid clock rates for the internal timer */
54 #define TMR_CLK_4096_HZ			0x00
55 #define TMR_CLK_64_HZ			0x01
56 #define TMR_CLK_1_HZ			0x02
57 #define TMR_CLK_1_60_HZ			0x03
58 #define TMR_CLK_1_3600_HZ		0x04
59 
60 /*
61  * Define possible power monitor sampling times. This value decides for how
62  * long the power supply is sampled every second to detect a power down
63  * condition.
64  */
65 #define PMON_SAMPL_2_MS			0x00
66 #define PMON_SAMPL_16_MS		0x01
67 #define PMON_SAMPL_128_MS		0x02
68 #define PMON_SAMPL_256_MS		0x03
69 
70 /* Define on which pin of the RTC the generated square wave will be driven. */
71 #define FOUT_IRQ2			0x00	/* IRQ2 pin used for Fout */
72 #define FOUT_IRQ1			0x01	/* IRQ1 pin used for Fout */
73 #define FOUT_DO_FOUT			0x02	/* DO/FOUT pin used for Fout */
74 
75 #define AFTER_RESET_DELAY_MS		2	/* Delay after reset sequence */
76 
77 #endif /* _I2C_RX6110SA_H_ */
78