
Hi Kever,
On 4 February 2018 at 18:00, Kever Yang kever.yang@rock-chips.com wrote:
On 02/04/2018 09:40 PM, Simon Glass wrote:
Hi Kever,
On 4 February 2018 at 00:44, Kever Yang kever.yang@rock-chips.com wrote:
Hi Simon, Philipp,
When I try to convert to live dt, I fount there are many APIs work
in fdt are missing in live dt,
do you have any suggestion to add these APIs in live dt quickly? I need:
fdtdec_get_addr_size_auto_noparent
dev_read_addr_size() - not having a parent doesn't happen with livetree
fdt_alloc_phandle
We don't support changing the live tree yet.
fdt_device_is_available
dev_read_enabled()
fdt_for_each_subnode
dev_for_each_subnode()
fdt_getprop
dev_read_prop()
fdt_getprop_u32_default_node
This is an odd function. Can you first check that the property exists, and then use a dev_read_...() function to read it?
fdt_get_named_resource
dev_read_resource_byname()
fdt_get_name
dev_read_name() - although I see that the comment is wrong
fdt_get_path
Not available but you can add it
fdt_get_phandle
Why do you need this?
Most of the APIs are used in this file or other files in this folder, https://github.com/rockchip-linux/u-boot/blob/release/drivers/video/drm/rock... It needs to handle quite complicated dts node for display system in rockchip drm display driver(not upstream yet): https://github.com/rockchip-linux/u-boot/blob/release/arch/arm/dts/rk3128.dt... https://github.com/rockchip-linux/u-boot/blob/release/arch/arm/dts/rk3126-bn...
One difference I see with Linux is that U-Boot creates devices for all nodes automatically, provided that they have a compatible string and matching driver. This should simplify things in U-Boot.
The supernode-at-depth function looks like it just takes the parent of the parent when an argument of -2 is used.
The existing rockchip driver in U-Boot handles a similar binding, doesn't it? It has phandles and multiple nodes and subnodes.
Thanks,
- Kever
fdt_node_depth fdt_node_offset_by_phandle fdt_node_offset_by_phandle_node
uclass_get_device_by_phandle() or similar?
fdt_path_offset
ofnode_path() although it does not return a device. Best avoided.
fdt_set_phandle
You can't change the livtree at present.
fdt_stringlist_get
dev_read_string_index()
fdt_stringlist_search
dev_read_stringlist_search()
fdt_subnode_offset
Why do you want that?
fdt_supernode_atdepth_offset
This should be found by scanning, generally using separate drivers for each DT node.
If you like you could send a patch with the info above, to doc/driver-model/livetree.txt to help others.
Regards, Simon