162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci#ifndef _SUN3_INTERSIL_H
362306a36Sopenharmony_ci#define _SUN3_INTERSIL_H
462306a36Sopenharmony_ci/* bits 0 and 1 */
562306a36Sopenharmony_ci#define INTERSIL_FREQ_32K        0x00
662306a36Sopenharmony_ci#define INTERSIL_FREQ_1M         0x01
762306a36Sopenharmony_ci#define INTERSIL_FREQ_2M         0x02
862306a36Sopenharmony_ci#define INTERSIL_FREQ_4M         0x03
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci/* bit 2 */
1162306a36Sopenharmony_ci#define INTERSIL_12H_MODE   0x00
1262306a36Sopenharmony_ci#define INTERSIL_24H_MODE   0x04
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci/* bit 3 */
1562306a36Sopenharmony_ci#define INTERSIL_STOP            0x00
1662306a36Sopenharmony_ci#define INTERSIL_RUN             0x08
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci/* bit 4 */
1962306a36Sopenharmony_ci#define INTERSIL_INT_ENABLE     0x10
2062306a36Sopenharmony_ci#define INTERSIL_INT_DISABLE    0x00
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci/* bit 5 */
2362306a36Sopenharmony_ci#define INTERSIL_MODE_NORMAL     0x00
2462306a36Sopenharmony_ci#define INTERSIL_MODE_TEST       0x20
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci#define INTERSIL_HZ_100_MASK	 0x02
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_cistruct intersil_dt {
2962306a36Sopenharmony_ci	unsigned char	csec;
3062306a36Sopenharmony_ci	unsigned char	hour;
3162306a36Sopenharmony_ci	unsigned char	minute;
3262306a36Sopenharmony_ci	unsigned char	second;
3362306a36Sopenharmony_ci	unsigned char	month;
3462306a36Sopenharmony_ci	unsigned char	day;
3562306a36Sopenharmony_ci	unsigned char	year;
3662306a36Sopenharmony_ci	unsigned char	weekday;
3762306a36Sopenharmony_ci};
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_cistruct intersil_7170 {
4062306a36Sopenharmony_ci	struct intersil_dt counter;
4162306a36Sopenharmony_ci	struct intersil_dt alarm;
4262306a36Sopenharmony_ci	unsigned char	int_reg;
4362306a36Sopenharmony_ci	unsigned char	cmd_reg;
4462306a36Sopenharmony_ci};
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ciextern volatile char* clock_va;
4762306a36Sopenharmony_ci#define intersil_clock ((volatile struct intersil_7170 *) clock_va)
4862306a36Sopenharmony_ci#define intersil_clear() (void)intersil_clock->int_reg
4962306a36Sopenharmony_ci#endif
50