mirror of https://gitee.com/openkylin/linux.git
greybus: register the bus with the driver core and add framework for debugfs files.
This commit is contained in:
parent
6f83ab76b8
commit
27fb83109a
|
@ -1,4 +1,4 @@
|
|||
greybus-y := core.o gbuf.o i2c-gb.o gpio-gb.o sdio-gb.o uart-gb.o
|
||||
greybus-y := core.o gbuf.o debugfs.o i2c-gb.o gpio-gb.o sdio-gb.o uart-gb.o
|
||||
|
||||
obj-m += greybus.o
|
||||
obj-m += es1-ap-usb.o
|
||||
|
|
|
@ -86,7 +86,7 @@ static int greybus_uevent(struct device *dev, struct kobj_uevent_env *env)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct bus_type greybus_bus_type = {
|
||||
static struct bus_type greybus_bus_type = {
|
||||
.name = "greybus",
|
||||
.match = greybus_device_match,
|
||||
.uevent = greybus_uevent,
|
||||
|
@ -199,16 +199,36 @@ static int __init gb_init(void)
|
|||
{
|
||||
int retval;
|
||||
|
||||
retval = gb_tty_init();
|
||||
retval = greybus_debugfs_init();
|
||||
if (retval)
|
||||
return retval;
|
||||
|
||||
retval = bus_register(&greybus_bus_type);
|
||||
if (retval)
|
||||
goto error_bus;
|
||||
|
||||
// FIXME - more gb core init goes here
|
||||
|
||||
retval = gb_tty_init();
|
||||
if (retval)
|
||||
goto error_tty;
|
||||
|
||||
return 0;
|
||||
|
||||
error_tty:
|
||||
bus_unregister(&greybus_bus_type);
|
||||
|
||||
error_bus:
|
||||
greybus_debugfs_cleanup();
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
static void __exit gb_exit(void)
|
||||
{
|
||||
gb_tty_exit();
|
||||
bus_unregister(&greybus_bus_type);
|
||||
greybus_debugfs_cleanup();
|
||||
}
|
||||
|
||||
module_init(gb_init);
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
/*
|
||||
* Greybus debugfs code
|
||||
*
|
||||
* Copyright 2014 Google Inc.
|
||||
*
|
||||
* Released under the GPLv2 only.
|
||||
*/
|
||||
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/moduleparam.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/debugfs.h>
|
||||
|
||||
#include "greybus.h"
|
||||
|
||||
static struct dentry *gb_debug_root;
|
||||
|
||||
int greybus_debugfs_init(void)
|
||||
{
|
||||
gb_debug_root = debugfs_create_dir("greybus", NULL);
|
||||
if (!gb_debug_root)
|
||||
return -ENOENT;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void greybus_debugfs_cleanup(void)
|
||||
{
|
||||
debugfs_remove_recursive(gb_debug_root);
|
||||
}
|
|
@ -174,10 +174,10 @@ void greybus_deregister(struct greybus_driver *driver);
|
|||
#define module_greybus_driver(__greybus_driver) \
|
||||
module_driver(__greybus_driver, greybus_register, greybus_deregister)
|
||||
|
||||
extern struct bus_type greybus_bus_type;
|
||||
|
||||
int greybus_disabled(void);
|
||||
|
||||
int greybus_debugfs_init(void);
|
||||
void greybus_debugfs_cleanup(void);
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* __LINUX_GREYBUS_H */
|
||||
|
|
Loading…
Reference in New Issue