#
bd9ff681 |
|
21-Sep-2023 |
Algapally Santosh Sagar <santoshsagar.algapally@amd.com> |
serial: zynqmp: Fetch baudrate from dtb and update The baudrate configured in .config is taken by default by serial. If change of baudrate is required then the .config needs to changed and u-boot recompilation is required or the u-boot environment needs to be updated. To avoid this, support is added to fetch the baudrate directly from the device tree file and update. The serial, prints the log with the configured baudrate in the dtb. The commit c4df0f6f315c ("arm: mvebu: Espressobin: Set default value for $fdtfile env variable") is taken as reference for changing the default environment variable. The default environment stores the default baudrate value, When default baudrate and dtb baudrate are not same glitches are seen on the serial. So, the environment also needs to be updated with the dtb baudrate to avoid the glitches on the serial. Also add test to cover this new function. Signed-off-by: Algapally Santosh Sagar <santoshsagar.algapally@amd.com> Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com> Link: https://lore.kernel.org/r/20230921112043.3144726-3-venkatesh.abbarapu@amd.com Signed-off-by: Michal Simek <michal.simek@amd.com> |
#
f69d3d6d |
|
26-Sep-2023 |
Simon Glass <sjg@chromium.org> |
pci: serial: Support reading PCI-register size with base The PCI helpers read only the base address for a PCI region. In some cases the size is needed as well, e.g. to pass along to a driver which needs to know the size of its register area. Update the functions to allow the size to be returned. For serial, record the information and provided it with the serial_info() call. A limitation still exists in that the size is not available when OF_LIVE is enabled, so take account of that in the tests. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7071c82b |
|
26-Sep-2023 |
Simon Glass <sjg@chromium.org> |
dm: core: Support writing a 64-bit value Add support for writing a single 64-bit value into a property. Repurpose the existing tests to handle this case too. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d9216c86 |
|
26-Sep-2023 |
Simon Glass <sjg@chromium.org> |
dm: core: Support writing a boolean Add functions to write a boolean property. This involves deleting it if the value is false. Add a new ofnode_has_property() as well. Add a comment about the behaviour of of_read_property() when the property value is empty. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
62b1db33 |
|
26-Sep-2023 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to convert a devicetree to a dtb Add a way to flatten a devicetree into binary form. For livetree this involves generating the devicetree using fdt_property() and other calls. For flattree it simply involves providing the buffer containing the tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
67fb2159 |
|
26-Sep-2023 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to delete a node Add a function to delete a node in an existing tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c15862ff |
|
26-Sep-2023 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to copy a node Add a function to copy a node to another place under a new name. This is useful at least for testing, since copying a test node with existing properties is easier than writing the code to generate it all afresh. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
e0c3c21d |
|
26-Sep-2023 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a function to create an empty tree Provide a function to create a new, empty tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
24797097 |
|
26-Sep-2023 |
Simon Glass <sjg@chromium.org> |
dm: core: Reverse the argument order in ofnode_copy_props() Follow the order used by memcpy() as it may be less confusing. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e644284 |
|
20-Aug-2023 |
Jonas Karlman <jonas@kwiboo.se> |
dm: core: Report bootph-pre-ram/sram node as pre-reloc after relocation Nodes with bootph-pre-sram/ram props are bound in multiple phases: 1. At TPL (bootph-pre-sram) or SPL (bootph-pre-ram) phase 2. At U-Boot proper pre-relocation phase 3. At U-Boot proper normal phase However the binding and U-Boot Driver Model documentation indicate that only nodes marked with bootph-all or bootph-some-ram should be bound in the U-Boot proper pre-relocation phase. Change ofnode_pre_reloc to report a node with bootph-pre-ram/sram prop with a pre-reloc status only after U-Boot proper pre-relocation phase. Also update the ofnode_pre_reloc documentation to closer reflect the binding and driver model documentation. This changes behavior of what nodes are bound in the U-Boot proper pre-relocation phase. Change to bootph-all or add bootph-some-ram prop to restore prior behavior. Signed-off-by: Jonas Karlman <jonas@kwiboo.se> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
44f35e1a |
|
31-Aug-2023 |
Michal Simek <michal.simek@amd.com> |
dm: core: ofnode: Add ofnode_read_bootscript_flash() ofnode_read_bootscript_flash() reads bootscript address from /options/u-boot DT node. bootscr-flash-offset and bootscr-flash-size properties are read and values are filled. When bootscr-flash-size is not defined, bootscr-flash-offset property is unusable that's why cleaned. Both of these properties should be defined to function properly. Also add test to cover this new function. Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/08a3e6c09cce13287c69ad370e409e7f1766b406.1693465465.git.michal.simek@amd.com |
#
db5e349d |
|
31-Aug-2023 |
Michal Simek <michal.simek@amd.com> |
dm: core: ofnode: Add ofnode_read_bootscript_address() ofnode_read_bootscript_address() reads bootscript address from /options/u-boot DT node. bootscr-address or bootscr-ram-offset properties are read and values are filled. bootscr-address has higher priority than bootscr-ram-offset and the only one should be described in DT. Also add test to cover this new function. Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/23be3838502efef61803c90ef6e8b32bbd6ede41.1693465140.git.michal.simek@amd.com |
#
fa12dfa0 |
|
25-Aug-2023 |
Michal Simek <michal.simek@amd.com> |
dm: core: support reading a single indexed u64 value Add helper function to allow reading a single indexed u64 value from a device-tree property containing multiple u64 values, that is an array of u64's. Co-developed-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com> Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com> Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/08043c8d204d0068f04c27de86afe78c75c50b69.1692956263.git.michal.simek@amd.com |
#
a8f2ac2a |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
fdt: Allow more general use of livetree At present livetree can only be used for the control FDT. It is useful to be able to use the ofnode API for other FDTs, e.g. those used by the upcoming configuration editor. We already have most of the support present, and tests can be marked with the UT_TESTF_OTHER_FDT flag to use another FDT as a special case. But with this change, the functionality becomes more generally available. Plumb in the require support. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
aecae81a |
|
12-Mar-2023 |
Johan Jonker <jbx6244@gmail.com> |
include: dm: ofnode: fix headers When fdt_addr_t and phys_addr_t are split it turns out that the header don't match the functions, so fix the headers. Signed-off-by: Johan Jonker <jbx6244@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Kever Yang <kever.yang@rock-chips.com> |
#
e316fbab |
|
13-Feb-2023 |
Simon Glass <sjg@chromium.org> |
dm: treewide: Complete migration to new driver model schema Update various build and test components to use the new schema. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0347cc77 |
|
31-Jan-2023 |
Nikhil M Jain <n-jain1@ti.com> |
drivers: core: ofnode: Add panel timing decode. ofnode_decode_display_timing supports reading timing parameters from subnode of display-timings node, for displays supporting multiple resolution, in case if a display supports single resolution, it fails reading directly from display-timings node, to support it ofnode_decode_panel_timing is added. Signed-off-by: Nikhil M Jain <n-jain1@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e7a18f75 |
|
11-Oct-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Update docs about oftree_from_fdt() Update this function's comment and also the livetree documentation, so it is clear when to use the function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
db1ef1e1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Support copying properties with ofnode Add a function to copy properties from one node to another. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0b58eaa8 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow copying ofnode property data when writing At present ofnode_write_prop() is inconsistent between livetree and flattree, in that livetree requires the caller to ensure the property value is stable (e.g. in rodata or allocated) but flattree does not, since it makes a copy. This makes the API call a bit painful to use, since the caller must do different things depending on OF_LIVE. Add a new 'copy' argument which tells the function to make a copy if needed. Add some tests to cover this behaviour. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
988f1468 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comments for default-FDT ofnode functions Some ofnode functions can only operate on the default device tree, i.e. U-Boot's control FDT. Add comments to that effect. Fix up the reference to device tree bindings while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
92291652 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add the ofnode multi-tree implementation Add the logic to redirect requests for the device tree through a function which can look up the tree ID. This works by using the top bits of ofnode.of_offset to encode a tree. It is assumed that there will only be a few device trees used at runtime, typically the control FDT (always tree ID 0) and possibly a separate FDT to be passed the OS. The maximum number of device trees supported at runtime is 8, with this implementation. That would use bits 30:28 of the node-offset value, meaning that the positive offset range is limited to bits 27:0, versus 30:1 with this feature disabled. That still allows a device tree of up to 256MB, which should be enough for most FITs. Larger ones can be supported by using external data with the FIT, or by enabling OF_LIVE. Update the documentation a little and fix up the comment for ofnode_valid(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b7bd94f1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Split ofnode_path_root() into two functions This function turns out to be a little confusing since it looks up a path and also registers the tree. Split it into two, one that gets the root node and one that looks up a path, so the purpose is clear. Registering the tree will happen in a function to be added in a later patch, called oftree_from_fdt(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
2187cb7e |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow obtaining a node offset in the same tree In some cases we want to obtain an ofnode in the same tree as a different ofnode, such as when looking up a subnode. At present this is trivial, since there is only one tree. When there are multiple trees, this implementation will change. Also move the ofnode_to_offset() function up higher in the header file, since we will need to provide a different implementation with multiple trees. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
928d267a |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to look up a phandle in an oftree When we have multiple trees, the ofnode logic needs to be told which one to use. Create a new function which takes an oftree argument, along with a helper to obtain the FDT pointer from an oftree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
085d5941 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode functions to obtain an oftree At present dm_test_ofnode_root() does this manually. Add some inline functions to handle it, so this code can be centralised. Add oftree functions to produce a null tree and to check whether a tree is valid or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a3f50d03 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to obtain the flat tree The flat device tree is assumed to be the control FDT but this is not always the case. Update the ofnode implementation to obtain the node via an function call so we can eventually add support for selecting different trees. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
ee88ba71 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Provide a way to reset the device tree At present there is only one device tree used by the ofnode functions, except for some esoteric use of live tree. In preparation for supporting more than one, add a way to reset the list of device trees. For now this does nothing. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
66d0d0c1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Expand integer-reading tests The current tests do not cover all the behaviour. Add some more. Tidy up a few inconsistencies between livetree and flattree which come to light with these tests. Also drop the -ENODATA error since it is never actually returned. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
89090661 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Drop ofnode_is_available() This function is also available as ofnode_is_enabled(), so use that instead. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
52ad21aa |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a macro to iterate through properties Add a 'for_each' macro like we have for nodes. Fix the comment for struct ofprop while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
f46ec93e |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Avoid creating a name property when unflattening The current implementation creates a 'name' value for every node. This is not needed for the latest device tree format, which includes a name in the node header. Adjust the code to point the name at the node header instead. Also simplify ofnode_get_name(), now that we can rely on it to set the name correctly. Update the comment to make it clear what name the root node has. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
92432246 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_property_by_prop() The current name is quite unwieldy. Change it to use an ofprop_ prefix and shorten it. Fix the return-value comment while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4b1f5714 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_first/next_property() Drop the 'get' in these names since it does not fit with the rest of the API. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
98306987 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Drop the const from ofnode Now that we support writing to ofnodes, the const is not accurate. Drop it to avoid undesirable casting. Also drop the ofnode_to_npw() which is now the same as ofnode_to_np(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
ffe90392 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow adding ofnode subnodes Add this feature to the ofnode interface, supporting both livetree and flattree. If the node exists it is returned, along with a -EEXIST error. Update the functions it calls to handle this too. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
829d5124 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Pass a root node to of_find_node_by_phandle() This function currently assumes that the control FDT is used. Update it to allow a root node to be passed, so it can work with any tree. Also add a comment to ofnode_get_by_phandle() so that its purpose is clear. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b471bdc4 |
|
14-Jun-2022 |
Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
dm: core: Add functions to read 8/16-bit integers Add functions to read 8/16-bit integers like the existing functions for 32/64-bit to simplify read of 8/16-bit integers from device tree properties. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Marek Vasut <marex@denx.de> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
55f7990b |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add support for writing u32 with ofnode Add a new function to write an integer to an ofnode (live tree or flat tree). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
39e42be1 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow writing to a flat tree with ofnode In generally it is not permitted to implement an ofnode function only for flat tree or live tree. Both must be supported. Also the code for live tree access should be in of_access.c rather than ofnode.c which is really just for holding the API-conversion code. Update ofnode_write_prop() accordingly and fix the test so it can work with flat tree too. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
be0789a8 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Swap parameters of ofnode_write_prop() It is normal for the length to come after the value in libfdt. Follow this same convention with ofnode. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
33104847 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Introduce support for multiple trees At present ofnode only works with a single device tree, for the most part. This is the control FDT used by U-Boot. When booting an OS we may obtain a different device tree and want to modify it. Add some initial support for this into the ofnode API. Note that we don't permit aliases in this other device tree, since the of_access implementation maintains a list of aliases collected at start-up. Also, we don't need aliases to do fixups in the other FDT. So make sure that flat tree and live tree processing are consistent in this area. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
72b338aa |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a note about how livetree updates work The unflattening algorithm results in a single block of memory being allocated for the whole tree. When writing new properties, these are allocated new memory outside that block. When the block is freed, the allocated properties remain. Document how this works and the potential memory leak, as well as mentioning that updating the livetree is actually supported now. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5063ced2 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Split out the declaration of ofnode This is used by a lot of files, but ofnode.h needs to include a lot of header files. This can create dependency cycles, particularly with global_data.h which must include various declarations. Split the core delcarations into a separate file to fix this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
8b52f237 |
|
28-Mar-2022 |
Sean Anderson <sean.anderson@seco.com> |
dm: core: Provide fallbacks for ofnode_conf_read_... Because fdt_get_config_str et al. were moved/renamed to ofnode_conf_read_str, they now depend on CONFIG_DM as well as CONFIG_OF_CONTROL. Add some fallback implementations, preventing a linker error when CONFIG_SPL_OF_CONTROL and CONFIG_SPL_ENV_IS_IN_MMC are enabled and CONFIG_SPL_DM is disabled. Fixes: 7de8bd03c3 ("treewide: fdt: Move fdt_get_config_... to ofnode_conf_read...") Signed-off-by: Sean Anderson <sean.anderson@seco.com> |
#
7f418ea5 |
|
15-Apr-2022 |
Tom Rini <trini@konsulko.com> |
Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-net - DM9000 DM support - tftp server bug fix - mdio ofnode support functions - Various phy fixes and improvements. [trini: Fixup merge conflicts in drivers/net/phy/ethernet_id.c drivers/net/phy/phy.c include/phy.h]
|
#
ffb0f6f4 |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
treewide: Rename PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NA Rename constant PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NA to make it compatible with Linux' naming. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Stefan Roese <sr@denx.de> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> |
#
123ca114 |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
net: introduce helpers to get PHY interface mode from a device/ofnode Add helpers ofnode_read_phy_mode() and dev_read_phy_mode() to parse the "phy-mode" / "phy-connection-type" property. Add corresponding UT test. Use them treewide. This allows us to inline the phy_get_interface_by_name() into ofnode_read_phy_mode(), since the former is not used anymore. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> |
#
f3dd213e |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
net: introduce helpers to get PHY ofnode from MAC Add helpers ofnode_get_phy_node() and dev_get_phy_node() and use it in net/mdio-uclass.c function dm_eth_connect_phy_handle(). Also add corresponding UT test. This is useful because other part's of U-Boot may want to get PHY ofnode without connecting a PHY. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
d23f2908 |
|
24-Mar-2022 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: fix function documentation in include/dm/ofnode.h We use Sphinx style comments to describe functions. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
db681d49 |
|
23-Feb-2022 |
Michal Simek <michal.simek@amd.com> |
net: phy: Add new read ethernet phy id function Add new function to get ethernet phy id from compatible property of the mdio phy node. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Link: https://lore.kernel.org/r/16019efb3820a50330935fdaae191cec1f101b5c.1645627539.git.michal.simek@xilinx.com |
#
be74f71a |
|
12-Jan-2022 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
doc: add include/dm/of*.h to the HTML documentation Correct Sphinx style comments in include/dm/ofnode.h and add the device tree node API to the HTML documentation; the ofnode functions are compatible with Live tree or with flat device tree. Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> |
#
075bfc95 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to obtain a string list At present we support reading a string list a string at a time. Apart from being inefficient, this makes it impossible to separate reading of the devicetree into the of_to_plat() method where it belongs, since any code which needs access to the string must read it from the devicetree. Add a function which returns the string property as an array of pointers to the strings, which is easily used by clients. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
32c6a8e1 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix up string-function documentation The details for of_property_read_string_helper() and ofnode_read_string_index() are a little inaccurate. Fix up the comments to avoid confusion. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b8ec9458 |
|
15-Oct-2021 |
Michael Walle <michael@walle.cc> |
dm: core: add ofnode_for_each_compatible_node() Add a helper to iterate over all nodes with a given compatible string. Signed-off-by: Michael Walle <michael@walle.cc> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com> |
#
7de8bd03 |
|
07-Aug-2021 |
Simon Glass <sjg@chromium.org> |
treewide: fdt: Move fdt_get_config_... to ofnode_conf_read... The current API is outdated as it requires a devicetree pointer. Move these functions to use the ofnode API and update this globally. Add some tests while we are here. Correct the call in exynos_dsim_config_parse_dt() which is obviously wrong. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
77cbaf88 |
|
21-Jul-2021 |
Kishon Vijay Abraham I <kishon@ti.com> |
dm: core: Add helper to compare node names Add helper to compare node names. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://lore.kernel.org/r/20210721155849.20994-2-kishon@ti.com |
#
0e116bea |
|
26-May-2021 |
Marek BehĂșn <kabel@kernel.org> |
dm: core: add ofnode_get_path() Add function for retrieving full node path of a given ofnode. This uses np->full_name if OF is live, otherwise a call to fdt_get_path() is made. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
31a7b719 |
|
26-May-2021 |
Marek BehĂșn <kabel@kernel.org> |
dm: core: add non-translating version of ofnode_get_addr_size_index() Add functions ofnode_get_addr_size_index_notrans(), which is a non-translating version of ofnode_get_addr_size_index(). Some addresses are not meant to be translated, for example those of MTD fixed-partitions. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
aa351a14 |
|
12-Apr-2021 |
Chen Guanqiao <chenguanqiao@kuaishou.com> |
dm: core: Add size operations on device tree references Add functions to add size of addresses in the device tree using ofnode references. If the size is not set, return FDT_SIZE_T_NONE. Signed-off-by: Chen Guanqiao <chenguanqiao@kuaishou.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
51bdb509 |
|
12-Jan-2021 |
Nicolas Saenz Julienne <nsaenz@kernel.org> |
dm: Introduce xxx_get_dma_range() Add the following functions to get a specific device's DMA ranges: - dev_get_dma_range() - ofnode_get_dma_range() - of_get_dma_range() - fdt_get_dma_range() They are specially useful in oder to be able validate a physical address space range into a bus's and to convert addresses from and to address spaces. Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Peter Robinson <pbrobinson@gmail.com> Signed-off-by: Matthias Brugger <mbrugger@suse.com> |
#
401d1c4f |
|
30-Oct-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop asm/global_data.h from common header Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com> |
#
ec1add1e |
|
16-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Inline a few ofnode functions in SPL A recent change to unify the flattree/livetree code introduced a small size increase in SPL on some boards. For example SPL code size for px30-core-ctouch2-px30 increased by 40 bytes. To address this we can take advantage of the fact that some of the ofnode functions are only called a few times in SPL, so it is worth inlining them. Add new Kconfig options to control this. These functions are not inlined for U-Boot proper, since this increases code size. Fixes: 2ebea5eaebf ("dm: core: Combine the flattree and livetree binding code") Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d0c20ce6 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to get the devicetree root This is needed in at least one place. Avoid the conditional code in root.c by adding this inline function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0de1b074 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a livetree function to check node status Add a way to find out if a node is enabled or not, based on its 'status' property. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
305d3188 |
|
27-Jul-2020 |
Michal Simek <michal.simek@amd.com> |
dm: core: Add support for getting node from aliases Add support for getting a node/property from aliases. The similar functionality is provided for chosen node and this implemenatation is copy of it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
89f68302 |
|
25-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: add cells_count parameter in *_count_phandle_with_args The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d9949fe |
|
24-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: update test on of_offset in ofnode_valid Update the test for node.of_offset because an invalid offset is not always set to -1 because the return value of the libfdt functions are: + an error with a value < 0 + a valid offset with value >=0 For example, in ofnode_get_by_phandle() function, we have: node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, phandle); and this function can return -FDT_ERR_BADPHANDLE (-6). Without this patch, the added test dm_test_ofnode_get_by_phandle failed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
45dbe75d |
|
23-Sep-2020 |
Stefan Roese <sr@denx.de> |
dm: ofnode: Fix compile breakage with OF_CHECKS enabled Include missing log.h and change _ofnode_to_np() to ofnode_to_np() so that compiling with OF_CHECKS enabled does not break. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b9390ce5 |
|
24-Jul-2020 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: remove superfluous comment for union ofnode_union "future live tree" does not make sense anymore as we have CONFIG_OF_LIVE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <masahiroy@kernel.org> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <masahiroy@kernel.org> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@foss.st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <masahiroy@kernel.org> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
f69d3d6d |
|
26-Sep-2023 |
Simon Glass <sjg@chromium.org> |
pci: serial: Support reading PCI-register size with base The PCI helpers read only the base address for a PCI region. In some cases the size is needed as well, e.g. to pass along to a driver which needs to know the size of its register area. Update the functions to allow the size to be returned. For serial, record the information and provided it with the serial_info() call. A limitation still exists in that the size is not available when OF_LIVE is enabled, so take account of that in the tests. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7071c82b |
|
26-Sep-2023 |
Simon Glass <sjg@chromium.org> |
dm: core: Support writing a 64-bit value Add support for writing a single 64-bit value into a property. Repurpose the existing tests to handle this case too. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d9216c86 |
|
26-Sep-2023 |
Simon Glass <sjg@chromium.org> |
dm: core: Support writing a boolean Add functions to write a boolean property. This involves deleting it if the value is false. Add a new ofnode_has_property() as well. Add a comment about the behaviour of of_read_property() when the property value is empty. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
62b1db33 |
|
26-Sep-2023 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to convert a devicetree to a dtb Add a way to flatten a devicetree into binary form. For livetree this involves generating the devicetree using fdt_property() and other calls. For flattree it simply involves providing the buffer containing the tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
67fb2159 |
|
26-Sep-2023 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to delete a node Add a function to delete a node in an existing tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c15862ff |
|
26-Sep-2023 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to copy a node Add a function to copy a node to another place under a new name. This is useful at least for testing, since copying a test node with existing properties is easier than writing the code to generate it all afresh. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
e0c3c21d |
|
26-Sep-2023 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a function to create an empty tree Provide a function to create a new, empty tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
24797097 |
|
26-Sep-2023 |
Simon Glass <sjg@chromium.org> |
dm: core: Reverse the argument order in ofnode_copy_props() Follow the order used by memcpy() as it may be less confusing. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e644284 |
|
20-Aug-2023 |
Jonas Karlman <jonas@kwiboo.se> |
dm: core: Report bootph-pre-ram/sram node as pre-reloc after relocation Nodes with bootph-pre-sram/ram props are bound in multiple phases: 1. At TPL (bootph-pre-sram) or SPL (bootph-pre-ram) phase 2. At U-Boot proper pre-relocation phase 3. At U-Boot proper normal phase However the binding and U-Boot Driver Model documentation indicate that only nodes marked with bootph-all or bootph-some-ram should be bound in the U-Boot proper pre-relocation phase. Change ofnode_pre_reloc to report a node with bootph-pre-ram/sram prop with a pre-reloc status only after U-Boot proper pre-relocation phase. Also update the ofnode_pre_reloc documentation to closer reflect the binding and driver model documentation. This changes behavior of what nodes are bound in the U-Boot proper pre-relocation phase. Change to bootph-all or add bootph-some-ram prop to restore prior behavior. Signed-off-by: Jonas Karlman <jonas@kwiboo.se> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
44f35e1a |
|
31-Aug-2023 |
Michal Simek <michal.simek@amd.com> |
dm: core: ofnode: Add ofnode_read_bootscript_flash() ofnode_read_bootscript_flash() reads bootscript address from /options/u-boot DT node. bootscr-flash-offset and bootscr-flash-size properties are read and values are filled. When bootscr-flash-size is not defined, bootscr-flash-offset property is unusable that's why cleaned. Both of these properties should be defined to function properly. Also add test to cover this new function. Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/08a3e6c09cce13287c69ad370e409e7f1766b406.1693465465.git.michal.simek@amd.com |
#
db5e349d |
|
31-Aug-2023 |
Michal Simek <michal.simek@amd.com> |
dm: core: ofnode: Add ofnode_read_bootscript_address() ofnode_read_bootscript_address() reads bootscript address from /options/u-boot DT node. bootscr-address or bootscr-ram-offset properties are read and values are filled. bootscr-address has higher priority than bootscr-ram-offset and the only one should be described in DT. Also add test to cover this new function. Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/23be3838502efef61803c90ef6e8b32bbd6ede41.1693465140.git.michal.simek@amd.com |
#
fa12dfa0 |
|
25-Aug-2023 |
Michal Simek <michal.simek@amd.com> |
dm: core: support reading a single indexed u64 value Add helper function to allow reading a single indexed u64 value from a device-tree property containing multiple u64 values, that is an array of u64's. Co-developed-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com> Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com> Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/08043c8d204d0068f04c27de86afe78c75c50b69.1692956263.git.michal.simek@amd.com |
#
a8f2ac2a |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
fdt: Allow more general use of livetree At present livetree can only be used for the control FDT. It is useful to be able to use the ofnode API for other FDTs, e.g. those used by the upcoming configuration editor. We already have most of the support present, and tests can be marked with the UT_TESTF_OTHER_FDT flag to use another FDT as a special case. But with this change, the functionality becomes more generally available. Plumb in the require support. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
aecae81a |
|
12-Mar-2023 |
Johan Jonker <jbx6244@gmail.com> |
include: dm: ofnode: fix headers When fdt_addr_t and phys_addr_t are split it turns out that the header don't match the functions, so fix the headers. Signed-off-by: Johan Jonker <jbx6244@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Kever Yang <kever.yang@rock-chips.com> |
#
e316fbab |
|
13-Feb-2023 |
Simon Glass <sjg@chromium.org> |
dm: treewide: Complete migration to new driver model schema Update various build and test components to use the new schema. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0347cc77 |
|
31-Jan-2023 |
Nikhil M Jain <n-jain1@ti.com> |
drivers: core: ofnode: Add panel timing decode. ofnode_decode_display_timing supports reading timing parameters from subnode of display-timings node, for displays supporting multiple resolution, in case if a display supports single resolution, it fails reading directly from display-timings node, to support it ofnode_decode_panel_timing is added. Signed-off-by: Nikhil M Jain <n-jain1@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e7a18f75 |
|
11-Oct-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Update docs about oftree_from_fdt() Update this function's comment and also the livetree documentation, so it is clear when to use the function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
db1ef1e1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Support copying properties with ofnode Add a function to copy properties from one node to another. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0b58eaa8 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow copying ofnode property data when writing At present ofnode_write_prop() is inconsistent between livetree and flattree, in that livetree requires the caller to ensure the property value is stable (e.g. in rodata or allocated) but flattree does not, since it makes a copy. This makes the API call a bit painful to use, since the caller must do different things depending on OF_LIVE. Add a new 'copy' argument which tells the function to make a copy if needed. Add some tests to cover this behaviour. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
988f1468 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comments for default-FDT ofnode functions Some ofnode functions can only operate on the default device tree, i.e. U-Boot's control FDT. Add comments to that effect. Fix up the reference to device tree bindings while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
92291652 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add the ofnode multi-tree implementation Add the logic to redirect requests for the device tree through a function which can look up the tree ID. This works by using the top bits of ofnode.of_offset to encode a tree. It is assumed that there will only be a few device trees used at runtime, typically the control FDT (always tree ID 0) and possibly a separate FDT to be passed the OS. The maximum number of device trees supported at runtime is 8, with this implementation. That would use bits 30:28 of the node-offset value, meaning that the positive offset range is limited to bits 27:0, versus 30:1 with this feature disabled. That still allows a device tree of up to 256MB, which should be enough for most FITs. Larger ones can be supported by using external data with the FIT, or by enabling OF_LIVE. Update the documentation a little and fix up the comment for ofnode_valid(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b7bd94f1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Split ofnode_path_root() into two functions This function turns out to be a little confusing since it looks up a path and also registers the tree. Split it into two, one that gets the root node and one that looks up a path, so the purpose is clear. Registering the tree will happen in a function to be added in a later patch, called oftree_from_fdt(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
2187cb7e |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow obtaining a node offset in the same tree In some cases we want to obtain an ofnode in the same tree as a different ofnode, such as when looking up a subnode. At present this is trivial, since there is only one tree. When there are multiple trees, this implementation will change. Also move the ofnode_to_offset() function up higher in the header file, since we will need to provide a different implementation with multiple trees. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
928d267a |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to look up a phandle in an oftree When we have multiple trees, the ofnode logic needs to be told which one to use. Create a new function which takes an oftree argument, along with a helper to obtain the FDT pointer from an oftree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
085d5941 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode functions to obtain an oftree At present dm_test_ofnode_root() does this manually. Add some inline functions to handle it, so this code can be centralised. Add oftree functions to produce a null tree and to check whether a tree is valid or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a3f50d03 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to obtain the flat tree The flat device tree is assumed to be the control FDT but this is not always the case. Update the ofnode implementation to obtain the node via an function call so we can eventually add support for selecting different trees. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
ee88ba71 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Provide a way to reset the device tree At present there is only one device tree used by the ofnode functions, except for some esoteric use of live tree. In preparation for supporting more than one, add a way to reset the list of device trees. For now this does nothing. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
66d0d0c1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Expand integer-reading tests The current tests do not cover all the behaviour. Add some more. Tidy up a few inconsistencies between livetree and flattree which come to light with these tests. Also drop the -ENODATA error since it is never actually returned. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
89090661 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Drop ofnode_is_available() This function is also available as ofnode_is_enabled(), so use that instead. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
52ad21aa |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a macro to iterate through properties Add a 'for_each' macro like we have for nodes. Fix the comment for struct ofprop while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
f46ec93e |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Avoid creating a name property when unflattening The current implementation creates a 'name' value for every node. This is not needed for the latest device tree format, which includes a name in the node header. Adjust the code to point the name at the node header instead. Also simplify ofnode_get_name(), now that we can rely on it to set the name correctly. Update the comment to make it clear what name the root node has. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
92432246 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_property_by_prop() The current name is quite unwieldy. Change it to use an ofprop_ prefix and shorten it. Fix the return-value comment while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4b1f5714 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_first/next_property() Drop the 'get' in these names since it does not fit with the rest of the API. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
98306987 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Drop the const from ofnode Now that we support writing to ofnodes, the const is not accurate. Drop it to avoid undesirable casting. Also drop the ofnode_to_npw() which is now the same as ofnode_to_np(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
ffe90392 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow adding ofnode subnodes Add this feature to the ofnode interface, supporting both livetree and flattree. If the node exists it is returned, along with a -EEXIST error. Update the functions it calls to handle this too. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
829d5124 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Pass a root node to of_find_node_by_phandle() This function currently assumes that the control FDT is used. Update it to allow a root node to be passed, so it can work with any tree. Also add a comment to ofnode_get_by_phandle() so that its purpose is clear. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b471bdc4 |
|
14-Jun-2022 |
Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
dm: core: Add functions to read 8/16-bit integers Add functions to read 8/16-bit integers like the existing functions for 32/64-bit to simplify read of 8/16-bit integers from device tree properties. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Marek Vasut <marex@denx.de> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
55f7990b |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add support for writing u32 with ofnode Add a new function to write an integer to an ofnode (live tree or flat tree). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
39e42be1 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow writing to a flat tree with ofnode In generally it is not permitted to implement an ofnode function only for flat tree or live tree. Both must be supported. Also the code for live tree access should be in of_access.c rather than ofnode.c which is really just for holding the API-conversion code. Update ofnode_write_prop() accordingly and fix the test so it can work with flat tree too. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
be0789a8 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Swap parameters of ofnode_write_prop() It is normal for the length to come after the value in libfdt. Follow this same convention with ofnode. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
33104847 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Introduce support for multiple trees At present ofnode only works with a single device tree, for the most part. This is the control FDT used by U-Boot. When booting an OS we may obtain a different device tree and want to modify it. Add some initial support for this into the ofnode API. Note that we don't permit aliases in this other device tree, since the of_access implementation maintains a list of aliases collected at start-up. Also, we don't need aliases to do fixups in the other FDT. So make sure that flat tree and live tree processing are consistent in this area. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
72b338aa |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a note about how livetree updates work The unflattening algorithm results in a single block of memory being allocated for the whole tree. When writing new properties, these are allocated new memory outside that block. When the block is freed, the allocated properties remain. Document how this works and the potential memory leak, as well as mentioning that updating the livetree is actually supported now. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5063ced2 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Split out the declaration of ofnode This is used by a lot of files, but ofnode.h needs to include a lot of header files. This can create dependency cycles, particularly with global_data.h which must include various declarations. Split the core delcarations into a separate file to fix this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
8b52f237 |
|
28-Mar-2022 |
Sean Anderson <sean.anderson@seco.com> |
dm: core: Provide fallbacks for ofnode_conf_read_... Because fdt_get_config_str et al. were moved/renamed to ofnode_conf_read_str, they now depend on CONFIG_DM as well as CONFIG_OF_CONTROL. Add some fallback implementations, preventing a linker error when CONFIG_SPL_OF_CONTROL and CONFIG_SPL_ENV_IS_IN_MMC are enabled and CONFIG_SPL_DM is disabled. Fixes: 7de8bd03c3 ("treewide: fdt: Move fdt_get_config_... to ofnode_conf_read...") Signed-off-by: Sean Anderson <sean.anderson@seco.com> |
#
7f418ea5 |
|
15-Apr-2022 |
Tom Rini <trini@konsulko.com> |
Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-net - DM9000 DM support - tftp server bug fix - mdio ofnode support functions - Various phy fixes and improvements. [trini: Fixup merge conflicts in drivers/net/phy/ethernet_id.c drivers/net/phy/phy.c include/phy.h]
|
#
ffb0f6f4 |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
treewide: Rename PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NA Rename constant PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NA to make it compatible with Linux' naming. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Stefan Roese <sr@denx.de> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> |
#
123ca114 |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
net: introduce helpers to get PHY interface mode from a device/ofnode Add helpers ofnode_read_phy_mode() and dev_read_phy_mode() to parse the "phy-mode" / "phy-connection-type" property. Add corresponding UT test. Use them treewide. This allows us to inline the phy_get_interface_by_name() into ofnode_read_phy_mode(), since the former is not used anymore. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> |
#
f3dd213e |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
net: introduce helpers to get PHY ofnode from MAC Add helpers ofnode_get_phy_node() and dev_get_phy_node() and use it in net/mdio-uclass.c function dm_eth_connect_phy_handle(). Also add corresponding UT test. This is useful because other part's of U-Boot may want to get PHY ofnode without connecting a PHY. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
d23f2908 |
|
24-Mar-2022 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: fix function documentation in include/dm/ofnode.h We use Sphinx style comments to describe functions. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
db681d49 |
|
23-Feb-2022 |
Michal Simek <michal.simek@amd.com> |
net: phy: Add new read ethernet phy id function Add new function to get ethernet phy id from compatible property of the mdio phy node. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Link: https://lore.kernel.org/r/16019efb3820a50330935fdaae191cec1f101b5c.1645627539.git.michal.simek@xilinx.com |
#
be74f71a |
|
12-Jan-2022 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
doc: add include/dm/of*.h to the HTML documentation Correct Sphinx style comments in include/dm/ofnode.h and add the device tree node API to the HTML documentation; the ofnode functions are compatible with Live tree or with flat device tree. Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> |
#
075bfc95 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to obtain a string list At present we support reading a string list a string at a time. Apart from being inefficient, this makes it impossible to separate reading of the devicetree into the of_to_plat() method where it belongs, since any code which needs access to the string must read it from the devicetree. Add a function which returns the string property as an array of pointers to the strings, which is easily used by clients. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
32c6a8e1 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix up string-function documentation The details for of_property_read_string_helper() and ofnode_read_string_index() are a little inaccurate. Fix up the comments to avoid confusion. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b8ec9458 |
|
15-Oct-2021 |
Michael Walle <michael@walle.cc> |
dm: core: add ofnode_for_each_compatible_node() Add a helper to iterate over all nodes with a given compatible string. Signed-off-by: Michael Walle <michael@walle.cc> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com> |
#
7de8bd03 |
|
07-Aug-2021 |
Simon Glass <sjg@chromium.org> |
treewide: fdt: Move fdt_get_config_... to ofnode_conf_read... The current API is outdated as it requires a devicetree pointer. Move these functions to use the ofnode API and update this globally. Add some tests while we are here. Correct the call in exynos_dsim_config_parse_dt() which is obviously wrong. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
77cbaf88 |
|
21-Jul-2021 |
Kishon Vijay Abraham I <kishon@ti.com> |
dm: core: Add helper to compare node names Add helper to compare node names. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://lore.kernel.org/r/20210721155849.20994-2-kishon@ti.com |
#
0e116bea |
|
26-May-2021 |
Marek BehĂșn <kabel@kernel.org> |
dm: core: add ofnode_get_path() Add function for retrieving full node path of a given ofnode. This uses np->full_name if OF is live, otherwise a call to fdt_get_path() is made. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
31a7b719 |
|
26-May-2021 |
Marek BehĂșn <kabel@kernel.org> |
dm: core: add non-translating version of ofnode_get_addr_size_index() Add functions ofnode_get_addr_size_index_notrans(), which is a non-translating version of ofnode_get_addr_size_index(). Some addresses are not meant to be translated, for example those of MTD fixed-partitions. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
aa351a14 |
|
12-Apr-2021 |
Chen Guanqiao <chenguanqiao@kuaishou.com> |
dm: core: Add size operations on device tree references Add functions to add size of addresses in the device tree using ofnode references. If the size is not set, return FDT_SIZE_T_NONE. Signed-off-by: Chen Guanqiao <chenguanqiao@kuaishou.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
51bdb509 |
|
12-Jan-2021 |
Nicolas Saenz Julienne <nsaenz@kernel.org> |
dm: Introduce xxx_get_dma_range() Add the following functions to get a specific device's DMA ranges: - dev_get_dma_range() - ofnode_get_dma_range() - of_get_dma_range() - fdt_get_dma_range() They are specially useful in oder to be able validate a physical address space range into a bus's and to convert addresses from and to address spaces. Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Peter Robinson <pbrobinson@gmail.com> Signed-off-by: Matthias Brugger <mbrugger@suse.com> |
#
401d1c4f |
|
30-Oct-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop asm/global_data.h from common header Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com> |
#
ec1add1e |
|
16-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Inline a few ofnode functions in SPL A recent change to unify the flattree/livetree code introduced a small size increase in SPL on some boards. For example SPL code size for px30-core-ctouch2-px30 increased by 40 bytes. To address this we can take advantage of the fact that some of the ofnode functions are only called a few times in SPL, so it is worth inlining them. Add new Kconfig options to control this. These functions are not inlined for U-Boot proper, since this increases code size. Fixes: 2ebea5eaebf ("dm: core: Combine the flattree and livetree binding code") Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d0c20ce6 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to get the devicetree root This is needed in at least one place. Avoid the conditional code in root.c by adding this inline function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0de1b074 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a livetree function to check node status Add a way to find out if a node is enabled or not, based on its 'status' property. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
305d3188 |
|
27-Jul-2020 |
Michal Simek <michal.simek@amd.com> |
dm: core: Add support for getting node from aliases Add support for getting a node/property from aliases. The similar functionality is provided for chosen node and this implemenatation is copy of it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
89f68302 |
|
25-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: add cells_count parameter in *_count_phandle_with_args The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d9949fe |
|
24-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: update test on of_offset in ofnode_valid Update the test for node.of_offset because an invalid offset is not always set to -1 because the return value of the libfdt functions are: + an error with a value < 0 + a valid offset with value >=0 For example, in ofnode_get_by_phandle() function, we have: node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, phandle); and this function can return -FDT_ERR_BADPHANDLE (-6). Without this patch, the added test dm_test_ofnode_get_by_phandle failed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
45dbe75d |
|
23-Sep-2020 |
Stefan Roese <sr@denx.de> |
dm: ofnode: Fix compile breakage with OF_CHECKS enabled Include missing log.h and change _ofnode_to_np() to ofnode_to_np() so that compiling with OF_CHECKS enabled does not break. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b9390ce5 |
|
24-Jul-2020 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: remove superfluous comment for union ofnode_union "future live tree" does not make sense anymore as we have CONFIG_OF_LIVE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <masahiroy@kernel.org> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <masahiroy@kernel.org> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@foss.st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <masahiroy@kernel.org> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e644284 |
|
20-Aug-2023 |
Jonas Karlman <jonas@kwiboo.se> |
dm: core: Report bootph-pre-ram/sram node as pre-reloc after relocation Nodes with bootph-pre-sram/ram props are bound in multiple phases: 1. At TPL (bootph-pre-sram) or SPL (bootph-pre-ram) phase 2. At U-Boot proper pre-relocation phase 3. At U-Boot proper normal phase However the binding and U-Boot Driver Model documentation indicate that only nodes marked with bootph-all or bootph-some-ram should be bound in the U-Boot proper pre-relocation phase. Change ofnode_pre_reloc to report a node with bootph-pre-ram/sram prop with a pre-reloc status only after U-Boot proper pre-relocation phase. Also update the ofnode_pre_reloc documentation to closer reflect the binding and driver model documentation. This changes behavior of what nodes are bound in the U-Boot proper pre-relocation phase. Change to bootph-all or add bootph-some-ram prop to restore prior behavior. Signed-off-by: Jonas Karlman <jonas@kwiboo.se> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
44f35e1a |
|
31-Aug-2023 |
Michal Simek <michal.simek@amd.com> |
dm: core: ofnode: Add ofnode_read_bootscript_flash() ofnode_read_bootscript_flash() reads bootscript address from /options/u-boot DT node. bootscr-flash-offset and bootscr-flash-size properties are read and values are filled. When bootscr-flash-size is not defined, bootscr-flash-offset property is unusable that's why cleaned. Both of these properties should be defined to function properly. Also add test to cover this new function. Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/08a3e6c09cce13287c69ad370e409e7f1766b406.1693465465.git.michal.simek@amd.com |
#
db5e349d |
|
31-Aug-2023 |
Michal Simek <michal.simek@amd.com> |
dm: core: ofnode: Add ofnode_read_bootscript_address() ofnode_read_bootscript_address() reads bootscript address from /options/u-boot DT node. bootscr-address or bootscr-ram-offset properties are read and values are filled. bootscr-address has higher priority than bootscr-ram-offset and the only one should be described in DT. Also add test to cover this new function. Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/23be3838502efef61803c90ef6e8b32bbd6ede41.1693465140.git.michal.simek@amd.com |
#
fa12dfa0 |
|
25-Aug-2023 |
Michal Simek <michal.simek@amd.com> |
dm: core: support reading a single indexed u64 value Add helper function to allow reading a single indexed u64 value from a device-tree property containing multiple u64 values, that is an array of u64's. Co-developed-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com> Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com> Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/08043c8d204d0068f04c27de86afe78c75c50b69.1692956263.git.michal.simek@amd.com |
#
a8f2ac2a |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
fdt: Allow more general use of livetree At present livetree can only be used for the control FDT. It is useful to be able to use the ofnode API for other FDTs, e.g. those used by the upcoming configuration editor. We already have most of the support present, and tests can be marked with the UT_TESTF_OTHER_FDT flag to use another FDT as a special case. But with this change, the functionality becomes more generally available. Plumb in the require support. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
aecae81a |
|
12-Mar-2023 |
Johan Jonker <jbx6244@gmail.com> |
include: dm: ofnode: fix headers When fdt_addr_t and phys_addr_t are split it turns out that the header don't match the functions, so fix the headers. Signed-off-by: Johan Jonker <jbx6244@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Kever Yang <kever.yang@rock-chips.com> |
#
e316fbab |
|
13-Feb-2023 |
Simon Glass <sjg@chromium.org> |
dm: treewide: Complete migration to new driver model schema Update various build and test components to use the new schema. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0347cc77 |
|
31-Jan-2023 |
Nikhil M Jain <n-jain1@ti.com> |
drivers: core: ofnode: Add panel timing decode. ofnode_decode_display_timing supports reading timing parameters from subnode of display-timings node, for displays supporting multiple resolution, in case if a display supports single resolution, it fails reading directly from display-timings node, to support it ofnode_decode_panel_timing is added. Signed-off-by: Nikhil M Jain <n-jain1@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e7a18f75 |
|
11-Oct-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Update docs about oftree_from_fdt() Update this function's comment and also the livetree documentation, so it is clear when to use the function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
db1ef1e1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Support copying properties with ofnode Add a function to copy properties from one node to another. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0b58eaa8 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow copying ofnode property data when writing At present ofnode_write_prop() is inconsistent between livetree and flattree, in that livetree requires the caller to ensure the property value is stable (e.g. in rodata or allocated) but flattree does not, since it makes a copy. This makes the API call a bit painful to use, since the caller must do different things depending on OF_LIVE. Add a new 'copy' argument which tells the function to make a copy if needed. Add some tests to cover this behaviour. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
988f1468 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comments for default-FDT ofnode functions Some ofnode functions can only operate on the default device tree, i.e. U-Boot's control FDT. Add comments to that effect. Fix up the reference to device tree bindings while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
92291652 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add the ofnode multi-tree implementation Add the logic to redirect requests for the device tree through a function which can look up the tree ID. This works by using the top bits of ofnode.of_offset to encode a tree. It is assumed that there will only be a few device trees used at runtime, typically the control FDT (always tree ID 0) and possibly a separate FDT to be passed the OS. The maximum number of device trees supported at runtime is 8, with this implementation. That would use bits 30:28 of the node-offset value, meaning that the positive offset range is limited to bits 27:0, versus 30:1 with this feature disabled. That still allows a device tree of up to 256MB, which should be enough for most FITs. Larger ones can be supported by using external data with the FIT, or by enabling OF_LIVE. Update the documentation a little and fix up the comment for ofnode_valid(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b7bd94f1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Split ofnode_path_root() into two functions This function turns out to be a little confusing since it looks up a path and also registers the tree. Split it into two, one that gets the root node and one that looks up a path, so the purpose is clear. Registering the tree will happen in a function to be added in a later patch, called oftree_from_fdt(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
2187cb7e |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow obtaining a node offset in the same tree In some cases we want to obtain an ofnode in the same tree as a different ofnode, such as when looking up a subnode. At present this is trivial, since there is only one tree. When there are multiple trees, this implementation will change. Also move the ofnode_to_offset() function up higher in the header file, since we will need to provide a different implementation with multiple trees. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
928d267a |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to look up a phandle in an oftree When we have multiple trees, the ofnode logic needs to be told which one to use. Create a new function which takes an oftree argument, along with a helper to obtain the FDT pointer from an oftree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
085d5941 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode functions to obtain an oftree At present dm_test_ofnode_root() does this manually. Add some inline functions to handle it, so this code can be centralised. Add oftree functions to produce a null tree and to check whether a tree is valid or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a3f50d03 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to obtain the flat tree The flat device tree is assumed to be the control FDT but this is not always the case. Update the ofnode implementation to obtain the node via an function call so we can eventually add support for selecting different trees. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
ee88ba71 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Provide a way to reset the device tree At present there is only one device tree used by the ofnode functions, except for some esoteric use of live tree. In preparation for supporting more than one, add a way to reset the list of device trees. For now this does nothing. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
66d0d0c1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Expand integer-reading tests The current tests do not cover all the behaviour. Add some more. Tidy up a few inconsistencies between livetree and flattree which come to light with these tests. Also drop the -ENODATA error since it is never actually returned. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
89090661 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Drop ofnode_is_available() This function is also available as ofnode_is_enabled(), so use that instead. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
52ad21aa |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a macro to iterate through properties Add a 'for_each' macro like we have for nodes. Fix the comment for struct ofprop while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
f46ec93e |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Avoid creating a name property when unflattening The current implementation creates a 'name' value for every node. This is not needed for the latest device tree format, which includes a name in the node header. Adjust the code to point the name at the node header instead. Also simplify ofnode_get_name(), now that we can rely on it to set the name correctly. Update the comment to make it clear what name the root node has. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
92432246 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_property_by_prop() The current name is quite unwieldy. Change it to use an ofprop_ prefix and shorten it. Fix the return-value comment while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4b1f5714 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_first/next_property() Drop the 'get' in these names since it does not fit with the rest of the API. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
98306987 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Drop the const from ofnode Now that we support writing to ofnodes, the const is not accurate. Drop it to avoid undesirable casting. Also drop the ofnode_to_npw() which is now the same as ofnode_to_np(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
ffe90392 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow adding ofnode subnodes Add this feature to the ofnode interface, supporting both livetree and flattree. If the node exists it is returned, along with a -EEXIST error. Update the functions it calls to handle this too. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
829d5124 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Pass a root node to of_find_node_by_phandle() This function currently assumes that the control FDT is used. Update it to allow a root node to be passed, so it can work with any tree. Also add a comment to ofnode_get_by_phandle() so that its purpose is clear. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b471bdc4 |
|
14-Jun-2022 |
Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
dm: core: Add functions to read 8/16-bit integers Add functions to read 8/16-bit integers like the existing functions for 32/64-bit to simplify read of 8/16-bit integers from device tree properties. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Marek Vasut <marex@denx.de> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
55f7990b |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add support for writing u32 with ofnode Add a new function to write an integer to an ofnode (live tree or flat tree). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
39e42be1 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow writing to a flat tree with ofnode In generally it is not permitted to implement an ofnode function only for flat tree or live tree. Both must be supported. Also the code for live tree access should be in of_access.c rather than ofnode.c which is really just for holding the API-conversion code. Update ofnode_write_prop() accordingly and fix the test so it can work with flat tree too. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
be0789a8 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Swap parameters of ofnode_write_prop() It is normal for the length to come after the value in libfdt. Follow this same convention with ofnode. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
33104847 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Introduce support for multiple trees At present ofnode only works with a single device tree, for the most part. This is the control FDT used by U-Boot. When booting an OS we may obtain a different device tree and want to modify it. Add some initial support for this into the ofnode API. Note that we don't permit aliases in this other device tree, since the of_access implementation maintains a list of aliases collected at start-up. Also, we don't need aliases to do fixups in the other FDT. So make sure that flat tree and live tree processing are consistent in this area. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
72b338aa |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a note about how livetree updates work The unflattening algorithm results in a single block of memory being allocated for the whole tree. When writing new properties, these are allocated new memory outside that block. When the block is freed, the allocated properties remain. Document how this works and the potential memory leak, as well as mentioning that updating the livetree is actually supported now. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5063ced2 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Split out the declaration of ofnode This is used by a lot of files, but ofnode.h needs to include a lot of header files. This can create dependency cycles, particularly with global_data.h which must include various declarations. Split the core delcarations into a separate file to fix this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
8b52f237 |
|
28-Mar-2022 |
Sean Anderson <sean.anderson@seco.com> |
dm: core: Provide fallbacks for ofnode_conf_read_... Because fdt_get_config_str et al. were moved/renamed to ofnode_conf_read_str, they now depend on CONFIG_DM as well as CONFIG_OF_CONTROL. Add some fallback implementations, preventing a linker error when CONFIG_SPL_OF_CONTROL and CONFIG_SPL_ENV_IS_IN_MMC are enabled and CONFIG_SPL_DM is disabled. Fixes: 7de8bd03c3 ("treewide: fdt: Move fdt_get_config_... to ofnode_conf_read...") Signed-off-by: Sean Anderson <sean.anderson@seco.com> |
#
7f418ea5 |
|
15-Apr-2022 |
Tom Rini <trini@konsulko.com> |
Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-net - DM9000 DM support - tftp server bug fix - mdio ofnode support functions - Various phy fixes and improvements. [trini: Fixup merge conflicts in drivers/net/phy/ethernet_id.c drivers/net/phy/phy.c include/phy.h]
|
#
ffb0f6f4 |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
treewide: Rename PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NA Rename constant PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NA to make it compatible with Linux' naming. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Stefan Roese <sr@denx.de> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> |
#
123ca114 |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
net: introduce helpers to get PHY interface mode from a device/ofnode Add helpers ofnode_read_phy_mode() and dev_read_phy_mode() to parse the "phy-mode" / "phy-connection-type" property. Add corresponding UT test. Use them treewide. This allows us to inline the phy_get_interface_by_name() into ofnode_read_phy_mode(), since the former is not used anymore. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> |
#
f3dd213e |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
net: introduce helpers to get PHY ofnode from MAC Add helpers ofnode_get_phy_node() and dev_get_phy_node() and use it in net/mdio-uclass.c function dm_eth_connect_phy_handle(). Also add corresponding UT test. This is useful because other part's of U-Boot may want to get PHY ofnode without connecting a PHY. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
d23f2908 |
|
24-Mar-2022 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: fix function documentation in include/dm/ofnode.h We use Sphinx style comments to describe functions. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
db681d49 |
|
23-Feb-2022 |
Michal Simek <michal.simek@amd.com> |
net: phy: Add new read ethernet phy id function Add new function to get ethernet phy id from compatible property of the mdio phy node. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Link: https://lore.kernel.org/r/16019efb3820a50330935fdaae191cec1f101b5c.1645627539.git.michal.simek@xilinx.com |
#
be74f71a |
|
12-Jan-2022 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
doc: add include/dm/of*.h to the HTML documentation Correct Sphinx style comments in include/dm/ofnode.h and add the device tree node API to the HTML documentation; the ofnode functions are compatible with Live tree or with flat device tree. Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> |
#
075bfc95 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to obtain a string list At present we support reading a string list a string at a time. Apart from being inefficient, this makes it impossible to separate reading of the devicetree into the of_to_plat() method where it belongs, since any code which needs access to the string must read it from the devicetree. Add a function which returns the string property as an array of pointers to the strings, which is easily used by clients. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
32c6a8e1 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix up string-function documentation The details for of_property_read_string_helper() and ofnode_read_string_index() are a little inaccurate. Fix up the comments to avoid confusion. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b8ec9458 |
|
15-Oct-2021 |
Michael Walle <michael@walle.cc> |
dm: core: add ofnode_for_each_compatible_node() Add a helper to iterate over all nodes with a given compatible string. Signed-off-by: Michael Walle <michael@walle.cc> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com> |
#
7de8bd03 |
|
07-Aug-2021 |
Simon Glass <sjg@chromium.org> |
treewide: fdt: Move fdt_get_config_... to ofnode_conf_read... The current API is outdated as it requires a devicetree pointer. Move these functions to use the ofnode API and update this globally. Add some tests while we are here. Correct the call in exynos_dsim_config_parse_dt() which is obviously wrong. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
77cbaf88 |
|
21-Jul-2021 |
Kishon Vijay Abraham I <kishon@ti.com> |
dm: core: Add helper to compare node names Add helper to compare node names. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://lore.kernel.org/r/20210721155849.20994-2-kishon@ti.com |
#
0e116bea |
|
26-May-2021 |
Marek BehĂșn <kabel@kernel.org> |
dm: core: add ofnode_get_path() Add function for retrieving full node path of a given ofnode. This uses np->full_name if OF is live, otherwise a call to fdt_get_path() is made. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
31a7b719 |
|
26-May-2021 |
Marek BehĂșn <kabel@kernel.org> |
dm: core: add non-translating version of ofnode_get_addr_size_index() Add functions ofnode_get_addr_size_index_notrans(), which is a non-translating version of ofnode_get_addr_size_index(). Some addresses are not meant to be translated, for example those of MTD fixed-partitions. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
aa351a14 |
|
12-Apr-2021 |
Chen Guanqiao <chenguanqiao@kuaishou.com> |
dm: core: Add size operations on device tree references Add functions to add size of addresses in the device tree using ofnode references. If the size is not set, return FDT_SIZE_T_NONE. Signed-off-by: Chen Guanqiao <chenguanqiao@kuaishou.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
51bdb509 |
|
12-Jan-2021 |
Nicolas Saenz Julienne <nsaenz@kernel.org> |
dm: Introduce xxx_get_dma_range() Add the following functions to get a specific device's DMA ranges: - dev_get_dma_range() - ofnode_get_dma_range() - of_get_dma_range() - fdt_get_dma_range() They are specially useful in oder to be able validate a physical address space range into a bus's and to convert addresses from and to address spaces. Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Peter Robinson <pbrobinson@gmail.com> Signed-off-by: Matthias Brugger <mbrugger@suse.com> |
#
401d1c4f |
|
30-Oct-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop asm/global_data.h from common header Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com> |
#
ec1add1e |
|
16-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Inline a few ofnode functions in SPL A recent change to unify the flattree/livetree code introduced a small size increase in SPL on some boards. For example SPL code size for px30-core-ctouch2-px30 increased by 40 bytes. To address this we can take advantage of the fact that some of the ofnode functions are only called a few times in SPL, so it is worth inlining them. Add new Kconfig options to control this. These functions are not inlined for U-Boot proper, since this increases code size. Fixes: 2ebea5eaebf ("dm: core: Combine the flattree and livetree binding code") Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d0c20ce6 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to get the devicetree root This is needed in at least one place. Avoid the conditional code in root.c by adding this inline function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0de1b074 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a livetree function to check node status Add a way to find out if a node is enabled or not, based on its 'status' property. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
305d3188 |
|
27-Jul-2020 |
Michal Simek <michal.simek@amd.com> |
dm: core: Add support for getting node from aliases Add support for getting a node/property from aliases. The similar functionality is provided for chosen node and this implemenatation is copy of it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
89f68302 |
|
25-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: add cells_count parameter in *_count_phandle_with_args The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d9949fe |
|
24-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: update test on of_offset in ofnode_valid Update the test for node.of_offset because an invalid offset is not always set to -1 because the return value of the libfdt functions are: + an error with a value < 0 + a valid offset with value >=0 For example, in ofnode_get_by_phandle() function, we have: node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, phandle); and this function can return -FDT_ERR_BADPHANDLE (-6). Without this patch, the added test dm_test_ofnode_get_by_phandle failed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
45dbe75d |
|
23-Sep-2020 |
Stefan Roese <sr@denx.de> |
dm: ofnode: Fix compile breakage with OF_CHECKS enabled Include missing log.h and change _ofnode_to_np() to ofnode_to_np() so that compiling with OF_CHECKS enabled does not break. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b9390ce5 |
|
24-Jul-2020 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: remove superfluous comment for union ofnode_union "future live tree" does not make sense anymore as we have CONFIG_OF_LIVE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <masahiroy@kernel.org> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <masahiroy@kernel.org> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@foss.st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <masahiroy@kernel.org> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8f2ac2a |
|
01-Jun-2023 |
Simon Glass <sjg@chromium.org> |
fdt: Allow more general use of livetree At present livetree can only be used for the control FDT. It is useful to be able to use the ofnode API for other FDTs, e.g. those used by the upcoming configuration editor. We already have most of the support present, and tests can be marked with the UT_TESTF_OTHER_FDT flag to use another FDT as a special case. But with this change, the functionality becomes more generally available. Plumb in the require support. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
aecae81a |
|
12-Mar-2023 |
Johan Jonker <jbx6244@gmail.com> |
include: dm: ofnode: fix headers When fdt_addr_t and phys_addr_t are split it turns out that the header don't match the functions, so fix the headers. Signed-off-by: Johan Jonker <jbx6244@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Kever Yang <kever.yang@rock-chips.com> |
#
e316fbab |
|
13-Feb-2023 |
Simon Glass <sjg@chromium.org> |
dm: treewide: Complete migration to new driver model schema Update various build and test components to use the new schema. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0347cc77 |
|
31-Jan-2023 |
Nikhil M Jain <n-jain1@ti.com> |
drivers: core: ofnode: Add panel timing decode. ofnode_decode_display_timing supports reading timing parameters from subnode of display-timings node, for displays supporting multiple resolution, in case if a display supports single resolution, it fails reading directly from display-timings node, to support it ofnode_decode_panel_timing is added. Signed-off-by: Nikhil M Jain <n-jain1@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e7a18f75 |
|
11-Oct-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Update docs about oftree_from_fdt() Update this function's comment and also the livetree documentation, so it is clear when to use the function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
db1ef1e1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Support copying properties with ofnode Add a function to copy properties from one node to another. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0b58eaa8 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow copying ofnode property data when writing At present ofnode_write_prop() is inconsistent between livetree and flattree, in that livetree requires the caller to ensure the property value is stable (e.g. in rodata or allocated) but flattree does not, since it makes a copy. This makes the API call a bit painful to use, since the caller must do different things depending on OF_LIVE. Add a new 'copy' argument which tells the function to make a copy if needed. Add some tests to cover this behaviour. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
988f1468 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comments for default-FDT ofnode functions Some ofnode functions can only operate on the default device tree, i.e. U-Boot's control FDT. Add comments to that effect. Fix up the reference to device tree bindings while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
92291652 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add the ofnode multi-tree implementation Add the logic to redirect requests for the device tree through a function which can look up the tree ID. This works by using the top bits of ofnode.of_offset to encode a tree. It is assumed that there will only be a few device trees used at runtime, typically the control FDT (always tree ID 0) and possibly a separate FDT to be passed the OS. The maximum number of device trees supported at runtime is 8, with this implementation. That would use bits 30:28 of the node-offset value, meaning that the positive offset range is limited to bits 27:0, versus 30:1 with this feature disabled. That still allows a device tree of up to 256MB, which should be enough for most FITs. Larger ones can be supported by using external data with the FIT, or by enabling OF_LIVE. Update the documentation a little and fix up the comment for ofnode_valid(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b7bd94f1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Split ofnode_path_root() into two functions This function turns out to be a little confusing since it looks up a path and also registers the tree. Split it into two, one that gets the root node and one that looks up a path, so the purpose is clear. Registering the tree will happen in a function to be added in a later patch, called oftree_from_fdt(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
2187cb7e |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow obtaining a node offset in the same tree In some cases we want to obtain an ofnode in the same tree as a different ofnode, such as when looking up a subnode. At present this is trivial, since there is only one tree. When there are multiple trees, this implementation will change. Also move the ofnode_to_offset() function up higher in the header file, since we will need to provide a different implementation with multiple trees. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
928d267a |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to look up a phandle in an oftree When we have multiple trees, the ofnode logic needs to be told which one to use. Create a new function which takes an oftree argument, along with a helper to obtain the FDT pointer from an oftree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
085d5941 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode functions to obtain an oftree At present dm_test_ofnode_root() does this manually. Add some inline functions to handle it, so this code can be centralised. Add oftree functions to produce a null tree and to check whether a tree is valid or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a3f50d03 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to obtain the flat tree The flat device tree is assumed to be the control FDT but this is not always the case. Update the ofnode implementation to obtain the node via an function call so we can eventually add support for selecting different trees. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
ee88ba71 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Provide a way to reset the device tree At present there is only one device tree used by the ofnode functions, except for some esoteric use of live tree. In preparation for supporting more than one, add a way to reset the list of device trees. For now this does nothing. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
66d0d0c1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Expand integer-reading tests The current tests do not cover all the behaviour. Add some more. Tidy up a few inconsistencies between livetree and flattree which come to light with these tests. Also drop the -ENODATA error since it is never actually returned. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
89090661 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Drop ofnode_is_available() This function is also available as ofnode_is_enabled(), so use that instead. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
52ad21aa |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a macro to iterate through properties Add a 'for_each' macro like we have for nodes. Fix the comment for struct ofprop while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
f46ec93e |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Avoid creating a name property when unflattening The current implementation creates a 'name' value for every node. This is not needed for the latest device tree format, which includes a name in the node header. Adjust the code to point the name at the node header instead. Also simplify ofnode_get_name(), now that we can rely on it to set the name correctly. Update the comment to make it clear what name the root node has. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
92432246 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_property_by_prop() The current name is quite unwieldy. Change it to use an ofprop_ prefix and shorten it. Fix the return-value comment while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4b1f5714 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_first/next_property() Drop the 'get' in these names since it does not fit with the rest of the API. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
98306987 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Drop the const from ofnode Now that we support writing to ofnodes, the const is not accurate. Drop it to avoid undesirable casting. Also drop the ofnode_to_npw() which is now the same as ofnode_to_np(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
ffe90392 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow adding ofnode subnodes Add this feature to the ofnode interface, supporting both livetree and flattree. If the node exists it is returned, along with a -EEXIST error. Update the functions it calls to handle this too. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
829d5124 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Pass a root node to of_find_node_by_phandle() This function currently assumes that the control FDT is used. Update it to allow a root node to be passed, so it can work with any tree. Also add a comment to ofnode_get_by_phandle() so that its purpose is clear. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b471bdc4 |
|
14-Jun-2022 |
Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
dm: core: Add functions to read 8/16-bit integers Add functions to read 8/16-bit integers like the existing functions for 32/64-bit to simplify read of 8/16-bit integers from device tree properties. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Marek Vasut <marex@denx.de> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
55f7990b |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add support for writing u32 with ofnode Add a new function to write an integer to an ofnode (live tree or flat tree). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
39e42be1 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow writing to a flat tree with ofnode In generally it is not permitted to implement an ofnode function only for flat tree or live tree. Both must be supported. Also the code for live tree access should be in of_access.c rather than ofnode.c which is really just for holding the API-conversion code. Update ofnode_write_prop() accordingly and fix the test so it can work with flat tree too. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
be0789a8 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Swap parameters of ofnode_write_prop() It is normal for the length to come after the value in libfdt. Follow this same convention with ofnode. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
33104847 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Introduce support for multiple trees At present ofnode only works with a single device tree, for the most part. This is the control FDT used by U-Boot. When booting an OS we may obtain a different device tree and want to modify it. Add some initial support for this into the ofnode API. Note that we don't permit aliases in this other device tree, since the of_access implementation maintains a list of aliases collected at start-up. Also, we don't need aliases to do fixups in the other FDT. So make sure that flat tree and live tree processing are consistent in this area. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
72b338aa |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a note about how livetree updates work The unflattening algorithm results in a single block of memory being allocated for the whole tree. When writing new properties, these are allocated new memory outside that block. When the block is freed, the allocated properties remain. Document how this works and the potential memory leak, as well as mentioning that updating the livetree is actually supported now. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5063ced2 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Split out the declaration of ofnode This is used by a lot of files, but ofnode.h needs to include a lot of header files. This can create dependency cycles, particularly with global_data.h which must include various declarations. Split the core delcarations into a separate file to fix this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
8b52f237 |
|
28-Mar-2022 |
Sean Anderson <sean.anderson@seco.com> |
dm: core: Provide fallbacks for ofnode_conf_read_... Because fdt_get_config_str et al. were moved/renamed to ofnode_conf_read_str, they now depend on CONFIG_DM as well as CONFIG_OF_CONTROL. Add some fallback implementations, preventing a linker error when CONFIG_SPL_OF_CONTROL and CONFIG_SPL_ENV_IS_IN_MMC are enabled and CONFIG_SPL_DM is disabled. Fixes: 7de8bd03c3 ("treewide: fdt: Move fdt_get_config_... to ofnode_conf_read...") Signed-off-by: Sean Anderson <sean.anderson@seco.com> |
#
7f418ea5 |
|
15-Apr-2022 |
Tom Rini <trini@konsulko.com> |
Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-net - DM9000 DM support - tftp server bug fix - mdio ofnode support functions - Various phy fixes and improvements. [trini: Fixup merge conflicts in drivers/net/phy/ethernet_id.c drivers/net/phy/phy.c include/phy.h]
|
#
ffb0f6f4 |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
treewide: Rename PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NA Rename constant PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NA to make it compatible with Linux' naming. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Stefan Roese <sr@denx.de> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> |
#
123ca114 |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
net: introduce helpers to get PHY interface mode from a device/ofnode Add helpers ofnode_read_phy_mode() and dev_read_phy_mode() to parse the "phy-mode" / "phy-connection-type" property. Add corresponding UT test. Use them treewide. This allows us to inline the phy_get_interface_by_name() into ofnode_read_phy_mode(), since the former is not used anymore. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> |
#
f3dd213e |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
net: introduce helpers to get PHY ofnode from MAC Add helpers ofnode_get_phy_node() and dev_get_phy_node() and use it in net/mdio-uclass.c function dm_eth_connect_phy_handle(). Also add corresponding UT test. This is useful because other part's of U-Boot may want to get PHY ofnode without connecting a PHY. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
d23f2908 |
|
24-Mar-2022 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: fix function documentation in include/dm/ofnode.h We use Sphinx style comments to describe functions. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
db681d49 |
|
23-Feb-2022 |
Michal Simek <michal.simek@amd.com> |
net: phy: Add new read ethernet phy id function Add new function to get ethernet phy id from compatible property of the mdio phy node. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Link: https://lore.kernel.org/r/16019efb3820a50330935fdaae191cec1f101b5c.1645627539.git.michal.simek@xilinx.com |
#
be74f71a |
|
12-Jan-2022 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
doc: add include/dm/of*.h to the HTML documentation Correct Sphinx style comments in include/dm/ofnode.h and add the device tree node API to the HTML documentation; the ofnode functions are compatible with Live tree or with flat device tree. Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> |
#
075bfc95 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to obtain a string list At present we support reading a string list a string at a time. Apart from being inefficient, this makes it impossible to separate reading of the devicetree into the of_to_plat() method where it belongs, since any code which needs access to the string must read it from the devicetree. Add a function which returns the string property as an array of pointers to the strings, which is easily used by clients. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
32c6a8e1 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix up string-function documentation The details for of_property_read_string_helper() and ofnode_read_string_index() are a little inaccurate. Fix up the comments to avoid confusion. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b8ec9458 |
|
15-Oct-2021 |
Michael Walle <michael@walle.cc> |
dm: core: add ofnode_for_each_compatible_node() Add a helper to iterate over all nodes with a given compatible string. Signed-off-by: Michael Walle <michael@walle.cc> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com> |
#
7de8bd03 |
|
07-Aug-2021 |
Simon Glass <sjg@chromium.org> |
treewide: fdt: Move fdt_get_config_... to ofnode_conf_read... The current API is outdated as it requires a devicetree pointer. Move these functions to use the ofnode API and update this globally. Add some tests while we are here. Correct the call in exynos_dsim_config_parse_dt() which is obviously wrong. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
77cbaf88 |
|
21-Jul-2021 |
Kishon Vijay Abraham I <kishon@ti.com> |
dm: core: Add helper to compare node names Add helper to compare node names. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://lore.kernel.org/r/20210721155849.20994-2-kishon@ti.com |
#
0e116bea |
|
26-May-2021 |
Marek BehĂșn <kabel@kernel.org> |
dm: core: add ofnode_get_path() Add function for retrieving full node path of a given ofnode. This uses np->full_name if OF is live, otherwise a call to fdt_get_path() is made. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
31a7b719 |
|
26-May-2021 |
Marek BehĂșn <kabel@kernel.org> |
dm: core: add non-translating version of ofnode_get_addr_size_index() Add functions ofnode_get_addr_size_index_notrans(), which is a non-translating version of ofnode_get_addr_size_index(). Some addresses are not meant to be translated, for example those of MTD fixed-partitions. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
aa351a14 |
|
12-Apr-2021 |
Chen Guanqiao <chenguanqiao@kuaishou.com> |
dm: core: Add size operations on device tree references Add functions to add size of addresses in the device tree using ofnode references. If the size is not set, return FDT_SIZE_T_NONE. Signed-off-by: Chen Guanqiao <chenguanqiao@kuaishou.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
51bdb509 |
|
12-Jan-2021 |
Nicolas Saenz Julienne <nsaenz@kernel.org> |
dm: Introduce xxx_get_dma_range() Add the following functions to get a specific device's DMA ranges: - dev_get_dma_range() - ofnode_get_dma_range() - of_get_dma_range() - fdt_get_dma_range() They are specially useful in oder to be able validate a physical address space range into a bus's and to convert addresses from and to address spaces. Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Peter Robinson <pbrobinson@gmail.com> Signed-off-by: Matthias Brugger <mbrugger@suse.com> |
#
401d1c4f |
|
30-Oct-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop asm/global_data.h from common header Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com> |
#
ec1add1e |
|
16-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Inline a few ofnode functions in SPL A recent change to unify the flattree/livetree code introduced a small size increase in SPL on some boards. For example SPL code size for px30-core-ctouch2-px30 increased by 40 bytes. To address this we can take advantage of the fact that some of the ofnode functions are only called a few times in SPL, so it is worth inlining them. Add new Kconfig options to control this. These functions are not inlined for U-Boot proper, since this increases code size. Fixes: 2ebea5eaebf ("dm: core: Combine the flattree and livetree binding code") Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d0c20ce6 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to get the devicetree root This is needed in at least one place. Avoid the conditional code in root.c by adding this inline function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0de1b074 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a livetree function to check node status Add a way to find out if a node is enabled or not, based on its 'status' property. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
305d3188 |
|
27-Jul-2020 |
Michal Simek <michal.simek@amd.com> |
dm: core: Add support for getting node from aliases Add support for getting a node/property from aliases. The similar functionality is provided for chosen node and this implemenatation is copy of it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
89f68302 |
|
25-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: add cells_count parameter in *_count_phandle_with_args The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d9949fe |
|
24-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: update test on of_offset in ofnode_valid Update the test for node.of_offset because an invalid offset is not always set to -1 because the return value of the libfdt functions are: + an error with a value < 0 + a valid offset with value >=0 For example, in ofnode_get_by_phandle() function, we have: node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, phandle); and this function can return -FDT_ERR_BADPHANDLE (-6). Without this patch, the added test dm_test_ofnode_get_by_phandle failed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
45dbe75d |
|
23-Sep-2020 |
Stefan Roese <sr@denx.de> |
dm: ofnode: Fix compile breakage with OF_CHECKS enabled Include missing log.h and change _ofnode_to_np() to ofnode_to_np() so that compiling with OF_CHECKS enabled does not break. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b9390ce5 |
|
24-Jul-2020 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: remove superfluous comment for union ofnode_union "future live tree" does not make sense anymore as we have CONFIG_OF_LIVE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@foss.st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
aecae81a |
|
12-Mar-2023 |
Johan Jonker <jbx6244@gmail.com> |
include: dm: ofnode: fix headers When fdt_addr_t and phys_addr_t are split it turns out that the header don't match the functions, so fix the headers. Signed-off-by: Johan Jonker <jbx6244@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Kever Yang <kever.yang@rock-chips.com> |
#
e316fbab |
|
13-Feb-2023 |
Simon Glass <sjg@chromium.org> |
dm: treewide: Complete migration to new driver model schema Update various build and test components to use the new schema. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0347cc77 |
|
31-Jan-2023 |
Nikhil M Jain <n-jain1@ti.com> |
drivers: core: ofnode: Add panel timing decode. ofnode_decode_display_timing supports reading timing parameters from subnode of display-timings node, for displays supporting multiple resolution, in case if a display supports single resolution, it fails reading directly from display-timings node, to support it ofnode_decode_panel_timing is added. Signed-off-by: Nikhil M Jain <n-jain1@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e7a18f75 |
|
11-Oct-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Update docs about oftree_from_fdt() Update this function's comment and also the livetree documentation, so it is clear when to use the function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
db1ef1e1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Support copying properties with ofnode Add a function to copy properties from one node to another. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0b58eaa8 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow copying ofnode property data when writing At present ofnode_write_prop() is inconsistent between livetree and flattree, in that livetree requires the caller to ensure the property value is stable (e.g. in rodata or allocated) but flattree does not, since it makes a copy. This makes the API call a bit painful to use, since the caller must do different things depending on OF_LIVE. Add a new 'copy' argument which tells the function to make a copy if needed. Add some tests to cover this behaviour. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
988f1468 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comments for default-FDT ofnode functions Some ofnode functions can only operate on the default device tree, i.e. U-Boot's control FDT. Add comments to that effect. Fix up the reference to device tree bindings while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
92291652 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add the ofnode multi-tree implementation Add the logic to redirect requests for the device tree through a function which can look up the tree ID. This works by using the top bits of ofnode.of_offset to encode a tree. It is assumed that there will only be a few device trees used at runtime, typically the control FDT (always tree ID 0) and possibly a separate FDT to be passed the OS. The maximum number of device trees supported at runtime is 8, with this implementation. That would use bits 30:28 of the node-offset value, meaning that the positive offset range is limited to bits 27:0, versus 30:1 with this feature disabled. That still allows a device tree of up to 256MB, which should be enough for most FITs. Larger ones can be supported by using external data with the FIT, or by enabling OF_LIVE. Update the documentation a little and fix up the comment for ofnode_valid(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b7bd94f1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Split ofnode_path_root() into two functions This function turns out to be a little confusing since it looks up a path and also registers the tree. Split it into two, one that gets the root node and one that looks up a path, so the purpose is clear. Registering the tree will happen in a function to be added in a later patch, called oftree_from_fdt(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
2187cb7e |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow obtaining a node offset in the same tree In some cases we want to obtain an ofnode in the same tree as a different ofnode, such as when looking up a subnode. At present this is trivial, since there is only one tree. When there are multiple trees, this implementation will change. Also move the ofnode_to_offset() function up higher in the header file, since we will need to provide a different implementation with multiple trees. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
928d267a |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to look up a phandle in an oftree When we have multiple trees, the ofnode logic needs to be told which one to use. Create a new function which takes an oftree argument, along with a helper to obtain the FDT pointer from an oftree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
085d5941 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode functions to obtain an oftree At present dm_test_ofnode_root() does this manually. Add some inline functions to handle it, so this code can be centralised. Add oftree functions to produce a null tree and to check whether a tree is valid or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a3f50d03 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to obtain the flat tree The flat device tree is assumed to be the control FDT but this is not always the case. Update the ofnode implementation to obtain the node via an function call so we can eventually add support for selecting different trees. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
ee88ba71 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Provide a way to reset the device tree At present there is only one device tree used by the ofnode functions, except for some esoteric use of live tree. In preparation for supporting more than one, add a way to reset the list of device trees. For now this does nothing. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
66d0d0c1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Expand integer-reading tests The current tests do not cover all the behaviour. Add some more. Tidy up a few inconsistencies between livetree and flattree which come to light with these tests. Also drop the -ENODATA error since it is never actually returned. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
89090661 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Drop ofnode_is_available() This function is also available as ofnode_is_enabled(), so use that instead. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
52ad21aa |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a macro to iterate through properties Add a 'for_each' macro like we have for nodes. Fix the comment for struct ofprop while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
f46ec93e |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Avoid creating a name property when unflattening The current implementation creates a 'name' value for every node. This is not needed for the latest device tree format, which includes a name in the node header. Adjust the code to point the name at the node header instead. Also simplify ofnode_get_name(), now that we can rely on it to set the name correctly. Update the comment to make it clear what name the root node has. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
92432246 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_property_by_prop() The current name is quite unwieldy. Change it to use an ofprop_ prefix and shorten it. Fix the return-value comment while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4b1f5714 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_first/next_property() Drop the 'get' in these names since it does not fit with the rest of the API. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
98306987 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Drop the const from ofnode Now that we support writing to ofnodes, the const is not accurate. Drop it to avoid undesirable casting. Also drop the ofnode_to_npw() which is now the same as ofnode_to_np(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
ffe90392 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow adding ofnode subnodes Add this feature to the ofnode interface, supporting both livetree and flattree. If the node exists it is returned, along with a -EEXIST error. Update the functions it calls to handle this too. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
829d5124 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Pass a root node to of_find_node_by_phandle() This function currently assumes that the control FDT is used. Update it to allow a root node to be passed, so it can work with any tree. Also add a comment to ofnode_get_by_phandle() so that its purpose is clear. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b471bdc4 |
|
14-Jun-2022 |
Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
dm: core: Add functions to read 8/16-bit integers Add functions to read 8/16-bit integers like the existing functions for 32/64-bit to simplify read of 8/16-bit integers from device tree properties. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Marek Vasut <marex@denx.de> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
55f7990b |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add support for writing u32 with ofnode Add a new function to write an integer to an ofnode (live tree or flat tree). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
39e42be1 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow writing to a flat tree with ofnode In generally it is not permitted to implement an ofnode function only for flat tree or live tree. Both must be supported. Also the code for live tree access should be in of_access.c rather than ofnode.c which is really just for holding the API-conversion code. Update ofnode_write_prop() accordingly and fix the test so it can work with flat tree too. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
be0789a8 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Swap parameters of ofnode_write_prop() It is normal for the length to come after the value in libfdt. Follow this same convention with ofnode. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
33104847 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Introduce support for multiple trees At present ofnode only works with a single device tree, for the most part. This is the control FDT used by U-Boot. When booting an OS we may obtain a different device tree and want to modify it. Add some initial support for this into the ofnode API. Note that we don't permit aliases in this other device tree, since the of_access implementation maintains a list of aliases collected at start-up. Also, we don't need aliases to do fixups in the other FDT. So make sure that flat tree and live tree processing are consistent in this area. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
72b338aa |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a note about how livetree updates work The unflattening algorithm results in a single block of memory being allocated for the whole tree. When writing new properties, these are allocated new memory outside that block. When the block is freed, the allocated properties remain. Document how this works and the potential memory leak, as well as mentioning that updating the livetree is actually supported now. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5063ced2 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Split out the declaration of ofnode This is used by a lot of files, but ofnode.h needs to include a lot of header files. This can create dependency cycles, particularly with global_data.h which must include various declarations. Split the core delcarations into a separate file to fix this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
8b52f237 |
|
28-Mar-2022 |
Sean Anderson <sean.anderson@seco.com> |
dm: core: Provide fallbacks for ofnode_conf_read_... Because fdt_get_config_str et al. were moved/renamed to ofnode_conf_read_str, they now depend on CONFIG_DM as well as CONFIG_OF_CONTROL. Add some fallback implementations, preventing a linker error when CONFIG_SPL_OF_CONTROL and CONFIG_SPL_ENV_IS_IN_MMC are enabled and CONFIG_SPL_DM is disabled. Fixes: 7de8bd03c3 ("treewide: fdt: Move fdt_get_config_... to ofnode_conf_read...") Signed-off-by: Sean Anderson <sean.anderson@seco.com> |
#
7f418ea5 |
|
15-Apr-2022 |
Tom Rini <trini@konsulko.com> |
Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-net - DM9000 DM support - tftp server bug fix - mdio ofnode support functions - Various phy fixes and improvements. [trini: Fixup merge conflicts in drivers/net/phy/ethernet_id.c drivers/net/phy/phy.c include/phy.h]
|
#
ffb0f6f4 |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
treewide: Rename PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NA Rename constant PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NA to make it compatible with Linux' naming. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Stefan Roese <sr@denx.de> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> |
#
123ca114 |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
net: introduce helpers to get PHY interface mode from a device/ofnode Add helpers ofnode_read_phy_mode() and dev_read_phy_mode() to parse the "phy-mode" / "phy-connection-type" property. Add corresponding UT test. Use them treewide. This allows us to inline the phy_get_interface_by_name() into ofnode_read_phy_mode(), since the former is not used anymore. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> |
#
f3dd213e |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
net: introduce helpers to get PHY ofnode from MAC Add helpers ofnode_get_phy_node() and dev_get_phy_node() and use it in net/mdio-uclass.c function dm_eth_connect_phy_handle(). Also add corresponding UT test. This is useful because other part's of U-Boot may want to get PHY ofnode without connecting a PHY. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
d23f2908 |
|
24-Mar-2022 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: fix function documentation in include/dm/ofnode.h We use Sphinx style comments to describe functions. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
db681d49 |
|
23-Feb-2022 |
Michal Simek <michal.simek@amd.com> |
net: phy: Add new read ethernet phy id function Add new function to get ethernet phy id from compatible property of the mdio phy node. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Link: https://lore.kernel.org/r/16019efb3820a50330935fdaae191cec1f101b5c.1645627539.git.michal.simek@xilinx.com |
#
be74f71a |
|
12-Jan-2022 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
doc: add include/dm/of*.h to the HTML documentation Correct Sphinx style comments in include/dm/ofnode.h and add the device tree node API to the HTML documentation; the ofnode functions are compatible with Live tree or with flat device tree. Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> |
#
075bfc95 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to obtain a string list At present we support reading a string list a string at a time. Apart from being inefficient, this makes it impossible to separate reading of the devicetree into the of_to_plat() method where it belongs, since any code which needs access to the string must read it from the devicetree. Add a function which returns the string property as an array of pointers to the strings, which is easily used by clients. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
32c6a8e1 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix up string-function documentation The details for of_property_read_string_helper() and ofnode_read_string_index() are a little inaccurate. Fix up the comments to avoid confusion. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b8ec9458 |
|
15-Oct-2021 |
Michael Walle <michael@walle.cc> |
dm: core: add ofnode_for_each_compatible_node() Add a helper to iterate over all nodes with a given compatible string. Signed-off-by: Michael Walle <michael@walle.cc> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com> |
#
7de8bd03 |
|
07-Aug-2021 |
Simon Glass <sjg@chromium.org> |
treewide: fdt: Move fdt_get_config_... to ofnode_conf_read... The current API is outdated as it requires a devicetree pointer. Move these functions to use the ofnode API and update this globally. Add some tests while we are here. Correct the call in exynos_dsim_config_parse_dt() which is obviously wrong. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
77cbaf88 |
|
21-Jul-2021 |
Kishon Vijay Abraham I <kishon@ti.com> |
dm: core: Add helper to compare node names Add helper to compare node names. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://lore.kernel.org/r/20210721155849.20994-2-kishon@ti.com |
#
0e116bea |
|
26-May-2021 |
Marek BehĂșn <kabel@kernel.org> |
dm: core: add ofnode_get_path() Add function for retrieving full node path of a given ofnode. This uses np->full_name if OF is live, otherwise a call to fdt_get_path() is made. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
31a7b719 |
|
26-May-2021 |
Marek BehĂșn <kabel@kernel.org> |
dm: core: add non-translating version of ofnode_get_addr_size_index() Add functions ofnode_get_addr_size_index_notrans(), which is a non-translating version of ofnode_get_addr_size_index(). Some addresses are not meant to be translated, for example those of MTD fixed-partitions. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
aa351a14 |
|
12-Apr-2021 |
Chen Guanqiao <chenguanqiao@kuaishou.com> |
dm: core: Add size operations on device tree references Add functions to add size of addresses in the device tree using ofnode references. If the size is not set, return FDT_SIZE_T_NONE. Signed-off-by: Chen Guanqiao <chenguanqiao@kuaishou.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
51bdb509 |
|
12-Jan-2021 |
Nicolas Saenz Julienne <nsaenz@kernel.org> |
dm: Introduce xxx_get_dma_range() Add the following functions to get a specific device's DMA ranges: - dev_get_dma_range() - ofnode_get_dma_range() - of_get_dma_range() - fdt_get_dma_range() They are specially useful in oder to be able validate a physical address space range into a bus's and to convert addresses from and to address spaces. Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Peter Robinson <pbrobinson@gmail.com> Signed-off-by: Matthias Brugger <mbrugger@suse.com> |
#
401d1c4f |
|
30-Oct-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop asm/global_data.h from common header Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com> |
#
ec1add1e |
|
16-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Inline a few ofnode functions in SPL A recent change to unify the flattree/livetree code introduced a small size increase in SPL on some boards. For example SPL code size for px30-core-ctouch2-px30 increased by 40 bytes. To address this we can take advantage of the fact that some of the ofnode functions are only called a few times in SPL, so it is worth inlining them. Add new Kconfig options to control this. These functions are not inlined for U-Boot proper, since this increases code size. Fixes: 2ebea5eaebf ("dm: core: Combine the flattree and livetree binding code") Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d0c20ce6 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to get the devicetree root This is needed in at least one place. Avoid the conditional code in root.c by adding this inline function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0de1b074 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a livetree function to check node status Add a way to find out if a node is enabled or not, based on its 'status' property. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
305d3188 |
|
27-Jul-2020 |
Michal Simek <michal.simek@amd.com> |
dm: core: Add support for getting node from aliases Add support for getting a node/property from aliases. The similar functionality is provided for chosen node and this implemenatation is copy of it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
89f68302 |
|
25-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: add cells_count parameter in *_count_phandle_with_args The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d9949fe |
|
24-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: update test on of_offset in ofnode_valid Update the test for node.of_offset because an invalid offset is not always set to -1 because the return value of the libfdt functions are: + an error with a value < 0 + a valid offset with value >=0 For example, in ofnode_get_by_phandle() function, we have: node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, phandle); and this function can return -FDT_ERR_BADPHANDLE (-6). Without this patch, the added test dm_test_ofnode_get_by_phandle failed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
45dbe75d |
|
23-Sep-2020 |
Stefan Roese <sr@denx.de> |
dm: ofnode: Fix compile breakage with OF_CHECKS enabled Include missing log.h and change _ofnode_to_np() to ofnode_to_np() so that compiling with OF_CHECKS enabled does not break. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b9390ce5 |
|
24-Jul-2020 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: remove superfluous comment for union ofnode_union "future live tree" does not make sense anymore as we have CONFIG_OF_LIVE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@foss.st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
e316fbab |
|
13-Feb-2023 |
Simon Glass <sjg@chromium.org> |
dm: treewide: Complete migration to new driver model schema Update various build and test components to use the new schema. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0347cc77 |
|
31-Jan-2023 |
Nikhil M Jain <n-jain1@ti.com> |
drivers: core: ofnode: Add panel timing decode. ofnode_decode_display_timing supports reading timing parameters from subnode of display-timings node, for displays supporting multiple resolution, in case if a display supports single resolution, it fails reading directly from display-timings node, to support it ofnode_decode_panel_timing is added. Signed-off-by: Nikhil M Jain <n-jain1@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e7a18f75 |
|
11-Oct-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Update docs about oftree_from_fdt() Update this function's comment and also the livetree documentation, so it is clear when to use the function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
db1ef1e1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Support copying properties with ofnode Add a function to copy properties from one node to another. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0b58eaa8 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow copying ofnode property data when writing At present ofnode_write_prop() is inconsistent between livetree and flattree, in that livetree requires the caller to ensure the property value is stable (e.g. in rodata or allocated) but flattree does not, since it makes a copy. This makes the API call a bit painful to use, since the caller must do different things depending on OF_LIVE. Add a new 'copy' argument which tells the function to make a copy if needed. Add some tests to cover this behaviour. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
988f1468 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comments for default-FDT ofnode functions Some ofnode functions can only operate on the default device tree, i.e. U-Boot's control FDT. Add comments to that effect. Fix up the reference to device tree bindings while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
92291652 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add the ofnode multi-tree implementation Add the logic to redirect requests for the device tree through a function which can look up the tree ID. This works by using the top bits of ofnode.of_offset to encode a tree. It is assumed that there will only be a few device trees used at runtime, typically the control FDT (always tree ID 0) and possibly a separate FDT to be passed the OS. The maximum number of device trees supported at runtime is 8, with this implementation. That would use bits 30:28 of the node-offset value, meaning that the positive offset range is limited to bits 27:0, versus 30:1 with this feature disabled. That still allows a device tree of up to 256MB, which should be enough for most FITs. Larger ones can be supported by using external data with the FIT, or by enabling OF_LIVE. Update the documentation a little and fix up the comment for ofnode_valid(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b7bd94f1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Split ofnode_path_root() into two functions This function turns out to be a little confusing since it looks up a path and also registers the tree. Split it into two, one that gets the root node and one that looks up a path, so the purpose is clear. Registering the tree will happen in a function to be added in a later patch, called oftree_from_fdt(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
2187cb7e |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow obtaining a node offset in the same tree In some cases we want to obtain an ofnode in the same tree as a different ofnode, such as when looking up a subnode. At present this is trivial, since there is only one tree. When there are multiple trees, this implementation will change. Also move the ofnode_to_offset() function up higher in the header file, since we will need to provide a different implementation with multiple trees. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
928d267a |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to look up a phandle in an oftree When we have multiple trees, the ofnode logic needs to be told which one to use. Create a new function which takes an oftree argument, along with a helper to obtain the FDT pointer from an oftree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
085d5941 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode functions to obtain an oftree At present dm_test_ofnode_root() does this manually. Add some inline functions to handle it, so this code can be centralised. Add oftree functions to produce a null tree and to check whether a tree is valid or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a3f50d03 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to obtain the flat tree The flat device tree is assumed to be the control FDT but this is not always the case. Update the ofnode implementation to obtain the node via an function call so we can eventually add support for selecting different trees. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
ee88ba71 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Provide a way to reset the device tree At present there is only one device tree used by the ofnode functions, except for some esoteric use of live tree. In preparation for supporting more than one, add a way to reset the list of device trees. For now this does nothing. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
66d0d0c1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Expand integer-reading tests The current tests do not cover all the behaviour. Add some more. Tidy up a few inconsistencies between livetree and flattree which come to light with these tests. Also drop the -ENODATA error since it is never actually returned. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
89090661 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Drop ofnode_is_available() This function is also available as ofnode_is_enabled(), so use that instead. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
52ad21aa |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a macro to iterate through properties Add a 'for_each' macro like we have for nodes. Fix the comment for struct ofprop while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
f46ec93e |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Avoid creating a name property when unflattening The current implementation creates a 'name' value for every node. This is not needed for the latest device tree format, which includes a name in the node header. Adjust the code to point the name at the node header instead. Also simplify ofnode_get_name(), now that we can rely on it to set the name correctly. Update the comment to make it clear what name the root node has. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
92432246 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_property_by_prop() The current name is quite unwieldy. Change it to use an ofprop_ prefix and shorten it. Fix the return-value comment while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4b1f5714 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_first/next_property() Drop the 'get' in these names since it does not fit with the rest of the API. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
98306987 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Drop the const from ofnode Now that we support writing to ofnodes, the const is not accurate. Drop it to avoid undesirable casting. Also drop the ofnode_to_npw() which is now the same as ofnode_to_np(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
ffe90392 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow adding ofnode subnodes Add this feature to the ofnode interface, supporting both livetree and flattree. If the node exists it is returned, along with a -EEXIST error. Update the functions it calls to handle this too. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
829d5124 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Pass a root node to of_find_node_by_phandle() This function currently assumes that the control FDT is used. Update it to allow a root node to be passed, so it can work with any tree. Also add a comment to ofnode_get_by_phandle() so that its purpose is clear. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b471bdc4 |
|
14-Jun-2022 |
Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
dm: core: Add functions to read 8/16-bit integers Add functions to read 8/16-bit integers like the existing functions for 32/64-bit to simplify read of 8/16-bit integers from device tree properties. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Marek Vasut <marex@denx.de> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
55f7990b |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add support for writing u32 with ofnode Add a new function to write an integer to an ofnode (live tree or flat tree). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
39e42be1 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow writing to a flat tree with ofnode In generally it is not permitted to implement an ofnode function only for flat tree or live tree. Both must be supported. Also the code for live tree access should be in of_access.c rather than ofnode.c which is really just for holding the API-conversion code. Update ofnode_write_prop() accordingly and fix the test so it can work with flat tree too. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
be0789a8 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Swap parameters of ofnode_write_prop() It is normal for the length to come after the value in libfdt. Follow this same convention with ofnode. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
33104847 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Introduce support for multiple trees At present ofnode only works with a single device tree, for the most part. This is the control FDT used by U-Boot. When booting an OS we may obtain a different device tree and want to modify it. Add some initial support for this into the ofnode API. Note that we don't permit aliases in this other device tree, since the of_access implementation maintains a list of aliases collected at start-up. Also, we don't need aliases to do fixups in the other FDT. So make sure that flat tree and live tree processing are consistent in this area. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
72b338aa |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a note about how livetree updates work The unflattening algorithm results in a single block of memory being allocated for the whole tree. When writing new properties, these are allocated new memory outside that block. When the block is freed, the allocated properties remain. Document how this works and the potential memory leak, as well as mentioning that updating the livetree is actually supported now. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5063ced2 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Split out the declaration of ofnode This is used by a lot of files, but ofnode.h needs to include a lot of header files. This can create dependency cycles, particularly with global_data.h which must include various declarations. Split the core delcarations into a separate file to fix this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
8b52f237 |
|
28-Mar-2022 |
Sean Anderson <sean.anderson@seco.com> |
dm: core: Provide fallbacks for ofnode_conf_read_... Because fdt_get_config_str et al. were moved/renamed to ofnode_conf_read_str, they now depend on CONFIG_DM as well as CONFIG_OF_CONTROL. Add some fallback implementations, preventing a linker error when CONFIG_SPL_OF_CONTROL and CONFIG_SPL_ENV_IS_IN_MMC are enabled and CONFIG_SPL_DM is disabled. Fixes: 7de8bd03c3 ("treewide: fdt: Move fdt_get_config_... to ofnode_conf_read...") Signed-off-by: Sean Anderson <sean.anderson@seco.com> |
#
7f418ea5 |
|
15-Apr-2022 |
Tom Rini <trini@konsulko.com> |
Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-net - DM9000 DM support - tftp server bug fix - mdio ofnode support functions - Various phy fixes and improvements. [trini: Fixup merge conflicts in drivers/net/phy/ethernet_id.c drivers/net/phy/phy.c include/phy.h]
|
#
ffb0f6f4 |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
treewide: Rename PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NA Rename constant PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NA to make it compatible with Linux' naming. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Stefan Roese <sr@denx.de> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> |
#
123ca114 |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
net: introduce helpers to get PHY interface mode from a device/ofnode Add helpers ofnode_read_phy_mode() and dev_read_phy_mode() to parse the "phy-mode" / "phy-connection-type" property. Add corresponding UT test. Use them treewide. This allows us to inline the phy_get_interface_by_name() into ofnode_read_phy_mode(), since the former is not used anymore. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> |
#
f3dd213e |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
net: introduce helpers to get PHY ofnode from MAC Add helpers ofnode_get_phy_node() and dev_get_phy_node() and use it in net/mdio-uclass.c function dm_eth_connect_phy_handle(). Also add corresponding UT test. This is useful because other part's of U-Boot may want to get PHY ofnode without connecting a PHY. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
d23f2908 |
|
24-Mar-2022 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: fix function documentation in include/dm/ofnode.h We use Sphinx style comments to describe functions. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
db681d49 |
|
23-Feb-2022 |
Michal Simek <michal.simek@amd.com> |
net: phy: Add new read ethernet phy id function Add new function to get ethernet phy id from compatible property of the mdio phy node. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Link: https://lore.kernel.org/r/16019efb3820a50330935fdaae191cec1f101b5c.1645627539.git.michal.simek@xilinx.com |
#
be74f71a |
|
12-Jan-2022 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
doc: add include/dm/of*.h to the HTML documentation Correct Sphinx style comments in include/dm/ofnode.h and add the device tree node API to the HTML documentation; the ofnode functions are compatible with Live tree or with flat device tree. Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> |
#
075bfc95 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to obtain a string list At present we support reading a string list a string at a time. Apart from being inefficient, this makes it impossible to separate reading of the devicetree into the of_to_plat() method where it belongs, since any code which needs access to the string must read it from the devicetree. Add a function which returns the string property as an array of pointers to the strings, which is easily used by clients. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
32c6a8e1 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix up string-function documentation The details for of_property_read_string_helper() and ofnode_read_string_index() are a little inaccurate. Fix up the comments to avoid confusion. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b8ec9458 |
|
15-Oct-2021 |
Michael Walle <michael@walle.cc> |
dm: core: add ofnode_for_each_compatible_node() Add a helper to iterate over all nodes with a given compatible string. Signed-off-by: Michael Walle <michael@walle.cc> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com> |
#
7de8bd03 |
|
07-Aug-2021 |
Simon Glass <sjg@chromium.org> |
treewide: fdt: Move fdt_get_config_... to ofnode_conf_read... The current API is outdated as it requires a devicetree pointer. Move these functions to use the ofnode API and update this globally. Add some tests while we are here. Correct the call in exynos_dsim_config_parse_dt() which is obviously wrong. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
77cbaf88 |
|
21-Jul-2021 |
Kishon Vijay Abraham I <kishon@ti.com> |
dm: core: Add helper to compare node names Add helper to compare node names. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://lore.kernel.org/r/20210721155849.20994-2-kishon@ti.com |
#
0e116bea |
|
26-May-2021 |
Marek BehĂșn <kabel@kernel.org> |
dm: core: add ofnode_get_path() Add function for retrieving full node path of a given ofnode. This uses np->full_name if OF is live, otherwise a call to fdt_get_path() is made. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
31a7b719 |
|
26-May-2021 |
Marek BehĂșn <kabel@kernel.org> |
dm: core: add non-translating version of ofnode_get_addr_size_index() Add functions ofnode_get_addr_size_index_notrans(), which is a non-translating version of ofnode_get_addr_size_index(). Some addresses are not meant to be translated, for example those of MTD fixed-partitions. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
aa351a14 |
|
12-Apr-2021 |
Chen Guanqiao <chenguanqiao@kuaishou.com> |
dm: core: Add size operations on device tree references Add functions to add size of addresses in the device tree using ofnode references. If the size is not set, return FDT_SIZE_T_NONE. Signed-off-by: Chen Guanqiao <chenguanqiao@kuaishou.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
51bdb509 |
|
12-Jan-2021 |
Nicolas Saenz Julienne <nsaenz@kernel.org> |
dm: Introduce xxx_get_dma_range() Add the following functions to get a specific device's DMA ranges: - dev_get_dma_range() - ofnode_get_dma_range() - of_get_dma_range() - fdt_get_dma_range() They are specially useful in oder to be able validate a physical address space range into a bus's and to convert addresses from and to address spaces. Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Peter Robinson <pbrobinson@gmail.com> Signed-off-by: Matthias Brugger <mbrugger@suse.com> |
#
401d1c4f |
|
30-Oct-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop asm/global_data.h from common header Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com> |
#
ec1add1e |
|
16-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Inline a few ofnode functions in SPL A recent change to unify the flattree/livetree code introduced a small size increase in SPL on some boards. For example SPL code size for px30-core-ctouch2-px30 increased by 40 bytes. To address this we can take advantage of the fact that some of the ofnode functions are only called a few times in SPL, so it is worth inlining them. Add new Kconfig options to control this. These functions are not inlined for U-Boot proper, since this increases code size. Fixes: 2ebea5eaebf ("dm: core: Combine the flattree and livetree binding code") Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d0c20ce6 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to get the devicetree root This is needed in at least one place. Avoid the conditional code in root.c by adding this inline function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0de1b074 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a livetree function to check node status Add a way to find out if a node is enabled or not, based on its 'status' property. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
305d3188 |
|
27-Jul-2020 |
Michal Simek <michal.simek@amd.com> |
dm: core: Add support for getting node from aliases Add support for getting a node/property from aliases. The similar functionality is provided for chosen node and this implemenatation is copy of it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
89f68302 |
|
25-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: add cells_count parameter in *_count_phandle_with_args The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d9949fe |
|
24-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: update test on of_offset in ofnode_valid Update the test for node.of_offset because an invalid offset is not always set to -1 because the return value of the libfdt functions are: + an error with a value < 0 + a valid offset with value >=0 For example, in ofnode_get_by_phandle() function, we have: node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, phandle); and this function can return -FDT_ERR_BADPHANDLE (-6). Without this patch, the added test dm_test_ofnode_get_by_phandle failed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
45dbe75d |
|
23-Sep-2020 |
Stefan Roese <sr@denx.de> |
dm: ofnode: Fix compile breakage with OF_CHECKS enabled Include missing log.h and change _ofnode_to_np() to ofnode_to_np() so that compiling with OF_CHECKS enabled does not break. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b9390ce5 |
|
24-Jul-2020 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: remove superfluous comment for union ofnode_union "future live tree" does not make sense anymore as we have CONFIG_OF_LIVE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@foss.st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0347cc77 |
|
31-Jan-2023 |
Nikhil M Jain <n-jain1@ti.com> |
drivers: core: ofnode: Add panel timing decode. ofnode_decode_display_timing supports reading timing parameters from subnode of display-timings node, for displays supporting multiple resolution, in case if a display supports single resolution, it fails reading directly from display-timings node, to support it ofnode_decode_panel_timing is added. Signed-off-by: Nikhil M Jain <n-jain1@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e7a18f75 |
|
11-Oct-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Update docs about oftree_from_fdt() Update this function's comment and also the livetree documentation, so it is clear when to use the function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
db1ef1e1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Support copying properties with ofnode Add a function to copy properties from one node to another. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0b58eaa8 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow copying ofnode property data when writing At present ofnode_write_prop() is inconsistent between livetree and flattree, in that livetree requires the caller to ensure the property value is stable (e.g. in rodata or allocated) but flattree does not, since it makes a copy. This makes the API call a bit painful to use, since the caller must do different things depending on OF_LIVE. Add a new 'copy' argument which tells the function to make a copy if needed. Add some tests to cover this behaviour. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
988f1468 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comments for default-FDT ofnode functions Some ofnode functions can only operate on the default device tree, i.e. U-Boot's control FDT. Add comments to that effect. Fix up the reference to device tree bindings while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
92291652 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add the ofnode multi-tree implementation Add the logic to redirect requests for the device tree through a function which can look up the tree ID. This works by using the top bits of ofnode.of_offset to encode a tree. It is assumed that there will only be a few device trees used at runtime, typically the control FDT (always tree ID 0) and possibly a separate FDT to be passed the OS. The maximum number of device trees supported at runtime is 8, with this implementation. That would use bits 30:28 of the node-offset value, meaning that the positive offset range is limited to bits 27:0, versus 30:1 with this feature disabled. That still allows a device tree of up to 256MB, which should be enough for most FITs. Larger ones can be supported by using external data with the FIT, or by enabling OF_LIVE. Update the documentation a little and fix up the comment for ofnode_valid(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b7bd94f1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Split ofnode_path_root() into two functions This function turns out to be a little confusing since it looks up a path and also registers the tree. Split it into two, one that gets the root node and one that looks up a path, so the purpose is clear. Registering the tree will happen in a function to be added in a later patch, called oftree_from_fdt(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
2187cb7e |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow obtaining a node offset in the same tree In some cases we want to obtain an ofnode in the same tree as a different ofnode, such as when looking up a subnode. At present this is trivial, since there is only one tree. When there are multiple trees, this implementation will change. Also move the ofnode_to_offset() function up higher in the header file, since we will need to provide a different implementation with multiple trees. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
928d267a |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to look up a phandle in an oftree When we have multiple trees, the ofnode logic needs to be told which one to use. Create a new function which takes an oftree argument, along with a helper to obtain the FDT pointer from an oftree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
085d5941 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode functions to obtain an oftree At present dm_test_ofnode_root() does this manually. Add some inline functions to handle it, so this code can be centralised. Add oftree functions to produce a null tree and to check whether a tree is valid or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a3f50d03 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to obtain the flat tree The flat device tree is assumed to be the control FDT but this is not always the case. Update the ofnode implementation to obtain the node via an function call so we can eventually add support for selecting different trees. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
ee88ba71 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Provide a way to reset the device tree At present there is only one device tree used by the ofnode functions, except for some esoteric use of live tree. In preparation for supporting more than one, add a way to reset the list of device trees. For now this does nothing. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
66d0d0c1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Expand integer-reading tests The current tests do not cover all the behaviour. Add some more. Tidy up a few inconsistencies between livetree and flattree which come to light with these tests. Also drop the -ENODATA error since it is never actually returned. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
89090661 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Drop ofnode_is_available() This function is also available as ofnode_is_enabled(), so use that instead. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
52ad21aa |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a macro to iterate through properties Add a 'for_each' macro like we have for nodes. Fix the comment for struct ofprop while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
f46ec93e |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Avoid creating a name property when unflattening The current implementation creates a 'name' value for every node. This is not needed for the latest device tree format, which includes a name in the node header. Adjust the code to point the name at the node header instead. Also simplify ofnode_get_name(), now that we can rely on it to set the name correctly. Update the comment to make it clear what name the root node has. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
92432246 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_property_by_prop() The current name is quite unwieldy. Change it to use an ofprop_ prefix and shorten it. Fix the return-value comment while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4b1f5714 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_first/next_property() Drop the 'get' in these names since it does not fit with the rest of the API. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
98306987 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Drop the const from ofnode Now that we support writing to ofnodes, the const is not accurate. Drop it to avoid undesirable casting. Also drop the ofnode_to_npw() which is now the same as ofnode_to_np(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
ffe90392 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow adding ofnode subnodes Add this feature to the ofnode interface, supporting both livetree and flattree. If the node exists it is returned, along with a -EEXIST error. Update the functions it calls to handle this too. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
829d5124 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Pass a root node to of_find_node_by_phandle() This function currently assumes that the control FDT is used. Update it to allow a root node to be passed, so it can work with any tree. Also add a comment to ofnode_get_by_phandle() so that its purpose is clear. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b471bdc4 |
|
14-Jun-2022 |
Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
dm: core: Add functions to read 8/16-bit integers Add functions to read 8/16-bit integers like the existing functions for 32/64-bit to simplify read of 8/16-bit integers from device tree properties. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Marek Vasut <marex@denx.de> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
55f7990b |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add support for writing u32 with ofnode Add a new function to write an integer to an ofnode (live tree or flat tree). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
39e42be1 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow writing to a flat tree with ofnode In generally it is not permitted to implement an ofnode function only for flat tree or live tree. Both must be supported. Also the code for live tree access should be in of_access.c rather than ofnode.c which is really just for holding the API-conversion code. Update ofnode_write_prop() accordingly and fix the test so it can work with flat tree too. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
be0789a8 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Swap parameters of ofnode_write_prop() It is normal for the length to come after the value in libfdt. Follow this same convention with ofnode. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
33104847 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Introduce support for multiple trees At present ofnode only works with a single device tree, for the most part. This is the control FDT used by U-Boot. When booting an OS we may obtain a different device tree and want to modify it. Add some initial support for this into the ofnode API. Note that we don't permit aliases in this other device tree, since the of_access implementation maintains a list of aliases collected at start-up. Also, we don't need aliases to do fixups in the other FDT. So make sure that flat tree and live tree processing are consistent in this area. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
72b338aa |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a note about how livetree updates work The unflattening algorithm results in a single block of memory being allocated for the whole tree. When writing new properties, these are allocated new memory outside that block. When the block is freed, the allocated properties remain. Document how this works and the potential memory leak, as well as mentioning that updating the livetree is actually supported now. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5063ced2 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Split out the declaration of ofnode This is used by a lot of files, but ofnode.h needs to include a lot of header files. This can create dependency cycles, particularly with global_data.h which must include various declarations. Split the core delcarations into a separate file to fix this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
8b52f237 |
|
28-Mar-2022 |
Sean Anderson <sean.anderson@seco.com> |
dm: core: Provide fallbacks for ofnode_conf_read_... Because fdt_get_config_str et al. were moved/renamed to ofnode_conf_read_str, they now depend on CONFIG_DM as well as CONFIG_OF_CONTROL. Add some fallback implementations, preventing a linker error when CONFIG_SPL_OF_CONTROL and CONFIG_SPL_ENV_IS_IN_MMC are enabled and CONFIG_SPL_DM is disabled. Fixes: 7de8bd03c3 ("treewide: fdt: Move fdt_get_config_... to ofnode_conf_read...") Signed-off-by: Sean Anderson <sean.anderson@seco.com> |
#
7f418ea5 |
|
15-Apr-2022 |
Tom Rini <trini@konsulko.com> |
Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-net - DM9000 DM support - tftp server bug fix - mdio ofnode support functions - Various phy fixes and improvements. [trini: Fixup merge conflicts in drivers/net/phy/ethernet_id.c drivers/net/phy/phy.c include/phy.h]
|
#
ffb0f6f4 |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
treewide: Rename PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NA Rename constant PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NA to make it compatible with Linux' naming. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Stefan Roese <sr@denx.de> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> |
#
123ca114 |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
net: introduce helpers to get PHY interface mode from a device/ofnode Add helpers ofnode_read_phy_mode() and dev_read_phy_mode() to parse the "phy-mode" / "phy-connection-type" property. Add corresponding UT test. Use them treewide. This allows us to inline the phy_get_interface_by_name() into ofnode_read_phy_mode(), since the former is not used anymore. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> |
#
f3dd213e |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
net: introduce helpers to get PHY ofnode from MAC Add helpers ofnode_get_phy_node() and dev_get_phy_node() and use it in net/mdio-uclass.c function dm_eth_connect_phy_handle(). Also add corresponding UT test. This is useful because other part's of U-Boot may want to get PHY ofnode without connecting a PHY. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
d23f2908 |
|
24-Mar-2022 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: fix function documentation in include/dm/ofnode.h We use Sphinx style comments to describe functions. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
db681d49 |
|
23-Feb-2022 |
Michal Simek <michal.simek@amd.com> |
net: phy: Add new read ethernet phy id function Add new function to get ethernet phy id from compatible property of the mdio phy node. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Link: https://lore.kernel.org/r/16019efb3820a50330935fdaae191cec1f101b5c.1645627539.git.michal.simek@xilinx.com |
#
be74f71a |
|
12-Jan-2022 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
doc: add include/dm/of*.h to the HTML documentation Correct Sphinx style comments in include/dm/ofnode.h and add the device tree node API to the HTML documentation; the ofnode functions are compatible with Live tree or with flat device tree. Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> |
#
075bfc95 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to obtain a string list At present we support reading a string list a string at a time. Apart from being inefficient, this makes it impossible to separate reading of the devicetree into the of_to_plat() method where it belongs, since any code which needs access to the string must read it from the devicetree. Add a function which returns the string property as an array of pointers to the strings, which is easily used by clients. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
32c6a8e1 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix up string-function documentation The details for of_property_read_string_helper() and ofnode_read_string_index() are a little inaccurate. Fix up the comments to avoid confusion. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b8ec9458 |
|
15-Oct-2021 |
Michael Walle <michael@walle.cc> |
dm: core: add ofnode_for_each_compatible_node() Add a helper to iterate over all nodes with a given compatible string. Signed-off-by: Michael Walle <michael@walle.cc> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com> |
#
7de8bd03 |
|
07-Aug-2021 |
Simon Glass <sjg@chromium.org> |
treewide: fdt: Move fdt_get_config_... to ofnode_conf_read... The current API is outdated as it requires a devicetree pointer. Move these functions to use the ofnode API and update this globally. Add some tests while we are here. Correct the call in exynos_dsim_config_parse_dt() which is obviously wrong. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
77cbaf88 |
|
21-Jul-2021 |
Kishon Vijay Abraham I <kishon@ti.com> |
dm: core: Add helper to compare node names Add helper to compare node names. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://lore.kernel.org/r/20210721155849.20994-2-kishon@ti.com |
#
0e116bea |
|
26-May-2021 |
Marek BehĂșn <kabel@kernel.org> |
dm: core: add ofnode_get_path() Add function for retrieving full node path of a given ofnode. This uses np->full_name if OF is live, otherwise a call to fdt_get_path() is made. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
31a7b719 |
|
26-May-2021 |
Marek BehĂșn <kabel@kernel.org> |
dm: core: add non-translating version of ofnode_get_addr_size_index() Add functions ofnode_get_addr_size_index_notrans(), which is a non-translating version of ofnode_get_addr_size_index(). Some addresses are not meant to be translated, for example those of MTD fixed-partitions. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
aa351a14 |
|
12-Apr-2021 |
Chen Guanqiao <chenguanqiao@kuaishou.com> |
dm: core: Add size operations on device tree references Add functions to add size of addresses in the device tree using ofnode references. If the size is not set, return FDT_SIZE_T_NONE. Signed-off-by: Chen Guanqiao <chenguanqiao@kuaishou.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
51bdb509 |
|
12-Jan-2021 |
Nicolas Saenz Julienne <nsaenz@kernel.org> |
dm: Introduce xxx_get_dma_range() Add the following functions to get a specific device's DMA ranges: - dev_get_dma_range() - ofnode_get_dma_range() - of_get_dma_range() - fdt_get_dma_range() They are specially useful in oder to be able validate a physical address space range into a bus's and to convert addresses from and to address spaces. Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Peter Robinson <pbrobinson@gmail.com> Signed-off-by: Matthias Brugger <mbrugger@suse.com> |
#
401d1c4f |
|
30-Oct-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop asm/global_data.h from common header Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com> |
#
ec1add1e |
|
16-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Inline a few ofnode functions in SPL A recent change to unify the flattree/livetree code introduced a small size increase in SPL on some boards. For example SPL code size for px30-core-ctouch2-px30 increased by 40 bytes. To address this we can take advantage of the fact that some of the ofnode functions are only called a few times in SPL, so it is worth inlining them. Add new Kconfig options to control this. These functions are not inlined for U-Boot proper, since this increases code size. Fixes: 2ebea5eaebf ("dm: core: Combine the flattree and livetree binding code") Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d0c20ce6 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to get the devicetree root This is needed in at least one place. Avoid the conditional code in root.c by adding this inline function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0de1b074 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a livetree function to check node status Add a way to find out if a node is enabled or not, based on its 'status' property. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
305d3188 |
|
27-Jul-2020 |
Michal Simek <michal.simek@amd.com> |
dm: core: Add support for getting node from aliases Add support for getting a node/property from aliases. The similar functionality is provided for chosen node and this implemenatation is copy of it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
89f68302 |
|
25-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: add cells_count parameter in *_count_phandle_with_args The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d9949fe |
|
24-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: update test on of_offset in ofnode_valid Update the test for node.of_offset because an invalid offset is not always set to -1 because the return value of the libfdt functions are: + an error with a value < 0 + a valid offset with value >=0 For example, in ofnode_get_by_phandle() function, we have: node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, phandle); and this function can return -FDT_ERR_BADPHANDLE (-6). Without this patch, the added test dm_test_ofnode_get_by_phandle failed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
45dbe75d |
|
23-Sep-2020 |
Stefan Roese <sr@denx.de> |
dm: ofnode: Fix compile breakage with OF_CHECKS enabled Include missing log.h and change _ofnode_to_np() to ofnode_to_np() so that compiling with OF_CHECKS enabled does not break. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b9390ce5 |
|
24-Jul-2020 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: remove superfluous comment for union ofnode_union "future live tree" does not make sense anymore as we have CONFIG_OF_LIVE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@foss.st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
e7a18f75 |
|
11-Oct-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Update docs about oftree_from_fdt() Update this function's comment and also the livetree documentation, so it is clear when to use the function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
db1ef1e1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Support copying properties with ofnode Add a function to copy properties from one node to another. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0b58eaa8 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow copying ofnode property data when writing At present ofnode_write_prop() is inconsistent between livetree and flattree, in that livetree requires the caller to ensure the property value is stable (e.g. in rodata or allocated) but flattree does not, since it makes a copy. This makes the API call a bit painful to use, since the caller must do different things depending on OF_LIVE. Add a new 'copy' argument which tells the function to make a copy if needed. Add some tests to cover this behaviour. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
988f1468 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comments for default-FDT ofnode functions Some ofnode functions can only operate on the default device tree, i.e. U-Boot's control FDT. Add comments to that effect. Fix up the reference to device tree bindings while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
92291652 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add the ofnode multi-tree implementation Add the logic to redirect requests for the device tree through a function which can look up the tree ID. This works by using the top bits of ofnode.of_offset to encode a tree. It is assumed that there will only be a few device trees used at runtime, typically the control FDT (always tree ID 0) and possibly a separate FDT to be passed the OS. The maximum number of device trees supported at runtime is 8, with this implementation. That would use bits 30:28 of the node-offset value, meaning that the positive offset range is limited to bits 27:0, versus 30:1 with this feature disabled. That still allows a device tree of up to 256MB, which should be enough for most FITs. Larger ones can be supported by using external data with the FIT, or by enabling OF_LIVE. Update the documentation a little and fix up the comment for ofnode_valid(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b7bd94f1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Split ofnode_path_root() into two functions This function turns out to be a little confusing since it looks up a path and also registers the tree. Split it into two, one that gets the root node and one that looks up a path, so the purpose is clear. Registering the tree will happen in a function to be added in a later patch, called oftree_from_fdt(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
2187cb7e |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow obtaining a node offset in the same tree In some cases we want to obtain an ofnode in the same tree as a different ofnode, such as when looking up a subnode. At present this is trivial, since there is only one tree. When there are multiple trees, this implementation will change. Also move the ofnode_to_offset() function up higher in the header file, since we will need to provide a different implementation with multiple trees. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
928d267a |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to look up a phandle in an oftree When we have multiple trees, the ofnode logic needs to be told which one to use. Create a new function which takes an oftree argument, along with a helper to obtain the FDT pointer from an oftree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
085d5941 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode functions to obtain an oftree At present dm_test_ofnode_root() does this manually. Add some inline functions to handle it, so this code can be centralised. Add oftree functions to produce a null tree and to check whether a tree is valid or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a3f50d03 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to obtain the flat tree The flat device tree is assumed to be the control FDT but this is not always the case. Update the ofnode implementation to obtain the node via an function call so we can eventually add support for selecting different trees. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
ee88ba71 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Provide a way to reset the device tree At present there is only one device tree used by the ofnode functions, except for some esoteric use of live tree. In preparation for supporting more than one, add a way to reset the list of device trees. For now this does nothing. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
66d0d0c1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Expand integer-reading tests The current tests do not cover all the behaviour. Add some more. Tidy up a few inconsistencies between livetree and flattree which come to light with these tests. Also drop the -ENODATA error since it is never actually returned. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
89090661 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Drop ofnode_is_available() This function is also available as ofnode_is_enabled(), so use that instead. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
52ad21aa |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a macro to iterate through properties Add a 'for_each' macro like we have for nodes. Fix the comment for struct ofprop while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
f46ec93e |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Avoid creating a name property when unflattening The current implementation creates a 'name' value for every node. This is not needed for the latest device tree format, which includes a name in the node header. Adjust the code to point the name at the node header instead. Also simplify ofnode_get_name(), now that we can rely on it to set the name correctly. Update the comment to make it clear what name the root node has. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
92432246 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_property_by_prop() The current name is quite unwieldy. Change it to use an ofprop_ prefix and shorten it. Fix the return-value comment while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4b1f5714 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_first/next_property() Drop the 'get' in these names since it does not fit with the rest of the API. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
98306987 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Drop the const from ofnode Now that we support writing to ofnodes, the const is not accurate. Drop it to avoid undesirable casting. Also drop the ofnode_to_npw() which is now the same as ofnode_to_np(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
ffe90392 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow adding ofnode subnodes Add this feature to the ofnode interface, supporting both livetree and flattree. If the node exists it is returned, along with a -EEXIST error. Update the functions it calls to handle this too. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
829d5124 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Pass a root node to of_find_node_by_phandle() This function currently assumes that the control FDT is used. Update it to allow a root node to be passed, so it can work with any tree. Also add a comment to ofnode_get_by_phandle() so that its purpose is clear. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b471bdc4 |
|
14-Jun-2022 |
Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
dm: core: Add functions to read 8/16-bit integers Add functions to read 8/16-bit integers like the existing functions for 32/64-bit to simplify read of 8/16-bit integers from device tree properties. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Marek Vasut <marex@denx.de> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
55f7990b |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add support for writing u32 with ofnode Add a new function to write an integer to an ofnode (live tree or flat tree). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
39e42be1 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow writing to a flat tree with ofnode In generally it is not permitted to implement an ofnode function only for flat tree or live tree. Both must be supported. Also the code for live tree access should be in of_access.c rather than ofnode.c which is really just for holding the API-conversion code. Update ofnode_write_prop() accordingly and fix the test so it can work with flat tree too. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
be0789a8 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Swap parameters of ofnode_write_prop() It is normal for the length to come after the value in libfdt. Follow this same convention with ofnode. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
33104847 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Introduce support for multiple trees At present ofnode only works with a single device tree, for the most part. This is the control FDT used by U-Boot. When booting an OS we may obtain a different device tree and want to modify it. Add some initial support for this into the ofnode API. Note that we don't permit aliases in this other device tree, since the of_access implementation maintains a list of aliases collected at start-up. Also, we don't need aliases to do fixups in the other FDT. So make sure that flat tree and live tree processing are consistent in this area. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
72b338aa |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a note about how livetree updates work The unflattening algorithm results in a single block of memory being allocated for the whole tree. When writing new properties, these are allocated new memory outside that block. When the block is freed, the allocated properties remain. Document how this works and the potential memory leak, as well as mentioning that updating the livetree is actually supported now. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5063ced2 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Split out the declaration of ofnode This is used by a lot of files, but ofnode.h needs to include a lot of header files. This can create dependency cycles, particularly with global_data.h which must include various declarations. Split the core delcarations into a separate file to fix this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
8b52f237 |
|
28-Mar-2022 |
Sean Anderson <sean.anderson@seco.com> |
dm: core: Provide fallbacks for ofnode_conf_read_... Because fdt_get_config_str et al. were moved/renamed to ofnode_conf_read_str, they now depend on CONFIG_DM as well as CONFIG_OF_CONTROL. Add some fallback implementations, preventing a linker error when CONFIG_SPL_OF_CONTROL and CONFIG_SPL_ENV_IS_IN_MMC are enabled and CONFIG_SPL_DM is disabled. Fixes: 7de8bd03c3 ("treewide: fdt: Move fdt_get_config_... to ofnode_conf_read...") Signed-off-by: Sean Anderson <sean.anderson@seco.com> |
#
7f418ea5 |
|
15-Apr-2022 |
Tom Rini <trini@konsulko.com> |
Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-net - DM9000 DM support - tftp server bug fix - mdio ofnode support functions - Various phy fixes and improvements. [trini: Fixup merge conflicts in drivers/net/phy/ethernet_id.c drivers/net/phy/phy.c include/phy.h]
|
#
ffb0f6f4 |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
treewide: Rename PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NA Rename constant PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NA to make it compatible with Linux' naming. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Stefan Roese <sr@denx.de> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> |
#
123ca114 |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
net: introduce helpers to get PHY interface mode from a device/ofnode Add helpers ofnode_read_phy_mode() and dev_read_phy_mode() to parse the "phy-mode" / "phy-connection-type" property. Add corresponding UT test. Use them treewide. This allows us to inline the phy_get_interface_by_name() into ofnode_read_phy_mode(), since the former is not used anymore. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> |
#
f3dd213e |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
net: introduce helpers to get PHY ofnode from MAC Add helpers ofnode_get_phy_node() and dev_get_phy_node() and use it in net/mdio-uclass.c function dm_eth_connect_phy_handle(). Also add corresponding UT test. This is useful because other part's of U-Boot may want to get PHY ofnode without connecting a PHY. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
d23f2908 |
|
24-Mar-2022 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: fix function documentation in include/dm/ofnode.h We use Sphinx style comments to describe functions. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
db681d49 |
|
23-Feb-2022 |
Michal Simek <michal.simek@amd.com> |
net: phy: Add new read ethernet phy id function Add new function to get ethernet phy id from compatible property of the mdio phy node. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Link: https://lore.kernel.org/r/16019efb3820a50330935fdaae191cec1f101b5c.1645627539.git.michal.simek@xilinx.com |
#
be74f71a |
|
12-Jan-2022 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
doc: add include/dm/of*.h to the HTML documentation Correct Sphinx style comments in include/dm/ofnode.h and add the device tree node API to the HTML documentation; the ofnode functions are compatible with Live tree or with flat device tree. Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> |
#
075bfc95 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to obtain a string list At present we support reading a string list a string at a time. Apart from being inefficient, this makes it impossible to separate reading of the devicetree into the of_to_plat() method where it belongs, since any code which needs access to the string must read it from the devicetree. Add a function which returns the string property as an array of pointers to the strings, which is easily used by clients. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
32c6a8e1 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix up string-function documentation The details for of_property_read_string_helper() and ofnode_read_string_index() are a little inaccurate. Fix up the comments to avoid confusion. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b8ec9458 |
|
15-Oct-2021 |
Michael Walle <michael@walle.cc> |
dm: core: add ofnode_for_each_compatible_node() Add a helper to iterate over all nodes with a given compatible string. Signed-off-by: Michael Walle <michael@walle.cc> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com> |
#
7de8bd03 |
|
07-Aug-2021 |
Simon Glass <sjg@chromium.org> |
treewide: fdt: Move fdt_get_config_... to ofnode_conf_read... The current API is outdated as it requires a devicetree pointer. Move these functions to use the ofnode API and update this globally. Add some tests while we are here. Correct the call in exynos_dsim_config_parse_dt() which is obviously wrong. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
77cbaf88 |
|
21-Jul-2021 |
Kishon Vijay Abraham I <kishon@ti.com> |
dm: core: Add helper to compare node names Add helper to compare node names. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://lore.kernel.org/r/20210721155849.20994-2-kishon@ti.com |
#
0e116bea |
|
26-May-2021 |
Marek BehĂșn <kabel@kernel.org> |
dm: core: add ofnode_get_path() Add function for retrieving full node path of a given ofnode. This uses np->full_name if OF is live, otherwise a call to fdt_get_path() is made. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
31a7b719 |
|
26-May-2021 |
Marek BehĂșn <kabel@kernel.org> |
dm: core: add non-translating version of ofnode_get_addr_size_index() Add functions ofnode_get_addr_size_index_notrans(), which is a non-translating version of ofnode_get_addr_size_index(). Some addresses are not meant to be translated, for example those of MTD fixed-partitions. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
aa351a14 |
|
12-Apr-2021 |
Chen Guanqiao <chenguanqiao@kuaishou.com> |
dm: core: Add size operations on device tree references Add functions to add size of addresses in the device tree using ofnode references. If the size is not set, return FDT_SIZE_T_NONE. Signed-off-by: Chen Guanqiao <chenguanqiao@kuaishou.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
51bdb509 |
|
12-Jan-2021 |
Nicolas Saenz Julienne <nsaenz@kernel.org> |
dm: Introduce xxx_get_dma_range() Add the following functions to get a specific device's DMA ranges: - dev_get_dma_range() - ofnode_get_dma_range() - of_get_dma_range() - fdt_get_dma_range() They are specially useful in oder to be able validate a physical address space range into a bus's and to convert addresses from and to address spaces. Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Peter Robinson <pbrobinson@gmail.com> Signed-off-by: Matthias Brugger <mbrugger@suse.com> |
#
401d1c4f |
|
30-Oct-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop asm/global_data.h from common header Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com> |
#
ec1add1e |
|
16-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Inline a few ofnode functions in SPL A recent change to unify the flattree/livetree code introduced a small size increase in SPL on some boards. For example SPL code size for px30-core-ctouch2-px30 increased by 40 bytes. To address this we can take advantage of the fact that some of the ofnode functions are only called a few times in SPL, so it is worth inlining them. Add new Kconfig options to control this. These functions are not inlined for U-Boot proper, since this increases code size. Fixes: 2ebea5eaebf ("dm: core: Combine the flattree and livetree binding code") Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d0c20ce6 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to get the devicetree root This is needed in at least one place. Avoid the conditional code in root.c by adding this inline function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0de1b074 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a livetree function to check node status Add a way to find out if a node is enabled or not, based on its 'status' property. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
305d3188 |
|
27-Jul-2020 |
Michal Simek <michal.simek@amd.com> |
dm: core: Add support for getting node from aliases Add support for getting a node/property from aliases. The similar functionality is provided for chosen node and this implemenatation is copy of it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
89f68302 |
|
25-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: add cells_count parameter in *_count_phandle_with_args The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d9949fe |
|
24-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: update test on of_offset in ofnode_valid Update the test for node.of_offset because an invalid offset is not always set to -1 because the return value of the libfdt functions are: + an error with a value < 0 + a valid offset with value >=0 For example, in ofnode_get_by_phandle() function, we have: node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, phandle); and this function can return -FDT_ERR_BADPHANDLE (-6). Without this patch, the added test dm_test_ofnode_get_by_phandle failed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
45dbe75d |
|
23-Sep-2020 |
Stefan Roese <sr@denx.de> |
dm: ofnode: Fix compile breakage with OF_CHECKS enabled Include missing log.h and change _ofnode_to_np() to ofnode_to_np() so that compiling with OF_CHECKS enabled does not break. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b9390ce5 |
|
24-Jul-2020 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: remove superfluous comment for union ofnode_union "future live tree" does not make sense anymore as we have CONFIG_OF_LIVE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@foss.st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
db1ef1e1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Support copying properties with ofnode Add a function to copy properties from one node to another. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0b58eaa8 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow copying ofnode property data when writing At present ofnode_write_prop() is inconsistent between livetree and flattree, in that livetree requires the caller to ensure the property value is stable (e.g. in rodata or allocated) but flattree does not, since it makes a copy. This makes the API call a bit painful to use, since the caller must do different things depending on OF_LIVE. Add a new 'copy' argument which tells the function to make a copy if needed. Add some tests to cover this behaviour. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
988f1468 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comments for default-FDT ofnode functions Some ofnode functions can only operate on the default device tree, i.e. U-Boot's control FDT. Add comments to that effect. Fix up the reference to device tree bindings while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
92291652 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add the ofnode multi-tree implementation Add the logic to redirect requests for the device tree through a function which can look up the tree ID. This works by using the top bits of ofnode.of_offset to encode a tree. It is assumed that there will only be a few device trees used at runtime, typically the control FDT (always tree ID 0) and possibly a separate FDT to be passed the OS. The maximum number of device trees supported at runtime is 8, with this implementation. That would use bits 30:28 of the node-offset value, meaning that the positive offset range is limited to bits 27:0, versus 30:1 with this feature disabled. That still allows a device tree of up to 256MB, which should be enough for most FITs. Larger ones can be supported by using external data with the FIT, or by enabling OF_LIVE. Update the documentation a little and fix up the comment for ofnode_valid(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b7bd94f1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Split ofnode_path_root() into two functions This function turns out to be a little confusing since it looks up a path and also registers the tree. Split it into two, one that gets the root node and one that looks up a path, so the purpose is clear. Registering the tree will happen in a function to be added in a later patch, called oftree_from_fdt(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
2187cb7e |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow obtaining a node offset in the same tree In some cases we want to obtain an ofnode in the same tree as a different ofnode, such as when looking up a subnode. At present this is trivial, since there is only one tree. When there are multiple trees, this implementation will change. Also move the ofnode_to_offset() function up higher in the header file, since we will need to provide a different implementation with multiple trees. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
928d267a |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to look up a phandle in an oftree When we have multiple trees, the ofnode logic needs to be told which one to use. Create a new function which takes an oftree argument, along with a helper to obtain the FDT pointer from an oftree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
085d5941 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode functions to obtain an oftree At present dm_test_ofnode_root() does this manually. Add some inline functions to handle it, so this code can be centralised. Add oftree functions to produce a null tree and to check whether a tree is valid or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a3f50d03 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to obtain the flat tree The flat device tree is assumed to be the control FDT but this is not always the case. Update the ofnode implementation to obtain the node via an function call so we can eventually add support for selecting different trees. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
ee88ba71 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Provide a way to reset the device tree At present there is only one device tree used by the ofnode functions, except for some esoteric use of live tree. In preparation for supporting more than one, add a way to reset the list of device trees. For now this does nothing. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
66d0d0c1 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Expand integer-reading tests The current tests do not cover all the behaviour. Add some more. Tidy up a few inconsistencies between livetree and flattree which come to light with these tests. Also drop the -ENODATA error since it is never actually returned. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
89090661 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Drop ofnode_is_available() This function is also available as ofnode_is_enabled(), so use that instead. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
52ad21aa |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a macro to iterate through properties Add a 'for_each' macro like we have for nodes. Fix the comment for struct ofprop while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
f46ec93e |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Avoid creating a name property when unflattening The current implementation creates a 'name' value for every node. This is not needed for the latest device tree format, which includes a name in the node header. Adjust the code to point the name at the node header instead. Also simplify ofnode_get_name(), now that we can rely on it to set the name correctly. Update the comment to make it clear what name the root node has. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
92432246 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_property_by_prop() The current name is quite unwieldy. Change it to use an ofprop_ prefix and shorten it. Fix the return-value comment while we are here. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4b1f5714 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_first/next_property() Drop the 'get' in these names since it does not fit with the rest of the API. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
98306987 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Drop the const from ofnode Now that we support writing to ofnodes, the const is not accurate. Drop it to avoid undesirable casting. Also drop the ofnode_to_npw() which is now the same as ofnode_to_np(). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
ffe90392 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow adding ofnode subnodes Add this feature to the ofnode interface, supporting both livetree and flattree. If the node exists it is returned, along with a -EEXIST error. Update the functions it calls to handle this too. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
829d5124 |
|
06-Sep-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Pass a root node to of_find_node_by_phandle() This function currently assumes that the control FDT is used. Update it to allow a root node to be passed, so it can work with any tree. Also add a comment to ofnode_get_by_phandle() so that its purpose is clear. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b471bdc4 |
|
14-Jun-2022 |
Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
dm: core: Add functions to read 8/16-bit integers Add functions to read 8/16-bit integers like the existing functions for 32/64-bit to simplify read of 8/16-bit integers from device tree properties. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Marek Vasut <marex@denx.de> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
55f7990b |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add support for writing u32 with ofnode Add a new function to write an integer to an ofnode (live tree or flat tree). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
39e42be1 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow writing to a flat tree with ofnode In generally it is not permitted to implement an ofnode function only for flat tree or live tree. Both must be supported. Also the code for live tree access should be in of_access.c rather than ofnode.c which is really just for holding the API-conversion code. Update ofnode_write_prop() accordingly and fix the test so it can work with flat tree too. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
be0789a8 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Swap parameters of ofnode_write_prop() It is normal for the length to come after the value in libfdt. Follow this same convention with ofnode. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
33104847 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Introduce support for multiple trees At present ofnode only works with a single device tree, for the most part. This is the control FDT used by U-Boot. When booting an OS we may obtain a different device tree and want to modify it. Add some initial support for this into the ofnode API. Note that we don't permit aliases in this other device tree, since the of_access implementation maintains a list of aliases collected at start-up. Also, we don't need aliases to do fixups in the other FDT. So make sure that flat tree and live tree processing are consistent in this area. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
72b338aa |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a note about how livetree updates work The unflattening algorithm results in a single block of memory being allocated for the whole tree. When writing new properties, these are allocated new memory outside that block. When the block is freed, the allocated properties remain. Document how this works and the potential memory leak, as well as mentioning that updating the livetree is actually supported now. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5063ced2 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Split out the declaration of ofnode This is used by a lot of files, but ofnode.h needs to include a lot of header files. This can create dependency cycles, particularly with global_data.h which must include various declarations. Split the core delcarations into a separate file to fix this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
8b52f237 |
|
28-Mar-2022 |
Sean Anderson <sean.anderson@seco.com> |
dm: core: Provide fallbacks for ofnode_conf_read_... Because fdt_get_config_str et al. were moved/renamed to ofnode_conf_read_str, they now depend on CONFIG_DM as well as CONFIG_OF_CONTROL. Add some fallback implementations, preventing a linker error when CONFIG_SPL_OF_CONTROL and CONFIG_SPL_ENV_IS_IN_MMC are enabled and CONFIG_SPL_DM is disabled. Fixes: 7de8bd03c3 ("treewide: fdt: Move fdt_get_config_... to ofnode_conf_read...") Signed-off-by: Sean Anderson <sean.anderson@seco.com> |
#
7f418ea5 |
|
15-Apr-2022 |
Tom Rini <trini@konsulko.com> |
Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-net - DM9000 DM support - tftp server bug fix - mdio ofnode support functions - Various phy fixes and improvements. [trini: Fixup merge conflicts in drivers/net/phy/ethernet_id.c drivers/net/phy/phy.c include/phy.h]
|
#
ffb0f6f4 |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
treewide: Rename PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NA Rename constant PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NA to make it compatible with Linux' naming. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Stefan Roese <sr@denx.de> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> |
#
123ca114 |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
net: introduce helpers to get PHY interface mode from a device/ofnode Add helpers ofnode_read_phy_mode() and dev_read_phy_mode() to parse the "phy-mode" / "phy-connection-type" property. Add corresponding UT test. Use them treewide. This allows us to inline the phy_get_interface_by_name() into ofnode_read_phy_mode(), since the former is not used anymore. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> |
#
f3dd213e |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
net: introduce helpers to get PHY ofnode from MAC Add helpers ofnode_get_phy_node() and dev_get_phy_node() and use it in net/mdio-uclass.c function dm_eth_connect_phy_handle(). Also add corresponding UT test. This is useful because other part's of U-Boot may want to get PHY ofnode without connecting a PHY. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
d23f2908 |
|
24-Mar-2022 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: fix function documentation in include/dm/ofnode.h We use Sphinx style comments to describe functions. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
db681d49 |
|
23-Feb-2022 |
Michal Simek <michal.simek@amd.com> |
net: phy: Add new read ethernet phy id function Add new function to get ethernet phy id from compatible property of the mdio phy node. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Link: https://lore.kernel.org/r/16019efb3820a50330935fdaae191cec1f101b5c.1645627539.git.michal.simek@xilinx.com |
#
be74f71a |
|
12-Jan-2022 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
doc: add include/dm/of*.h to the HTML documentation Correct Sphinx style comments in include/dm/ofnode.h and add the device tree node API to the HTML documentation; the ofnode functions are compatible with Live tree or with flat device tree. Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> |
#
075bfc95 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to obtain a string list At present we support reading a string list a string at a time. Apart from being inefficient, this makes it impossible to separate reading of the devicetree into the of_to_plat() method where it belongs, since any code which needs access to the string must read it from the devicetree. Add a function which returns the string property as an array of pointers to the strings, which is easily used by clients. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
32c6a8e1 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix up string-function documentation The details for of_property_read_string_helper() and ofnode_read_string_index() are a little inaccurate. Fix up the comments to avoid confusion. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b8ec9458 |
|
15-Oct-2021 |
Michael Walle <michael@walle.cc> |
dm: core: add ofnode_for_each_compatible_node() Add a helper to iterate over all nodes with a given compatible string. Signed-off-by: Michael Walle <michael@walle.cc> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com> |
#
7de8bd03 |
|
07-Aug-2021 |
Simon Glass <sjg@chromium.org> |
treewide: fdt: Move fdt_get_config_... to ofnode_conf_read... The current API is outdated as it requires a devicetree pointer. Move these functions to use the ofnode API and update this globally. Add some tests while we are here. Correct the call in exynos_dsim_config_parse_dt() which is obviously wrong. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
77cbaf88 |
|
21-Jul-2021 |
Kishon Vijay Abraham I <kishon@ti.com> |
dm: core: Add helper to compare node names Add helper to compare node names. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://lore.kernel.org/r/20210721155849.20994-2-kishon@ti.com |
#
0e116bea |
|
26-May-2021 |
Marek BehĂșn <kabel@kernel.org> |
dm: core: add ofnode_get_path() Add function for retrieving full node path of a given ofnode. This uses np->full_name if OF is live, otherwise a call to fdt_get_path() is made. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
31a7b719 |
|
26-May-2021 |
Marek BehĂșn <kabel@kernel.org> |
dm: core: add non-translating version of ofnode_get_addr_size_index() Add functions ofnode_get_addr_size_index_notrans(), which is a non-translating version of ofnode_get_addr_size_index(). Some addresses are not meant to be translated, for example those of MTD fixed-partitions. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
aa351a14 |
|
12-Apr-2021 |
Chen Guanqiao <chenguanqiao@kuaishou.com> |
dm: core: Add size operations on device tree references Add functions to add size of addresses in the device tree using ofnode references. If the size is not set, return FDT_SIZE_T_NONE. Signed-off-by: Chen Guanqiao <chenguanqiao@kuaishou.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
51bdb509 |
|
12-Jan-2021 |
Nicolas Saenz Julienne <nsaenz@kernel.org> |
dm: Introduce xxx_get_dma_range() Add the following functions to get a specific device's DMA ranges: - dev_get_dma_range() - ofnode_get_dma_range() - of_get_dma_range() - fdt_get_dma_range() They are specially useful in oder to be able validate a physical address space range into a bus's and to convert addresses from and to address spaces. Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Peter Robinson <pbrobinson@gmail.com> Signed-off-by: Matthias Brugger <mbrugger@suse.com> |
#
401d1c4f |
|
30-Oct-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop asm/global_data.h from common header Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com> |
#
ec1add1e |
|
16-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Inline a few ofnode functions in SPL A recent change to unify the flattree/livetree code introduced a small size increase in SPL on some boards. For example SPL code size for px30-core-ctouch2-px30 increased by 40 bytes. To address this we can take advantage of the fact that some of the ofnode functions are only called a few times in SPL, so it is worth inlining them. Add new Kconfig options to control this. These functions are not inlined for U-Boot proper, since this increases code size. Fixes: 2ebea5eaebf ("dm: core: Combine the flattree and livetree binding code") Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d0c20ce6 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to get the devicetree root This is needed in at least one place. Avoid the conditional code in root.c by adding this inline function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0de1b074 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a livetree function to check node status Add a way to find out if a node is enabled or not, based on its 'status' property. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
305d3188 |
|
27-Jul-2020 |
Michal Simek <michal.simek@amd.com> |
dm: core: Add support for getting node from aliases Add support for getting a node/property from aliases. The similar functionality is provided for chosen node and this implemenatation is copy of it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
89f68302 |
|
25-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: add cells_count parameter in *_count_phandle_with_args The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d9949fe |
|
24-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: update test on of_offset in ofnode_valid Update the test for node.of_offset because an invalid offset is not always set to -1 because the return value of the libfdt functions are: + an error with a value < 0 + a valid offset with value >=0 For example, in ofnode_get_by_phandle() function, we have: node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, phandle); and this function can return -FDT_ERR_BADPHANDLE (-6). Without this patch, the added test dm_test_ofnode_get_by_phandle failed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
45dbe75d |
|
23-Sep-2020 |
Stefan Roese <sr@denx.de> |
dm: ofnode: Fix compile breakage with OF_CHECKS enabled Include missing log.h and change _ofnode_to_np() to ofnode_to_np() so that compiling with OF_CHECKS enabled does not break. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b9390ce5 |
|
24-Jul-2020 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: remove superfluous comment for union ofnode_union "future live tree" does not make sense anymore as we have CONFIG_OF_LIVE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@foss.st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
55f7990b |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add support for writing u32 with ofnode Add a new function to write an integer to an ofnode (live tree or flat tree). Signed-off-by: Simon Glass <sjg@chromium.org> |
#
39e42be1 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Allow writing to a flat tree with ofnode In generally it is not permitted to implement an ofnode function only for flat tree or live tree. Both must be supported. Also the code for live tree access should be in of_access.c rather than ofnode.c which is really just for holding the API-conversion code. Update ofnode_write_prop() accordingly and fix the test so it can work with flat tree too. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
be0789a8 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Swap parameters of ofnode_write_prop() It is normal for the length to come after the value in libfdt. Follow this same convention with ofnode. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
33104847 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Introduce support for multiple trees At present ofnode only works with a single device tree, for the most part. This is the control FDT used by U-Boot. When booting an OS we may obtain a different device tree and want to modify it. Add some initial support for this into the ofnode API. Note that we don't permit aliases in this other device tree, since the of_access implementation maintains a list of aliases collected at start-up. Also, we don't need aliases to do fixups in the other FDT. So make sure that flat tree and live tree processing are consistent in this area. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
72b338aa |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a note about how livetree updates work The unflattening algorithm results in a single block of memory being allocated for the whole tree. When writing new properties, these are allocated new memory outside that block. When the block is freed, the allocated properties remain. Document how this works and the potential memory leak, as well as mentioning that updating the livetree is actually supported now. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5063ced2 |
|
30-Jul-2022 |
Simon Glass <sjg@chromium.org> |
dm: core: Split out the declaration of ofnode This is used by a lot of files, but ofnode.h needs to include a lot of header files. This can create dependency cycles, particularly with global_data.h which must include various declarations. Split the core delcarations into a separate file to fix this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
8b52f237 |
|
28-Mar-2022 |
Sean Anderson <sean.anderson@seco.com> |
dm: core: Provide fallbacks for ofnode_conf_read_... Because fdt_get_config_str et al. were moved/renamed to ofnode_conf_read_str, they now depend on CONFIG_DM as well as CONFIG_OF_CONTROL. Add some fallback implementations, preventing a linker error when CONFIG_SPL_OF_CONTROL and CONFIG_SPL_ENV_IS_IN_MMC are enabled and CONFIG_SPL_DM is disabled. Fixes: 7de8bd03c3 ("treewide: fdt: Move fdt_get_config_... to ofnode_conf_read...") Signed-off-by: Sean Anderson <sean.anderson@seco.com> |
#
7f418ea5 |
|
15-Apr-2022 |
Tom Rini <trini@konsulko.com> |
Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-net - DM9000 DM support - tftp server bug fix - mdio ofnode support functions - Various phy fixes and improvements. [trini: Fixup merge conflicts in drivers/net/phy/ethernet_id.c drivers/net/phy/phy.c include/phy.h]
|
#
ffb0f6f4 |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
treewide: Rename PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NA Rename constant PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NA to make it compatible with Linux' naming. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Stefan Roese <sr@denx.de> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> |
#
123ca114 |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
net: introduce helpers to get PHY interface mode from a device/ofnode Add helpers ofnode_read_phy_mode() and dev_read_phy_mode() to parse the "phy-mode" / "phy-connection-type" property. Add corresponding UT test. Use them treewide. This allows us to inline the phy_get_interface_by_name() into ofnode_read_phy_mode(), since the former is not used anymore. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> |
#
f3dd213e |
|
06-Apr-2022 |
Marek BehĂșn <kabel@kernel.org> |
net: introduce helpers to get PHY ofnode from MAC Add helpers ofnode_get_phy_node() and dev_get_phy_node() and use it in net/mdio-uclass.c function dm_eth_connect_phy_handle(). Also add corresponding UT test. This is useful because other part's of U-Boot may want to get PHY ofnode without connecting a PHY. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
d23f2908 |
|
24-Mar-2022 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: fix function documentation in include/dm/ofnode.h We use Sphinx style comments to describe functions. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
db681d49 |
|
23-Feb-2022 |
Michal Simek <michal.simek@amd.com> |
net: phy: Add new read ethernet phy id function Add new function to get ethernet phy id from compatible property of the mdio phy node. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Link: https://lore.kernel.org/r/16019efb3820a50330935fdaae191cec1f101b5c.1645627539.git.michal.simek@xilinx.com |
#
be74f71a |
|
12-Jan-2022 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
doc: add include/dm/of*.h to the HTML documentation Correct Sphinx style comments in include/dm/ofnode.h and add the device tree node API to the HTML documentation; the ofnode functions are compatible with Live tree or with flat device tree. Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> |
#
075bfc95 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to obtain a string list At present we support reading a string list a string at a time. Apart from being inefficient, this makes it impossible to separate reading of the devicetree into the of_to_plat() method where it belongs, since any code which needs access to the string must read it from the devicetree. Add a function which returns the string property as an array of pointers to the strings, which is easily used by clients. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
32c6a8e1 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix up string-function documentation The details for of_property_read_string_helper() and ofnode_read_string_index() are a little inaccurate. Fix up the comments to avoid confusion. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b8ec9458 |
|
15-Oct-2021 |
Michael Walle <michael@walle.cc> |
dm: core: add ofnode_for_each_compatible_node() Add a helper to iterate over all nodes with a given compatible string. Signed-off-by: Michael Walle <michael@walle.cc> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com> |
#
7de8bd03 |
|
07-Aug-2021 |
Simon Glass <sjg@chromium.org> |
treewide: fdt: Move fdt_get_config_... to ofnode_conf_read... The current API is outdated as it requires a devicetree pointer. Move these functions to use the ofnode API and update this globally. Add some tests while we are here. Correct the call in exynos_dsim_config_parse_dt() which is obviously wrong. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
77cbaf88 |
|
21-Jul-2021 |
Kishon Vijay Abraham I <kishon@ti.com> |
dm: core: Add helper to compare node names Add helper to compare node names. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://lore.kernel.org/r/20210721155849.20994-2-kishon@ti.com |
#
0e116bea |
|
26-May-2021 |
Marek BehĂșn <kabel@kernel.org> |
dm: core: add ofnode_get_path() Add function for retrieving full node path of a given ofnode. This uses np->full_name if OF is live, otherwise a call to fdt_get_path() is made. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
31a7b719 |
|
26-May-2021 |
Marek BehĂșn <kabel@kernel.org> |
dm: core: add non-translating version of ofnode_get_addr_size_index() Add functions ofnode_get_addr_size_index_notrans(), which is a non-translating version of ofnode_get_addr_size_index(). Some addresses are not meant to be translated, for example those of MTD fixed-partitions. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
aa351a14 |
|
12-Apr-2021 |
Chen Guanqiao <chenguanqiao@kuaishou.com> |
dm: core: Add size operations on device tree references Add functions to add size of addresses in the device tree using ofnode references. If the size is not set, return FDT_SIZE_T_NONE. Signed-off-by: Chen Guanqiao <chenguanqiao@kuaishou.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
51bdb509 |
|
12-Jan-2021 |
Nicolas Saenz Julienne <nsaenz@kernel.org> |
dm: Introduce xxx_get_dma_range() Add the following functions to get a specific device's DMA ranges: - dev_get_dma_range() - ofnode_get_dma_range() - of_get_dma_range() - fdt_get_dma_range() They are specially useful in oder to be able validate a physical address space range into a bus's and to convert addresses from and to address spaces. Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Peter Robinson <pbrobinson@gmail.com> Signed-off-by: Matthias Brugger <mbrugger@suse.com> |
#
401d1c4f |
|
30-Oct-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop asm/global_data.h from common header Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com> |
#
ec1add1e |
|
16-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Inline a few ofnode functions in SPL A recent change to unify the flattree/livetree code introduced a small size increase in SPL on some boards. For example SPL code size for px30-core-ctouch2-px30 increased by 40 bytes. To address this we can take advantage of the fact that some of the ofnode functions are only called a few times in SPL, so it is worth inlining them. Add new Kconfig options to control this. These functions are not inlined for U-Boot proper, since this increases code size. Fixes: 2ebea5eaebf ("dm: core: Combine the flattree and livetree binding code") Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d0c20ce6 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to get the devicetree root This is needed in at least one place. Avoid the conditional code in root.c by adding this inline function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0de1b074 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a livetree function to check node status Add a way to find out if a node is enabled or not, based on its 'status' property. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
305d3188 |
|
27-Jul-2020 |
Michal Simek <michal.simek@amd.com> |
dm: core: Add support for getting node from aliases Add support for getting a node/property from aliases. The similar functionality is provided for chosen node and this implemenatation is copy of it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
89f68302 |
|
25-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: add cells_count parameter in *_count_phandle_with_args The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d9949fe |
|
24-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: update test on of_offset in ofnode_valid Update the test for node.of_offset because an invalid offset is not always set to -1 because the return value of the libfdt functions are: + an error with a value < 0 + a valid offset with value >=0 For example, in ofnode_get_by_phandle() function, we have: node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, phandle); and this function can return -FDT_ERR_BADPHANDLE (-6). Without this patch, the added test dm_test_ofnode_get_by_phandle failed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
45dbe75d |
|
23-Sep-2020 |
Stefan Roese <sr@denx.de> |
dm: ofnode: Fix compile breakage with OF_CHECKS enabled Include missing log.h and change _ofnode_to_np() to ofnode_to_np() so that compiling with OF_CHECKS enabled does not break. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b9390ce5 |
|
24-Jul-2020 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: remove superfluous comment for union ofnode_union "future live tree" does not make sense anymore as we have CONFIG_OF_LIVE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@foss.st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
8b52f237 |
|
28-Mar-2022 |
Sean Anderson <sean.anderson@seco.com> |
dm: core: Provide fallbacks for ofnode_conf_read_... Because fdt_get_config_str et al. were moved/renamed to ofnode_conf_read_str, they now depend on CONFIG_DM as well as CONFIG_OF_CONTROL. Add some fallback implementations, preventing a linker error when CONFIG_SPL_OF_CONTROL and CONFIG_SPL_ENV_IS_IN_MMC are enabled and CONFIG_SPL_DM is disabled. Fixes: 7de8bd03c3 ("treewide: fdt: Move fdt_get_config_... to ofnode_conf_read...") Signed-off-by: Sean Anderson <sean.anderson@seco.com> |
#
7f418ea5 |
|
15-Apr-2022 |
Tom Rini <trini@konsulko.com> |
Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-net - DM9000 DM support - tftp server bug fix - mdio ofnode support functions - Various phy fixes and improvements. [trini: Fixup merge conflicts in drivers/net/phy/ethernet_id.c drivers/net/phy/phy.c include/phy.h]
|
#
ffb0f6f4 |
|
06-Apr-2022 |
Marek BehĂșn <marek.behun@nic.cz> |
treewide: Rename PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NA Rename constant PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NA to make it compatible with Linux' naming. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Stefan Roese <sr@denx.de> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> |
#
123ca114 |
|
06-Apr-2022 |
Marek BehĂșn <marek.behun@nic.cz> |
net: introduce helpers to get PHY interface mode from a device/ofnode Add helpers ofnode_read_phy_mode() and dev_read_phy_mode() to parse the "phy-mode" / "phy-connection-type" property. Add corresponding UT test. Use them treewide. This allows us to inline the phy_get_interface_by_name() into ofnode_read_phy_mode(), since the former is not used anymore. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> |
#
f3dd213e |
|
06-Apr-2022 |
Marek BehĂșn <marek.behun@nic.cz> |
net: introduce helpers to get PHY ofnode from MAC Add helpers ofnode_get_phy_node() and dev_get_phy_node() and use it in net/mdio-uclass.c function dm_eth_connect_phy_handle(). Also add corresponding UT test. This is useful because other part's of U-Boot may want to get PHY ofnode without connecting a PHY. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
d23f2908 |
|
24-Mar-2022 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: fix function documentation in include/dm/ofnode.h We use Sphinx style comments to describe functions. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
db681d49 |
|
23-Feb-2022 |
Michal Simek <michal.simek@amd.com> |
net: phy: Add new read ethernet phy id function Add new function to get ethernet phy id from compatible property of the mdio phy node. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Link: https://lore.kernel.org/r/16019efb3820a50330935fdaae191cec1f101b5c.1645627539.git.michal.simek@xilinx.com |
#
be74f71a |
|
12-Jan-2022 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
doc: add include/dm/of*.h to the HTML documentation Correct Sphinx style comments in include/dm/ofnode.h and add the device tree node API to the HTML documentation; the ofnode functions are compatible with Live tree or with flat device tree. Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> |
#
075bfc95 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to obtain a string list At present we support reading a string list a string at a time. Apart from being inefficient, this makes it impossible to separate reading of the devicetree into the of_to_plat() method where it belongs, since any code which needs access to the string must read it from the devicetree. Add a function which returns the string property as an array of pointers to the strings, which is easily used by clients. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
32c6a8e1 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix up string-function documentation The details for of_property_read_string_helper() and ofnode_read_string_index() are a little inaccurate. Fix up the comments to avoid confusion. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b8ec9458 |
|
15-Oct-2021 |
Michael Walle <michael@walle.cc> |
dm: core: add ofnode_for_each_compatible_node() Add a helper to iterate over all nodes with a given compatible string. Signed-off-by: Michael Walle <michael@walle.cc> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com> |
#
7de8bd03 |
|
07-Aug-2021 |
Simon Glass <sjg@chromium.org> |
treewide: fdt: Move fdt_get_config_... to ofnode_conf_read... The current API is outdated as it requires a devicetree pointer. Move these functions to use the ofnode API and update this globally. Add some tests while we are here. Correct the call in exynos_dsim_config_parse_dt() which is obviously wrong. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
77cbaf88 |
|
21-Jul-2021 |
Kishon Vijay Abraham I <kishon@ti.com> |
dm: core: Add helper to compare node names Add helper to compare node names. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://lore.kernel.org/r/20210721155849.20994-2-kishon@ti.com |
#
0e116bea |
|
26-May-2021 |
Marek BehĂșn <marek.behun@nic.cz> |
dm: core: add ofnode_get_path() Add function for retrieving full node path of a given ofnode. This uses np->full_name if OF is live, otherwise a call to fdt_get_path() is made. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
31a7b719 |
|
26-May-2021 |
Marek BehĂșn <marek.behun@nic.cz> |
dm: core: add non-translating version of ofnode_get_addr_size_index() Add functions ofnode_get_addr_size_index_notrans(), which is a non-translating version of ofnode_get_addr_size_index(). Some addresses are not meant to be translated, for example those of MTD fixed-partitions. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
aa351a14 |
|
12-Apr-2021 |
Chen Guanqiao <chenguanqiao@kuaishou.com> |
dm: core: Add size operations on device tree references Add functions to add size of addresses in the device tree using ofnode references. If the size is not set, return FDT_SIZE_T_NONE. Signed-off-by: Chen Guanqiao <chenguanqiao@kuaishou.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
51bdb509 |
|
12-Jan-2021 |
Nicolas Saenz Julienne <nsaenz@kernel.org> |
dm: Introduce xxx_get_dma_range() Add the following functions to get a specific device's DMA ranges: - dev_get_dma_range() - ofnode_get_dma_range() - of_get_dma_range() - fdt_get_dma_range() They are specially useful in oder to be able validate a physical address space range into a bus's and to convert addresses from and to address spaces. Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Peter Robinson <pbrobinson@gmail.com> Signed-off-by: Matthias Brugger <mbrugger@suse.com> |
#
401d1c4f |
|
30-Oct-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop asm/global_data.h from common header Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com> |
#
ec1add1e |
|
16-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Inline a few ofnode functions in SPL A recent change to unify the flattree/livetree code introduced a small size increase in SPL on some boards. For example SPL code size for px30-core-ctouch2-px30 increased by 40 bytes. To address this we can take advantage of the fact that some of the ofnode functions are only called a few times in SPL, so it is worth inlining them. Add new Kconfig options to control this. These functions are not inlined for U-Boot proper, since this increases code size. Fixes: 2ebea5eaebf ("dm: core: Combine the flattree and livetree binding code") Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d0c20ce6 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to get the devicetree root This is needed in at least one place. Avoid the conditional code in root.c by adding this inline function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0de1b074 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a livetree function to check node status Add a way to find out if a node is enabled or not, based on its 'status' property. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
305d3188 |
|
27-Jul-2020 |
Michal Simek <michal.simek@amd.com> |
dm: core: Add support for getting node from aliases Add support for getting a node/property from aliases. The similar functionality is provided for chosen node and this implemenatation is copy of it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
89f68302 |
|
25-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: add cells_count parameter in *_count_phandle_with_args The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d9949fe |
|
24-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: update test on of_offset in ofnode_valid Update the test for node.of_offset because an invalid offset is not always set to -1 because the return value of the libfdt functions are: + an error with a value < 0 + a valid offset with value >=0 For example, in ofnode_get_by_phandle() function, we have: node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, phandle); and this function can return -FDT_ERR_BADPHANDLE (-6). Without this patch, the added test dm_test_ofnode_get_by_phandle failed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
45dbe75d |
|
23-Sep-2020 |
Stefan Roese <sr@denx.de> |
dm: ofnode: Fix compile breakage with OF_CHECKS enabled Include missing log.h and change _ofnode_to_np() to ofnode_to_np() so that compiling with OF_CHECKS enabled does not break. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b9390ce5 |
|
24-Jul-2020 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: remove superfluous comment for union ofnode_union "future live tree" does not make sense anymore as we have CONFIG_OF_LIVE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@foss.st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7f418ea5 |
|
15-Apr-2022 |
Tom Rini <trini@konsulko.com> |
Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-net - DM9000 DM support - tftp server bug fix - mdio ofnode support functions - Various phy fixes and improvements. [trini: Fixup merge conflicts in drivers/net/phy/ethernet_id.c drivers/net/phy/phy.c include/phy.h]
|
#
ffb0f6f4 |
|
06-Apr-2022 |
Marek BehĂșn <marek.behun@nic.cz> |
treewide: Rename PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NA Rename constant PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NA to make it compatible with Linux' naming. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Stefan Roese <sr@denx.de> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> |
#
123ca114 |
|
06-Apr-2022 |
Marek BehĂșn <marek.behun@nic.cz> |
net: introduce helpers to get PHY interface mode from a device/ofnode Add helpers ofnode_read_phy_mode() and dev_read_phy_mode() to parse the "phy-mode" / "phy-connection-type" property. Add corresponding UT test. Use them treewide. This allows us to inline the phy_get_interface_by_name() into ofnode_read_phy_mode(), since the former is not used anymore. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> |
#
f3dd213e |
|
06-Apr-2022 |
Marek BehĂșn <marek.behun@nic.cz> |
net: introduce helpers to get PHY ofnode from MAC Add helpers ofnode_get_phy_node() and dev_get_phy_node() and use it in net/mdio-uclass.c function dm_eth_connect_phy_handle(). Also add corresponding UT test. This is useful because other part's of U-Boot may want to get PHY ofnode without connecting a PHY. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
d23f2908 |
|
24-Mar-2022 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: fix function documentation in include/dm/ofnode.h We use Sphinx style comments to describe functions. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
db681d49 |
|
23-Feb-2022 |
Michal Simek <michal.simek@xilinx.com> |
net: phy: Add new read ethernet phy id function Add new function to get ethernet phy id from compatible property of the mdio phy node. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Link: https://lore.kernel.org/r/16019efb3820a50330935fdaae191cec1f101b5c.1645627539.git.michal.simek@xilinx.com |
#
be74f71a |
|
12-Jan-2022 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
doc: add include/dm/of*.h to the HTML documentation Correct Sphinx style comments in include/dm/ofnode.h and add the device tree node API to the HTML documentation; the ofnode functions are compatible with Live tree or with flat device tree. Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> |
#
075bfc95 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to obtain a string list At present we support reading a string list a string at a time. Apart from being inefficient, this makes it impossible to separate reading of the devicetree into the of_to_plat() method where it belongs, since any code which needs access to the string must read it from the devicetree. Add a function which returns the string property as an array of pointers to the strings, which is easily used by clients. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
32c6a8e1 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix up string-function documentation The details for of_property_read_string_helper() and ofnode_read_string_index() are a little inaccurate. Fix up the comments to avoid confusion. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b8ec9458 |
|
15-Oct-2021 |
Michael Walle <michael@walle.cc> |
dm: core: add ofnode_for_each_compatible_node() Add a helper to iterate over all nodes with a given compatible string. Signed-off-by: Michael Walle <michael@walle.cc> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com> |
#
7de8bd03 |
|
07-Aug-2021 |
Simon Glass <sjg@chromium.org> |
treewide: fdt: Move fdt_get_config_... to ofnode_conf_read... The current API is outdated as it requires a devicetree pointer. Move these functions to use the ofnode API and update this globally. Add some tests while we are here. Correct the call in exynos_dsim_config_parse_dt() which is obviously wrong. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
77cbaf88 |
|
21-Jul-2021 |
Kishon Vijay Abraham I <kishon@ti.com> |
dm: core: Add helper to compare node names Add helper to compare node names. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://lore.kernel.org/r/20210721155849.20994-2-kishon@ti.com |
#
0e116bea |
|
26-May-2021 |
Marek BehĂșn <marek.behun@nic.cz> |
dm: core: add ofnode_get_path() Add function for retrieving full node path of a given ofnode. This uses np->full_name if OF is live, otherwise a call to fdt_get_path() is made. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
31a7b719 |
|
26-May-2021 |
Marek BehĂșn <marek.behun@nic.cz> |
dm: core: add non-translating version of ofnode_get_addr_size_index() Add functions ofnode_get_addr_size_index_notrans(), which is a non-translating version of ofnode_get_addr_size_index(). Some addresses are not meant to be translated, for example those of MTD fixed-partitions. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
aa351a14 |
|
12-Apr-2021 |
Chen Guanqiao <chenguanqiao@kuaishou.com> |
dm: core: Add size operations on device tree references Add functions to add size of addresses in the device tree using ofnode references. If the size is not set, return FDT_SIZE_T_NONE. Signed-off-by: Chen Guanqiao <chenguanqiao@kuaishou.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
51bdb509 |
|
12-Jan-2021 |
Nicolas Saenz Julienne <nsaenz@kernel.org> |
dm: Introduce xxx_get_dma_range() Add the following functions to get a specific device's DMA ranges: - dev_get_dma_range() - ofnode_get_dma_range() - of_get_dma_range() - fdt_get_dma_range() They are specially useful in oder to be able validate a physical address space range into a bus's and to convert addresses from and to address spaces. Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Peter Robinson <pbrobinson@gmail.com> Signed-off-by: Matthias Brugger <mbrugger@suse.com> |
#
401d1c4f |
|
30-Oct-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop asm/global_data.h from common header Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com> |
#
ec1add1e |
|
16-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Inline a few ofnode functions in SPL A recent change to unify the flattree/livetree code introduced a small size increase in SPL on some boards. For example SPL code size for px30-core-ctouch2-px30 increased by 40 bytes. To address this we can take advantage of the fact that some of the ofnode functions are only called a few times in SPL, so it is worth inlining them. Add new Kconfig options to control this. These functions are not inlined for U-Boot proper, since this increases code size. Fixes: 2ebea5eaebf ("dm: core: Combine the flattree and livetree binding code") Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d0c20ce6 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to get the devicetree root This is needed in at least one place. Avoid the conditional code in root.c by adding this inline function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0de1b074 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a livetree function to check node status Add a way to find out if a node is enabled or not, based on its 'status' property. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
305d3188 |
|
27-Jul-2020 |
Michal Simek <michal.simek@xilinx.com> |
dm: core: Add support for getting node from aliases Add support for getting a node/property from aliases. The similar functionality is provided for chosen node and this implemenatation is copy of it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
89f68302 |
|
25-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: add cells_count parameter in *_count_phandle_with_args The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d9949fe |
|
24-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: update test on of_offset in ofnode_valid Update the test for node.of_offset because an invalid offset is not always set to -1 because the return value of the libfdt functions are: + an error with a value < 0 + a valid offset with value >=0 For example, in ofnode_get_by_phandle() function, we have: node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, phandle); and this function can return -FDT_ERR_BADPHANDLE (-6). Without this patch, the added test dm_test_ofnode_get_by_phandle failed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
45dbe75d |
|
23-Sep-2020 |
Stefan Roese <sr@denx.de> |
dm: ofnode: Fix compile breakage with OF_CHECKS enabled Include missing log.h and change _ofnode_to_np() to ofnode_to_np() so that compiling with OF_CHECKS enabled does not break. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b9390ce5 |
|
24-Jul-2020 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: remove superfluous comment for union ofnode_union "future live tree" does not make sense anymore as we have CONFIG_OF_LIVE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@foss.st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d23f2908 |
|
24-Mar-2022 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: fix function documentation in include/dm/ofnode.h We use Sphinx style comments to describe functions. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
db681d49 |
|
23-Feb-2022 |
Michal Simek <michal.simek@xilinx.com> |
net: phy: Add new read ethernet phy id function Add new function to get ethernet phy id from compatible property of the mdio phy node. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Link: https://lore.kernel.org/r/16019efb3820a50330935fdaae191cec1f101b5c.1645627539.git.michal.simek@xilinx.com |
#
be74f71a |
|
12-Jan-2022 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
doc: add include/dm/of*.h to the HTML documentation Correct Sphinx style comments in include/dm/ofnode.h and add the device tree node API to the HTML documentation; the ofnode functions are compatible with Live tree or with flat device tree. Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> |
#
075bfc95 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to obtain a string list At present we support reading a string list a string at a time. Apart from being inefficient, this makes it impossible to separate reading of the devicetree into the of_to_plat() method where it belongs, since any code which needs access to the string must read it from the devicetree. Add a function which returns the string property as an array of pointers to the strings, which is easily used by clients. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
32c6a8e1 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix up string-function documentation The details for of_property_read_string_helper() and ofnode_read_string_index() are a little inaccurate. Fix up the comments to avoid confusion. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b8ec9458 |
|
15-Oct-2021 |
Michael Walle <michael@walle.cc> |
dm: core: add ofnode_for_each_compatible_node() Add a helper to iterate over all nodes with a given compatible string. Signed-off-by: Michael Walle <michael@walle.cc> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com> |
#
7de8bd03 |
|
07-Aug-2021 |
Simon Glass <sjg@chromium.org> |
treewide: fdt: Move fdt_get_config_... to ofnode_conf_read... The current API is outdated as it requires a devicetree pointer. Move these functions to use the ofnode API and update this globally. Add some tests while we are here. Correct the call in exynos_dsim_config_parse_dt() which is obviously wrong. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
77cbaf88 |
|
21-Jul-2021 |
Kishon Vijay Abraham I <kishon@ti.com> |
dm: core: Add helper to compare node names Add helper to compare node names. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://lore.kernel.org/r/20210721155849.20994-2-kishon@ti.com |
#
0e116bea |
|
26-May-2021 |
Marek BehĂșn <marek.behun@nic.cz> |
dm: core: add ofnode_get_path() Add function for retrieving full node path of a given ofnode. This uses np->full_name if OF is live, otherwise a call to fdt_get_path() is made. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
31a7b719 |
|
26-May-2021 |
Marek BehĂșn <marek.behun@nic.cz> |
dm: core: add non-translating version of ofnode_get_addr_size_index() Add functions ofnode_get_addr_size_index_notrans(), which is a non-translating version of ofnode_get_addr_size_index(). Some addresses are not meant to be translated, for example those of MTD fixed-partitions. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
aa351a14 |
|
12-Apr-2021 |
Chen Guanqiao <chenguanqiao@kuaishou.com> |
dm: core: Add size operations on device tree references Add functions to add size of addresses in the device tree using ofnode references. If the size is not set, return FDT_SIZE_T_NONE. Signed-off-by: Chen Guanqiao <chenguanqiao@kuaishou.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
51bdb509 |
|
12-Jan-2021 |
Nicolas Saenz Julienne <nsaenz@kernel.org> |
dm: Introduce xxx_get_dma_range() Add the following functions to get a specific device's DMA ranges: - dev_get_dma_range() - ofnode_get_dma_range() - of_get_dma_range() - fdt_get_dma_range() They are specially useful in oder to be able validate a physical address space range into a bus's and to convert addresses from and to address spaces. Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Peter Robinson <pbrobinson@gmail.com> Signed-off-by: Matthias Brugger <mbrugger@suse.com> |
#
401d1c4f |
|
30-Oct-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop asm/global_data.h from common header Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com> |
#
ec1add1e |
|
16-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Inline a few ofnode functions in SPL A recent change to unify the flattree/livetree code introduced a small size increase in SPL on some boards. For example SPL code size for px30-core-ctouch2-px30 increased by 40 bytes. To address this we can take advantage of the fact that some of the ofnode functions are only called a few times in SPL, so it is worth inlining them. Add new Kconfig options to control this. These functions are not inlined for U-Boot proper, since this increases code size. Fixes: 2ebea5eaebf ("dm: core: Combine the flattree and livetree binding code") Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d0c20ce6 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to get the devicetree root This is needed in at least one place. Avoid the conditional code in root.c by adding this inline function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0de1b074 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a livetree function to check node status Add a way to find out if a node is enabled or not, based on its 'status' property. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
305d3188 |
|
27-Jul-2020 |
Michal Simek <michal.simek@xilinx.com> |
dm: core: Add support for getting node from aliases Add support for getting a node/property from aliases. The similar functionality is provided for chosen node and this implemenatation is copy of it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
89f68302 |
|
25-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: add cells_count parameter in *_count_phandle_with_args The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d9949fe |
|
24-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: update test on of_offset in ofnode_valid Update the test for node.of_offset because an invalid offset is not always set to -1 because the return value of the libfdt functions are: + an error with a value < 0 + a valid offset with value >=0 For example, in ofnode_get_by_phandle() function, we have: node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, phandle); and this function can return -FDT_ERR_BADPHANDLE (-6). Without this patch, the added test dm_test_ofnode_get_by_phandle failed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
45dbe75d |
|
23-Sep-2020 |
Stefan Roese <sr@denx.de> |
dm: ofnode: Fix compile breakage with OF_CHECKS enabled Include missing log.h and change _ofnode_to_np() to ofnode_to_np() so that compiling with OF_CHECKS enabled does not break. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b9390ce5 |
|
24-Jul-2020 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: remove superfluous comment for union ofnode_union "future live tree" does not make sense anymore as we have CONFIG_OF_LIVE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@foss.st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
db681d49 |
|
23-Feb-2022 |
Michal Simek <michal.simek@xilinx.com> |
net: phy: Add new read ethernet phy id function Add new function to get ethernet phy id from compatible property of the mdio phy node. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Link: https://lore.kernel.org/r/16019efb3820a50330935fdaae191cec1f101b5c.1645627539.git.michal.simek@xilinx.com |
#
be74f71a |
|
12-Jan-2022 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
doc: add include/dm/of*.h to the HTML documentation Correct Sphinx style comments in include/dm/ofnode.h and add the device tree node API to the HTML documentation; the ofnode functions are compatible with Live tree or with flat device tree. Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> |
#
075bfc95 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to obtain a string list At present we support reading a string list a string at a time. Apart from being inefficient, this makes it impossible to separate reading of the devicetree into the of_to_plat() method where it belongs, since any code which needs access to the string must read it from the devicetree. Add a function which returns the string property as an array of pointers to the strings, which is easily used by clients. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
32c6a8e1 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix up string-function documentation The details for of_property_read_string_helper() and ofnode_read_string_index() are a little inaccurate. Fix up the comments to avoid confusion. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b8ec9458 |
|
15-Oct-2021 |
Michael Walle <michael@walle.cc> |
dm: core: add ofnode_for_each_compatible_node() Add a helper to iterate over all nodes with a given compatible string. Signed-off-by: Michael Walle <michael@walle.cc> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com> |
#
7de8bd03 |
|
07-Aug-2021 |
Simon Glass <sjg@chromium.org> |
treewide: fdt: Move fdt_get_config_... to ofnode_conf_read... The current API is outdated as it requires a devicetree pointer. Move these functions to use the ofnode API and update this globally. Add some tests while we are here. Correct the call in exynos_dsim_config_parse_dt() which is obviously wrong. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
77cbaf88 |
|
21-Jul-2021 |
Kishon Vijay Abraham I <kishon@ti.com> |
dm: core: Add helper to compare node names Add helper to compare node names. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://lore.kernel.org/r/20210721155849.20994-2-kishon@ti.com |
#
0e116bea |
|
26-May-2021 |
Marek BehĂșn <marek.behun@nic.cz> |
dm: core: add ofnode_get_path() Add function for retrieving full node path of a given ofnode. This uses np->full_name if OF is live, otherwise a call to fdt_get_path() is made. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
31a7b719 |
|
26-May-2021 |
Marek BehĂșn <marek.behun@nic.cz> |
dm: core: add non-translating version of ofnode_get_addr_size_index() Add functions ofnode_get_addr_size_index_notrans(), which is a non-translating version of ofnode_get_addr_size_index(). Some addresses are not meant to be translated, for example those of MTD fixed-partitions. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
aa351a14 |
|
12-Apr-2021 |
Chen Guanqiao <chenguanqiao@kuaishou.com> |
dm: core: Add size operations on device tree references Add functions to add size of addresses in the device tree using ofnode references. If the size is not set, return FDT_SIZE_T_NONE. Signed-off-by: Chen Guanqiao <chenguanqiao@kuaishou.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
51bdb509 |
|
12-Jan-2021 |
Nicolas Saenz Julienne <nsaenz@kernel.org> |
dm: Introduce xxx_get_dma_range() Add the following functions to get a specific device's DMA ranges: - dev_get_dma_range() - ofnode_get_dma_range() - of_get_dma_range() - fdt_get_dma_range() They are specially useful in oder to be able validate a physical address space range into a bus's and to convert addresses from and to address spaces. Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Peter Robinson <pbrobinson@gmail.com> Signed-off-by: Matthias Brugger <mbrugger@suse.com> |
#
401d1c4f |
|
30-Oct-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop asm/global_data.h from common header Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com> |
#
ec1add1e |
|
16-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Inline a few ofnode functions in SPL A recent change to unify the flattree/livetree code introduced a small size increase in SPL on some boards. For example SPL code size for px30-core-ctouch2-px30 increased by 40 bytes. To address this we can take advantage of the fact that some of the ofnode functions are only called a few times in SPL, so it is worth inlining them. Add new Kconfig options to control this. These functions are not inlined for U-Boot proper, since this increases code size. Fixes: 2ebea5eaebf ("dm: core: Combine the flattree and livetree binding code") Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d0c20ce6 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to get the devicetree root This is needed in at least one place. Avoid the conditional code in root.c by adding this inline function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0de1b074 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a livetree function to check node status Add a way to find out if a node is enabled or not, based on its 'status' property. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
305d3188 |
|
27-Jul-2020 |
Michal Simek <michal.simek@xilinx.com> |
dm: core: Add support for getting node from aliases Add support for getting a node/property from aliases. The similar functionality is provided for chosen node and this implemenatation is copy of it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
89f68302 |
|
25-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: add cells_count parameter in *_count_phandle_with_args The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d9949fe |
|
24-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: update test on of_offset in ofnode_valid Update the test for node.of_offset because an invalid offset is not always set to -1 because the return value of the libfdt functions are: + an error with a value < 0 + a valid offset with value >=0 For example, in ofnode_get_by_phandle() function, we have: node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, phandle); and this function can return -FDT_ERR_BADPHANDLE (-6). Without this patch, the added test dm_test_ofnode_get_by_phandle failed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
45dbe75d |
|
23-Sep-2020 |
Stefan Roese <sr@denx.de> |
dm: ofnode: Fix compile breakage with OF_CHECKS enabled Include missing log.h and change _ofnode_to_np() to ofnode_to_np() so that compiling with OF_CHECKS enabled does not break. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b9390ce5 |
|
24-Jul-2020 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: remove superfluous comment for union ofnode_union "future live tree" does not make sense anymore as we have CONFIG_OF_LIVE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@foss.st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
be74f71a |
|
12-Jan-2022 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
doc: add include/dm/of*.h to the HTML documentation Correct Sphinx style comments in include/dm/ofnode.h and add the device tree node API to the HTML documentation; the ofnode functions are compatible with Live tree or with flat device tree. Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> |
#
075bfc95 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to obtain a string list At present we support reading a string list a string at a time. Apart from being inefficient, this makes it impossible to separate reading of the devicetree into the of_to_plat() method where it belongs, since any code which needs access to the string must read it from the devicetree. Add a function which returns the string property as an array of pointers to the strings, which is easily used by clients. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
32c6a8e1 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix up string-function documentation The details for of_property_read_string_helper() and ofnode_read_string_index() are a little inaccurate. Fix up the comments to avoid confusion. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b8ec9458 |
|
15-Oct-2021 |
Michael Walle <michael@walle.cc> |
dm: core: add ofnode_for_each_compatible_node() Add a helper to iterate over all nodes with a given compatible string. Signed-off-by: Michael Walle <michael@walle.cc> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com> |
#
7de8bd03 |
|
07-Aug-2021 |
Simon Glass <sjg@chromium.org> |
treewide: fdt: Move fdt_get_config_... to ofnode_conf_read... The current API is outdated as it requires a devicetree pointer. Move these functions to use the ofnode API and update this globally. Add some tests while we are here. Correct the call in exynos_dsim_config_parse_dt() which is obviously wrong. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
77cbaf88 |
|
21-Jul-2021 |
Kishon Vijay Abraham I <kishon@ti.com> |
dm: core: Add helper to compare node names Add helper to compare node names. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://lore.kernel.org/r/20210721155849.20994-2-kishon@ti.com |
#
0e116bea |
|
26-May-2021 |
Marek BehĂșn <marek.behun@nic.cz> |
dm: core: add ofnode_get_path() Add function for retrieving full node path of a given ofnode. This uses np->full_name if OF is live, otherwise a call to fdt_get_path() is made. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
31a7b719 |
|
26-May-2021 |
Marek BehĂșn <marek.behun@nic.cz> |
dm: core: add non-translating version of ofnode_get_addr_size_index() Add functions ofnode_get_addr_size_index_notrans(), which is a non-translating version of ofnode_get_addr_size_index(). Some addresses are not meant to be translated, for example those of MTD fixed-partitions. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
aa351a14 |
|
12-Apr-2021 |
Chen Guanqiao <chenguanqiao@kuaishou.com> |
dm: core: Add size operations on device tree references Add functions to add size of addresses in the device tree using ofnode references. If the size is not set, return FDT_SIZE_T_NONE. Signed-off-by: Chen Guanqiao <chenguanqiao@kuaishou.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
51bdb509 |
|
12-Jan-2021 |
Nicolas Saenz Julienne <nsaenz@kernel.org> |
dm: Introduce xxx_get_dma_range() Add the following functions to get a specific device's DMA ranges: - dev_get_dma_range() - ofnode_get_dma_range() - of_get_dma_range() - fdt_get_dma_range() They are specially useful in oder to be able validate a physical address space range into a bus's and to convert addresses from and to address spaces. Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Peter Robinson <pbrobinson@gmail.com> Signed-off-by: Matthias Brugger <mbrugger@suse.com> |
#
401d1c4f |
|
30-Oct-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop asm/global_data.h from common header Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com> |
#
ec1add1e |
|
16-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Inline a few ofnode functions in SPL A recent change to unify the flattree/livetree code introduced a small size increase in SPL on some boards. For example SPL code size for px30-core-ctouch2-px30 increased by 40 bytes. To address this we can take advantage of the fact that some of the ofnode functions are only called a few times in SPL, so it is worth inlining them. Add new Kconfig options to control this. These functions are not inlined for U-Boot proper, since this increases code size. Fixes: 2ebea5eaebf ("dm: core: Combine the flattree and livetree binding code") Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d0c20ce6 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to get the devicetree root This is needed in at least one place. Avoid the conditional code in root.c by adding this inline function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0de1b074 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a livetree function to check node status Add a way to find out if a node is enabled or not, based on its 'status' property. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
305d3188 |
|
27-Jul-2020 |
Michal Simek <michal.simek@xilinx.com> |
dm: core: Add support for getting node from aliases Add support for getting a node/property from aliases. The similar functionality is provided for chosen node and this implemenatation is copy of it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
89f68302 |
|
25-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: add cells_count parameter in *_count_phandle_with_args The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d9949fe |
|
24-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: update test on of_offset in ofnode_valid Update the test for node.of_offset because an invalid offset is not always set to -1 because the return value of the libfdt functions are: + an error with a value < 0 + a valid offset with value >=0 For example, in ofnode_get_by_phandle() function, we have: node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, phandle); and this function can return -FDT_ERR_BADPHANDLE (-6). Without this patch, the added test dm_test_ofnode_get_by_phandle failed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
45dbe75d |
|
23-Sep-2020 |
Stefan Roese <sr@denx.de> |
dm: ofnode: Fix compile breakage with OF_CHECKS enabled Include missing log.h and change _ofnode_to_np() to ofnode_to_np() so that compiling with OF_CHECKS enabled does not break. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b9390ce5 |
|
24-Jul-2020 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: remove superfluous comment for union ofnode_union "future live tree" does not make sense anymore as we have CONFIG_OF_LIVE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@foss.st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
075bfc95 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to obtain a string list At present we support reading a string list a string at a time. Apart from being inefficient, this makes it impossible to separate reading of the devicetree into the of_to_plat() method where it belongs, since any code which needs access to the string must read it from the devicetree. Add a function which returns the string property as an array of pointers to the strings, which is easily used by clients. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
32c6a8e1 |
|
23-Oct-2021 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix up string-function documentation The details for of_property_read_string_helper() and ofnode_read_string_index() are a little inaccurate. Fix up the comments to avoid confusion. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b8ec9458 |
|
15-Oct-2021 |
Michael Walle <michael@walle.cc> |
dm: core: add ofnode_for_each_compatible_node() Add a helper to iterate over all nodes with a given compatible string. Signed-off-by: Michael Walle <michael@walle.cc> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com> |
#
7de8bd03 |
|
07-Aug-2021 |
Simon Glass <sjg@chromium.org> |
treewide: fdt: Move fdt_get_config_... to ofnode_conf_read... The current API is outdated as it requires a devicetree pointer. Move these functions to use the ofnode API and update this globally. Add some tests while we are here. Correct the call in exynos_dsim_config_parse_dt() which is obviously wrong. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
77cbaf88 |
|
21-Jul-2021 |
Kishon Vijay Abraham I <kishon@ti.com> |
dm: core: Add helper to compare node names Add helper to compare node names. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://lore.kernel.org/r/20210721155849.20994-2-kishon@ti.com |
#
0e116bea |
|
26-May-2021 |
Marek BehĂșn <marek.behun@nic.cz> |
dm: core: add ofnode_get_path() Add function for retrieving full node path of a given ofnode. This uses np->full_name if OF is live, otherwise a call to fdt_get_path() is made. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
31a7b719 |
|
26-May-2021 |
Marek BehĂșn <marek.behun@nic.cz> |
dm: core: add non-translating version of ofnode_get_addr_size_index() Add functions ofnode_get_addr_size_index_notrans(), which is a non-translating version of ofnode_get_addr_size_index(). Some addresses are not meant to be translated, for example those of MTD fixed-partitions. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
aa351a14 |
|
12-Apr-2021 |
Chen Guanqiao <chenguanqiao@kuaishou.com> |
dm: core: Add size operations on device tree references Add functions to add size of addresses in the device tree using ofnode references. If the size is not set, return FDT_SIZE_T_NONE. Signed-off-by: Chen Guanqiao <chenguanqiao@kuaishou.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
51bdb509 |
|
12-Jan-2021 |
Nicolas Saenz Julienne <nsaenz@kernel.org> |
dm: Introduce xxx_get_dma_range() Add the following functions to get a specific device's DMA ranges: - dev_get_dma_range() - ofnode_get_dma_range() - of_get_dma_range() - fdt_get_dma_range() They are specially useful in oder to be able validate a physical address space range into a bus's and to convert addresses from and to address spaces. Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Peter Robinson <pbrobinson@gmail.com> Signed-off-by: Matthias Brugger <mbrugger@suse.com> |
#
401d1c4f |
|
30-Oct-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop asm/global_data.h from common header Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com> |
#
ec1add1e |
|
16-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Inline a few ofnode functions in SPL A recent change to unify the flattree/livetree code introduced a small size increase in SPL on some boards. For example SPL code size for px30-core-ctouch2-px30 increased by 40 bytes. To address this we can take advantage of the fact that some of the ofnode functions are only called a few times in SPL, so it is worth inlining them. Add new Kconfig options to control this. These functions are not inlined for U-Boot proper, since this increases code size. Fixes: 2ebea5eaebf ("dm: core: Combine the flattree and livetree binding code") Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d0c20ce6 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to get the devicetree root This is needed in at least one place. Avoid the conditional code in root.c by adding this inline function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0de1b074 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a livetree function to check node status Add a way to find out if a node is enabled or not, based on its 'status' property. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
305d3188 |
|
27-Jul-2020 |
Michal Simek <michal.simek@xilinx.com> |
dm: core: Add support for getting node from aliases Add support for getting a node/property from aliases. The similar functionality is provided for chosen node and this implemenatation is copy of it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
89f68302 |
|
25-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: add cells_count parameter in *_count_phandle_with_args The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d9949fe |
|
24-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: update test on of_offset in ofnode_valid Update the test for node.of_offset because an invalid offset is not always set to -1 because the return value of the libfdt functions are: + an error with a value < 0 + a valid offset with value >=0 For example, in ofnode_get_by_phandle() function, we have: node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, phandle); and this function can return -FDT_ERR_BADPHANDLE (-6). Without this patch, the added test dm_test_ofnode_get_by_phandle failed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
45dbe75d |
|
23-Sep-2020 |
Stefan Roese <sr@denx.de> |
dm: ofnode: Fix compile breakage with OF_CHECKS enabled Include missing log.h and change _ofnode_to_np() to ofnode_to_np() so that compiling with OF_CHECKS enabled does not break. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b9390ce5 |
|
24-Jul-2020 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: remove superfluous comment for union ofnode_union "future live tree" does not make sense anymore as we have CONFIG_OF_LIVE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@foss.st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b8ec9458 |
|
15-Oct-2021 |
Michael Walle <michael@walle.cc> |
dm: core: add ofnode_for_each_compatible_node() Add a helper to iterate over all nodes with a given compatible string. Signed-off-by: Michael Walle <michael@walle.cc> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com> |
#
7de8bd03 |
|
07-Aug-2021 |
Simon Glass <sjg@chromium.org> |
treewide: fdt: Move fdt_get_config_... to ofnode_conf_read... The current API is outdated as it requires a devicetree pointer. Move these functions to use the ofnode API and update this globally. Add some tests while we are here. Correct the call in exynos_dsim_config_parse_dt() which is obviously wrong. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
77cbaf88 |
|
21-Jul-2021 |
Kishon Vijay Abraham I <kishon@ti.com> |
dm: core: Add helper to compare node names Add helper to compare node names. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://lore.kernel.org/r/20210721155849.20994-2-kishon@ti.com |
#
0e116bea |
|
26-May-2021 |
Marek BehĂșn <marek.behun@nic.cz> |
dm: core: add ofnode_get_path() Add function for retrieving full node path of a given ofnode. This uses np->full_name if OF is live, otherwise a call to fdt_get_path() is made. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
31a7b719 |
|
26-May-2021 |
Marek BehĂșn <marek.behun@nic.cz> |
dm: core: add non-translating version of ofnode_get_addr_size_index() Add functions ofnode_get_addr_size_index_notrans(), which is a non-translating version of ofnode_get_addr_size_index(). Some addresses are not meant to be translated, for example those of MTD fixed-partitions. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
aa351a14 |
|
12-Apr-2021 |
Chen Guanqiao <chenguanqiao@kuaishou.com> |
dm: core: Add size operations on device tree references Add functions to add size of addresses in the device tree using ofnode references. If the size is not set, return FDT_SIZE_T_NONE. Signed-off-by: Chen Guanqiao <chenguanqiao@kuaishou.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
51bdb509 |
|
12-Jan-2021 |
Nicolas Saenz Julienne <nsaenz@kernel.org> |
dm: Introduce xxx_get_dma_range() Add the following functions to get a specific device's DMA ranges: - dev_get_dma_range() - ofnode_get_dma_range() - of_get_dma_range() - fdt_get_dma_range() They are specially useful in oder to be able validate a physical address space range into a bus's and to convert addresses from and to address spaces. Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Peter Robinson <pbrobinson@gmail.com> Signed-off-by: Matthias Brugger <mbrugger@suse.com> |
#
401d1c4f |
|
30-Oct-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop asm/global_data.h from common header Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com> |
#
ec1add1e |
|
16-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Inline a few ofnode functions in SPL A recent change to unify the flattree/livetree code introduced a small size increase in SPL on some boards. For example SPL code size for px30-core-ctouch2-px30 increased by 40 bytes. To address this we can take advantage of the fact that some of the ofnode functions are only called a few times in SPL, so it is worth inlining them. Add new Kconfig options to control this. These functions are not inlined for U-Boot proper, since this increases code size. Fixes: 2ebea5eaebf ("dm: core: Combine the flattree and livetree binding code") Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d0c20ce6 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to get the devicetree root This is needed in at least one place. Avoid the conditional code in root.c by adding this inline function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0de1b074 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a livetree function to check node status Add a way to find out if a node is enabled or not, based on its 'status' property. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
305d3188 |
|
27-Jul-2020 |
Michal Simek <michal.simek@xilinx.com> |
dm: core: Add support for getting node from aliases Add support for getting a node/property from aliases. The similar functionality is provided for chosen node and this implemenatation is copy of it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
89f68302 |
|
25-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: add cells_count parameter in *_count_phandle_with_args The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d9949fe |
|
24-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: update test on of_offset in ofnode_valid Update the test for node.of_offset because an invalid offset is not always set to -1 because the return value of the libfdt functions are: + an error with a value < 0 + a valid offset with value >=0 For example, in ofnode_get_by_phandle() function, we have: node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, phandle); and this function can return -FDT_ERR_BADPHANDLE (-6). Without this patch, the added test dm_test_ofnode_get_by_phandle failed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
45dbe75d |
|
23-Sep-2020 |
Stefan Roese <sr@denx.de> |
dm: ofnode: Fix compile breakage with OF_CHECKS enabled Include missing log.h and change _ofnode_to_np() to ofnode_to_np() so that compiling with OF_CHECKS enabled does not break. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b9390ce5 |
|
24-Jul-2020 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: remove superfluous comment for union ofnode_union "future live tree" does not make sense anymore as we have CONFIG_OF_LIVE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@foss.st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7de8bd03 |
|
07-Aug-2021 |
Simon Glass <sjg@chromium.org> |
treewide: fdt: Move fdt_get_config_... to ofnode_conf_read... The current API is outdated as it requires a devicetree pointer. Move these functions to use the ofnode API and update this globally. Add some tests while we are here. Correct the call in exynos_dsim_config_parse_dt() which is obviously wrong. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
77cbaf88 |
|
21-Jul-2021 |
Kishon Vijay Abraham I <kishon@ti.com> |
dm: core: Add helper to compare node names Add helper to compare node names. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://lore.kernel.org/r/20210721155849.20994-2-kishon@ti.com |
#
0e116bea |
|
26-May-2021 |
Marek BehĂșn <marek.behun@nic.cz> |
dm: core: add ofnode_get_path() Add function for retrieving full node path of a given ofnode. This uses np->full_name if OF is live, otherwise a call to fdt_get_path() is made. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
31a7b719 |
|
26-May-2021 |
Marek BehĂșn <marek.behun@nic.cz> |
dm: core: add non-translating version of ofnode_get_addr_size_index() Add functions ofnode_get_addr_size_index_notrans(), which is a non-translating version of ofnode_get_addr_size_index(). Some addresses are not meant to be translated, for example those of MTD fixed-partitions. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
aa351a14 |
|
12-Apr-2021 |
Chen Guanqiao <chenguanqiao@kuaishou.com> |
dm: core: Add size operations on device tree references Add functions to add size of addresses in the device tree using ofnode references. If the size is not set, return FDT_SIZE_T_NONE. Signed-off-by: Chen Guanqiao <chenguanqiao@kuaishou.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
51bdb509 |
|
12-Jan-2021 |
Nicolas Saenz Julienne <nsaenz@kernel.org> |
dm: Introduce xxx_get_dma_range() Add the following functions to get a specific device's DMA ranges: - dev_get_dma_range() - ofnode_get_dma_range() - of_get_dma_range() - fdt_get_dma_range() They are specially useful in oder to be able validate a physical address space range into a bus's and to convert addresses from and to address spaces. Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Peter Robinson <pbrobinson@gmail.com> Signed-off-by: Matthias Brugger <mbrugger@suse.com> |
#
401d1c4f |
|
30-Oct-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop asm/global_data.h from common header Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com> |
#
ec1add1e |
|
16-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Inline a few ofnode functions in SPL A recent change to unify the flattree/livetree code introduced a small size increase in SPL on some boards. For example SPL code size for px30-core-ctouch2-px30 increased by 40 bytes. To address this we can take advantage of the fact that some of the ofnode functions are only called a few times in SPL, so it is worth inlining them. Add new Kconfig options to control this. These functions are not inlined for U-Boot proper, since this increases code size. Fixes: 2ebea5eaebf ("dm: core: Combine the flattree and livetree binding code") Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d0c20ce6 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to get the devicetree root This is needed in at least one place. Avoid the conditional code in root.c by adding this inline function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0de1b074 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a livetree function to check node status Add a way to find out if a node is enabled or not, based on its 'status' property. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
305d3188 |
|
27-Jul-2020 |
Michal Simek <michal.simek@xilinx.com> |
dm: core: Add support for getting node from aliases Add support for getting a node/property from aliases. The similar functionality is provided for chosen node and this implemenatation is copy of it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
89f68302 |
|
25-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: add cells_count parameter in *_count_phandle_with_args The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d9949fe |
|
24-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: update test on of_offset in ofnode_valid Update the test for node.of_offset because an invalid offset is not always set to -1 because the return value of the libfdt functions are: + an error with a value < 0 + a valid offset with value >=0 For example, in ofnode_get_by_phandle() function, we have: node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, phandle); and this function can return -FDT_ERR_BADPHANDLE (-6). Without this patch, the added test dm_test_ofnode_get_by_phandle failed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
45dbe75d |
|
23-Sep-2020 |
Stefan Roese <sr@denx.de> |
dm: ofnode: Fix compile breakage with OF_CHECKS enabled Include missing log.h and change _ofnode_to_np() to ofnode_to_np() so that compiling with OF_CHECKS enabled does not break. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b9390ce5 |
|
24-Jul-2020 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: remove superfluous comment for union ofnode_union "future live tree" does not make sense anymore as we have CONFIG_OF_LIVE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@foss.st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
77cbaf88 |
|
21-Jul-2021 |
Kishon Vijay Abraham I <kishon@ti.com> |
dm: core: Add helper to compare node names Add helper to compare node names. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://lore.kernel.org/r/20210721155849.20994-2-kishon@ti.com |
#
0e116bea |
|
26-May-2021 |
Marek BehĂșn <marek.behun@nic.cz> |
dm: core: add ofnode_get_path() Add function for retrieving full node path of a given ofnode. This uses np->full_name if OF is live, otherwise a call to fdt_get_path() is made. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
31a7b719 |
|
26-May-2021 |
Marek BehĂșn <marek.behun@nic.cz> |
dm: core: add non-translating version of ofnode_get_addr_size_index() Add functions ofnode_get_addr_size_index_notrans(), which is a non-translating version of ofnode_get_addr_size_index(). Some addresses are not meant to be translated, for example those of MTD fixed-partitions. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
aa351a14 |
|
12-Apr-2021 |
Chen Guanqiao <chenguanqiao@kuaishou.com> |
dm: core: Add size operations on device tree references Add functions to add size of addresses in the device tree using ofnode references. If the size is not set, return FDT_SIZE_T_NONE. Signed-off-by: Chen Guanqiao <chenguanqiao@kuaishou.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
51bdb509 |
|
12-Jan-2021 |
Nicolas Saenz Julienne <nsaenzjulienne@suse.de> |
dm: Introduce xxx_get_dma_range() Add the following functions to get a specific device's DMA ranges: - dev_get_dma_range() - ofnode_get_dma_range() - of_get_dma_range() - fdt_get_dma_range() They are specially useful in oder to be able validate a physical address space range into a bus's and to convert addresses from and to address spaces. Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Peter Robinson <pbrobinson@gmail.com> Signed-off-by: Matthias Brugger <mbrugger@suse.com> |
#
401d1c4f |
|
30-Oct-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop asm/global_data.h from common header Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com> |
#
ec1add1e |
|
16-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Inline a few ofnode functions in SPL A recent change to unify the flattree/livetree code introduced a small size increase in SPL on some boards. For example SPL code size for px30-core-ctouch2-px30 increased by 40 bytes. To address this we can take advantage of the fact that some of the ofnode functions are only called a few times in SPL, so it is worth inlining them. Add new Kconfig options to control this. These functions are not inlined for U-Boot proper, since this increases code size. Fixes: 2ebea5eaebf ("dm: core: Combine the flattree and livetree binding code") Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d0c20ce6 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to get the devicetree root This is needed in at least one place. Avoid the conditional code in root.c by adding this inline function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0de1b074 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a livetree function to check node status Add a way to find out if a node is enabled or not, based on its 'status' property. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
305d3188 |
|
27-Jul-2020 |
Michal Simek <michal.simek@xilinx.com> |
dm: core: Add support for getting node from aliases Add support for getting a node/property from aliases. The similar functionality is provided for chosen node and this implemenatation is copy of it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
89f68302 |
|
25-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: add cells_count parameter in *_count_phandle_with_args The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d9949fe |
|
24-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: update test on of_offset in ofnode_valid Update the test for node.of_offset because an invalid offset is not always set to -1 because the return value of the libfdt functions are: + an error with a value < 0 + a valid offset with value >=0 For example, in ofnode_get_by_phandle() function, we have: node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, phandle); and this function can return -FDT_ERR_BADPHANDLE (-6). Without this patch, the added test dm_test_ofnode_get_by_phandle failed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
45dbe75d |
|
23-Sep-2020 |
Stefan Roese <sr@denx.de> |
dm: ofnode: Fix compile breakage with OF_CHECKS enabled Include missing log.h and change _ofnode_to_np() to ofnode_to_np() so that compiling with OF_CHECKS enabled does not break. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b9390ce5 |
|
24-Jul-2020 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: remove superfluous comment for union ofnode_union "future live tree" does not make sense anymore as we have CONFIG_OF_LIVE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@foss.st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0e116bea |
|
26-May-2021 |
Marek BehĂșn <marek.behun@nic.cz> |
dm: core: add ofnode_get_path() Add function for retrieving full node path of a given ofnode. This uses np->full_name if OF is live, otherwise a call to fdt_get_path() is made. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
31a7b719 |
|
26-May-2021 |
Marek BehĂșn <marek.behun@nic.cz> |
dm: core: add non-translating version of ofnode_get_addr_size_index() Add functions ofnode_get_addr_size_index_notrans(), which is a non-translating version of ofnode_get_addr_size_index(). Some addresses are not meant to be translated, for example those of MTD fixed-partitions. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
#
aa351a14 |
|
12-Apr-2021 |
Chen Guanqiao <chenguanqiao@kuaishou.com> |
dm: core: Add size operations on device tree references Add functions to add size of addresses in the device tree using ofnode references. If the size is not set, return FDT_SIZE_T_NONE. Signed-off-by: Chen Guanqiao <chenguanqiao@kuaishou.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
51bdb509 |
|
12-Jan-2021 |
Nicolas Saenz Julienne <nsaenzjulienne@suse.de> |
dm: Introduce xxx_get_dma_range() Add the following functions to get a specific device's DMA ranges: - dev_get_dma_range() - ofnode_get_dma_range() - of_get_dma_range() - fdt_get_dma_range() They are specially useful in oder to be able validate a physical address space range into a bus's and to convert addresses from and to address spaces. Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Peter Robinson <pbrobinson@gmail.com> Signed-off-by: Matthias Brugger <mbrugger@suse.com> |
#
401d1c4f |
|
30-Oct-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop asm/global_data.h from common header Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com> |
#
ec1add1e |
|
16-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Inline a few ofnode functions in SPL A recent change to unify the flattree/livetree code introduced a small size increase in SPL on some boards. For example SPL code size for px30-core-ctouch2-px30 increased by 40 bytes. To address this we can take advantage of the fact that some of the ofnode functions are only called a few times in SPL, so it is worth inlining them. Add new Kconfig options to control this. These functions are not inlined for U-Boot proper, since this increases code size. Fixes: 2ebea5eaebf ("dm: core: Combine the flattree and livetree binding code") Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d0c20ce6 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to get the devicetree root This is needed in at least one place. Avoid the conditional code in root.c by adding this inline function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0de1b074 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a livetree function to check node status Add a way to find out if a node is enabled or not, based on its 'status' property. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
305d3188 |
|
27-Jul-2020 |
Michal Simek <michal.simek@xilinx.com> |
dm: core: Add support for getting node from aliases Add support for getting a node/property from aliases. The similar functionality is provided for chosen node and this implemenatation is copy of it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
89f68302 |
|
25-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: add cells_count parameter in *_count_phandle_with_args The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d9949fe |
|
24-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: update test on of_offset in ofnode_valid Update the test for node.of_offset because an invalid offset is not always set to -1 because the return value of the libfdt functions are: + an error with a value < 0 + a valid offset with value >=0 For example, in ofnode_get_by_phandle() function, we have: node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, phandle); and this function can return -FDT_ERR_BADPHANDLE (-6). Without this patch, the added test dm_test_ofnode_get_by_phandle failed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
45dbe75d |
|
23-Sep-2020 |
Stefan Roese <sr@denx.de> |
dm: ofnode: Fix compile breakage with OF_CHECKS enabled Include missing log.h and change _ofnode_to_np() to ofnode_to_np() so that compiling with OF_CHECKS enabled does not break. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b9390ce5 |
|
24-Jul-2020 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: remove superfluous comment for union ofnode_union "future live tree" does not make sense anymore as we have CONFIG_OF_LIVE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@foss.st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
aa351a14 |
|
12-Apr-2021 |
Chen Guanqiao <chenguanqiao@kuaishou.com> |
dm: core: Add size operations on device tree references Add functions to add size of addresses in the device tree using ofnode references. If the size is not set, return FDT_SIZE_T_NONE. Signed-off-by: Chen Guanqiao <chenguanqiao@kuaishou.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
51bdb509 |
|
12-Jan-2021 |
Nicolas Saenz Julienne <nsaenzjulienne@suse.de> |
dm: Introduce xxx_get_dma_range() Add the following functions to get a specific device's DMA ranges: - dev_get_dma_range() - ofnode_get_dma_range() - of_get_dma_range() - fdt_get_dma_range() They are specially useful in oder to be able validate a physical address space range into a bus's and to convert addresses from and to address spaces. Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Peter Robinson <pbrobinson@gmail.com> Signed-off-by: Matthias Brugger <mbrugger@suse.com> |
#
401d1c4f |
|
30-Oct-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop asm/global_data.h from common header Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com> |
#
ec1add1e |
|
16-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Inline a few ofnode functions in SPL A recent change to unify the flattree/livetree code introduced a small size increase in SPL on some boards. For example SPL code size for px30-core-ctouch2-px30 increased by 40 bytes. To address this we can take advantage of the fact that some of the ofnode functions are only called a few times in SPL, so it is worth inlining them. Add new Kconfig options to control this. These functions are not inlined for U-Boot proper, since this increases code size. Fixes: 2ebea5eaebf ("dm: core: Combine the flattree and livetree binding code") Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d0c20ce6 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to get the devicetree root This is needed in at least one place. Avoid the conditional code in root.c by adding this inline function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0de1b074 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a livetree function to check node status Add a way to find out if a node is enabled or not, based on its 'status' property. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
305d3188 |
|
27-Jul-2020 |
Michal Simek <michal.simek@xilinx.com> |
dm: core: Add support for getting node from aliases Add support for getting a node/property from aliases. The similar functionality is provided for chosen node and this implemenatation is copy of it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
89f68302 |
|
25-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: add cells_count parameter in *_count_phandle_with_args The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d9949fe |
|
24-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: update test on of_offset in ofnode_valid Update the test for node.of_offset because an invalid offset is not always set to -1 because the return value of the libfdt functions are: + an error with a value < 0 + a valid offset with value >=0 For example, in ofnode_get_by_phandle() function, we have: node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, phandle); and this function can return -FDT_ERR_BADPHANDLE (-6). Without this patch, the added test dm_test_ofnode_get_by_phandle failed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
45dbe75d |
|
23-Sep-2020 |
Stefan Roese <sr@denx.de> |
dm: ofnode: Fix compile breakage with OF_CHECKS enabled Include missing log.h and change _ofnode_to_np() to ofnode_to_np() so that compiling with OF_CHECKS enabled does not break. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b9390ce5 |
|
24-Jul-2020 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: remove superfluous comment for union ofnode_union "future live tree" does not make sense anymore as we have CONFIG_OF_LIVE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@foss.st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
51bdb509 |
|
12-Jan-2021 |
Nicolas Saenz Julienne <nsaenzjulienne@suse.de> |
dm: Introduce xxx_get_dma_range() Add the following functions to get a specific device's DMA ranges: - dev_get_dma_range() - ofnode_get_dma_range() - of_get_dma_range() - fdt_get_dma_range() They are specially useful in oder to be able validate a physical address space range into a bus's and to convert addresses from and to address spaces. Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Peter Robinson <pbrobinson@gmail.com> Signed-off-by: Matthias Brugger <mbrugger@suse.com> |
#
401d1c4f |
|
30-Oct-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop asm/global_data.h from common header Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com> |
#
ec1add1e |
|
16-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Inline a few ofnode functions in SPL A recent change to unify the flattree/livetree code introduced a small size increase in SPL on some boards. For example SPL code size for px30-core-ctouch2-px30 increased by 40 bytes. To address this we can take advantage of the fact that some of the ofnode functions are only called a few times in SPL, so it is worth inlining them. Add new Kconfig options to control this. These functions are not inlined for U-Boot proper, since this increases code size. Fixes: 2ebea5eaebf ("dm: core: Combine the flattree and livetree binding code") Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d0c20ce6 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to get the devicetree root This is needed in at least one place. Avoid the conditional code in root.c by adding this inline function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0de1b074 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a livetree function to check node status Add a way to find out if a node is enabled or not, based on its 'status' property. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
305d3188 |
|
27-Jul-2020 |
Michal Simek <michal.simek@xilinx.com> |
dm: core: Add support for getting node from aliases Add support for getting a node/property from aliases. The similar functionality is provided for chosen node and this implemenatation is copy of it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
89f68302 |
|
25-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: add cells_count parameter in *_count_phandle_with_args The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d9949fe |
|
24-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: update test on of_offset in ofnode_valid Update the test for node.of_offset because an invalid offset is not always set to -1 because the return value of the libfdt functions are: + an error with a value < 0 + a valid offset with value >=0 For example, in ofnode_get_by_phandle() function, we have: node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, phandle); and this function can return -FDT_ERR_BADPHANDLE (-6). Without this patch, the added test dm_test_ofnode_get_by_phandle failed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
45dbe75d |
|
23-Sep-2020 |
Stefan Roese <sr@denx.de> |
dm: ofnode: Fix compile breakage with OF_CHECKS enabled Include missing log.h and change _ofnode_to_np() to ofnode_to_np() so that compiling with OF_CHECKS enabled does not break. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b9390ce5 |
|
24-Jul-2020 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: remove superfluous comment for union ofnode_union "future live tree" does not make sense anymore as we have CONFIG_OF_LIVE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@foss.st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
401d1c4f |
|
30-Oct-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop asm/global_data.h from common header Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com> |
#
ec1add1e |
|
16-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Inline a few ofnode functions in SPL A recent change to unify the flattree/livetree code introduced a small size increase in SPL on some boards. For example SPL code size for px30-core-ctouch2-px30 increased by 40 bytes. To address this we can take advantage of the fact that some of the ofnode functions are only called a few times in SPL, so it is worth inlining them. Add new Kconfig options to control this. These functions are not inlined for U-Boot proper, since this increases code size. Fixes: 2ebea5eaebf ("dm: core: Combine the flattree and livetree binding code") Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d0c20ce6 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to get the devicetree root This is needed in at least one place. Avoid the conditional code in root.c by adding this inline function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0de1b074 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a livetree function to check node status Add a way to find out if a node is enabled or not, based on its 'status' property. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
305d3188 |
|
27-Jul-2020 |
Michal Simek <michal.simek@xilinx.com> |
dm: core: Add support for getting node from aliases Add support for getting a node/property from aliases. The similar functionality is provided for chosen node and this implemenatation is copy of it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
89f68302 |
|
25-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: add cells_count parameter in *_count_phandle_with_args The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d9949fe |
|
24-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: update test on of_offset in ofnode_valid Update the test for node.of_offset because an invalid offset is not always set to -1 because the return value of the libfdt functions are: + an error with a value < 0 + a valid offset with value >=0 For example, in ofnode_get_by_phandle() function, we have: node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, phandle); and this function can return -FDT_ERR_BADPHANDLE (-6). Without this patch, the added test dm_test_ofnode_get_by_phandle failed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
45dbe75d |
|
23-Sep-2020 |
Stefan Roese <sr@denx.de> |
dm: ofnode: Fix compile breakage with OF_CHECKS enabled Include missing log.h and change _ofnode_to_np() to ofnode_to_np() so that compiling with OF_CHECKS enabled does not break. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b9390ce5 |
|
24-Jul-2020 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: remove superfluous comment for union ofnode_union "future live tree" does not make sense anymore as we have CONFIG_OF_LIVE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@foss.st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
ec1add1e |
|
16-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Inline a few ofnode functions in SPL A recent change to unify the flattree/livetree code introduced a small size increase in SPL on some boards. For example SPL code size for px30-core-ctouch2-px30 increased by 40 bytes. To address this we can take advantage of the fact that some of the ofnode functions are only called a few times in SPL, so it is worth inlining them. Add new Kconfig options to control this. These functions are not inlined for U-Boot proper, since this increases code size. Fixes: 2ebea5eaebf ("dm: core: Combine the flattree and livetree binding code") Signed-off-by: Simon Glass <sjg@chromium.org> |
#
d0c20ce6 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add an ofnode function to get the devicetree root This is needed in at least one place. Avoid the conditional code in root.c by adding this inline function. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
0de1b074 |
|
28-Nov-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a livetree function to check node status Add a way to find out if a node is enabled or not, based on its 'status' property. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
305d3188 |
|
27-Jul-2020 |
Michal Simek <michal.simek@xilinx.com> |
dm: core: Add support for getting node from aliases Add support for getting a node/property from aliases. The similar functionality is provided for chosen node and this implemenatation is copy of it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
89f68302 |
|
25-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: add cells_count parameter in *_count_phandle_with_args The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d9949fe |
|
24-Sep-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: update test on of_offset in ofnode_valid Update the test for node.of_offset because an invalid offset is not always set to -1 because the return value of the libfdt functions are: + an error with a value < 0 + a valid offset with value >=0 For example, in ofnode_get_by_phandle() function, we have: node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, phandle); and this function can return -FDT_ERR_BADPHANDLE (-6). Without this patch, the added test dm_test_ofnode_get_by_phandle failed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
45dbe75d |
|
23-Sep-2020 |
Stefan Roese <sr@denx.de> |
dm: ofnode: Fix compile breakage with OF_CHECKS enabled Include missing log.h and change _ofnode_to_np() to ofnode_to_np() so that compiling with OF_CHECKS enabled does not break. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b9390ce5 |
|
24-Jul-2020 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: remove superfluous comment for union ofnode_union "future live tree" does not make sense anymore as we have CONFIG_OF_LIVE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@foss.st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
305d3188 |
|
27-Jul-2020 |
Michal Simek <michal.simek@xilinx.com> |
dm: core: Add support for getting node from aliases Add support for getting a node/property from aliases. The similar functionality is provided for chosen node and this implemenatation is copy of it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
89f68302 |
|
25-Sep-2020 |
Patrick Delaunay <patrick.delaunay@st.com> |
dm: add cells_count parameter in *_count_phandle_with_args The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d9949fe |
|
24-Sep-2020 |
Patrick Delaunay <patrick.delaunay@st.com> |
dm: update test on of_offset in ofnode_valid Update the test for node.of_offset because an invalid offset is not always set to -1 because the return value of the libfdt functions are: + an error with a value < 0 + a valid offset with value >=0 For example, in ofnode_get_by_phandle() function, we have: node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, phandle); and this function can return -FDT_ERR_BADPHANDLE (-6). Without this patch, the added test dm_test_ofnode_get_by_phandle failed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
45dbe75d |
|
23-Sep-2020 |
Stefan Roese <sr@denx.de> |
dm: ofnode: Fix compile breakage with OF_CHECKS enabled Include missing log.h and change _ofnode_to_np() to ofnode_to_np() so that compiling with OF_CHECKS enabled does not break. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b9390ce5 |
|
24-Jul-2020 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: remove superfluous comment for union ofnode_union "future live tree" does not make sense anymore as we have CONFIG_OF_LIVE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b9390ce5 |
|
24-Jul-2020 |
Heinrich Schuchardt <xypron.glpk@gmx.de> |
dm: remove superfluous comment for union ofnode_union "future live tree" does not make sense anymore as we have CONFIG_OF_LIVE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
89b84b85 |
|
02-May-2020 |
Chunfeng Yun <chunfeng.yun@mediatek.com> |
dm: core: Add function to get child count of ofnode or device This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
ce891fca |
|
13-Jan-2020 |
Patrick Delaunay <patrick.delaunay@st.com> |
dm: core: add ofnode and dev function to iterate on node property Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4bb7075c |
|
29-Mar-2020 |
Dario Binacchi <dariobin@libero.it> |
dm: core: support reading a single indexed u32 value The patch adds helper functions to allow reading a single indexed u32 value from a device-tree property containing multiple u32 values, that is an array of integers. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
bd933bfd |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_get_chosen_prop() Add a function to read a property from the chosen node, providing access to its length. Update ofnode_get_chosen_string() to make use of it. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
a8167d8e |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_prop() Add a new function to read a property that supports reading the length as well. Reimplement ofnode_read_string() using it and fix its comment. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
14ca9f7f |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Rename ofnode_get_chosen_prop() 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> |
#
74d594a2 |
|
27-Jan-2020 |
Simon Glass <sjg@chromium.org> |
dm: core: Update comment for ofnode_get_chosen_node() The current comment is a big vague and misleading. Rewrite it to state precisely what the function does. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
b14c5339 |
|
06-Dec-2019 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix offset_to_ofnode() with invalid offset If the offset is -1 this function correctly sets up a null ofnode. But if the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it does the wrong thing. An offset of -1 in ofnode indicates that the ofnode is not valid. Any other negative value is not handled by ofnode_valid(). We could of course change that function, but it seems much better to always use the same value for an invalid node. Fix it by setting the offset to -1 if it is invalid for any reason. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
3f3d7715 |
|
02-Sep-2019 |
T Karthik Reddy <t.karthik.reddy@xilinx.com> |
dm: core: Add functions to read 64-bit dt properties This patch adds functions dev_read_u64_default & dev_read_u64 to read unsigned 64-bit values from devicetree. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
#
641067fb |
|
31-May-2019 |
Fabien Dessenne <fabien.dessenne@st.com> |
dm: core: Introduce xxx_translate_dma_address() Add the following functions to translate DMA address to CPU address: - dev_translate_dma_address() - ofnode_translate_dma_address() - of_translate_dma_address() - fdt_translate_dma_address() These functions work the same way as xxx_translate_address(), with the difference that the translation relies on the "dma-ranges" property instead of the "ranges" property. Add related test. Test report: => ut dm fdt_translation Test: dm_test_fdt_translation: test-fdt.c Test: dm_test_fdt_translation: test-fdt.c (flat tree) Failures: 0 Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> |
#
54e1223a |
|
21-May-2019 |
Patrick Delaunay <patrick.delaunay@st.com> |
dm: doc: add documentation for pre-reloc properties in SPL and TPL Add documentation for the pre-reloc property in SPL and TPL device-tree: - u-boot,dm-pre-proper - u-boot,dm-pre-reloc - u-boot,dm-spl - u-boot,dm-tpl Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
b061ef39 |
|
10-May-2019 |
Trent Piepho <tpiepho@impinj.com> |
core: ofnode: Have ofnode_read_u32_default return a u32 It was returning an int, which doesn't work if the u32 it is reading, or the default value, will overflow a signed int. While it could be made to work, when using a C standard/compiler where casting negative signed values to unsigned has a defined behavior, combined with careful casting, it seems obvious one is meant to use ofnode_read_s32_default() with signed values. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Trent Piepho <tpiepho@impinj.com> |
#
e679d03b |
|
24-Apr-2019 |
Keerthy <j-keerthy@ti.com> |
core: ofnode: Add ofnode_get_addr_size_index Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
33810b4e |
|
18-Nov-2018 |
Baruch Siach <baruch@tkos.co.il> |
ofnode: fix comment typo Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
#
afb30129 |
|
22-Nov-2018 |
Lukas Auer <lukas.auer@aisec.fraunhofer.de> |
dm: core: add missing prototype for ofnode_read_u64 Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com> |
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de> |
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> |
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
211aaf30 |
|
29-Jul-2017 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-usb
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com> |
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org> |
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 |
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
e369e58d |
|
26-Jun-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add functions to set properties in live-tree Implement a set of functions to manipulate properties in a live device tree: * ofnode_write_prop() to set generic properties of a node * ofnode_write_string() to set string properties of a node * ofnode_set_enabled() to either enable or disable a node Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org>
|
#
61fba0fa |
|
20-Aug-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
ofnode: add ofnode_by_prop_value() Adds ofnode_by_prop_value() to search for nodes with a given property and value, an ofnode version of fdt_node_offset_by_prop_value(). Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org>
|
#
7b9cbadd |
|
03-Aug-2018 |
Bin Meng <bmeng.cn@gmail.com> |
dm: core: Add ofnode function to read PCI vendor and device id We don't have the live-tree version of fdtdec_get_pci_vendev(). This adds the API. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
|
#
c60f671b |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add a way to find an ofnode by compatible string Add an ofnode_by_compatible() to allow iterating through ofnodes with a given compatible string. Signed-off-by: Simon Glass <sjg@chromium.org>
|
#
c98ad443 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add comments to ofnode_read_resource() functoins These functions are missing comments. Add some. Signed-off-by: Simon Glass <sjg@chromium.org>
|
#
fbe8d033 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Fix a few ofnode function comments Tidy up three return-value errors. Signed-off-by: Simon Glass <sjg@chromium.org>
|
#
7e5196c4 |
|
11-Jun-2018 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode function to read a 64-bit int We have a 32-bit version of this function. Add a 64-bit version as well so we can easily read 64-bit ints from the device tree. Signed-off-by: Simon Glass <sjg@chromium.org>
|
#
5ccc2c21 |
|
18-Apr-2018 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org>
|
#
83d290c5 |
|
06-May-2018 |
Tom Rini <trini@konsulko.com> |
SPDX: Convert all of our single license tags to Linux Kernel style When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com>
|
#
b4f20767 |
|
23-Feb-2018 |
Kever Yang <kever.yang@rock-chips.com> |
core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
|
#
e2d5997f |
|
23-Feb-2018 |
Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
core: ofnode: add ofnode_get_parent function The Rockchip video drivers need to walk the ofnode-parrents to find an enclosing device that has a UCLASS_DISPLAY driver bound. This adds a ofnode_get_parent()-function that returns the parent-node. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Reviewed-by: Anatolij Gustschin <agust@denx.de>
|
#
147c6074 |
|
15-Jan-2018 |
Mario Six <mario.six@gdsys.cc> |
core: Add {ofnode, dev}_translate_address functions Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc>
|
#
afc1a78a |
|
09-Nov-2017 |
Baruch Siach <baruch@tkos.co.il> |
dm: core: fix member name in ofnode_union documentation Fixes: 4984de2baaa ("dm: core: Add ofnode to represent device tree nodes") Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Simon Glass <sjg@chromium.org>
|
#
3991f42e |
|
05-Aug-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_for_each_subnode() Add a convenience macro to iterate over subnodes of a node. Make use of this where appropriate in the code. Signed-off-by: Simon Glass <sjg@chromium.org>
|
#
7b8b47bd |
|
25-Aug-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ofnode: add {ofnode, dev}_read_resource_byname() Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org>
|
#
642346ae |
|
18-Jul-2017 |
Patrice Chotard <patrice.chotard@st.com> |
dm: core: add ofnode_count_phandle_with_args() This function is usefull to get phandle number contained in a property list. For example, this allows to allocate the right amount of memory to keep clock's reference contained into the "clocks" property. To implement it, either of_count_phandle_with_args() or fdtdec_parse_phandle_with_args() are used respectively for live tree and flat tree. By passing index = -1, these 2 functions returns the number of phandle contained into the property list. Add also the dev_count_phandle_with_args() based on ofnode_count_phandle_with_args() Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org>
|
#
dcf98852 |
|
25-Jul-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_resource() We sometimes need to read a resource from an arbitrary node. In any case for consistency we should not put the live-tree switching code in a dev_read_...() function. Update this to suit. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com>
|
#
61e51bab |
|
22-Jun-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
dm: ofnode: rename ofnode_read_prop() to ofnode_get_property() This function returns the pointer to the value of a node property. The current name ofnode_read_prop() is confusing. Follow the naming of_get_property() from Linux. The return type (const u32 *) is wrong. DT property values can be strings as well as integers. This is why of_get_property/fdt_getprop returns an opaque pointer. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Simon Glass <sjg@chromium.org>
|
#
878d68c0 |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add functions to obtain node's address/size cells The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1
|
#
8c293d6a |
|
12-Jun-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode_read_string_count() This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1
|
#
bed77496 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add address operations on device tree references Add functions to add addresses in the device tree using ofnode references. Signed-off-by: Simon Glass <sjg@chromium.org>
|
#
9e512045 |
|
18-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add operations on device tree references Since U-Boot supports both a live tree and a flat tree, we need an easy way to access the tree without worrying about which is currently active. To support this, U-Boot has the concept of an ofnode, which can refer either to a live tree node or a flat tree node. For the live tree, the reference contains a pointer to the node (struct device_node *) or NULL if the node is invalid. For the flat tree, the reference contains the node offset or -1 if the node is invalid. Add a basic set of operations using ofnodes. These are implemented by using either libfdt functions (in the case of a flat DT reference) or the live-tree of_...() functions. Note that it is not possible to have both live and flat references active at the same time. As soon as the live tree is available, everything in U-Boot should switch to using that. This avoids confusion and allows us to assume that the type of a reference is simply based on whether we have a live tree yet, or not. Signed-off-by: Simon Glass <sjg@chromium.org>
|
#
4984de2b |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: core: Add ofnode to represent device tree nodes With live tree we need a struct device_node * to reference a node. With the existing flat tree, we need an int offset. We need to unify these into a single value which can represent both. Add an ofnode union for this and adjust existing code to move to this. Signed-off-by: Simon Glass <sjg@chromium.org>
|