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 += greybus.o
|
||||||
obj-m += es1-ap-usb.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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct bus_type greybus_bus_type = {
|
static struct bus_type greybus_bus_type = {
|
||||||
.name = "greybus",
|
.name = "greybus",
|
||||||
.match = greybus_device_match,
|
.match = greybus_device_match,
|
||||||
.uevent = greybus_uevent,
|
.uevent = greybus_uevent,
|
||||||
|
@ -199,16 +199,36 @@ static int __init gb_init(void)
|
||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
|
|
||||||
retval = gb_tty_init();
|
retval = greybus_debugfs_init();
|
||||||
if (retval)
|
if (retval)
|
||||||
return 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;
|
return 0;
|
||||||
|
|
||||||
|
error_tty:
|
||||||
|
bus_unregister(&greybus_bus_type);
|
||||||
|
|
||||||
|
error_bus:
|
||||||
|
greybus_debugfs_cleanup();
|
||||||
|
|
||||||
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __exit gb_exit(void)
|
static void __exit gb_exit(void)
|
||||||
{
|
{
|
||||||
gb_tty_exit();
|
gb_tty_exit();
|
||||||
|
bus_unregister(&greybus_bus_type);
|
||||||
|
greybus_debugfs_cleanup();
|
||||||
}
|
}
|
||||||
|
|
||||||
module_init(gb_init);
|
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) \
|
#define module_greybus_driver(__greybus_driver) \
|
||||||
module_driver(__greybus_driver, greybus_register, greybus_deregister)
|
module_driver(__greybus_driver, greybus_register, greybus_deregister)
|
||||||
|
|
||||||
extern struct bus_type greybus_bus_type;
|
|
||||||
|
|
||||||
int greybus_disabled(void);
|
int greybus_disabled(void);
|
||||||
|
|
||||||
|
int greybus_debugfs_init(void);
|
||||||
|
void greybus_debugfs_cleanup(void);
|
||||||
|
|
||||||
#endif /* __KERNEL__ */
|
#endif /* __KERNEL__ */
|
||||||
#endif /* __LINUX_GREYBUS_H */
|
#endif /* __LINUX_GREYBUS_H */
|
||||||
|
|
Loading…
Reference in New Issue