mtd: sf: Make sf_mtd.c more robust
[platform/kernel/u-boot.git] / drivers / misc / cros_ec_sandbox.c
index 848c67b..d741554 100644 (file)
@@ -1,9 +1,8 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * Chromium OS cros_ec driver - sandbox emulation
  *
  * Copyright (c) 2013 The Chromium OS Authors.
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #include <common.h>
@@ -51,8 +50,6 @@
  * the EC image in with U-Boot (Vic has demonstrated a prototype for this).
  */
 
-DECLARE_GLOBAL_DATA_PTR;
-
 #define KEYBOARD_ROWS  8
 #define KEYBOARD_COLS  13
 
@@ -188,18 +185,16 @@ static int get_image_used(struct ec_state *ec, struct fmap_entry *entry)
  * RR=Row CC=Column KKKK=Key Code
  *
  * @param ec   Current emulated EC state
- * @param blob Device tree blob containing keyscan information
  * @param node Keyboard node of device tree containing keyscan information
  * @return 0 if ok, -1 on error
  */
-static int keyscan_read_fdt_matrix(struct ec_state *ec, const void *blob,
-                                  int node)
+static int keyscan_read_fdt_matrix(struct ec_state *ec, ofnode node)
 {
        const u32 *cell;
        int upto;
        int len;
 
-       cell = fdt_getprop(blob, node, "linux,keymap", &len);
+       cell = ofnode_get_property(node, "linux,keymap", &len);
        ec->matrix_count = len / 4;
        ec->matrix = calloc(ec->matrix_count, sizeof(*ec->matrix));
        if (!ec->matrix) {
@@ -370,7 +365,7 @@ static int process_cmd(struct ec_state *ec,
                struct fmap_entry *entry;
                int ret, size;
 
-               entry = &ec->ec_config.region[EC_FLASH_REGION_RW];
+               entry = &ec->ec_config.region[EC_FLASH_REGION_ACTIVE];
 
                switch (req->cmd) {
                case EC_VBOOT_HASH_RECALC:
@@ -425,7 +420,7 @@ static int process_cmd(struct ec_state *ec,
 
                switch (req->region) {
                case EC_FLASH_REGION_RO:
-               case EC_FLASH_REGION_RW:
+               case EC_FLASH_REGION_ACTIVE:
                case EC_FLASH_REGION_WP_RO:
                        entry = &ec->ec_config.region[req->region];
                        resp->offset = entry->offset;
@@ -496,9 +491,9 @@ int cros_ec_sandbox_packet(struct udevice *udev, int out_bytes, int in_bytes)
        return in_bytes;
 }
 
-void cros_ec_check_keyboard(struct cros_ec_dev *dev)
+void cros_ec_check_keyboard(struct udevice *dev)
 {
-       struct ec_state *ec = dev_get_priv(dev->dev);
+       struct ec_state *ec = dev_get_priv(dev);
        ulong start;
 
        printf("Press keys for EC to detect on reset (ESC=recovery)...");
@@ -516,28 +511,29 @@ 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;
+       ofnode node;
        int err;
 
        memcpy(ec, &s_state, sizeof(*ec));
-       err = cros_ec_decode_ec_flash(blob, dev_of_offset(dev), &ec->ec_config);
-       if (err)
+       err = cros_ec_decode_ec_flash(dev, &ec->ec_config);
+       if (err) {
+               debug("%s: Cannot device EC flash\n", __func__);
                return err;
+       }
 
-       node = -1;
+       node = ofnode_null();
        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 = dev_of_offset(keyb_dev);
+                       node = dev_ofnode(keyb_dev);
                        break;
                }
        }
-       if (node < 0) {
+       if (!ofnode_valid(node)) {
                debug("%s: No cros_ec keyboard found\n", __func__);
-       } else if (keyscan_read_fdt_matrix(ec, blob, node)) {
+       } else if (keyscan_read_fdt_matrix(ec, node)) {
                debug("%s: Could not read key matrix\n", __func__);
                return -1;
        }