#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_data/cros_ec_commands.h>
#include <linux/platform_data/cros_ec_proto.h>
#include <linux/slab.h>
#define DRV_NAME …
static ssize_t vboot_context_read(struct file *filp, struct kobject *kobj,
struct bin_attribute *att, char *buf,
loff_t pos, size_t count)
{ … }
static ssize_t vboot_context_write(struct file *filp, struct kobject *kobj,
struct bin_attribute *attr, char *buf,
loff_t pos, size_t count)
{ … }
static BIN_ATTR_RW(vboot_context, 16);
static struct bin_attribute *cros_ec_vbc_bin_attrs[] = …;
static const struct attribute_group cros_ec_vbc_attr_group = …;
static int cros_ec_vbc_probe(struct platform_device *pd)
{ … }
static void cros_ec_vbc_remove(struct platform_device *pd)
{ … }
static const struct platform_device_id cros_ec_vbc_id[] = …;
MODULE_DEVICE_TABLE(platform, cros_ec_vbc_id);
static struct platform_driver cros_ec_vbc_driver = …;
module_platform_driver(…) …;
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;