linux/arch/mips/cobalt/rtc.c
<<
>>
Prefs
   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
  13static 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
  26static __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
  46err_free_device:
  47        platform_device_put(pdev);
  48
  49        return retval;
  50}
  51device_initcall(cobalt_rtc_add);
  52