
#include <common.h>

#include "diag.h"

int rtc_test(void)
{
	int hour1, minute1, second1;
	int hour2, minute2, second2;
	int ret_val = 0;

	printf("\tRTC test ");

	diag_get_rtc_time(&hour1, &minute1, &second1);
	
	/* FIXME: Observation says RTC requires additional udelay(1) to 
	 * read proper value
	 */
	udelay(1000000); 

	/* Set a time that changes all the digits after a second */
	diag_set_rtc_time(9, 59, 59);

	/* Wait for 1 second */
	/* Observation says RTC takes additional one second when new time is set */
	udelay(2000000); 

	diag_get_rtc_time(&hour2, &minute2, &second2);

	if(hour2   != 10 ||
	   minute2 != 0  ||
	   second2 >  1) 
	{
		/* Second should be 0 or max 1 (if error in udealy), not > 1 */

		printf("FAILED\n");
		printf("\t\tGot:      hour %02d minute %02d second %02d\n", hour2, minute2, second2);
		printf("\t\tExpected: hour 10 minute 00 second 00\n");
		ret_val = 1;
	}
	else
	{
		printf("\t\t\t\t\t PASSED\n");
	}

	/* As incrementing a second here will require complex calculation,
	 * we will ignore that passed second */
	diag_set_rtc_time(hour1, minute1, second1);

	return ret_val;
}
