dtoc: Put phandle args in an array
authorSimon Glass <sjg@chromium.org>
Tue, 29 Aug 2017 20:15:58 +0000 (14:15 -0600)
committerSimon Glass <sjg@chromium.org>
Fri, 15 Sep 2017 11:27:48 +0000 (05:27 -0600)
We want to support more than one phandle argument. It makes sense to use
an array for this rather than discrete struct members. Adjust the code to
support this. Rename the member to 'arg' instead of 'id'.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Kever Yang <kever.yang@rock-chips.com>
drivers/clk/clk-uclass.c
include/dt-structs.h
tools/dtoc/dtb_platdata.py
tools/dtoc/test_dtoc.py

index 8b40326..83ba133 100644 (file)
@@ -32,7 +32,7 @@ int clk_get_by_index_platdata(struct udevice *dev, int index,
        ret = uclass_get_device(UCLASS_CLK, 0, &clk->dev);
        if (ret)
                return ret;
-       clk->id = cells[0].id;
+       clk->id = cells[0].arg[0];
 
        return 0;
 }
index 2ed9971..9ab4e25 100644 (file)
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
 struct phandle_0_arg {
        const void *node;
-       int id[0];
+       int arg[0];
 };
 
 struct phandle_1_arg {
        const void *node;
-       int id;
+       int arg[1];
 };
 #include <generated/dt-structs.h>
 #endif
index c0a3ae6..1920a59 100644 (file)
@@ -467,7 +467,7 @@ class DtbPlatdata(object):
                         id_num = fdt_util.fdt32_to_cpu(id_cell)
                         target_node = self._fdt.phandle_to_node[phandle]
                         name = conv_name_to_c(target_node.name)
-                        vals.append('{&%s%s, %d}' % (VAL_PREFIX, name, id_num))
+                        vals.append('{&%s%s, {%d}}' % (VAL_PREFIX, name, id_num))
                     for val in vals:
                         self.buf('\n\t\t%s,' % val)
                 else:
index aa617a6..fbae927 100644 (file)
@@ -253,7 +253,7 @@ U_BOOT_DEVICE(phandle_target) = {
 
 static struct dtd_source dtv_phandle_source = {
 \t.clocks\t\t\t= {
-\t\t{&dtv_phandle_target, 1},},
+\t\t{&dtv_phandle_target, {1}},},
 };
 U_BOOT_DEVICE(phandle_source) = {
 \t.name\t\t= "source",