]> git.sur5r.net Git - u-boot/blobdiff - drivers/misc/cros_ec_sandbox.c
mmc: sdhci: use the generic error number
[u-boot] / drivers / misc / cros_ec_sandbox.c
index df41e82bc9a91f90e8776b8b8b5e02b20e7df522..c4fbca0d3ae129a260d3073fe7387b4f6688ff6b 100644 (file)
@@ -459,6 +459,9 @@ static int process_cmd(struct ec_state *ec,
        case EC_CMD_MKBP_STATE:
                len = cros_ec_keyscan(ec, resp_data);
                break;
+       case EC_CMD_ENTERING_MODE:
+               len = 0;
+               break;
        default:
                printf("   ** Unknown EC command %#02x\n", req_hdr->command);
                return -1;
@@ -514,6 +517,7 @@ int cros_ec_probe(struct udevice *dev)
        struct ec_state *ec = dev->priv;
        struct cros_ec_dev *cdev = dev->uclass_priv;
        const void *blob = gd->fdt_blob;
+       struct udevice *keyb_dev;
        int node;
        int err;
 
@@ -522,7 +526,15 @@ int cros_ec_probe(struct udevice *dev)
        if (err)
                return err;
 
-       node = fdtdec_next_compatible(blob, 0, COMPAT_GOOGLE_CROS_EC_KEYB);
+       node = -1;
+       for (device_find_first_child(dev, &keyb_dev);
+            keyb_dev;
+            device_find_next_child(&keyb_dev)) {
+               if (device_get_uclass_id(keyb_dev) == UCLASS_KEYBOARD) {
+                       node = keyb_dev->of_offset;
+                       break;
+               }
+       }
        if (node < 0) {
                debug("%s: No cros_ec keyboard found\n", __func__);
        } else if (keyscan_read_fdt_matrix(ec, blob, node)) {