rtc-s3c: make room for more variants in devicetree block

A patch from »Implement RTC support for S3C2443/S3C2416/S3C2450« in state Mainline for linux-kernel

From: Heiko Stuebner <heiko.stuebner@...> Date: Thu, 8 Dec 2011 11:23:04 +0100

Commit-Message

Use the data field of of_device_id to hold the type for s3c_cpu_type. Signed-off-by: Heiko Stuebner <heiko@...>

Patch-Comment

drivers/rtc/rtc-s3c.c | 27 +++++++++++++++++++++------ 1 files changed, 21 insertions(+), 6 deletions(-)

Statistics

  • 21 lines added
  • 6 lines removed

Changes

---------------------------- drivers/rtc/rtc-s3c.c -----------------------------
index 175067a..71807a6 100644
@@ -428,11 +428,18 @@ static int __devexit s3c_rtc_remove(struct platform_device *dev)
return 0;
}
+#ifdef CONFIG_OF
+static const struct of_device_id s3c_rtc_dt_match[];
+#endif
+
static int __devinit s3c_rtc_probe(struct platform_device *pdev)
{
struct rtc_device *rtc;
struct rtc_time rtc_tm;
struct resource *res;
+#ifdef CONFIG_OF
+ const struct of_device_id *match;
+#endif
int ret;
pr_debug("%s: probe=%p\n", __func__, pdev);
@@ -509,12 +516,15 @@ static int __devinit s3c_rtc_probe(struct platform_device *pdev)
}
#ifdef CONFIG_OF
- if (pdev->dev.of_node)
- s3c_rtc_cpu_type = of_device_is_compatible(pdev->dev.of_node,
- "samsung,s3c6410-rtc") ? TYPE_S3C64XX : TYPE_S3C2410;
- else
+ if (pdev->dev.of_node) {
+ match = of_match_node(s3c_rtc_dt_match, pdev->dev.of_node);
+ s3c_rtc_cpu_type = match->data;
+ } else {
#endif
s3c_rtc_cpu_type = platform_get_device_id(pdev)->driver_data;
+#ifdef CONFIG_OF
+ }
+#endif
/* Check RTC Time */
@@ -638,8 +648,13 @@ static int s3c_rtc_resume(struct platform_device *pdev)
#ifdef CONFIG_OF
static const struct of_device_id s3c_rtc_dt_match[] = {
- { .compatible = "samsung,s3c2410-rtc" },
- { .compatible = "samsung,s3c6410-rtc" },
+ {
+ .compatible = "samsung,s3c2410-rtc"
+ .data = TYPE_S3C2410,
+ }, {
+ .compatible = "samsung,s3c6410-rtc"
+ .data = TYPE_S3C64XX,
+ },
{},
};
MODULE_DEVICE_TABLE(of, s3c_rtc_dt_match);
 
 

Recent Patches

About Us

Sed lacus. Donec lectus. Nullam pretium nibh ut turpis. Nam bibendum. In nulla tortor, elementum vel, tempor at, varius non, purus. Mauris vitae nisl nec metus placerat consectetuer.

Read More...