MAJOR=1
MINOR=7
DEVNAME=full
DEVMODE=0666
     ˆÅÄ„}ïÃÂÁ )Ê    /* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * rtc.h  --  RTC driver for Wolfson WM8350 PMIC
 *
 * Copyright 2007 Wolfson Microelectronics PLC
 */

#ifndef __LINUX_MFD_WM8350_RTC_H
#define __LINUX_MFD_WM8350_RTC_H

#include <linux/platform_device.h>

/*
 * Register values.
 */
#define WM8350_RTC_SECONDS_MINUTES              0x10
#define WM8350_RTC_HOURS_DAY                    0x11
#define WM8350_RTC_DATE_MONTH                   0x12
#define WM8350_RTC_YEAR                         0x13
#define WM8350_ALARM_SECONDS_MINUTES            0x14
#define WM8350_ALARM_HOURS_DAY                  0x15
#define WM8350_ALARM_DATE_MONTH                 0x16
#define WM8350_RTC_TIME_CONTROL                 0x17

/*
 * R16 (0x10) - RTC Seconds/Minutes
 */
#define WM8350_RTC_MINS_MASK                    0x7F00
#define WM8350_RTC_MINS_SHIFT                        8
#define WM8350_RTC_SECS_MASK                    0x007F
#define WM8350_RTC_SECS_SHIFT                        0

/*
 * R17 (0x11) - RTC Hours/Day
 */
#define WM8350_RTC_DAY_MASK                     0x0700
#define WM8350_RTC_DAY_SHIFT                         8
#define WM8350_RTC_HPM_MASK                     0x0020
#define WM8350_RTC_HPM_SHIFT                         5
#define WM8350_RTC_HRS_MASK                     0x001F
#define WM8350_RTC_HRS_SHIFT                         0

/* Bit values for R21 (0x15) */
#define WM8350_RTC_DAY_SUN                           1
#define WM8350_RTC_DAY_MON                           2
#define WM8350_RTC_DAY_TUE                           3
#define WM8350_RTC_DAY_WED                           4
#define WM8350_RTC_DAY_THU                           5
#define WM8350_RTC_DAY_FRI                           6
#define WM8350_RTC_DAY_SAT                           7

#define WM8350_RTC_HPM_AM                            0
#define WM8350_RTC_HPM_PM                            1

/*
 * R18 (0x12) - RTC Date/Month
 */
#define WM8350_RTC_MTH_MASK                     0x1F00
#define WM8350_RTC_MTH_SHIFT                         8
#define WM8350_RTC_DATE_MASK                    0x003F
#define WM8350_RTC_DATE_SHIFT                        0

/* Bit values for R22 (0x16) */
#define WM8350_RTC_MTH_JAN                           1
#define WM8350_RTC_MTH_FEB                           2
#define WM8350_RTC_MTH_MAR                           3
#define WM8350_RTC_MTH_APR                           4
#define WM8350_RTC_MTH_MAY                           5
#define WM8350_RTC_MTH_JUN                           6
#define WM8350_RTC_MTH_JUL                           7
#define WM8350_RTC_MTH_AUG                           8
#define WM8350_RTC_MTH_SEP                           9
#define WM8350_RTC_MTH_OCT                          10
#define WM8350_RTC_MTH_NOV                          11
#define WM8350_RTC_MTH_DEC                          12
#define WM8350_RTC_MTH_JAN_BCD                    0x01
#define WM8350_RTC_MTH_FEB_BCD                    0x02
#define WM8350_RTC_MTH_MAR_BCD                    0x03
#define WM8350_RTC_MTH_APR_BCD                    0x04
#define WM8350_RTC_MTH_MAY_BCD                    0x05
#define WM8350_RTC_MTH_JUN_BCD                    0x06
#define WM8350_RTC_MTH_JUL_BCD                    0x07
#define WM8350_RTC_MTH_AUG_BCD                    0x08
#define WM8350_RTC_MTH_SEP_BCD                    0x09
#define WM8350_RTC_MTH_OCT_BCD                    0x10
#define WM8350_RTC_MTH_NOV_BCD                    0x11
#define WM8350_RTC_MTH_DEC_BCD                    0x12

/*
 * R19 (0x13) - RTC Year
 */
#define WM8350_RTC_YHUNDREDS_MASK               0x3F00
#define WM8350_RTC_YHUNDREDS_SHIFT                   8
#define WM8350_RTC_YUNITS_MASK                  0x00FF
#define WM8350_RTC_YUNITS_SHIFT                      0

/*
 * R20 (0x14) - Alarm Seconds/Minutes
 */
#define WM8350_RTC_ALMMINS_MASK                 0x7F00
#define WM8350_RTC_ALMMINS_SHIFT                     8
#define WM8350_RTC_ALMSECS_MASK                 0x007F
#define WM8350_RTC_ALMSECS_SHIFT                     0

/* Bit values for R20