[PATCH] Add powerpc get/set_rtc_time interface to new generic rtc class

Kumar Gala galak at kernel.crashing.org
Wed Sep 27 00:14:15 EST 2006


On Sep 25, 2006, at 10:13 PM, Benjamin Herrenschmidt wrote:

> On Mon, 2006-09-25 at 21:55 -0500, Kim Phillips wrote:
>> Add powerpc get/set_rtc_time interface to new generic rtc class. This
>> abstracts rtc chip specific code from the platform code for rtc- 
>> over-i2c
>> platforms.  Specific RTC chip support is now configured under
>> Device Drivers -> Real Time Clock. Setting time of day from the RTC
>> on startup is also configurable.
>>
>> Currently, the only default config in powerpc arch is the 8349 itx.
>> Other platforms wanting to consolidate code may also use this.
>>
>> Signed-off-by: Kim Phillips <kim.phillips at freescale.com>
>
> I think we should only get that in if we also adapt the various  
> platform
> RTC code to be in drivers/rtc ... right now, enabling that option will
> just break everybody.

Maybe just drop the init call for now and let people migrate over to  
using this and moving the drivers over to drivers/rtc which aren't  
supported there.

- k

>> ---
>>  arch/powerpc/kernel/time.c |   44 ++++++++++++++++++++++++++++++++ 
>> ++++++++++++
>>  1 files changed, 44 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
>> index 7a3c3f7..a231b6d 100644
>> --- a/arch/powerpc/kernel/time.c
>> +++ b/arch/powerpc/kernel/time.c
>> @@ -1048,6 +1048,50 @@ void __init time_init(void)
>>  	set_dec(tb_ticks_per_jiffy);
>>  }
>>
>> +#ifdef CONFIG_RTC_CLASS
>> +int set_rtc_class_time(struct rtc_time *tm)
>> +{
>> +	int err;
>> +	struct class_device *class_dev =
>> +		rtc_class_open(CONFIG_RTC_HCTOSYS_DEVICE);
>> +
>> +	if (class_dev == NULL)
>> +		return -ENODEV;
>> +
>> +	err = rtc_set_time(class_dev, tm);
>> +
>> +	rtc_class_close(class_dev);
>> +
>> +	return 0;
>> +}
>> +
>> +void get_rtc_class_time(struct rtc_time *tm)
>> +{
>> +	int err;
>> +	struct class_device *class_dev =
>> +		rtc_class_open(CONFIG_RTC_HCTOSYS_DEVICE);
>> +
>> +	if (class_dev == NULL)
>> +		return;
>> +
>> +	err = rtc_read_time(class_dev, tm);
>> +
>> +	rtc_class_close(class_dev);
>> +
>> +	return;
>> +}
>> +
>> +static int __init rtc_class_hookup(void)
>> +{
>> +	ppc_md.get_rtc_time = get_rtc_class_time;
>> +	ppc_md.set_rtc_time = set_rtc_class_time;
>> +
>> +	return 0;
>> +}
>> +
>> +late_initcall(rtc_class_hookup);
>> +#endif /* CONFIG_RTC_CLASS */
>> +
>>
>>  #define FEBRUARY	2
>>  #define	STARTOFTIME	1970
>
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev at ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev




More information about the Linuxppc-dev mailing list