or the rtc driver will probe for two devices: the static platform device the OF device.
Signed-off-by: Sebastian Andrzej Siewior <[email protected]> --- arch/x86/kernel/rtc.c | 23 +++++++++++++++++++++++ 1 files changed, 23 insertions(+), 0 deletions(-) diff --git a/arch/x86/kernel/rtc.c b/arch/x86/kernel/rtc.c index 1cfbbfc..382c6cb 100644 --- a/arch/x86/kernel/rtc.c +++ b/arch/x86/kernel/rtc.c @@ -6,6 +6,7 @@ #include <linux/acpi.h> #include <linux/bcd.h> #include <linux/pnp.h> +#include <linux/of.h> #include <asm/vsyscall.h> #include <asm/x86_init.h> @@ -218,6 +219,25 @@ static struct platform_device rtc_device = { .num_resources = ARRAY_SIZE(rtc_resources), }; +#ifdef CONFIG_OF +static __init int have_rtc_of_node(void) +{ + struct device_node *n; + + n = of_find_compatible_node(NULL, NULL, "motorola,mc146818"); + if (n) { + of_node_put(n); + return 1; + } + return 0; +} +#else +static inline int have_rtc_of_node(void) +{ + return 0; +} +#endif + static __init int add_rtc_cmos(void) { #ifdef CONFIG_PNP @@ -237,6 +257,9 @@ static __init int add_rtc_cmos(void) } #endif + if (have_rtc_of_node()) + return 0; + platform_device_register(&rtc_device); dev_info(&rtc_device.dev, "registered platform RTC device (no PNP device found)\n"); -- 1.7.3.2 _______________________________________________ devicetree-discuss mailing list [email protected] https://lists.ozlabs.org/listinfo/devicetree-discuss
