greybus: endo: add endo structures and logic

This adds endo.c and endo.h and provides functions to create an endo and
the initial 0x0555 set of modules.

But, it doesn't hook this logic up into the running code yet, that comes
next.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Reviewed-by: Alex Elder <elder@linaro.org>
diff --git a/drivers/staging/greybus/core.c b/drivers/staging/greybus/core.c
index da62c54..7c701f3 100644
--- a/drivers/staging/greybus/core.c
+++ b/drivers/staging/greybus/core.c
@@ -51,6 +51,14 @@
 	struct gb_bundle *bundle = NULL;
 	struct gb_connection *connection = NULL;
 
+	if (is_gb_endo(dev)) {
+		/*
+		 * Not much to do for an endo, just fall through, as the
+		 * "default" attributes are good enough for us.
+		 */
+		return 0;
+	}
+
 	if (is_gb_module(dev)) {
 		module = to_gb_module(dev);
 	} else if (is_gb_interface(dev)) {