Loading drivers/staging/greybus/ap.c +1 −1 Original line number Diff line number Diff line Loading @@ -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; Loading drivers/staging/greybus/greybus_desc.h 0 → 100644 +95 −0 Original line number Diff line number Diff line /* * 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 */ drivers/staging/greybus/svc_msg.h +9 −6 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -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 { Loading Loading @@ -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]; }; Loading @@ -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 */ }; Loading Loading @@ -158,5 +162,4 @@ struct svc_msg { }; }; #endif /* __SVC_MSG_H */ Loading
drivers/staging/greybus/ap.c +1 −1 Original line number Diff line number Diff line Loading @@ -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; Loading
drivers/staging/greybus/greybus_desc.h 0 → 100644 +95 −0 Original line number Diff line number Diff line /* * 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 */
drivers/staging/greybus/svc_msg.h +9 −6 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -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 { Loading Loading @@ -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]; }; Loading @@ -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 */ }; Loading Loading @@ -158,5 +162,4 @@ struct svc_msg { }; }; #endif /* __SVC_MSG_H */