1 // SPDX-License-Identifier: GPL-2.0-or-later 2 /* 3 * Registration of Cobalt RTC platform device. 4 * 5 * Copyright (C) 2007 Yoichi Yuasa <yuasa@linux-mips.org> 6 */ 7 #include <linux/errno.h> 8 #include <linux/init.h> 9 #include <linux/ioport.h> 10 #include <linux/mc146818rtc.h> 11 #include <linux/platform_device.h> 12 13 static struct resource cobalt_rtc_resource[] __initdata = { 14 { 15 .start = 0x70, 16 .end = 0x77, 17 .flags = IORESOURCE_IO, 18 }, 19 { 20 .start = RTC_IRQ, 21 .end = RTC_IRQ, 22 .flags = IORESOURCE_IRQ, 23 }, 24 }; 25 26 static __init int cobalt_rtc_add(void) 27 { 28 struct platform_device *pdev; 29 int retval; 30 31 pdev = platform_device_alloc("rtc_cmos", -1); 32 if (!pdev) 33 return -ENOMEM; 34 35 retval = platform_device_add_resources(pdev, cobalt_rtc_resource, 36 ARRAY_SIZE(cobalt_rtc_resource)); 37 if (retval) 38 goto err_free_device; 39 40 retval = platform_device_add(pdev); 41 if (retval) 42 goto err_free_device; 43 44 return 0; 45 46 err_free_device: 47 platform_device_put(pdev); 48 49 return retval; 50 } 51 device_initcall(cobalt_rtc_add); 52