Merge tag 'for-linus-4.6-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubca...
[cascardo/linux.git] / drivers / rtc / rtc-sunxi.c
index 52543ae..abada60 100644 (file)
@@ -133,7 +133,7 @@ struct sunxi_rtc_data_year {
        unsigned char leap_shift;       /* bit shift to get the leap year */
 };
 
-static struct sunxi_rtc_data_year data_year_param[] = {
+static const struct sunxi_rtc_data_year data_year_param[] = {
        [0] = {
                .min            = 2010,
                .max            = 2073,
@@ -151,7 +151,7 @@ static struct sunxi_rtc_data_year data_year_param[] = {
 struct sunxi_rtc_dev {
        struct rtc_device *rtc;
        struct device *dev;
-       struct sunxi_rtc_data_year *data_year;
+       const struct sunxi_rtc_data_year *data_year;
        void __iomem *base;
        int irq;
 };
@@ -175,7 +175,7 @@ static irqreturn_t sunxi_rtc_alarmirq(int irq, void *id)
        return IRQ_NONE;
 }
 
-static void sunxi_rtc_setaie(int to, struct sunxi_rtc_dev *chip)
+static void sunxi_rtc_setaie(unsigned int to, struct sunxi_rtc_dev *chip)
 {
        u32 alrm_val = 0;
        u32 alrm_irq_val = 0;
@@ -343,7 +343,7 @@ static int sunxi_rtc_settime(struct device *dev, struct rtc_time *rtc_tm)
        struct sunxi_rtc_dev *chip = dev_get_drvdata(dev);
        u32 date = 0;
        u32 time = 0;
-       int year;
+       unsigned int year;
 
        /*
         * the input rtc_tm->tm_year is the offset relative to 1900. We use
@@ -353,8 +353,8 @@ static int sunxi_rtc_settime(struct device *dev, struct rtc_time *rtc_tm)
 
        year = rtc_tm->tm_year + 1900;
        if (year < chip->data_year->min || year > chip->data_year->max) {
-               dev_err(dev, "rtc only supports year in range %d - %d\n",
-                               chip->data_year->min, chip->data_year->max);
+               dev_err(dev, "rtc only supports year in range %u - %u\n",
+                       chip->data_year->min, chip->data_year->max);
                return -EINVAL;
        }
 
@@ -436,7 +436,6 @@ static int sunxi_rtc_probe(struct platform_device *pdev)
 {
        struct sunxi_rtc_dev *chip;
        struct resource *res;
-       const struct of_device_id *of_id;
        int ret;
 
        chip = devm_kzalloc(&pdev->dev, sizeof(*chip), GFP_KERNEL);
@@ -463,12 +462,11 @@ static int sunxi_rtc_probe(struct platform_device *pdev)
                return ret;
        }
 
-       of_id = of_match_device(sunxi_rtc_dt_ids, &pdev->dev);
-       if (!of_id) {
+       chip->data_year = of_device_get_match_data(&pdev->dev);
+       if (!chip->data_year) {
                dev_err(&pdev->dev, "Unable to setup RTC data\n");
                return -ENODEV;
        }
-       chip->data_year = (struct sunxi_rtc_data_year *) of_id->data;
 
        /* clear the alarm count value */
        writel(0, chip->base + SUNXI_ALRM_DHMS);