diff options
author | Bill Richardson <wfrichar@chromium.org> | 2015-02-02 12:26:27 +0100 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2015-02-26 15:45:12 -0800 |
commit | 71af4b52cc22a8d0f7b66a51427a804741a045b6 (patch) | |
tree | ff3821ad460186ba3fb2e1904d7181fa21add2c5 /drivers/platform/chrome/cros_ec_dev.c | |
parent | 8a4be850b6a1eb8c7b910d98d3683a803ff5ddb4 (diff) | |
download | blackbird-op-linux-71af4b52cc22a8d0f7b66a51427a804741a045b6.tar.gz blackbird-op-linux-71af4b52cc22a8d0f7b66a51427a804741a045b6.zip |
platform/chrome: Create sysfs attributes for the ChromeOS EC
This adds the first few sysfs attributes for the Chrome OS EC. These
controls are made available under /sys/devices/virtual/chromeos/cros_ec
flashinfo - display current flash info
reboot - tell the EC to reboot in various ways
version - information about the EC software and hardware
Future changes will build on this to add additional controls.
From a root shell, you should be able to do things like this:
cd /sys/devices/virtual/chromeos/cros_ec
cat flashinfo
cat version
echo rw > reboot
cat version
echo ro > reboot
cat version
echo rw > reboot
cat version
echo cold > reboot
That last command will reboot the AP too.
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-by: Olof Johansson <olofj@chromium.org>
Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Tested-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'drivers/platform/chrome/cros_ec_dev.c')
-rw-r--r-- | drivers/platform/chrome/cros_ec_dev.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/platform/chrome/cros_ec_dev.c b/drivers/platform/chrome/cros_ec_dev.c index 94c1442d5104..33f37ad36892 100644 --- a/drivers/platform/chrome/cros_ec_dev.c +++ b/drivers/platform/chrome/cros_ec_dev.c @@ -198,6 +198,9 @@ static int ec_device_probe(struct platform_device *pdev) return retval; } + /* Initialize extra interfaces */ + ec_dev_sysfs_init(ec); + return 0; } @@ -205,6 +208,7 @@ static int ec_device_remove(struct platform_device *pdev) { struct cros_ec_device *ec = dev_get_drvdata(pdev->dev.parent); + ec_dev_sysfs_remove(ec); device_destroy(cros_class, MKDEV(ec_major, 0)); cdev_del(&ec->cdev); return 0; |