[U-Boot] [PATCH][v0] RTC driver for PT7C4338 chip.

Heiko Schocher hs at denx.de
Wed Oct 20 11:28:12 CEST 2010


Hello Priyanka,

Priyanka Jain wrote:
> PT7C4338 chip is manufactured by Pericom Technology Inc.
> It is a serial real-time clock which provides:
> 1)Low-power clock/calendar.
> 2)Programmable square-wave output.
> It has 56 bytes of nonvolatile RAM.
> 
> Freescale P1010RDB uses PT7C4338 as RTC.
> 
> Signed-off-by: Priyanka Jain <Priyanka.Jain at freescale.com>
> Acked-by: Timur Tabi <timur at freescale.com>
> ---
>  drivers/rtc/Makefile   |    1 +
>  drivers/rtc/pt7c4338.c |  161 ++++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 162 insertions(+), 0 deletions(-)
>  create mode 100644 drivers/rtc/pt7c4338.c

just some nitpicking comments.

> diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile
> index 772a49a..a6dda91 100644
> --- a/drivers/rtc/Makefile
> +++ b/drivers/rtc/Makefile
> @@ -62,6 +62,7 @@ COBJS-$(CONFIG_RTC_RX8025) += rx8025.o
>  COBJS-$(CONFIG_RTC_S3C24X0) += s3c24x0_rtc.o
>  COBJS-$(CONFIG_RTC_S3C44B0) += s3c44b0_rtc.o
>  COBJS-$(CONFIG_RTC_X1205) += x1205.o
> +COBJS-$(CONFIG_RTC_PT7C4338) += pt7c4338.o

please keep lists sorted.

>  COBJS	:= $(sort $(COBJS-y))
>  SRCS	:= $(COBJS:.o=.c)
> diff --git a/drivers/rtc/pt7c4338.c b/drivers/rtc/pt7c4338.c
> new file mode 100644
> index 0000000..5ce2afc
> --- /dev/null
> +++ b/drivers/rtc/pt7c4338.c
> @@ -0,0 +1,161 @@
> +/*
> + * Copyright 2010 Freescale Semiconductor, Inc.
> + *
> + * Author:	Priyanka Jain <Priyanka.Jain at freescale.com>
> + *
> + * See file CREDITS for list of people who contributed to this
> + * project.
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License, or (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software
> + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
> + * MA 02111-1307 USA
> + */
> +
> +

only one new line.

> +/*
> + * This file provides Date & Time support (no alarms) for PT7C4338 chip.
> + *
> + * This file is based on drivers/rtc/ds1337.c
> + *
> + * PT7C4338 chip is manufactured by Pericom Technology Inc.
> + * It is a serial real-time clock which provides
> + * 1)Low-power clock/calendar.
> + * 2)Programmable square-wave output.
> + * It has 56 bytes of nonvolatile RAM.
> + *
> + * Freescale P1010RDB uses PT7C4338 as RTC.
> + */
> +
> +

here too, only one new line.

> +#include <common.h>
> +#include <command.h>
> +#include <rtc.h>
> +#include <i2c.h>
> +
> +

and here too.

> +/* RTC register addresses */
> +#define RTC_SEC_REG_ADDR        0x0
> +#define RTC_MIN_REG_ADDR        0x1
> +#define RTC_HR_REG_ADDR         0x2
> +#define RTC_DAY_REG_ADDR        0x3
> +#define RTC_DATE_REG_ADDR       0x4
> +#define RTC_MON_REG_ADDR        0x5
> +#define RTC_YR_REG_ADDR         0x6
> +#define RTC_CTL_STAT_REG_ADDR   0x7
> +
> +/* RTC second register address bit */
> +#define RTC_SEC_BIT_CH		0x80	/* Clock Halt (in Register 0) */
> +
> +/* RTC control and status register bits */
> +#define RTC_CTL_STAT_BIT_RS0    0x1	/* Rate select 0 */
> +#define RTC_CTL_STAT_BIT_RS1    0x2	/* Rate select 1 */
> +#define RTC_CTL_STAT_BIT_SQWE   0x10	/* Square Wave Enable */
> +#define RTC_CTL_STAT_BIT_OSF    0x20	/* Oscillator Stop Flag */
> +#define RTC_CTL_STAT_BIT_OUT    0x80	/* Output Level Control */
> +
> +/* RTC reset value */
> +#define RTC_PT7C4338_RESET_VAL \
> +	(RTC_CTL_STAT_BIT_RS0 | RTC_CTL_STAT_BIT_RS1 | RTC_CTL_STAT_BIT_OUT)
> +
> +

and here too.

> +/****** Helper functions ****************************************/
> +

no new line needed.

> +static u8 rtc_read(u8 reg)
> +{
> +	return i2c_reg_read(CONFIG_SYS_I2C_RTC_ADDR, reg);
> +}
[...]

bye,
Heiko
-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany


More information about the U-Boot mailing list