linux/include/linux/of_platform.h
<<
>>
Prefs
   1#ifndef _LINUX_OF_PLATFORM_H
   2#define _LINUX_OF_PLATFORM_H
   3/*
   4 *    Copyright (C) 2006 Benjamin Herrenschmidt, IBM Corp.
   5 *                       <benh@kernel.crashing.org>
   6 *
   7 *  This program is free software; you can redistribute it and/or
   8 *  modify it under the terms of the GNU General Public License
   9 *  as published by the Free Software Foundation; either version
  10 *  2 of the License, or (at your option) any later version.
  11 *
  12 */
  13
  14#include <linux/module.h>
  15#include <linux/device.h>
  16#include <linux/mod_devicetable.h>
  17#include <linux/pm.h>
  18#include <linux/of_device.h>
  19
  20/*
  21 * The of_platform_bus_type is a bus type used by drivers that do not
  22 * attach to a macio or similar bus but still use OF probing
  23 * mechanism
  24 */
  25extern struct bus_type of_platform_bus_type;
  26
  27/*
  28 * An of_platform_driver driver is attached to a basic of_device on
  29 * the "platform bus" (of_platform_bus_type).
  30 */
  31struct of_platform_driver
  32{
  33        const char              *name;
  34        const struct of_device_id       *match_table;
  35        struct module           *owner;
  36
  37        int     (*probe)(struct of_device* dev,
  38                         const struct of_device_id *match);
  39        int     (*remove)(struct of_device* dev);
  40
  41        int     (*suspend)(struct of_device* dev, pm_message_t state);
  42        int     (*resume)(struct of_device* dev);
  43        int     (*shutdown)(struct of_device* dev);
  44
  45        struct device_driver    driver;
  46};
  47#define to_of_platform_driver(drv) \
  48        container_of(drv,struct of_platform_driver, driver)
  49
  50extern int of_register_driver(struct of_platform_driver *drv,
  51                              struct bus_type *bus);
  52extern void of_unregister_driver(struct of_platform_driver *drv);
  53
  54/* Platform drivers register/unregister */
  55static inline int of_register_platform_driver(struct of_platform_driver *drv)
  56{
  57        return of_register_driver(drv, &of_platform_bus_type);
  58}
  59static inline void of_unregister_platform_driver(struct of_platform_driver *drv)
  60{
  61        of_unregister_driver(drv);
  62}
  63
  64#include <asm/of_platform.h>
  65
  66extern struct of_device *of_find_device_by_node(struct device_node *np);
  67
  68extern int of_bus_type_init(struct bus_type *bus, const char *name);
  69
  70#endif  /* _LINUX_OF_PLATFORM_H */
  71
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.