return vbc_write_byte(RECOVERY_OFFSET, VBNV_RECOVERY_RW_INVALID_OS);
}
+int chromeos_set_dev_usb(void)
+{
+ return vbc_write_byte(4, 0x01);
+}
+
/*
* Lifted from vboot_reference:firmware/lib/vboot_nvstorage.c and formatted.
*
info.vendor, info.name, info.revision);
}
+static ssize_t ec_dev_usb_store(struct device *dev,
+ struct device_attribute *attr,
+ const char *buf, size_t count)
+{
+ int err;
+ err = chromeos_set_dev_usb();
+ if (err)
+ return err;
+ return count;
+}
+
static DEVICE_ATTR(fw_version, S_IRUGO, ec_fw_version_show, NULL);
static DEVICE_ATTR(build_info, S_IRUGO, ec_build_info_show, NULL);
static DEVICE_ATTR(chip_info, S_IRUGO, ec_chip_info_show, NULL);
+static DEVICE_ATTR(dev_usb, S_IWUGO, NULL, ec_dev_usb_store);
static struct attribute *ec_fw_attrs[] = {
&dev_attr_fw_version.attr,
* recovery (or reinstall).
*/
extern int chromeos_set_need_recovery(void);
+extern int chromeos_set_dev_usb(void);
#else
{
return -ENODEV;
}
+
+static inline int chromeos_set_dev_usb(void)
+{
+ return -ENODEV;
+}
#endif /* CONFIG_CHROMEOS */
#endif /* _LINUX_CHROMEOS_PLATFORM_H */