Description:
Vendor ID of a Greybus interface.
-What: /sys/bus/greybus/devices/N-M.I/version
-Date: October 2015
-KernelVersion: 4.XX
-Contact: Greg Kroah-Hartman <greg@kroah.com>
-Description:
- Interface version represented as <16 bit major number>.<16 bit
- minor number>.
-
What: /sys/bus/greybus/devices/N-M.I/voltage_now
Date: March 2016
KernelVersion: 4.XX
NULL, 0);
}
-int gb_control_get_interface_version_operation(struct gb_interface *intf)
-{
- struct gb_control_interface_version_response response;
- struct gb_connection *connection = intf->control->connection;
- int ret;
-
- if (intf->quirks & GB_INTERFACE_QUIRK_NO_INTERFACE_VERSION)
- return 0;
-
- ret = gb_operation_sync(connection, GB_CONTROL_TYPE_INTERFACE_VERSION,
- NULL, 0, &response, sizeof(response));
- if (ret) {
- dev_err(&connection->intf->dev,
- "failed to get interface version: %d\n", ret);
- /*
- * FIXME: Return success until the time we bump version of
- * control protocol. The interface-version is already set to
- * 0.0, so no need to update that.
- */
- return 0;
- }
-
- intf->version_major = le16_to_cpu(response.major);
- intf->version_minor = le16_to_cpu(response.minor);
-
- return 0;
-}
-
int gb_control_timesync_enable(struct gb_control *control, u8 count,
u64 frame_time, u32 strobe_delay, u32 refclk)
{
int gb_control_get_manifest_size_operation(struct gb_interface *intf);
int gb_control_get_manifest_operation(struct gb_interface *intf, void *manifest,
size_t size);
-int gb_control_get_interface_version_operation(struct gb_interface *intf);
int gb_control_timesync_enable(struct gb_control *control, u8 count,
u64 frame_time, u32 strobe_delay, u32 refclk);
int gb_control_timesync_disable(struct gb_control *control);
#define GB_CONTROL_TYPE_TIMESYNC_ENABLE 0x07
#define GB_CONTROL_TYPE_TIMESYNC_DISABLE 0x08
#define GB_CONTROL_TYPE_TIMESYNC_AUTHORITATIVE 0x09
-#define GB_CONTROL_TYPE_INTERFACE_VERSION 0x0a
+/* Unused 0x0a */
#define GB_CONTROL_TYPE_BUNDLE_VERSION 0x0b
#define GB_CONTROL_TYPE_MODE_SWITCH 0x0e
} __packed;
/* Control protocol [dis]connected response has no payload */
-/* Control protocol interface version request has no payload */
-struct gb_control_interface_version_response {
- __le16 major;
- __le16 minor;
-} __packed;
-
#define GB_TIMESYNC_MAX_STROBES 0x04
struct gb_control_timesync_enable_request {
gb_interface_attr(product_id, "0x%08x");
gb_interface_attr(serial_number, "0x%016llx");
-static ssize_t version_show(struct device *dev, struct device_attribute *attr,
- char *buf)
-{
- struct gb_interface *intf = to_gb_interface(dev);
-
- return scnprintf(buf, PAGE_SIZE, "%u.%u\n", intf->version_major,
- intf->version_minor);
-}
-static DEVICE_ATTR_RO(version);
-
static ssize_t voltage_now_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
&dev_attr_vendor_id.attr,
&dev_attr_product_id.attr,
&dev_attr_serial_number.attr,
- &dev_attr_version.attr,
&dev_attr_voltage_now.attr,
&dev_attr_current_now.attr,
&dev_attr_power_now.attr,
goto err_destroy_bundles;
}
- ret = gb_control_get_interface_version_operation(intf);
- if (ret)
- goto err_destroy_bundles;
-
ret = gb_control_get_bundle_versions(intf->control);
if (ret)
goto err_destroy_bundles;
u32 product_id;
u64 serial_number;
- u16 version_major;
- u16 version_minor;
-
struct gb_host_device *hd;
struct gb_module *module;