From: Greg Kroah-Hartman <greg@kroah.com>
Date: Mon, 1 Sep 2014 01:08:52 +0000 (-0700)
Subject: greybus: greybus_desc.h created
X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=80ebe8a63134f4418765d6ae9ddcba7427094da8;p=linux.git

greybus: greybus_desc.h created
---

diff --git a/drivers/staging/greybus/ap.c b/drivers/staging/greybus/ap.c
index 2d63b5c6f97c4..e2b60632f1db9 100644
--- a/drivers/staging/greybus/ap.c
+++ b/drivers/staging/greybus/ap.c
@@ -17,9 +17,9 @@
 #include <linux/kthread.h>
 #include <linux/device.h>
 #include "svc_msg.h"
+#include "greybus_desc.h"
 #include "greybus.h"
 
-
 struct ap_msg {
 	u8 *data;
 	int size;
diff --git a/drivers/staging/greybus/greybus_desc.h b/drivers/staging/greybus/greybus_desc.h
new file mode 100644
index 0000000000000..6a3674dcc5d79
--- /dev/null
+++ b/drivers/staging/greybus/greybus_desc.h
@@ -0,0 +1,95 @@
+/*
+ * Greybus device descriptor definition
+ *
+ * Defined in the "Greybus Application Protocol" document.
+ * See that document for any details on these values and structures.
+ *
+ * Copyright 2014 Google Inc.
+ */
+
+#ifndef __GREYBUS_DESC_H
+#define __GREYBUS_DESC_H
+
+struct greybus_decriptor_block_header {
+	__le16	size;
+	u8	version_major;
+	u8	version_minor;
+};
+
+enum greybus_descriptor_type {
+	GREYBUS_TYPE_INVALID		= 0x0000,
+	GREYBUS_TYPE_DEVICE_ID		= 0x0001,
+	GREYBUS_TYPE_SERIAL_NUMBER	= 0x0002,
+	GREYBUS_TYPE_DEVICE_STRING	= 0x0003,
+	GREYBUS_TYPE_CPORT		= 0x0004,
+	GREYBUS_TYPE_FUNCTION		= 0x0005,
+};
+
+struct greybus_descriptor_header {
+	__le16	size;
+	__le16	type;	/* enum greybus_descriptor_type */
+};
+
+
+struct greybus_descriptor_deviceid {
+	__le16	vendor;
+	__le16	product;
+	__le16	version;
+	u8	vendor_stringid;
+	u8	product_stringid;
+};
+
+struct greybus_descriptor_serial_number {
+	__le64	serial_number;
+};
+
+struct greybus_descriptor_string {
+	u8	id;
+	__le16	length;
+	u8	string[0];
+};
+
+struct greybus_descriptor_cport {
+	__le16	number;
+	u8	speed;	// FIXME
+	u8	reserved;
+};
+
+enum greybus_function_class {
+	GREYBUS_FUNCTION_CONTROL	= 0x00,
+	GREYBUS_FUNCTION_USB		= 0x01,
+	GREYBUS_FUNCTION_GPIO		= 0x02,
+	GREYBUS_FUNCTION_SPI		= 0x03,
+	GREYBUS_FUNCTION_UART		= 0x04,
+	GREYBUS_FUNCTION_PWM		= 0x05,
+	GREYBUS_FUNCTION_I2S		= 0x06,
+	GREYBUS_FUNCTION_I2C		= 0x07,
+	GREYBUS_FUNCTION_SDIO		= 0x08,
+	GREYBUS_FUNCTION_HID		= 0x09,
+	GREYBUS_FUNCTION_DISPLAY	= 0x0a,
+	GREYBUS_FUNCTION_CAMERA		= 0x0b,
+	GREYBUS_FUNCTION_SENSOR		= 0x0c,
+	GREYBUS_FUNCTION_VENDOR		= 0xff,
+};
+
+struct greybus_descriptor_function {
+	__le16	number;
+	__le16	cport;
+	u8	function_class;		/* enum greybus_function_class */
+	u8	function_subclass;
+	u8	function_protocol;
+	u8	reserved;
+};
+
+struct greybus_msg_descriptor {
+	struct greybus_descriptor_header	header;
+	union {
+		struct greybus_descriptor_deviceid	device_id;
+		struct greybus_descriptor_serial_number	serial_number;
+		struct greybus_descriptor_string	string;
+		struct greybus_descriptor_cport		cport;
+		struct greybus_descriptor_function	function;
+	};
+};
+
+#endif /* __GREYBUS_DESC_H */
diff --git a/drivers/staging/greybus/svc_msg.h b/drivers/staging/greybus/svc_msg.h
index 3f97a5e39c276..f97b22c0ab6c7 100644
--- a/drivers/staging/greybus/svc_msg.h
+++ b/drivers/staging/greybus/svc_msg.h
@@ -6,6 +6,10 @@
  *
  * Copyright 2014 Google Inc.
  */
+
+#ifndef __SVC_MSG_H
+#define __SVC_MSG_H
+
 enum svc_function_type {
 	SVC_FUNCTION_HANDSHAKE			= 0x00,
 	SVC_FUNCTION_UNIPRO_NETWORK_MANAGEMENT	= 0x01,
@@ -21,7 +25,7 @@ struct svc_msg_header {
 	u8	type;		/* enum svc_function_type */
 	u8	version_major;
 	u8	version_minor;
-	u16	payload_length;
+	__le16	payload_length;
 };
 
 enum svc_function_handshake_type {
@@ -81,7 +85,7 @@ struct svc_function_ddb_get {
 struct svc_function_ddb_response {
 	u8	device_id;
 	u8	message_id;
-	u16	descriptor_length;
+	__le16	descriptor_length;
 	u8	ddb[0];
 };
 
@@ -107,8 +111,8 @@ enum svc_function_battery_status {
 };
 
 struct svc_function_power_battery_status {
-	u16	charge_full;
-	u16	charge_now;
+	__le16	charge_full;
+	__le16	charge_now;
 	u8	status;	/* enum svc_function_battery_status */
 };
 
@@ -158,5 +162,4 @@ struct svc_msg {
 	};
 };
 
-
-
+#endif /* __SVC_MSG_H */