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