summaryrefslogtreecommitdiff
path: root/drivers/rtc
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/rtc')
-rw-r--r--drivers/rtc/Kconfig42
-rw-r--r--drivers/rtc/Makefile3
-rw-r--r--drivers/rtc/ds1307.c8
-rw-r--r--drivers/rtc/ds1337.c4
-rw-r--r--drivers/rtc/ds1374.c16
-rw-r--r--drivers/rtc/ds1556.c179
-rw-r--r--drivers/rtc/ds164x.c171
-rw-r--r--drivers/rtc/ds174x.c172
-rw-r--r--drivers/rtc/ds3231.c4
-rw-r--r--drivers/rtc/m41t62.c10
-rw-r--r--drivers/rtc/max6900.c8
-rw-r--r--drivers/rtc/pcf8563.c4
-rw-r--r--drivers/rtc/pt7c4338.c4
-rw-r--r--drivers/rtc/rs5c372.c12
-rw-r--r--drivers/rtc/rx8010sj.c12
-rw-r--r--drivers/rtc/x1205.c4
16 files changed, 84 insertions, 569 deletions
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
index 23963271928..b6987225698 100644
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
@@ -68,9 +68,38 @@ config RTC_DS1307
bool "Enable DS1307 driver"
depends on DM_RTC
help
- Support for Dallas Semiconductor (now Maxim) DS1307 and DS1338/9 and
+ Support for Dallas Semiconductor (now Maxim) DS1307 and DS1339 and
compatible Real Time Clock devices.
+config RTC_DS1337
+ bool "Enable DS1337 driver"
+ help
+ Support for Dallas Semiconductor (now Maxim) DS1337/8/9 compatible
+ Real Time Clock devices.
+
+config RTC_DS1337_NOOSC
+ bool "Enable support for no oscillator output in DS1337 driver"
+ depends on RTC_DS1337
+
+config RTC_DS1338
+ bool "Enable DS1338 driver"
+ help
+ Support for Dallas Semiconductor (now Maxim) DS1338 and compatible
+ Real Time Clock devices.
+
+config RTC_DS1374
+ bool "Enable DS1374 driver"
+ depends on !DM_RTC
+ help
+ Support for Dallas Semiconductor (now Maxim) DS1374 and compatible
+ Real Time Clock devices.
+
+config RTC_DS3231
+ bool "Enable DS3231 driver"
+ help
+ Support for Dallas Semiconductor (now Maxim) DS3231 compatible
+ Real Time Clock devices.
+
config RTC_DS3232
bool "Enable DS3232 driver"
depends on DM_RTC
@@ -111,6 +140,9 @@ config RTC_PCF8563
If you say yes here you get support for the Philips PCF8563 RTC
and compatible chips.
+config RTC_PT7C4338
+ bool "Enable Pericom Technology PT7C4338 RTC driver"
+
config RTC_RV3028
bool "Enable RV3028 driver"
depends on DM_RTC
@@ -169,6 +201,10 @@ config RTC_S35392A
help
Enable s35392a driver which provides rtc get and set function.
+config RTC_MC13XXX
+ bool "Enable MC13XXX RTC driver"
+ depends on !DM_RTC
+
config RTC_MC146818
bool "Enable MC146818 driver"
help
@@ -185,6 +221,10 @@ config SYS_MCFRTC_BASE
hex "Base address for RTC in immap.h"
depends on MCFRTC
+config RTC_MXS
+ bool "Enable i.MXS RTC driver"
+ depends on ARCH_MX23 || ARCH_MX28
+
config RTC_M41T62
bool "Enable M41T62 driver"
help
diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile
index 009dd9d28c9..2089086551d 100644
--- a/drivers/rtc/Makefile
+++ b/drivers/rtc/Makefile
@@ -17,9 +17,6 @@ obj-$(CONFIG_RTC_DS1339) += ds1307.o
obj-$(CONFIG_RTC_DS1337) += ds1337.o
obj-$(CONFIG_RTC_DS1374) += ds1374.o
obj-$(CONFIG_RTC_DS1388) += ds1337.o
-obj-$(CONFIG_RTC_DS1556) += ds1556.o
-obj-$(CONFIG_RTC_DS164x) += ds164x.o
-obj-$(CONFIG_RTC_DS174x) += ds174x.o
obj-$(CONFIG_RTC_DS3231) += ds3231.o
obj-$(CONFIG_RTC_DS3232) += ds3232.o
obj-$(CONFIG_RTC_EMULATION) += emul_rtc.o
diff --git a/drivers/rtc/ds1307.c b/drivers/rtc/ds1307.c
index 40ca66bdcee..0e9d3d24dd8 100644
--- a/drivers/rtc/ds1307.c
+++ b/drivers/rtc/ds1307.c
@@ -80,8 +80,8 @@ enum ds_type {
#endif
/*---------------------------------------------------------------------*/
-#ifndef CONFIG_SYS_I2C_RTC_ADDR
-# define CONFIG_SYS_I2C_RTC_ADDR 0x68
+#ifndef CFG_SYS_I2C_RTC_ADDR
+# define CFG_SYS_I2C_RTC_ADDR 0x68
#endif
#if defined(CONFIG_RTC_DS1307) && (CONFIG_SYS_I2C_SPEED > 100000)
@@ -212,13 +212,13 @@ void rtc_reset (void)
static
uchar rtc_read (uchar reg)
{
- return (i2c_reg_read (CONFIG_SYS_I2C_RTC_ADDR, reg));
+ return (i2c_reg_read (CFG_SYS_I2C_RTC_ADDR, reg));
}
static void rtc_write (uchar reg, uchar val)
{
- i2c_reg_write (CONFIG_SYS_I2C_RTC_ADDR, reg, val);
+ i2c_reg_write (CFG_SYS_I2C_RTC_ADDR, reg, val);
}
#endif /* !CONFIG_DM_RTC */
diff --git a/drivers/rtc/ds1337.c b/drivers/rtc/ds1337.c
index 486c01f9ba2..2c780ab8edf 100644
--- a/drivers/rtc/ds1337.c
+++ b/drivers/rtc/ds1337.c
@@ -184,13 +184,13 @@ void rtc_reset (void)
static
uchar rtc_read (uchar reg)
{
- return (i2c_reg_read (CONFIG_SYS_I2C_RTC_ADDR, reg));
+ return (i2c_reg_read (CFG_SYS_I2C_RTC_ADDR, reg));
}
static void rtc_write (uchar reg, uchar val)
{
- i2c_reg_write (CONFIG_SYS_I2C_RTC_ADDR, reg, val);
+ i2c_reg_write (CFG_SYS_I2C_RTC_ADDR, reg, val);
}
#else
static uchar rtc_read(struct udevice *dev, uchar reg)
diff --git a/drivers/rtc/ds1374.c b/drivers/rtc/ds1374.c
index 9f2647d707e..89442f9386b 100644
--- a/drivers/rtc/ds1374.c
+++ b/drivers/rtc/ds1374.c
@@ -29,8 +29,8 @@
#endif
/*---------------------------------------------------------------------*/
-#ifndef CONFIG_SYS_I2C_RTC_ADDR
-# define CONFIG_SYS_I2C_RTC_ADDR 0x68
+#ifndef CFG_SYS_I2C_RTC_ADDR
+# define CFG_SYS_I2C_RTC_ADDR 0x68
#endif
#if defined(CONFIG_RTC_DS1374) && (CONFIG_SYS_I2C_SPEED > 400000)
@@ -194,21 +194,21 @@ void rtc_reset (void){
*/
static uchar rtc_read (uchar reg)
{
- return (i2c_reg_read (CONFIG_SYS_I2C_RTC_ADDR, reg));
+ return (i2c_reg_read (CFG_SYS_I2C_RTC_ADDR, reg));
}
static void rtc_write(uchar reg, uchar val, bool set)
{
if (set == true) {
- val |= i2c_reg_read (CONFIG_SYS_I2C_RTC_ADDR, reg);
- i2c_reg_write (CONFIG_SYS_I2C_RTC_ADDR, reg, val);
+ val |= i2c_reg_read (CFG_SYS_I2C_RTC_ADDR, reg);
+ i2c_reg_write (CFG_SYS_I2C_RTC_ADDR, reg, val);
} else {
- val = i2c_reg_read (CONFIG_SYS_I2C_RTC_ADDR, reg) & ~val;
- i2c_reg_write (CONFIG_SYS_I2C_RTC_ADDR, reg, val);
+ val = i2c_reg_read (CFG_SYS_I2C_RTC_ADDR, reg) & ~val;
+ i2c_reg_write (CFG_SYS_I2C_RTC_ADDR, reg, val);
}
}
static void rtc_write_raw (uchar reg, uchar val)
{
- i2c_reg_write (CONFIG_SYS_I2C_RTC_ADDR, reg, val);
+ i2c_reg_write (CFG_SYS_I2C_RTC_ADDR, reg, val);
}
diff --git a/drivers/rtc/ds1556.c b/drivers/rtc/ds1556.c
deleted file mode 100644
index 687b32937a0..00000000000
--- a/drivers/rtc/ds1556.c
+++ /dev/null
@@ -1,179 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * (C) Copyright 2002
- * ARIO Data Networks, Inc. dchiu@ariodata.com
- *
- * modified for DS1556:
- * Frank Panno <fpanno@delphintech.com>, Delphin Technology AG
- *
- * Based on MontaVista DS1743 code and U-Boot mc146818 code
- */
-
-/*
- * Date & Time support for the DS1556 RTC
- */
-
-/*#define RTC_DEBUG */
-
-#include <common.h>
-#include <command.h>
-#include <rtc.h>
-
-#if defined(CONFIG_CMD_DATE)
-
-static uchar rtc_read( unsigned int addr );
-static void rtc_write( unsigned int addr, uchar val);
-
-#define RTC_BASE ( CONFIG_SYS_NVRAM_SIZE + CONFIG_SYS_NVRAM_BASE_ADDR )
-
-#define RTC_YEAR ( RTC_BASE + 0xf )
-#define RTC_MONTH ( RTC_BASE + 0xe )
-#define RTC_DAY_OF_MONTH ( RTC_BASE + 0xd )
-#define RTC_DAY_OF_WEEK ( RTC_BASE + 0xc )
-#define RTC_HOURS ( RTC_BASE + 0xb )
-#define RTC_MINUTES ( RTC_BASE + 0xa )
-#define RTC_SECONDS ( RTC_BASE + 0x9 )
-#define RTC_CENTURY ( RTC_BASE + 0x8 )
-
-#define RTC_CONTROLA RTC_CENTURY
-#define RTC_CONTROLB RTC_SECONDS
-#define RTC_CONTROLC RTC_BASE
-
-#define RTC_CA_WRITE 0x80
-#define RTC_CA_READ 0x40
-
-#define RTC_CB_OSC_DISABLE 0x80
-
-#define RTC_CC_BATTERY_FLAG 0x10
-#define RTC_CC_FREQ_TEST 0x40
-
-/* ------------------------------------------------------------------------- */
-
-int rtc_get( struct rtc_time *tmp )
-{
- uchar sec, min, hour;
- uchar mday, wday, mon, year;
-
- int century;
-
- uchar reg_a;
-
- reg_a = rtc_read( RTC_CONTROLA );
- /* lock clock registers for read */
- rtc_write( RTC_CONTROLA, ( reg_a | RTC_CA_READ ));
-
- sec = rtc_read( RTC_SECONDS );
- min = rtc_read( RTC_MINUTES );
- hour = rtc_read( RTC_HOURS );
- mday = rtc_read( RTC_DAY_OF_MONTH );
- wday = rtc_read( RTC_DAY_OF_WEEK );
- mon = rtc_read( RTC_MONTH );
- year = rtc_read( RTC_YEAR );
- century = rtc_read( RTC_CENTURY );
-
- /* unlock clock registers after read */
- rtc_write( RTC_CONTROLA, ( reg_a & ~RTC_CA_READ ));
-
-#ifdef RTC_DEBUG
- printf( "Get RTC year: %02x mon/cent: %02x mon: %02x mday: %02x wday: %02x "
- "hr: %02x min: %02x sec: %02x\n",
- year, century, mon, mday, wday,
- hour, min, sec );
-#endif
- tmp->tm_sec = bcd2bin( sec & 0x7F );
- tmp->tm_min = bcd2bin( min & 0x7F );
- tmp->tm_hour = bcd2bin( hour & 0x3F );
- tmp->tm_mday = bcd2bin( mday & 0x3F );
- tmp->tm_mon = bcd2bin( mon & 0x1F );
- tmp->tm_wday = bcd2bin( wday & 0x07 );
-
- /* glue year from century and year in century */
- tmp->tm_year = bcd2bin( year ) +
- ( bcd2bin( century & 0x3F ) * 100 );
-
- tmp->tm_yday = 0;
- tmp->tm_isdst= 0;
-#ifdef RTC_DEBUG
- printf( "Get DATE: %4d-%02d-%02d (wday=%d) TIME: %2d:%02d:%02d\n",
- tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,
- tmp->tm_hour, tmp->tm_min, tmp->tm_sec );
-#endif
- return 0;
-}
-
-int rtc_set( struct rtc_time *tmp )
-{
- uchar reg_a;
-#ifdef RTC_DEBUG
- printf( "Set DATE: %4d-%02d-%02d (wday=%d) TIME: %2d:%02d:%02d\n",
- tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,
- tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
-#endif
- /* lock clock registers for write */
- reg_a = rtc_read( RTC_CONTROLA );
- rtc_write( RTC_CONTROLA, ( reg_a | RTC_CA_WRITE ));
-
- rtc_write( RTC_MONTH, bin2bcd( tmp->tm_mon ));
-
- rtc_write( RTC_DAY_OF_WEEK, bin2bcd( tmp->tm_wday ));
- rtc_write( RTC_DAY_OF_MONTH, bin2bcd( tmp->tm_mday ));
- rtc_write( RTC_HOURS, bin2bcd( tmp->tm_hour ));
- rtc_write( RTC_MINUTES, bin2bcd( tmp->tm_min ));
- rtc_write( RTC_SECONDS, bin2bcd( tmp->tm_sec ));
-
- /* break year up into century and year in century */
- rtc_write( RTC_YEAR, bin2bcd( tmp->tm_year % 100 ));
- rtc_write( RTC_CENTURY, bin2bcd( tmp->tm_year / 100 ));
-
- /* unlock clock registers after read */
- rtc_write( RTC_CONTROLA, ( reg_a & ~RTC_CA_WRITE ));
-
- return 0;
-}
-
-void rtc_reset (void)
-{
- uchar reg_a, reg_b, reg_c;
-
- reg_a = rtc_read( RTC_CONTROLA );
- reg_b = rtc_read( RTC_CONTROLB );
-
- if ( reg_b & RTC_CB_OSC_DISABLE )
- {
- printf( "real-time-clock was stopped. Now starting...\n" );
- reg_a |= RTC_CA_WRITE;
- reg_b &= ~RTC_CB_OSC_DISABLE;
-
- rtc_write( RTC_CONTROLA, reg_a );
- rtc_write( RTC_CONTROLB, reg_b );
- }
-
- /* make sure read/write clock register bits are cleared */
- reg_a &= ~( RTC_CA_WRITE | RTC_CA_READ );
- rtc_write( RTC_CONTROLA, reg_a );
-
- reg_c = rtc_read( RTC_CONTROLC );
- if (( reg_c & RTC_CC_BATTERY_FLAG ) == 0 )
- printf( "RTC battery low. Clock setting may not be reliable.\n" );
-}
-
-/* ------------------------------------------------------------------------- */
-
-static uchar rtc_read( unsigned int addr )
-{
- uchar val = *(volatile unsigned char*)(addr);
-#ifdef RTC_DEBUG
- printf( "rtc_read: %x:%x\n", addr, val );
-#endif
- return( val );
-}
-
-static void rtc_write( unsigned int addr, uchar val )
-{
-#ifdef RTC_DEBUG
- printf( "rtc_write: %x:%x\n", addr, val );
-#endif
- *(volatile unsigned char*)(addr) = val;
-}
-
-#endif
diff --git a/drivers/rtc/ds164x.c b/drivers/rtc/ds164x.c
deleted file mode 100644
index f8707892e71..00000000000
--- a/drivers/rtc/ds164x.c
+++ /dev/null
@@ -1,171 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * (C) Copyright 2002
- * ARIO Data Networks, Inc. dchiu@ariodata.com
- *
- * modified for DS164x:
- * The LEOX team <team@leox.org>, http://www.leox.org
- *
- * Based on MontaVista DS1743 code and U-Boot mc146818 code
- */
-
-/*
- * Date & Time support for the DS164x RTC
- */
-
-/* #define RTC_DEBUG */
-
-#include <common.h>
-#include <command.h>
-#include <rtc.h>
-
-
-static uchar rtc_read(unsigned int addr );
-static void rtc_write(unsigned int addr, uchar val);
-
-#define RTC_EPOCH 2000 /* century */
-
-/*
- * DS164x registers layout
- */
-#define RTC_BASE ( CONFIG_SYS_NVRAM_BASE_ADDR + CONFIG_SYS_NVRAM_SIZE )
-
-#define RTC_YEAR ( RTC_BASE + 0x07 )
-#define RTC_MONTH ( RTC_BASE + 0x06 )
-#define RTC_DAY_OF_MONTH ( RTC_BASE + 0x05 )
-#define RTC_DAY_OF_WEEK ( RTC_BASE + 0x04 )
-#define RTC_HOURS ( RTC_BASE + 0x03 )
-#define RTC_MINUTES ( RTC_BASE + 0x02 )
-#define RTC_SECONDS ( RTC_BASE + 0x01 )
-#define RTC_CONTROL ( RTC_BASE + 0x00 )
-
-#define RTC_CONTROLA RTC_CONTROL /* W=bit6, R=bit5 */
-#define RTC_CA_WRITE 0x80
-#define RTC_CA_READ 0x40
-#define RTC_CONTROLB RTC_SECONDS /* OSC=bit7 */
-#define RTC_CB_OSC_DISABLE 0x80
-#define RTC_CONTROLC RTC_DAY_OF_WEEK /* FT=bit6 */
-#define RTC_CC_FREQ_TEST 0x40
-
-/* ------------------------------------------------------------------------- */
-
-int rtc_get( struct rtc_time *tmp )
-{
- uchar sec, min, hour;
- uchar mday, wday, mon, year;
-
- uchar reg_a;
-
- reg_a = rtc_read( RTC_CONTROLA );
- /* lock clock registers for read */
- rtc_write( RTC_CONTROLA, ( reg_a | RTC_CA_READ ));
-
- sec = rtc_read( RTC_SECONDS );
- min = rtc_read( RTC_MINUTES );
- hour = rtc_read( RTC_HOURS );
- mday = rtc_read( RTC_DAY_OF_MONTH );
- wday = rtc_read( RTC_DAY_OF_WEEK );
- mon = rtc_read( RTC_MONTH );
- year = rtc_read( RTC_YEAR );
-
- /* unlock clock registers after read */
- rtc_write( RTC_CONTROLA, ( reg_a & ~RTC_CA_READ ));
-
-#ifdef RTC_DEBUG
- printf( "Get RTC year: %02x mon: %02x mday: %02x wday: %02x "
- "hr: %02x min: %02x sec: %02x\n",
- year, mon, mday, wday,
- hour, min, sec );
-#endif
- tmp->tm_sec = bcd2bin( sec & 0x7F );
- tmp->tm_min = bcd2bin( min & 0x7F );
- tmp->tm_hour = bcd2bin( hour & 0x3F );
- tmp->tm_mday = bcd2bin( mday & 0x3F );
- tmp->tm_mon = bcd2bin( mon & 0x1F );
- tmp->tm_wday = bcd2bin( wday & 0x07 );
-
- /* glue year in century (2000) */
- tmp->tm_year = bcd2bin( year ) + RTC_EPOCH;
-
- tmp->tm_yday = 0;
- tmp->tm_isdst= 0;
-#ifdef RTC_DEBUG
- printf( "Get DATE: %4d-%02d-%02d (wday=%d) TIME: %2d:%02d:%02d\n",
- tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,
- tmp->tm_hour, tmp->tm_min, tmp->tm_sec );
-#endif
-
- return 0;
-}
-
-int rtc_set( struct rtc_time *tmp )
-{
- uchar reg_a;
-
-#ifdef RTC_DEBUG
- printf( "Set DATE: %4d-%02d-%02d (wday=%d) TIME: %2d:%02d:%02d\n",
- tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,
- tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
-#endif
- /* lock clock registers for write */
- reg_a = rtc_read( RTC_CONTROLA );
- rtc_write( RTC_CONTROLA, ( reg_a | RTC_CA_WRITE ));
-
- rtc_write( RTC_MONTH, bin2bcd( tmp->tm_mon ));
-
- rtc_write( RTC_DAY_OF_WEEK, bin2bcd( tmp->tm_wday ));
- rtc_write( RTC_DAY_OF_MONTH, bin2bcd( tmp->tm_mday ));
- rtc_write( RTC_HOURS, bin2bcd( tmp->tm_hour ));
- rtc_write( RTC_MINUTES, bin2bcd( tmp->tm_min ));
- rtc_write( RTC_SECONDS, bin2bcd( tmp->tm_sec ));
-
- /* break year in century */
- rtc_write( RTC_YEAR, bin2bcd( tmp->tm_year % 100 ));
-
- /* unlock clock registers after read */
- rtc_write( RTC_CONTROLA, ( reg_a & ~RTC_CA_WRITE ));
-
- return 0;
-}
-
-void rtc_reset (void)
-{
- uchar reg_a, reg_b;
-
- reg_a = rtc_read( RTC_CONTROLA );
- reg_b = rtc_read( RTC_CONTROLB );
-
- if ( reg_b & RTC_CB_OSC_DISABLE )
- {
- printf( "real-time-clock was stopped. Now starting...\n" );
- reg_a |= RTC_CA_WRITE;
- reg_b &= ~RTC_CB_OSC_DISABLE;
-
- rtc_write( RTC_CONTROLA, reg_a );
- rtc_write( RTC_CONTROLB, reg_b );
- }
-
- /* make sure read/write clock register bits are cleared */
- reg_a &= ~( RTC_CA_WRITE | RTC_CA_READ );
- rtc_write( RTC_CONTROLA, reg_a );
-}
-
-/* ------------------------------------------------------------------------- */
-
-static uchar rtc_read( unsigned int addr )
-{
- uchar val = *(volatile unsigned char*)(addr);
-
-#ifdef RTC_DEBUG
- printf( "rtc_read: %x:%x\n", addr, val );
-#endif
- return( val );
-}
-
-static void rtc_write( unsigned int addr, uchar val )
-{
-#ifdef RTC_DEBUG
- printf( "rtc_write: %x:%x\n", addr, val );
-#endif
- *(volatile unsigned char*)(addr) = val;
-}
diff --git a/drivers/rtc/ds174x.c b/drivers/rtc/ds174x.c
deleted file mode 100644
index 94f943d97a5..00000000000
--- a/drivers/rtc/ds174x.c
+++ /dev/null
@@ -1,172 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * (C) Copyright 2001
- * ARIO Data Networks, Inc. dchiu@ariodata.com
- *
- * Based on MontaVista DS1743 code and U-Boot mc146818 code
- */
-
-/*
- * Date & Time support for the DS174x RTC
- */
-
-/*#define DEBUG*/
-
-#include <common.h>
-#include <command.h>
-#include <rtc.h>
-
-static uchar rtc_read( unsigned int addr );
-static void rtc_write( unsigned int addr, uchar val);
-
-#define RTC_BASE ( CONFIG_SYS_NVRAM_SIZE + CONFIG_SYS_NVRAM_BASE_ADDR )
-
-#define RTC_YEAR ( RTC_BASE + 7 )
-#define RTC_MONTH ( RTC_BASE + 6 )
-#define RTC_DAY_OF_MONTH ( RTC_BASE + 5 )
-#define RTC_DAY_OF_WEEK ( RTC_BASE + 4 )
-#define RTC_HOURS ( RTC_BASE + 3 )
-#define RTC_MINUTES ( RTC_BASE + 2 )
-#define RTC_SECONDS ( RTC_BASE + 1 )
-#define RTC_CENTURY ( RTC_BASE + 0 )
-
-#define RTC_CONTROLA RTC_CENTURY
-#define RTC_CONTROLB RTC_SECONDS
-#define RTC_CONTROLC RTC_DAY_OF_WEEK
-
-#define RTC_CA_WRITE 0x80
-#define RTC_CA_READ 0x40
-
-#define RTC_CB_OSC_DISABLE 0x80
-
-#define RTC_CC_BATTERY_FLAG 0x80
-#define RTC_CC_FREQ_TEST 0x40
-
-/* ------------------------------------------------------------------------- */
-
-int rtc_get( struct rtc_time *tmp )
-{
- uchar sec, min, hour;
- uchar mday, wday, mon, year;
-
- int century;
-
- uchar reg_a;
-
- reg_a = rtc_read( RTC_CONTROLA );
- /* lock clock registers for read */
- rtc_write( RTC_CONTROLA, ( reg_a | RTC_CA_READ ));
-
- sec = rtc_read( RTC_SECONDS );
- min = rtc_read( RTC_MINUTES );
- hour = rtc_read( RTC_HOURS );
- mday = rtc_read( RTC_DAY_OF_MONTH );
- wday = rtc_read( RTC_DAY_OF_WEEK );
- mon = rtc_read( RTC_MONTH );
- year = rtc_read( RTC_YEAR );
- century = rtc_read( RTC_CENTURY );
-
- /* unlock clock registers after read */
- rtc_write( RTC_CONTROLA, ( reg_a & ~RTC_CA_READ ));
-
-#ifdef RTC_DEBUG
- printf( "Get RTC year: %02x mon/cent: %02x mday: %02x wday: %02x "
- "hr: %02x min: %02x sec: %02x\n",
- year, mon_cent, mday, wday,
- hour, min, sec );
-#endif
- tmp->tm_sec = bcd2bin( sec & 0x7F );
- tmp->tm_min = bcd2bin( min & 0x7F );
- tmp->tm_hour = bcd2bin( hour & 0x3F );
- tmp->tm_mday = bcd2bin( mday & 0x3F );
- tmp->tm_mon = bcd2bin( mon & 0x1F );
- tmp->tm_wday = bcd2bin( wday & 0x07 );
-
- /* glue year from century and year in century */
- tmp->tm_year = bcd2bin( year ) +
- ( bcd2bin( century & 0x3F ) * 100 );
-
- tmp->tm_yday = 0;
- tmp->tm_isdst= 0;
-#ifdef RTC_DEBUG
- printf( "Get DATE: %4d-%02d-%02d (wday=%d) TIME: %2d:%02d:%02d\n",
- tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,
- tmp->tm_hour, tmp->tm_min, tmp->tm_sec );
-#endif
- return 0;
-}
-
-int rtc_set( struct rtc_time *tmp )
-{
- uchar reg_a;
-#ifdef RTC_DEBUG
- printf( "Set DATE: %4d-%02d-%02d (wday=%d) TIME: %2d:%02d:%02d\n",
- tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,
- tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
-#endif
- /* lock clock registers for write */
- reg_a = rtc_read( RTC_CONTROLA );
- rtc_write( RTC_CONTROLA, ( reg_a | RTC_CA_WRITE ));
-
- rtc_write( RTC_MONTH, bin2bcd( tmp->tm_mon ));
-
- rtc_write( RTC_DAY_OF_WEEK, bin2bcd( tmp->tm_wday ));
- rtc_write( RTC_DAY_OF_MONTH, bin2bcd( tmp->tm_mday ));
- rtc_write( RTC_HOURS, bin2bcd( tmp->tm_hour ));
- rtc_write( RTC_MINUTES, bin2bcd( tmp->tm_min ));
- rtc_write( RTC_SECONDS, bin2bcd( tmp->tm_sec ));
-
- /* break year up into century and year in century */
- rtc_write( RTC_YEAR, bin2bcd( tmp->tm_year % 100 ));
- rtc_write( RTC_CENTURY, bin2bcd( tmp->tm_year / 100 ));
-
- /* unlock clock registers after read */
- rtc_write( RTC_CONTROLA, ( reg_a & ~RTC_CA_WRITE ));
-
- return 0;
-}
-
-void rtc_reset (void)
-{
- uchar reg_a, reg_b, reg_c;
-
- reg_a = rtc_read( RTC_CONTROLA );
- reg_b = rtc_read( RTC_CONTROLB );
-
- if ( reg_b & RTC_CB_OSC_DISABLE )
- {
- printf( "real-time-clock was stopped. Now starting...\n" );
- reg_a |= RTC_CA_WRITE;
- reg_b &= ~RTC_CB_OSC_DISABLE;
-
- rtc_write( RTC_CONTROLA, reg_a );
- rtc_write( RTC_CONTROLB, reg_b );
- }
-
- /* make sure read/write clock register bits are cleared */
- reg_a &= ~( RTC_CA_WRITE | RTC_CA_READ );
- rtc_write( RTC_CONTROLA, reg_a );
-
- reg_c = rtc_read( RTC_CONTROLC );
- if (( reg_c & RTC_CC_BATTERY_FLAG ) == 0 )
- printf( "RTC battery low. Clock setting may not be reliable.\n" );
-}
-
-/* ------------------------------------------------------------------------- */
-
-static uchar rtc_read( unsigned int addr )
-{
- uchar val = in8( addr );
-#ifdef RTC_DEBUG
- printf( "rtc_read: %x:%x\n", addr, val );
-#endif
- return( val );
-}
-
-static void rtc_write( unsigned int addr, uchar val )
-{
-#ifdef RTC_DEBUG
- printf( "rtc_write: %x:%x\n", addr, val );
-#endif
- out8( addr, val );
-}
diff --git a/drivers/rtc/ds3231.c b/drivers/rtc/ds3231.c
index 5b72e86768a..bd32ed2dbf9 100644
--- a/drivers/rtc/ds3231.c
+++ b/drivers/rtc/ds3231.c
@@ -164,13 +164,13 @@ void rtc_enable_32khz_output(void)
static
uchar rtc_read (uchar reg)
{
- return (i2c_reg_read (CONFIG_SYS_I2C_RTC_ADDR, reg));
+ return (i2c_reg_read (CFG_SYS_I2C_RTC_ADDR, reg));
}
static void rtc_write (uchar reg, uchar val)
{
- i2c_reg_write (CONFIG_SYS_I2C_RTC_ADDR, reg, val);
+ i2c_reg_write (CFG_SYS_I2C_RTC_ADDR, reg, val);
}
#else
static int ds3231_rtc_get(struct udevice *dev, struct rtc_time *tmp)
diff --git a/drivers/rtc/m41t62.c b/drivers/rtc/m41t62.c
index 8be532c3e31..66a0faa0ecf 100644
--- a/drivers/rtc/m41t62.c
+++ b/drivers/rtc/m41t62.c
@@ -319,7 +319,7 @@ int rtc_get(struct rtc_time *tm)
{
u8 buf[M41T62_DATETIME_REG_SIZE];
- i2c_read(CONFIG_SYS_I2C_RTC_ADDR, 0, 1, buf, M41T62_DATETIME_REG_SIZE);
+ i2c_read(CFG_SYS_I2C_RTC_ADDR, 0, 1, buf, M41T62_DATETIME_REG_SIZE);
m41t62_update_rtc_time(tm, buf);
return 0;
@@ -329,10 +329,10 @@ int rtc_set(struct rtc_time *tm)
{
u8 buf[M41T62_DATETIME_REG_SIZE];
- i2c_read(CONFIG_SYS_I2C_RTC_ADDR, 0, 1, buf, M41T62_DATETIME_REG_SIZE);
+ i2c_read(CFG_SYS_I2C_RTC_ADDR, 0, 1, buf, M41T62_DATETIME_REG_SIZE);
m41t62_set_rtc_buf(tm, buf);
- if (i2c_write(CONFIG_SYS_I2C_RTC_ADDR, 0, 1, buf,
+ if (i2c_write(CFG_SYS_I2C_RTC_ADDR, 0, 1, buf,
M41T62_DATETIME_REG_SIZE)) {
printf("I2C write failed in %s()\n", __func__);
return -1;
@@ -349,8 +349,8 @@ void rtc_reset(void)
* M41T82: Make sure HT (Halt Update) bit is cleared.
* This bit is 0 in M41T62 so its save to clear it always.
*/
- i2c_read(CONFIG_SYS_I2C_RTC_ADDR, M41T62_REG_ALARM_HOUR, 1, &val, 1);
+ i2c_read(CFG_SYS_I2C_RTC_ADDR, M41T62_REG_ALARM_HOUR, 1, &val, 1);
val &= ~M41T80_ALHOUR_HT;
- i2c_write(CONFIG_SYS_I2C_RTC_ADDR, M41T62_REG_ALARM_HOUR, 1, &val, 1);
+ i2c_write(CFG_SYS_I2C_RTC_ADDR, M41T62_REG_ALARM_HOUR, 1, &val, 1);
}
#endif /* CONFIG_DM_RTC */
diff --git a/drivers/rtc/max6900.c b/drivers/rtc/max6900.c
index 11928839dcf..e03a87f94da 100644
--- a/drivers/rtc/max6900.c
+++ b/drivers/rtc/max6900.c
@@ -16,20 +16,20 @@
#include <i2c.h>
#include <linux/delay.h>
-#ifndef CONFIG_SYS_I2C_RTC_ADDR
-#define CONFIG_SYS_I2C_RTC_ADDR 0x50
+#ifndef CFG_SYS_I2C_RTC_ADDR
+#define CFG_SYS_I2C_RTC_ADDR 0x50
#endif
/* ------------------------------------------------------------------------- */
static uchar rtc_read (uchar reg)
{
- return (i2c_reg_read (CONFIG_SYS_I2C_RTC_ADDR, reg));
+ return (i2c_reg_read (CFG_SYS_I2C_RTC_ADDR, reg));
}
static void rtc_write (uchar reg, uchar val)
{
- i2c_reg_write (CONFIG_SYS_I2C_RTC_ADDR, reg, val);
+ i2c_reg_write (CFG_SYS_I2C_RTC_ADDR, reg, val);
udelay(2500);
}
diff --git a/drivers/rtc/pcf8563.c b/drivers/rtc/pcf8563.c
index 19faefba7c8..91a412440b8 100644
--- a/drivers/rtc/pcf8563.c
+++ b/drivers/rtc/pcf8563.c
@@ -111,12 +111,12 @@ void rtc_reset (void)
static uchar rtc_read (uchar reg)
{
- return (i2c_reg_read (CONFIG_SYS_I2C_RTC_ADDR, reg));
+ return (i2c_reg_read (CFG_SYS_I2C_RTC_ADDR, reg));
}
static void rtc_write (uchar reg, uchar val)
{
- i2c_reg_write (CONFIG_SYS_I2C_RTC_ADDR, reg, val);
+ i2c_reg_write (CFG_SYS_I2C_RTC_ADDR, reg, val);
}
#else
static int pcf8563_rtc_get(struct udevice *dev, struct rtc_time *tmp)
diff --git a/drivers/rtc/pt7c4338.c b/drivers/rtc/pt7c4338.c
index c987494b669..e0a7bd3662f 100644
--- a/drivers/rtc/pt7c4338.c
+++ b/drivers/rtc/pt7c4338.c
@@ -53,12 +53,12 @@
/****** Helper functions ****************************************/
static u8 rtc_read(u8 reg)
{
- return i2c_reg_read(CONFIG_SYS_I2C_RTC_ADDR, reg);
+ return i2c_reg_read(CFG_SYS_I2C_RTC_ADDR, reg);
}
static void rtc_write(u8 reg, u8 val)
{
- i2c_reg_write(CONFIG_SYS_I2C_RTC_ADDR, reg, val);
+ i2c_reg_write(CFG_SYS_I2C_RTC_ADDR, reg, val);
}
/****************************************************************/
diff --git a/drivers/rtc/rs5c372.c b/drivers/rtc/rs5c372.c
index 97ec001aef5..6b1c23ca5db 100644
--- a/drivers/rtc/rs5c372.c
+++ b/drivers/rtc/rs5c372.c
@@ -39,8 +39,8 @@ static unsigned int rtc_debug = DEBUG;
#define rtc_debug 0 /* gcc will remove all the debug code for us */
#endif
-#ifndef CONFIG_SYS_I2C_RTC_ADDR
-#define CONFIG_SYS_I2C_RTC_ADDR 0x32
+#ifndef CFG_SYS_I2C_RTC_ADDR
+#define CFG_SYS_I2C_RTC_ADDR 0x32
#endif
#define RS5C372_RAM_SIZE 0x10
@@ -63,7 +63,7 @@ rs5c372_readram(unsigned char *buf, int len)
{
int ret;
- ret = i2c_read(CONFIG_SYS_I2C_RTC_ADDR, 0, 0, buf, len);
+ ret = i2c_read(CFG_SYS_I2C_RTC_ADDR, 0, 0, buf, len);
if (ret != 0) {
printf("%s: failed to read\n", __FUNCTION__);
return ret;
@@ -103,7 +103,7 @@ rs5c372_enable(void)
buf[14] = 0; /* reg. 13 */
buf[15] = 0; /* reg. 14 */
buf[16] = USE_24HOUR_MODE; /* reg. 15 */
- ret = i2c_write(CONFIG_SYS_I2C_RTC_ADDR, 0, 0, buf, RS5C372_RAM_SIZE+1);
+ ret = i2c_write(CFG_SYS_I2C_RTC_ADDR, 0, 0, buf, RS5C372_RAM_SIZE+1);
if (ret != 0) {
printf("%s: failed\n", __FUNCTION__);
return;
@@ -204,7 +204,7 @@ int rtc_set (struct rtc_time *tmp)
memset(buf, 0, sizeof(buf));
/* only read register 15 */
- ret = i2c_read(CONFIG_SYS_I2C_RTC_ADDR, 0, 0, buf, 1);
+ ret = i2c_read(CFG_SYS_I2C_RTC_ADDR, 0, 0, buf, 1);
if (ret == 0) {
/* need to save register 15 */
@@ -233,7 +233,7 @@ int rtc_set (struct rtc_time *tmp)
printf("WARNING: year should be between 1970 and 2069!\n");
buf[7] = bin2bcd(tmp->tm_year % 100);
- ret = i2c_write(CONFIG_SYS_I2C_RTC_ADDR, 0, 0, buf, 8);
+ ret = i2c_write(CFG_SYS_I2C_RTC_ADDR, 0, 0, buf, 8);
if (ret != 0) {
printf("rs5c372_set_datetime(), i2c_master_send() returned %d\n",ret);
return -1;
diff --git a/drivers/rtc/rx8010sj.c b/drivers/rtc/rx8010sj.c
index d513561b820..bf93b557748 100644
--- a/drivers/rtc/rx8010sj.c
+++ b/drivers/rtc/rx8010sj.c
@@ -33,8 +33,8 @@
#endif
/*---------------------------------------------------------------------*/
-#ifndef CONFIG_SYS_I2C_RTC_ADDR
-# define CONFIG_SYS_I2C_RTC_ADDR 0x32
+#ifndef CFG_SYS_I2C_RTC_ADDR
+# define CFG_SYS_I2C_RTC_ADDR 0x32
#endif
/*
@@ -313,7 +313,7 @@ static int rx8010sj_rtc_reset(DEV_TYPE *dev)
int rtc_get(struct rtc_time *tm)
{
struct ludevice dev = {
- .chip = CONFIG_SYS_I2C_RTC_ADDR,
+ .chip = CFG_SYS_I2C_RTC_ADDR,
};
return rx8010sj_rtc_get(&dev, tm);
@@ -322,7 +322,7 @@ int rtc_get(struct rtc_time *tm)
int rtc_set(struct rtc_time *tm)
{
struct ludevice dev = {
- .chip = CONFIG_SYS_I2C_RTC_ADDR,
+ .chip = CFG_SYS_I2C_RTC_ADDR,
};
return rx8010sj_rtc_set(&dev, tm);
@@ -331,7 +331,7 @@ int rtc_set(struct rtc_time *tm)
void rtc_reset(void)
{
struct ludevice dev = {
- .chip = CONFIG_SYS_I2C_RTC_ADDR,
+ .chip = CFG_SYS_I2C_RTC_ADDR,
};
rx8010sj_rtc_reset(&dev);
@@ -340,7 +340,7 @@ void rtc_reset(void)
void rtc_init(void)
{
struct ludevice dev = {
- .chip = CONFIG_SYS_I2C_RTC_ADDR,
+ .chip = CFG_SYS_I2C_RTC_ADDR,
};
rx8010sj_rtc_init(&dev);
diff --git a/drivers/rtc/x1205.c b/drivers/rtc/x1205.c
index ce23427b174..4a8d1c5903f 100644
--- a/drivers/rtc/x1205.c
+++ b/drivers/rtc/x1205.c
@@ -77,7 +77,7 @@
static void rtc_write(int reg, u8 val)
{
- i2c_write(CONFIG_SYS_I2C_RTC_ADDR, reg, 2, &val, 1);
+ i2c_write(CFG_SYS_I2C_RTC_ADDR, reg, 2, &val, 1);
}
/*
@@ -89,7 +89,7 @@ int rtc_get(struct rtc_time *tm)
{
u8 buf[8];
- i2c_read(CONFIG_SYS_I2C_RTC_ADDR, X1205_CCR_BASE, 2, buf, 8);
+ i2c_read(CFG_SYS_I2C_RTC_ADDR, X1205_CCR_BASE, 2, buf, 8);
debug("%s: raw read data - sec=%02x, min=%02x, hr=%02x, "
"mday=%02x, mon=%02x, year=%02x, wday=%02x, y2k=%02x\n",