misc: fs_loader: Replace label with DT phandle

In previously label which will be expanded to the node's full path was
used, and now replacing label with most commonly used DT phandle. The
codes were changed accordingly to the use of DT phandle and supporting
multiple instances.

Signed-off-by: Tien Fong Chee <tien.fong.chee@intel.com>
This commit is contained in:
Tien Fong Chee
2019-03-05 23:29:38 +08:00
committed by Tom Rini
parent 1721b82c1f
commit c1ef736e3d
2 changed files with 65 additions and 35 deletions

View File

@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (C) 2018 Intel Corporation <www.intel.com>
* Copyright (C) 2018-2019 Intel Corporation <www.intel.com>
*
*/
#include <common.h>
@@ -219,32 +219,26 @@ int request_firmware_into_buf(struct udevice *dev,
static int fs_loader_ofdata_to_platdata(struct udevice *dev)
{
const char *fs_loader_path;
u32 phandlepart[2];
fs_loader_path = ofnode_get_chosen_prop("firmware-loader");
ofnode fs_loader_node = dev_ofnode(dev);
if (fs_loader_path) {
ofnode fs_loader_node;
if (ofnode_valid(fs_loader_node)) {
struct device_platdata *plat;
fs_loader_node = ofnode_path(fs_loader_path);
if (ofnode_valid(fs_loader_node)) {
struct device_platdata *plat;
plat = dev->platdata;
if (!ofnode_read_u32_array(fs_loader_node,
"phandlepart",
phandlepart, 2)) {
plat->phandlepart.phandle = phandlepart[0];
plat->phandlepart.partition = phandlepart[1];
}
plat->mtdpart = (char *)ofnode_read_string(
fs_loader_node, "mtdpart");
plat->ubivol = (char *)ofnode_read_string(
fs_loader_node, "ubivol");
plat = dev->platdata;
if (!ofnode_read_u32_array(fs_loader_node,
"phandlepart",
phandlepart, 2)) {
plat->phandlepart.phandle = phandlepart[0];
plat->phandlepart.partition = phandlepart[1];
}
plat->mtdpart = (char *)ofnode_read_string(
fs_loader_node, "mtdpart");
plat->ubivol = (char *)ofnode_read_string(
fs_loader_node, "ubivol");
}
return 0;