]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - drivers/misc/cros_ec.c
cros_ec: sandbox: Add Chrome OS EC emulation
[karo-tx-uboot.git] / drivers / misc / cros_ec.c
index a4bdb23072164086e294c4fa357d9c6dd0d82771..7e8c58f86ae610fa64b62fae79c0392d39cd4b9f 100644 (file)
@@ -223,6 +223,11 @@ static int send_command_proto3(struct cros_ec_dev *dev,
        case CROS_EC_IF_SPI:
                rv = cros_ec_spi_packet(dev, out_bytes, in_bytes);
                break;
+#endif
+#ifdef CONFIG_CROS_EC_SANDBOX
+       case CROS_EC_IF_SANDBOX:
+               rv = cros_ec_sandbox_packet(dev, out_bytes, in_bytes);
+               break;
 #endif
        case CROS_EC_IF_NONE:
        /* TODO: support protocol 3 for LPC, I2C; for now fall through */
@@ -1032,6 +1037,11 @@ static int cros_ec_decode_fdt(const void *blob, int node,
        case COMPAT_INTEL_LPC:
                dev->interface = CROS_EC_IF_LPC;
                break;
+#endif
+#ifdef CONFIG_CROS_EC_SANDBOX
+       case COMPAT_SANDBOX_HOST_EMULATION:
+               dev->interface = CROS_EC_IF_SANDBOX;
+               break;
 #endif
        default:
                debug("%s: Unknown compat id %d\n", __func__, compat);
@@ -1087,6 +1097,12 @@ int cros_ec_init(const void *blob, struct cros_ec_dev **cros_ecp)
                if (cros_ec_lpc_init(dev, blob))
                        return -CROS_EC_ERR_DEV_INIT;
                break;
+#endif
+#ifdef CONFIG_CROS_EC_SANDBOX
+       case CROS_EC_IF_SANDBOX:
+               if (cros_ec_sandbox_init(dev, blob))
+                       return -CROS_EC_ERR_DEV_INIT;
+               break;
 #endif
        case CROS_EC_IF_NONE:
        default: