1*bbbf508dSRussell King /* 2*bbbf508dSRussell King * platform_device.h - generic, centralized driver model 3*bbbf508dSRussell King * 4*bbbf508dSRussell King * Copyright (c) 2001-2003 Patrick Mochel <[email protected]> 5*bbbf508dSRussell King * 6*bbbf508dSRussell King * This file is released under the GPLv2 7*bbbf508dSRussell King * 8*bbbf508dSRussell King * See Documentation/driver-model/ for more information. 9*bbbf508dSRussell King */ 10*bbbf508dSRussell King 11*bbbf508dSRussell King #ifndef _PLATFORM_DEVICE_H_ 12*bbbf508dSRussell King #define _PLATFORM_DEVICE_H_ 13*bbbf508dSRussell King 14*bbbf508dSRussell King #include <linux/device.h> 15*bbbf508dSRussell King 16*bbbf508dSRussell King struct platform_device { 17*bbbf508dSRussell King const char * name; 18*bbbf508dSRussell King u32 id; 19*bbbf508dSRussell King struct device dev; 20*bbbf508dSRussell King u32 num_resources; 21*bbbf508dSRussell King struct resource * resource; 22*bbbf508dSRussell King }; 23*bbbf508dSRussell King 24*bbbf508dSRussell King #define to_platform_device(x) container_of((x), struct platform_device, dev) 25*bbbf508dSRussell King 26*bbbf508dSRussell King extern int platform_device_register(struct platform_device *); 27*bbbf508dSRussell King extern void platform_device_unregister(struct platform_device *); 28*bbbf508dSRussell King 29*bbbf508dSRussell King extern struct bus_type platform_bus_type; 30*bbbf508dSRussell King extern struct device platform_bus; 31*bbbf508dSRussell King 32*bbbf508dSRussell King extern struct resource *platform_get_resource(struct platform_device *, unsigned int, unsigned int); 33*bbbf508dSRussell King extern int platform_get_irq(struct platform_device *, unsigned int); 34*bbbf508dSRussell King extern struct resource *platform_get_resource_byname(struct platform_device *, unsigned int, char *); 35*bbbf508dSRussell King extern int platform_get_irq_byname(struct platform_device *, char *); 36*bbbf508dSRussell King extern int platform_add_devices(struct platform_device **, int); 37*bbbf508dSRussell King 38*bbbf508dSRussell King extern struct platform_device *platform_device_register_simple(char *, unsigned int, struct resource *, unsigned int); 39*bbbf508dSRussell King 40*bbbf508dSRussell King #endif /* _PLATFORM_DEVICE_H_ */ 41