2 * Copyright (C) 2006 Benjamin Herrenschmidt, IBM Corp.
3 * <benh@kernel.crashing.org>
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * as published by the Free Software Foundation; either version
8 * 2 of the License, or (at your option) any later version.
11 #ifndef _ASM_MICROBLAZE_OF_PLATFORM_H
12 #define _ASM_MICROBLAZE_OF_PLATFORM_H
14 /* This is just here during the transition */
15 #include <linux/of_platform.h>
18 * The list of OF IDs below is used for matching bus types in the
19 * system whose devices are to be exposed as of_platform_devices.
21 * This is the default list valid for most platforms. This file provides
22 * functions who can take an explicit list if necessary though
24 * The search is always performed recursively looking for children of
25 * the provided device_node and recursively if such a children matches
26 * a bus type in the list
29 static const struct of_device_id of_default_bus_ids[] = {
31 { .compatible = "soc", },
35 { .type = "simple", },
39 /* Platform drivers register/unregister */
40 static inline int of_register_platform_driver(struct of_platform_driver *drv)
42 return of_register_driver(drv, &of_platform_bus_type);
44 static inline void of_unregister_platform_driver(struct of_platform_driver *drv)
46 of_unregister_driver(drv);
49 /* Platform devices and busses creation */
50 extern struct of_device *of_platform_device_create(struct device_node *np,
52 struct device *parent);
53 /* pseudo "matches" value to not do deep probe */
54 #define OF_NO_DEEP_PROBE ((struct of_device_id *)-1)
56 extern int of_platform_bus_probe(struct device_node *root,
57 const struct of_device_id *matches,
58 struct device *parent);
60 extern struct of_device *of_find_device_by_phandle(phandle ph);
62 extern void of_instantiate_rtc(void);
64 #endif /* _ASM_MICROBLAZE_OF_PLATFORM_H */