]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - common/cros_ec.c
video: ipu: initialize g_ipu_clk, g_ldb_clk statically
[karo-tx-uboot.git] / common / cros_ec.c
index b8ce1b581aab463f65330e4dcc769f3fc00b1f19..7a4f785bc836f9b8fbeaea1c193cbe474ea89d52 100644 (file)
 
 #include <common.h>
 #include <cros_ec.h>
-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 <dm.h>
+#include <errno.h>
 
-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;
 }