X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=common%2Fcros_ec.c;h=7a4f785bc836f9b8fbeaea1c193cbe474ea89d52;hb=6fa0d3457238af30a41c2ae2939f0d1e85895e33;hp=b8ce1b581aab463f65330e4dcc769f3fc00b1f19;hpb=41364f0fbe1e550a3326dd4310e41adec5ce30d7;p=u-boot diff --git a/common/cros_ec.c b/common/cros_ec.c index b8ce1b581a..7a4f785bc8 100644 --- a/common/cros_ec.c +++ b/common/cros_ec.c @@ -10,35 +10,32 @@ #include #include -DECLARE_GLOBAL_DATA_PTR; - -struct local_info { - struct cros_ec_dev *cros_ec_dev; /* Pointer to cros_ec device */ - int cros_ec_err; /* Error for cros_ec, 0 if ok */ -}; +#include +#include -static struct local_info local; +DECLARE_GLOBAL_DATA_PTR; struct cros_ec_dev *board_get_cros_ec_dev(void) { - return local.cros_ec_dev; + struct udevice *dev; + int ret; + + ret = uclass_get_device(UCLASS_CROS_EC, 0, &dev); + if (ret) { + debug("%s: Error %d\n", __func__, ret); + return NULL; + } + return dev_get_uclass_priv(dev); } -static int board_init_cros_ec_devices(const void *blob) +int cros_ec_get_error(void) { - local.cros_ec_err = cros_ec_init(blob, &local.cros_ec_dev); - if (local.cros_ec_err) - return -1; /* Will report in board_late_init() */ - - return 0; -} + struct udevice *dev; + int ret; -int cros_ec_board_init(void) -{ - return board_init_cros_ec_devices(gd->fdt_blob); -} + ret = uclass_get_device(UCLASS_CROS_EC, 0, &dev); + if (ret && ret != -ENODEV) + return ret; -int cros_ec_get_error(void) -{ - return local.cros_ec_err; + return 0; }