dm: core: Rename ofnode_get_chosen_prop()
authorSimon Glass <sjg@chromium.org>
Mon, 27 Jan 2020 15:49:43 +0000 (08:49 -0700)
committerSimon Glass <sjg@chromium.org>
Thu, 6 Feb 2020 02:33:45 +0000 (19:33 -0700)
This function is actually intended to read a string rather than a
property. All of its current callers use it that way. Also there is no way
to return the length of the property from this function.

Rename it to better indicate its purpose, using ofnode_read as the prefix
since this matches most other functions.

Also add some tests which are missing for these functions.

Signed-off-by: Simon Glass <sjg@chromium.org>
arch/sandbox/dts/test.dts
board/theobroma-systems/puma_rk3399/puma-rk3399.c
board/xilinx/common/board.c
drivers/core/ofnode.c
include/dm/ofnode.h
test/dm/ofnode.c

index e529c54d8de99ace4e37dedbe29465456cac87f9..a04afd4076bb469b38efdee2b1c04872939b9246 100644 (file)
        chosen {
                #address-cells = <1>;
                #size-cells = <1>;
+               setting = "sunrise ohoka";
+               other-node = "/some-bus/c-test@5";
                chosen-test {
                        compatible = "denx,u-boot-fdt-test";
                        reg = <9 1>;
index 9887d2020717af06043d226d50d88d5cb73e70c3..7ff47669471a516c57d9f5cdfcac7108653ed3dc 100644 (file)
@@ -49,7 +49,7 @@ static void setup_iodomain(void)
 static int setup_boottargets(void)
 {
        const char *boot_device =
-               ofnode_get_chosen_prop("u-boot,spl-boot-device");
+               ofnode_read_chosen_string("u-boot,spl-boot-device");
        char *env_default, *env;
 
        if (!boot_device) {
index ae5fe2729f7ebe9948b2947913530aae2ff3a5de..f87e2e91059e3f82c36ea68a3cfb68b87451fefa 100644 (file)
@@ -22,7 +22,7 @@ int zynq_board_read_rom_ethaddr(unsigned char *ethaddr)
                return -ENODEV;
 
        debug("%s: Path to EEPROM %s\n", __func__,
-             ofnode_get_chosen_prop("xlnx,eeprom"));
+             ofnode_read_chosen_string("xlnx,eeprom"));
 
        ret = uclass_get_device_by_ofnode(UCLASS_I2C_EEPROM, eeprom, &dev);
        if (ret)
index 8f0eab2ca6241856c0c958fe546c73b9043add29..011b43bc02de4f77f50f6220faf0ee35fc92566b 100644 (file)
@@ -419,7 +419,7 @@ ofnode ofnode_path(const char *path)
                return offset_to_ofnode(fdt_path_offset(gd->fdt_blob, path));
 }
 
-const char *ofnode_get_chosen_prop(const char *name)
+const char *ofnode_read_chosen_string(const char *name)
 {
        ofnode chosen_node;
 
@@ -432,7 +432,7 @@ ofnode ofnode_get_chosen_node(const char *name)
 {
        const char *prop;
 
-       prop = ofnode_get_chosen_prop(name);
+       prop = ofnode_read_chosen_string(name);
        if (!prop)
                return ofnode_null();
 
index 62ba0c13ea53b6ced55d48afd503dd68ecfcf96a..9e76ae8407fce047cd12bcb306591a92c022ddca 100644 (file)
@@ -510,14 +510,15 @@ int ofnode_count_phandle_with_args(ofnode node, const char *list_name,
 ofnode ofnode_path(const char *path);
 
 /**
- * ofnode_get_chosen_prop() - get the value of a chosen property
+ * ofnode_read_chosen_string() - get the string value of a chosen property
  *
- * This looks for a property within the /chosen node and returns its value
+ * This looks for a property within the /chosen node and returns its value,
+ * checking that it is a valid nul-terminated string
  *
  * @propname: Property name to look for
- * @return property value if found, else NULL
+ * @return string value if found, else NULL
  */
-const char *ofnode_get_chosen_prop(const char *propname);
+const char *ofnode_read_chosen_string(const char *propname);
 
 /**
  * ofnode_get_chosen_node() - get a referenced node from the chosen node
index 745de50c7bae19b91ee5b8563001170d72f827f7..633a3a9e9ad7592d1b95cf8a2f91746a17a3276d 100644 (file)
@@ -58,3 +58,24 @@ static int dm_test_ofnode_fmap(struct unit_test_state *uts)
        return 0;
 }
 DM_TEST(dm_test_ofnode_fmap, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
+
+static int dm_test_ofnode_read_chosen(struct unit_test_state *uts)
+{
+       const char *str;
+       ofnode node;
+
+       str = ofnode_read_chosen_string("setting");
+       ut_assertnonnull(str);
+       ut_asserteq_str("sunrise ohoka", str);
+       ut_asserteq_ptr(NULL, ofnode_read_chosen_string("no-setting"));
+
+       node = ofnode_get_chosen_node("other-node");
+       ut_assert(ofnode_valid(node));
+       ut_asserteq_str("c-test@5", ofnode_get_name(node));
+
+       node = ofnode_get_chosen_node("setting");
+       ut_assert(!ofnode_valid(node));
+
+       return 0;
+}
+DM_TEST(dm_test_ofnode_read_chosen, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);