Commit d2524caa authored by Heiko Stuebner's avatar Heiko Stuebner Committed by Kukjin Kim
Browse files

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



Use the data field of of_device_id to hold the type for
s3c_cpu_type.

Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
Reviewed-by: default avatarThomas Abraham <thomas.abraham@linaro.org>
Acked-by: default avatarAlessandro Zummo <a.zummo@towertech.it>
Signed-off-by: default avatarKukjin Kim <kgene.kim@samsung.com>
parent a51da044
Loading
Loading
Loading
Loading
+22 −9
Original line number Diff line number Diff line
@@ -428,6 +428,20 @@ static int __devexit s3c_rtc_remove(struct platform_device *dev)
	return 0;
}

static const struct of_device_id s3c_rtc_dt_match[];

static inline int s3c_rtc_get_driver_data(struct platform_device *pdev)
{
#ifdef CONFIG_OF
	if (pdev->dev.of_node) {
		const struct of_device_id *match;
		match = of_match_node(s3c_rtc_dt_match, pdev->dev.of_node);
		return match->data;
	}
#endif
	return platform_get_device_id(pdev)->driver_data;
}

static int __devinit s3c_rtc_probe(struct platform_device *pdev)
{
	struct rtc_device *rtc;
@@ -508,13 +522,7 @@ static int __devinit s3c_rtc_probe(struct platform_device *pdev)
		goto err_nortc;
	}

#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
#endif
		s3c_rtc_cpu_type = platform_get_device_id(pdev)->driver_data;
	s3c_rtc_cpu_type = s3c_rtc_get_driver_data(pdev);

	/* Check RTC Time */

@@ -638,8 +646,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);