162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci *	DEC platform devices.
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci *	Copyright (c) 2014  Maciej W. Rozycki
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#include <linux/ioport.h>
962306a36Sopenharmony_ci#include <linux/kernel.h>
1062306a36Sopenharmony_ci#include <linux/mc146818rtc.h>
1162306a36Sopenharmony_ci#include <linux/platform_device.h>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cistatic struct resource dec_rtc_resources[] = {
1462306a36Sopenharmony_ci	{
1562306a36Sopenharmony_ci		.name = "rtc",
1662306a36Sopenharmony_ci		.flags = IORESOURCE_MEM,
1762306a36Sopenharmony_ci	},
1862306a36Sopenharmony_ci};
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_cistatic struct cmos_rtc_board_info dec_rtc_info = {
2162306a36Sopenharmony_ci	.flags = CMOS_RTC_FLAGS_NOFREQ,
2262306a36Sopenharmony_ci	.address_space = 64,
2362306a36Sopenharmony_ci};
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_cistatic struct platform_device dec_rtc_device = {
2662306a36Sopenharmony_ci	.name = "rtc_cmos",
2762306a36Sopenharmony_ci	.id = PLATFORM_DEVID_NONE,
2862306a36Sopenharmony_ci	.dev.platform_data = &dec_rtc_info,
2962306a36Sopenharmony_ci	.resource = dec_rtc_resources,
3062306a36Sopenharmony_ci	.num_resources = ARRAY_SIZE(dec_rtc_resources),
3162306a36Sopenharmony_ci};
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_cistatic int __init dec_add_devices(void)
3462306a36Sopenharmony_ci{
3562306a36Sopenharmony_ci	dec_rtc_resources[0].start = RTC_PORT(0);
3662306a36Sopenharmony_ci	dec_rtc_resources[0].end = RTC_PORT(0) + dec_kn_slot_size - 1;
3762306a36Sopenharmony_ci	return platform_device_register(&dec_rtc_device);
3862306a36Sopenharmony_ci}
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_cidevice_initcall(dec_add_devices);
41